# What this PR does - add Grafana IDs to users and teams public API endpoints - update Schedules public API docs to reflect the fact that [we allow filtering by `team_id`](https://github.com/grafana/oncall/blob/dev/engine/apps/public_api/views/schedules.py#L42) ## Checklist - [x] Unit, integration, and e2e (if applicable) tests updated - [x] Documentation added (or `pr:no public docs` PR label added if not required) - [x] Added the relevant release notes label (see labels prefixed w/ `release:`). These labels dictate how your PR will show up in the autogenerated release notes.
89 lines
2.2 KiB
Markdown
89 lines
2.2 KiB
Markdown
---
|
|
canonical: https://grafana.com/docs/oncall/latest/oncall-api-reference/teams/
|
|
title: Grafana OnCall teams HTTP API
|
|
weight: 0
|
|
refs:
|
|
pagination:
|
|
- pattern: /docs/oncall/
|
|
destination: /docs/oncall/<ONCALL_VERSION>/oncall-api-reference/#pagination
|
|
- pattern: /docs/grafana-cloud/
|
|
destination: /docs/grafana-cloud/alerting-and-irm/oncall/oncall-api-reference/#pagination
|
|
---
|
|
|
|
# Grafana OnCall teams HTTP API
|
|
|
|
## Get a team
|
|
|
|
This endpoint retrieves the team object.
|
|
|
|
```shell
|
|
curl "{{API_URL}}/api/v1/teams/TI73TDU19W48J/" \
|
|
--request GET \
|
|
--header "Authorization: meowmeowmeow" \
|
|
--header "Content-Type: application/json"
|
|
````
|
|
|
|
The above command returns JSON structured in the following way:
|
|
|
|
```json
|
|
{
|
|
"id": "TI73TDU19W48J",
|
|
"grafana_id": 123,
|
|
"name": "my test team",
|
|
"email": "",
|
|
"avatar_url": "/avatar/3f49c15916554246daa714b9bd0ee398"
|
|
}
|
|
```
|
|
|
|
**HTTP request**
|
|
|
|
`GET {{API_URL}}/api/v1/teams/<TEAM_ID>/`
|
|
|
|
| Parameter | Unique | Description |
|
|
| ----------------- | :-----: | :----------------------------- |
|
|
| `id` | Yes/org | OnCall team ID |
|
|
| `grafana_id` | Yes/org | Grafana team ID |
|
|
| `name` | Yes/org | Team name |
|
|
| `email` | Yes/org | Team e-mail |
|
|
| `avatar_url` | Yes | Avatar URL of the Grafana team |
|
|
|
|
## List Teams
|
|
|
|
```shell
|
|
curl "{{API_URL}}/api/v1/teams/" \
|
|
--request GET \
|
|
--header "Authorization: meowmeowmeow" \
|
|
--header "Content-Type: application/json"
|
|
```
|
|
|
|
The above command returns JSON structured in the following way:
|
|
|
|
```json
|
|
{
|
|
"count": 1,
|
|
"next": null,
|
|
"previous": null,
|
|
"results": [
|
|
{
|
|
"id": "TI73TDU19W48J",
|
|
"grafana_id": 123,
|
|
"name": "my test team",
|
|
"email": "",
|
|
"avatar_url": "/avatar/3f49c15916554246daa714b9bd0ee398"
|
|
}
|
|
],
|
|
"page_size": 50,
|
|
"current_page_number": 1,
|
|
"total_pages": 1
|
|
}
|
|
```
|
|
|
|
> **Note**: The response is [paginated](ref:pagination). You may need to make multiple requests to get all records.
|
|
|
|
The following available filter parameter should be provided as a `GET` argument:
|
|
|
|
- `name` (Exact match)
|
|
|
|
**HTTP request**
|
|
|
|
`GET {{API_URL}}/api/v1/teams/`
|