Grafana Search API

The Search API from Grafana — 13 operation(s) for search.

Operations 5

GET /orgs/{org_id}/users/search Grafana Search Org Users #
GET /teams/search Grafana Search Teams #
GET /users Grafana Search Users #
GET /users/search Grafana Search Users With Paging #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/grafana-search-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

grafana-search-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Grafana Search API
  description: 'Grafana is an open-source analytics and visualization platform that helps you monitor and analyze data from various sources. It lets you create customizable dashboards with charts, graphs, and alerts to visualize metrics and logs in real-time. Commonly used for monitoring infrastructure, applications, and business metrics, Grafana connects to dozens of data sources like Prometheus, Elasticsearch, and cloud platforms, making it easier to understand system performance, troubleshoot issues, and track key indicators all in one place. '
  contact:
    name: Grafana Labs
    url: https://grafana.com
    email: hello@grafana.com
  version: 0.0.1
servers:
- url: http://{defaultHost}
  variables:
    defaultHost:
      default: www.example.com/api
- url: https://{defaultHost}
  variables:
    defaultHost:
      default: www.example.com/api
security:
- basic: []
- api_key: []
tags:
- name: Search
  description: ''
paths:
  /orgs/{org_id}/users/search:
    parameters: []
    get:
      tags:
      - Search
      summary: Grafana Search Org Users
      description: This API operation allows you to search for users within a specific organization in Grafana by providing the organization ID in the URL path. It uses the GET HTTP method to retrieve a filtered list of users belonging to the specified organization, enabling administrators to query and find specific users based on search criteria. The endpoint is useful for managing organization membership and performing user lookups within the context of a particular Grafana organization.
      operationId: searchOrgUsers
      parameters:
      - name: org_id
        in: path
        description: ''
        required: true
        schema:
          type: integer
          contentEncoding: int64
      responses:
        '200':
          description: (empty)
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchOrgUsersQueryResult'
        '401':
          description: UnauthorizedError is returned when the request is not authenticated.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody'
        '403':
          description: ForbiddenError is returned if the user/token has insufficient permissions to access the requested resource.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody'
        '500':
          description: InternalServerError is a general error indicating something went wrong internally.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody'
      deprecated: false
      security:
      - basic: []
      x-api-evangelist-processing:
        SplitPascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        WriteDescription: true
        ChooseTags: true
  /teams/search:
    parameters: []
    get:
      tags:
      - Search
      summary: Grafana Search Teams
      description: The Grafana Teams Search API endpoint allows users to query and retrieve a list of teams within a Grafana instance using a GET request to /teams/search. This operation enables administrators and users with appropriate permissions to search for teams based on various criteria, returning matching team information such as team names, IDs, and associated metadata. The endpoint supports pagination and filtering parameters to help narrow down results when working with large numbers of teams, making it easier to locate specific teams or browse through the organization's team structure programmatically.
      operationId: searchTeams
      parameters:
      - name: page
        in: query
        description: ''
        style: form
        explode: true
        schema:
          type: integer
          contentEncoding: int64
          default: 1
      - name: perpage
        in: query
        description: 'Number of items per page

          The totalCount field in the response can be used for pagination list E.g. if totalCount is equal to 100 teams and the perpage parameter is set to 10 then there are 10 pages of teams.'
        style: form
        explode: true
        schema:
          type: integer
          contentEncoding: int64
          default: 1000
      - name: name
        in: query
        description: ''
        style: form
        explode: true
        schema:
          type: string
      - name: query
        in: query
        description: If set it will return results where the query value is contained in the name field. Query values with spaces need to be URL encoded.
        style: form
        explode: true
        schema:
          type: string
      - name: accesscontrol
        in: query
        description: ''
        style: form
        explode: true
        schema:
          type: boolean
          default: false
      - name: sort
        in: query
        description: ''
        style: form
        explode: true
        schema:
          type: string
      responses:
        '200':
          description: (empty)
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchTeamQueryResult'
        '401':
          description: UnauthorizedError is returned when the request is not authenticated.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody'
        '403':
          description: ForbiddenError is returned if the user/token has insufficient permissions to access the requested resource.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody'
        '500':
          description: InternalServerError is a general error indicating something went wrong internally.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody'
      deprecated: false
      x-api-evangelist-processing:
        SplitPascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        WriteDescription: true
        ChooseTags: true
  /search:
    parameters: []
    get:
      tags:
      - Search
      summary: Grafana Search
      operationId: search
      parameters:
      - name: query
        in: query
        description: Search Query
        style: form
        explode: true
        schema:
          type: string
      - name: tag
        in: query
        description: List of tags to search for
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: type
        in: query
        description: Type to search for, dash-folder or dash-db
        style: form
        explode: true
        schema:
          allOf:
          - $ref: '#/components/schemas/type4'
          - description: Type to search for, dash-folder or dash-db
      - name: dashboardIds
        in: query
        description: 'List of dashboard id’s to search for

          This is deprecated: users should use the `dashboardUIDs` query parameter instead'
        style: form
        explode: true
        schema:
          type: array
          items:
            type: integer
            contentEncoding: int64
      - name: dashboardUIDs
        in: query
        description: List of dashboard uid’s to search for
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: folderIds
        in: query
        description: 'List of folder id’s to search in for dashboards

          If it''s `0` then it will query for the top level folders

          This is deprecated: users should use the `folderUIDs` query parameter instead'
        style: form
        explode: true
        schema:
          type: array
          items:
            type: integer
            contentEncoding: int64
      - name: folderUIDs
        in: query
        description: 'List of folder UID’s to search in for dashboards

          If it''s an empty string then it will query for the top level folders'
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: starred
        in: query
        description: Flag indicating if only starred Dashboards should be returned
        style: form
        explode: true
        schema:
          type: boolean
      - name: limit
        in: query
        description: Limit the number of returned results (max 5000)
        style: form
        explode: true
        schema:
          type: integer
          contentEncoding: int64
      - name: page
        in: query
        description: Use this parameter to access hits beyond limit. Numbering starts at 1. limit param acts as page size. Only available in Grafana v6.2+.
        style: form
        explode: true
        schema:
          type: integer
          contentEncoding: int64
      - name: permission
        in: query
        description: Set to `Edit` to return dashboards/folders that the user can edit
        style: form
        explode: true
        schema:
          allOf:
          - $ref: '#/components/schemas/permission1'
          - description: Set to `Edit` to return dashboards/folders that the user can edit
      - name: sort
        in: query
        description: Sort method; for listing all the possible sort methods use the search sorting endpoint.
        style: form
        explode: true
        schema:
          allOf:
          - $ref: '#/components/schemas/sort1'
          - description: Sort method; for listing all the possible sort methods use the search sorting endpoint.
      - name: deleted
        in: query
        description: Flag indicating if only soft deleted Dashboards should be returned
        style: form
        explode: true
        schema:
          type: boolean
      responses:
        '200':
          description: (empty)
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Hit'
                description: ''
                contentMediaType: application/json
        '401':
          description: UnauthorizedError is returned when the request is not authenticated.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody'
        '422':
          description: UnprocessableEntityError
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody'
        '500':
          description: InternalServerError is a general error indicating something went wrong internally.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody'
      deprecated: false
      x-api-evangelist-processing:
        SplitPascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        WriteDescription: true
        ChooseTags: true
      description: The Grafana Search API endpoint allows users to query and retrieve dashboards, folders, and other resources within their Grafana instance through a GET request to the /search path. This operation supports various query parameters to filter results, including search terms, tags, folder IDs, dashboard IDs, types (dash-db or dash-folder), starred status, and pagination limits. It returns a JSON array of matching items with metadata such as ID, UID, title, URL, type, tags, and whether the item is starred, enabling programmatic discovery and navigation of Grafana content without requiring direct access to the user interface.
  /users:
    parameters: []
    get:
      tags:
      - Search
      summary: Grafana Search Users
      description: This API operation retrieves a list of users from the Grafana instance based on specified search criteria. It performs a GET request to the /users endpoint and allows administrators or users with appropriate permissions to query and filter user accounts within the system. The operation typically supports various query parameters such as pagination limits, search terms, and filters to narrow down results, returning user information including usernames, email addresses, roles, and other relevant account details in a structured format such as JSON.
      operationId: searchUsers
      parameters:
      - name: perpage
        in: query
        description: Limit the maximum number of users to return per page
        style: form
        explode: true
        schema:
          type: integer
          contentEncoding: int64
          default: 1000
      - name: page
        in: query
        description: Page index for starting fetching users
        style: form
        explode: true
        schema:
          type: integer
          contentEncoding: int64
          default: 1
      responses:
        '200':
          description: (empty)
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserSearchHitDTO'
                description: ''
                contentMediaType: application/json
        '401':
          description: UnauthorizedError is returned when the request is not authenticated.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody'
        '403':
          description: ForbiddenError is returned if the user/token has insufficient permissions to access the requested resource.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody'
        '500':
          description: InternalServerError is a general error indicating something went wrong internally.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody'
      deprecated: false
      x-api-evangelist-processing:
        SplitPascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        WriteDescription: true
        ChooseTags: true
  /users/search:
    parameters: []
    get:
      tags:
      - Search
      summary: Grafana Search Users With Paging
      description: This API operation performs a paginated search of users within a Grafana instance, allowing administrators or authorized users to retrieve a list of user accounts based on specific search criteria. The GET request to the /users/search endpoint returns user information in a structured format with pagination support, making it efficient to handle large numbers of users by breaking results into manageable pages. This operation is commonly used in administrative interfaces, user management dashboards, or when implementing features that require user selection or filtering capabilities within Grafana.
      operationId: searchUsersWithPaging
      parameters: []
      responses:
        '200':
          description: (empty)
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchUserQueryResult'
        '401':
          description: UnauthorizedError is returned when the request is not authenticated.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody'
        '403':
          description: ForbiddenError is returned if the user/token has insufficient permissions to access the requested resource.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody'
        '404':
          description: NotFoundError is returned when the requested resource was not found.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody'
        '500':
          description: InternalServerError is a general error indicating something went wrong internally.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody'
      deprecated: false
      x-api-evangelist-processing:
        SplitPascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        WriteDescription: true
        ChooseTags: true
