Find Grafana Datasource Id by its Name

This article explains how to find out the id of a Datasource in Grafana when you know its name.

The article is based on the following documentation: Data source HTTP API | Grafana documentation

 Instructions

  1. Use the following script to reach Grafana API by IP with username and password.
    Note: values in this script are only an example. Before running this script on your machine, first update grafana_host, grafana_port, grafana_username, grafana_password, and datasource_name with your actual values.

    #!/bin/bash #Get a single data source by name #GET /api/datasources/name/:name grafana_host=10.2.7.100 grafana_port=80 grafana_username='admin' grafana_password='adminz-password' datasource_name='hivemq-prometheus-1' curl --location \ --header 'Content-Type: application/json' \ --header 'Accept: application/json' \ "http://${grafana_username}:${grafana_password}@${grafana_host}:${grafana_port}/api/datasources/name/${datasource_name}"
  2. Use the id value as Datasource id.

  3. If all credentials are valid, the output of the script is JSON like this:

    { "id": 11, "uid": "abcd1efgh", "orgId": 1, "name": "hivemq-prometheus-1", "type": "prometheus", "typeName": "Prometheus", "typeLogoUrl": "public/app/plugins/datasource/prometheus/img/prometheus_logo.svg", "access": "proxy", "url": "http://prometheus-kube-prometheus-prometheus:9090/", "password": "", "user": "", "database": "", "basicAuth": false, "isDefault": true, "jsonData": {}, "readOnly": true }

     

  4. If the Grafana IP is incorrect you will get an error like this:

    curl: (7) Failed to connect to 10.2.7.100 port 80 after 6058 ms: Couldn't connect to server

     

  5. If user credentials are invalid you will get an error like this:

    { "message": "invalid username or password" }

     

  6. If the request is not authorized you will get an error like this:

    { "message": "Unauthorized" }

     

  7. To list all Datasources:

    curl --location \ --header 'Content-Type: application/json' \ --header 'Accept: application/json' \ "http://${grafana_username}:${grafana_password}@${grafana_host}:${grafana_port}/api/datasources"

 Related articles