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-exports-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: 3.2.0
info:
title: Grafana Exports 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: Exports
paths:
/v1/provisioning/contact-points/export:
parameters: []
get:
tags:
- Exports
summary: Grafana Route Get Contactpoints Export
description: This API operation retrieves the exported configuration of contact points from Grafana's provisioning system. It uses a GET request to the `/v1/provisioning/contact-points/export` endpoint and returns contact point definitions that can be used for backup, migration, or version control purposes. Contact points define how and where Grafana sends alert notifications, such as email addresses, Slack webhooks, or PagerDuty integrations, and exporting them allows administrators to maintain consistent alerting configurations across different Grafana instances or to preserve configurations as code.
operationId: routeGetContactpointsExport
parameters:
- name: download
in: query
description: Whether to initiate a download of the file or not.
style: form
explode: true
schema:
type: boolean
default: false
- name: format
in: query
description: Format of the downloaded file. Supported yaml, json or hcl. Accept header can also be used, but the query parameter will take precedence.
style: form
explode: true
schema:
allOf:
- $ref: '#/components/schemas/format'
- description: Format of the downloaded file. Supported yaml, json or hcl. Accept header can also be used, but the query parameter will take precedence.
- name: decrypt
in: query
description: Whether any contained secure settings should be decrypted or left redacted. Redacted settings will contain RedactedValue instead. Currently, only org admin can view decrypted secure settings.
style: form
explode: true
schema:
type: boolean
default: false
- name: name
in: query
description: Filter by name
style: form
explode: true
schema:
type: string
responses:
'200':
description: AlertingFileExport
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/AlertingFileExportisthefullprovisionedfileexport.'
application/yaml:
schema:
contentMediaType: application/yaml
application/terraform+hcl:
schema:
contentMediaType: application/terraform+hcl
text/yaml:
schema:
contentMediaType: text/yaml
text/hcl:
schema:
contentMediaType: text/hcl
'403':
description: PermissionDenied
headers: {}
content:
application/json:
schema:
type: object
contentMediaType: application/json
application/yaml:
schema:
contentMediaType: application/yaml
application/terraform+hcl:
schema:
contentMediaType: application/terraform+hcl
text/yaml:
schema:
contentMediaType: text/yaml
text/hcl:
schema:
contentMediaType: text/hcl
deprecated: false
x-api-evangelist-processing:
SplitPascalCaseOperationSummaries: true
CaselCaseOperationIds: true
WriteDescription: true
ChooseTags: true
/v1/provisioning/mute-timings/export:
parameters: []
get:
tags:
- Exports
summary: Grafana Route Export Mute Timings
description: The Route Export Mute Timings operation in Grafana's provisioning API allows users to retrieve and export configured mute timing definitions through a GET request to the /v1/provisioning/mute-timings/export endpoint. This endpoint provides a way to extract mute timing configurations, which define time-based rules for suppressing alert notifications during specific periods such as maintenance windows or off-hours. The exported data can be used for backup purposes, migration between Grafana instances, version control of alerting configurations, or as a basis for creating new mute timings with similar settings. This operation is particularly useful for administrators who need to document their alerting infrastructure, replicate configurations across multiple environments, or maintain a programmatic approach to managing notification silencing schedules.
operationId: routeExportMuteTimings
parameters:
- name: download
in: query
description: Whether to initiate a download of the file or not.
style: form
explode: true
schema:
type: boolean
default: false
- name: format
in: query
description: Format of the downloaded file. Supported yaml, json or hcl. Accept header can also be used, but the query parameter will take precedence.
style: form
explode: true
schema:
allOf:
- $ref: '#/components/schemas/format'
- description: Format of the downloaded file. Supported yaml, json or hcl. Accept header can also be used, but the query parameter will take precedence.
responses:
'200':
description: AlertingFileExport
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/AlertingFileExportisthefullprovisionedfileexport.'
application/yaml:
schema:
contentMediaType: application/yaml
application/terraform+hcl:
schema:
contentMediaType: application/terraform+hcl
text/yaml:
schema:
contentMediaType: text/yaml
text/hcl:
schema:
contentMediaType: text/hcl
'403':
description: PermissionDenied
headers: {}
content:
application/json:
schema:
type: object
contentMediaType: application/json
application/yaml:
schema:
contentMediaType: application/yaml
application/terraform+hcl:
schema:
contentMediaType: application/terraform+hcl
text/yaml:
schema:
contentMediaType: text/yaml
text/hcl:
schema:
contentMediaType: text/hcl
deprecated: false
x-api-evangelist-processing:
SplitPascalCaseOperationSummaries: true
CaselCaseOperationIds: true
WriteDescription: true
ChooseTags: true
/v1/provisioning/mute-timings/{name}/export:
parameters: []
get:
tags:
- Exports
summary: Grafana Route Export Mute Timing
description: The Export Mute Timing API operation in Grafana allows users to retrieve and export the configuration details of a specific mute timing by providing its name as a path parameter. This GET endpoint is part of the provisioning API and enables administrators to programmatically access mute timing definitions, which are used to suppress alert notifications during specified time periods. The exported configuration can be used for backup purposes, migrating configurations between Grafana instances, or version controlling alerting infrastructure as code. By calling this endpoint with the mute timing's name, users receive the complete configuration in a format that can be stored, shared, or re-imported into Grafana systems.
operationId: routeExportMuteTiming
parameters:
- name: download
in: query
description: Whether to initiate a download of the file or not.
style: form
explode: true
schema:
type: boolean
default: false
- name: format
in: query
description: Format of the downloaded file. Supported yaml, json or hcl. Accept header can also be used, but the query parameter will take precedence.
style: form
explode: true
schema:
allOf:
- $ref: '#/components/schemas/format'
- description: Format of the downloaded file. Supported yaml, json or hcl. Accept header can also be used, but the query parameter will take precedence.
- name: name
in: path
description: Mute timing name
required: true
schema:
type: string
responses:
'200':
description: AlertingFileExport
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/AlertingFileExportisthefullprovisionedfileexport.'
application/yaml:
schema:
contentMediaType: application/yaml
application/terraform+hcl:
schema:
contentMediaType: application/terraform+hcl
text/yaml:
schema:
contentMediaType: text/yaml
text/hcl:
schema:
contentMediaType: text/hcl
'403':
description: PermissionDenied
headers: {}
content:
application/json:
schema:
type: object
contentMediaType: application/json
application/yaml:
schema:
contentMediaType: application/yaml
application/terraform+hcl:
schema:
contentMediaType: application/terraform+hcl
text/yaml:
schema:
contentMediaType: text/yaml
text/hcl:
schema:
contentMediaType: text/hcl
deprecated: false
x-api-evangelist-processing:
SplitPascalCaseOperationSummaries: true
CaselCaseOperationIds: true
WriteDescription: true
ChooseTags: true
/v1/provisioning/policies/export:
parameters: []
get:
tags:
- Exports
summary: Grafana Route Get Policy Tree Export
description: This API operation retrieves and exports the complete policy tree structure from Grafana's provisioning system. It returns a comprehensive representation of all configured notification policies in an exportable format, which can be used for backup purposes, version control, or migration to other Grafana instances. The GET request to this endpoint provides administrators with a way to programmatically access and manage their alerting policy configurations outside of the Grafana UI, facilitating infrastructure-as-code practices and automated provisioning workflows.
operationId: routeGetPolicyTreeExport
parameters: []
responses:
'200':
description: AlertingFileExport
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/AlertingFileExportisthefullprovisionedfileexport.'
application/yaml:
schema:
contentMediaType: application/yaml
application/terraform+hcl:
schema:
contentMediaType: application/terraform+hcl
text/yaml:
schema:
contentMediaType: text/yaml
text/hcl:
schema:
contentMediaType: text/hcl
'404':
description: NotFound
headers: {}
content:
application/json:
schema:
type: object
contentMediaType: application/json
application/yaml:
schema:
contentMediaType: application/yaml
application/terraform+hcl:
schema:
contentMediaType: application/terraform+hcl
text/yaml:
schema:
contentMediaType: text/yaml
text/hcl:
schema:
contentMediaType: text/hcl
deprecated: false
x-api-evangelist-processing:
SplitPascalCaseOperationSummaries: true
CaselCaseOperationIds: true
WriteDescription: true
ChooseTags: true
components:
schemas:
AlertRuleGroupExportistheprovisionedfileexportofAlertRuleGroupV1.:
title: AlertRuleGroupExportistheprovisionedfileexportofAlertRuleGroupV1.
type: object
properties:
folder:
type: string
interval:
type: integer
description: 'A Duration represents the elapsed time between two instants
as an int64 nanosecond count. The representation limits the
largest representable duration to approximately 290 years.'
contentEncoding: int64
name:
type: string
orgId:
type: integer
contentEncoding: int64
rules:
type: array
items:
$ref: '#/components/schemas/AlertRuleExportistheprovisionedfileexportofmodels.AlertRule.'
description: ''
AlertingFileExportisthefullprovisionedfileexport.:
title: AlertingFileExportisthefullprovisionedfileexport.
type: object
properties:
apiVersion:
type: integer
contentEncoding: int64
contactPoints:
type: array
items:
$ref: '#/components/schemas/ContactPointExportistheprovisionedfileexportofalerting.ContactPointV1.'
description: ''
groups:
type: array
items:
$ref: '#/components/schemas/AlertRuleGroupExportistheprovisionedfileexportofAlertRuleGroupV1.'
description: ''
muteTimes:
type: array
items:
$ref: '#/components/schemas/MuteTimeIntervalExport'
description: ''
policies:
type: array
items:
$ref: '#/components/schemas/NotificationPolicyExportistheprovisionedfileexportofalerting.NotificiationPolicyV1.'
description: ''
RelativeTimeRangeExport:
title: RelativeTimeRangeExport
type: object
properties:
from:
type: integer
contentEncoding: int64
to:
type: integer
contentEncoding: int64
TimeIntervalrepresentsanamedsetoftimeintervalsforwhicharouteshouldbemuted.:
title: TimeIntervalrepresentsanamedsetoftimeintervalsforwhicharouteshouldbemuted.
type: object
properties:
name:
type: string
time_intervals:
type: array
items:
$ref: '#/components/schemas/TimeIntervalrepresentsanamedsetoftimeintervalsforwhicharouteshouldbemuted.'
description: ''
Recordistheprovisionedexportofmodels.Record.:
title: Recordistheprovisionedexportofmodels.Record.
type: object
properties:
from:
type: string
metric:
type: string
targetDatasourceUid:
type: string
NotificationPolicyExportistheprovisionedfileexportofalerting.NotificiationPolicyV1.:
title: NotificationPolicyExportistheprovisionedfileexportofalerting.NotificiationPolicyV1.
type: object
properties:
active_time_intervals:
type: array
items:
type: string
description: ''
continue:
type: boolean
group_by:
type: array
items:
type: string
description: ''
group_interval:
type: string
group_wait:
type: string
match:
type: object
additionalProperties:
type: string
description: Deprecated. Remove before v1.0 release.
match_re:
type: object
additionalProperties:
type: string
matchers:
type: array
items:
$ref: '#/components/schemas/Matchermodelsthematchingofalabel.'
description: 'Matchers is a slice of Matchers that is sortable, implements Stringer, and
provides a Matches method to match a LabelSet against all Matchers in the
slice. Note that some users of Matchers might require it to be sorted.'
mute_time_intervals:
type: array
items:
type: string
description: ''
object_matchers:
type: array
items:
type: array
items:
type: string
orgId:
type: integer
contentEncoding: int64
receiver:
type: string
repeat_interval:
type: string
routes:
type: array
items:
$ref: '#/components/schemas/RouteExport'
description: ''
AlertQueryExportistheprovisionedexportofmodels.AlertQuery.:
title: AlertQueryExportistheprovisionedexportofmodels.AlertQuery.
type: object
properties:
datasourceUid:
type: string
model:
type: object
additionalProperties: {}
queryType:
type: string
refId:
type: string
relativeTimeRange:
$ref: '#/components/schemas/RelativeTimeRangeExport'
Matchermodelsthematchingofalabel.:
title: Matchermodelsthematchingofalabel.
type: object
properties:
Name:
type: string
Type:
type: integer
contentEncoding: int64
Value:
type: string
NoDataState:
title: NoDataState
enum:
- Alerting
- NoData
- OK
type: string
ExecErrState:
title: ExecErrState
enum:
- OK
- Alerting
- Error
type: string
ReceiverExportistheprovisionedfileexportofalerting.ReceiverV1.:
title: ReceiverExportistheprovisionedfileexportofalerting.ReceiverV1.
type: object
properties:
disableResolveMessage:
type: boolean
settings:
type: object
type:
type: string
uid:
type: string
AlertRuleNotificationSettingsExportistheprovisionedexportofmodels.NotificationSettings.:
title: AlertRuleNotificationSettingsExportistheprovisionedexportofmodels.NotificationSettings.
type: object
properties:
active_time_intervals:
type: array
items:
type: string
description: ''
group_by:
type: array
items:
type: string
description: ''
group_interval:
type: string
group_wait:
type: string
mute_time_intervals:
type: array
items:
type: string
description: ''
receiver:
type: string
repeat_interval:
type: string
format:
title: format
enum:
- yaml
- json
- hcl
type: string
MuteTimeIntervalExport:
title: MuteTimeIntervalExport
type: object
properties:
name:
type: string
orgId:
type: integer
contentEncoding: int64
time_intervals:
type: array
items:
$ref: '#/components/schemas/TimeIntervalrepresentsanamedsetoftimeintervalsforwhicharouteshouldbemuted.'
description: ''
RouteExport:
title: RouteExport
type: object
properties:
active_time_intervals:
type: array
items:
type: string
description: ''
continue:
type: boolean
group_by:
type: array
items:
type: string
description: ''
group_interval:
type: string
group_wait:
type: string
match:
type: object
additionalProperties:
type: string
description: Deprecated. Remove before v1.0 release.
match_re:
type: object
additionalProperties:
type: string
matchers:
type: array
items:
$ref: '#/components/schemas/Matchermodelsthematchingofalabel.'
description: 'Matchers is a slice of Matchers that is sortable, implements Stringer, and
provides a Matches method to match a LabelSet against all Matchers in the
slice. Note that some users of Matchers might require it to be sorted.'
mute_time_intervals:
type: array
items:
type: string
description: ''
object_matchers:
type: array
items:
type: array
items:
type: string
receiver:
type: string
repeat_interval:
type: string
routes:
type: array
items:
$ref: '#/components/schemas/RouteExport'
description: ''
description: 'RouteExport is the provisioned file export of definitions.Route. This is needed to hide fields that aren''t useable in
provisioning file format. An alternative would be to define a custom MarshalJSON and MarshalYAML that excludes them.'
AlertRuleExportistheprovisionedfileexportofmodels.AlertRule.:
title: AlertRuleExportistheprovisionedfileexportofmodels.AlertRule.
type: object
properties:
annotations:
type: object
additionalProperties:
type: string
condition:
type: string
dashboardUid:
type: string
data:
type: array
items:
$ref: '#/components/schemas/AlertQueryExportistheprovisionedexportofmodels.AlertQuery.'
description: ''
execErrState:
$ref: '#/components/schemas/ExecErrState'
for:
type: integer
description: 'A Duration represents the elapsed time between two instants
as an int64 nanosecond count. The representation limits the
largest representable duration to approximately 290 years.'
contentEncoding: int64
isPaused:
type: boolean
keepFiringFor:
type: integer
description: 'A Duration represents the elapsed time between two instants
as an int64 nanosecond count. The representation limits the
largest representable duration to approximately 290 years.'
contentEncoding: int64
labels:
type: object
additionalProperties:
type: string
missing_series_evals_to_resolve:
type: integer
contentEncoding: int64
noDataState:
$ref: '#/components/schemas/NoDataState'
notification_settings:
$ref: '#/components/schemas/AlertRuleNotificationSettingsExportistheprovisionedexportofmodels.NotificationSettings.'
panelId:
type: integer
contentEncoding: int64
record:
$ref: '#/components/schemas/Recordistheprovisionedexportofmodels.Record.'
title:
type: string
uid:
type: string
ContactPointExportistheprovisionedfileexportofalerting.ContactPointV1.:
title: ContactPointExportistheprovisionedfileexportofalerting.ContactPointV1.
type: object
properties:
name:
type: string
orgId:
type: integer
contentEncoding: int64
receivers:
type: array
items:
$ref: '#/components/schemas/ReceiverExportistheprovisionedfileexportofalerting.ReceiverV1.'
description: ''
securitySchemes:
api_key:
type: apiKey
name: Authorization
in: header
basic:
type: http
scheme: basic