components:
  schemas:
    OrgUserDTO:
      title: OrgUserDTO
      type: object
      properties:
        accessControl:
          type: object
          additionalProperties:
            type: boolean
        authLabels:
          type: array
          items:
            type: string
          description: ''
        avatarUrl:
          type: string
        email:
          type: string
        isDisabled:
          type: boolean
        isExternallySynced:
          type: boolean
        isProvisioned:
          type: boolean
        lastSeenAt:
          type: string
          contentEncoding: date-time
        lastSeenAtAge:
          type: string
        login:
          type: string
        name:
          type: string
        orgId:
          type: integer
          contentEncoding: int64
        role:
          type: string
        uid:
          type: string
        userId:
          type: integer
          contentEncoding: int64
    UserSearchHitDTO:
      title: UserSearchHitDTO
      type: object
      properties:
        authLabels:
          type: array
          items:
            type: string
          description: ''
        avatarUrl:
          type: string
        email:
          type: string
        id:
          type: integer
          contentEncoding: int64
        isAdmin:
          type: boolean
        isDisabled:
          type: boolean
        isProvisioned:
          type: boolean
        lastSeenAt:
          type: string
          contentEncoding: date-time
        lastSeenAtAge:
          type: string
        login:
          type: string
        name:
          type: string
        uid:
          type: string
    type4:
      title: type4
      enum:
      - dash-folder
      - dash-db
      type: string
    TeamDTO:
      title: TeamDTO
      required:
      - id
      - isProvisioned
      - memberCount
      - name
      - orgId
      - uid
      type: object
      properties:
        accessControl:
          type: object
          additionalProperties:
            type: boolean
        avatarUrl:
          type: string
        email:
          type: string
        externalUID:
          type: string
        id:
          type: integer
          description: '@deprecated Use UID instead'
          contentEncoding: int64
        isProvisioned:
          type: boolean
        memberCount:
          type: integer
          contentEncoding: int64
        name:
          type: string
        orgId:
          type: integer
          contentEncoding: int64
        permission:
          type: integer
          contentEncoding: int64
        uid:
          type: string
    SearchTeamQueryResult:
      title: SearchTeamQueryResult
      type: object
      properties:
        page:
          type: integer
          contentEncoding: int64
        perPage:
          type: integer
          contentEncoding: int64
        teams:
          type: array
          items:
            $ref: '#/components/schemas/TeamDTO'
          description: ''
        totalCount:
          type: integer
          contentEncoding: int64
    ErrorResponseBody:
      title: ErrorResponseBody
      required:
      - message
      type: object
      properties:
        error:
          type: string
          description: Error An optional detailed description of the actual error. Only included if running in developer mode.
        message:
          type: string
          description: a human readable version of the error
        status:
          type: string
          description: 'Status An optional status to denote the cause of the error.


            For example, a 412 Precondition Failed error may include additional information of why that error happened.'
    sort1:
      title: sort1
      enum:
      - alpha-asc
      - alpha-desc
      type: string
    SearchUserQueryResult:
      title: SearchUserQueryResult
      type: object
      properties:
        page:
          type: integer
          contentEncoding: int64
        perPage:
          type: integer
          contentEncoding: int64
        totalCount:
          type: integer
          contentEncoding: int64
        users:
          type: array
          items:
            $ref: '#/components/schemas/UserSearchHitDTO'
          description: ''
    Hit:
      title: Hit
      type: object
      properties:
        description:
          type: string
        folderId:
          type: integer
          contentEncoding: int64
        folderTitle:
          type: string
        folderUid:
          type: string
        folderUrl:
          type: string
        id:
          type: integer
          contentEncoding: int64
        isDeleted:
          type: boolean
        isStarred:
          type: boolean
        orgId:
          type: integer
          contentEncoding: int64
        permanentlyDeleteDate:
          type: string
          contentEncoding: date-time
        slug:
          type: string
        sortMeta:
          type: integer
          contentEncoding: int64
        sortMetaName:
          type: string
        tags:
          type: array
          items:
            type: string
          description: ''
        title:
          type: string
        type:
          type: string
        uid:
          type: string
        uri:
          type: string
        url:
          type: string
    permission1:
      title: permission1
      enum:
      - Edit
      - View
      type: string
    SearchOrgUsersQueryResult:
      title: SearchOrgUsersQueryResult
      type: object
      properties:
        orgUsers:
          type: array
          items:
            $ref: '#/components/schemas/OrgUserDTO'
          description: ''
        page:
          type: integer
          contentEncoding: int64
        perPage:
          type: integer
          contentEncoding: int64
        totalCount:
          type: integer
          contentEncoding: int64
  securitySchemes:
    api_key:
      type: apiKey
      name: Authorization
      in: header
    basic:
      type: http
      scheme: basic