+++ title = "API Tutorial: How To Create API Tokens And Dashboards For A Specific Organization" type = "docs" keywords = ["grafana", "tutorials", "API", "Token", "Org", "Organization"] [menu.docs] parent = "tutorials" weight = 10 +++
Use the Grafana API to setup new Grafana organizations or to add dynamically generated dashboards to an existing organization.
There are two authentication methods to access the API:
The task is to create a new organization and then add a Token that can be used by other users. In the examples below which use basic auth, the user is admin and the password is admin.
Create the org. Here is an example using curl:
curl -X POST -H "Content-Type: application/json" -d '{"name":"apiorg"}' http://admin:admin@localhost:3000/api/orgs
This should return a response: {"message":"Organization created","orgId":6}. Use the orgId for the next steps.
bash
curl -X POST -H "Content-Type: application/json" -d '{"loginOrEmail":"admin", "role": "Admin"}' http://admin:admin@localhost:3000/api/orgs/<org id of new org>/users
Switch the org context for the Admin user to the new org:
curl -X POST http://admin:admin@localhost:3000/api/user/using/<id of new org>
bash
curl -X POST -H "Content-Type: application/json" -d '{"name":"apikeycurl", "role": "Admin"}' http://admin:admin@localhost:3000/api/auth/keys
This should return a response: {"name":"apikeycurl","key":"eyJrIjoiR0ZXZmt1UFc0OEpIOGN5RWdUalBJTllUTk83VlhtVGwiLCJuIjoiYXBpa2V5Y3VybCIsImlkIjo2fQ=="}.
Save the key returned here in your password manager as it is not possible to fetch again it in the future.Using the Token that was created in the previous step, you can create a dashboard or carry out other actions without having to switch organizations.
curl -X POST --insecure -H "Authorization: Bearer eyJrIjoiR0ZXZmt1UFc0OEpIOGN5RWdUalBJTllUTk83VlhtVGwiLCJuIjoiYXBpa2V5Y3VybCIsImlkIjo2fQ==" -H "Content-Type: application/json" -d '{
"dashboard": {
"id": null,
"title": "Production Overview",
"tags": [ "templated" ],
"timezone": "browser",
"rows": [
{
}
],
"schemaVersion": 6,
"version": 0
},
"overwrite": false
}' http://localhost:3000/api/dashboards/db
Note. If you export a dashboard for sharing externally using the Share > Export menu in the Grafana UI, you cannot import that dashboard. Instead, click View JSON and save it to a file or fetch the JSON output through the API.