breaker metadata
Lightweight endpoints for reading and writing breaker metadata without touching full breaker configs.
GET
/v1/projects/:project_id/breakers/metadata
List metadata for all breakers in a project
Auth:
Project API key
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
project_id |
path | uuid | Yes | Project ID |
Responses
200
Breaker metadata list. Response includes a weak ETag header for conditional requests.
breakersproject_id
304
Not Modified (when If-None-Match matches current ETag)
Example
Request
curl https://api.tripswitch.dev/v1/projects/PROJECT_ID/breakers/metadata \
-H "Authorization: Bearer YOUR_PROJECT_API_KEY"
Response
{
"project_id": "1234-432...",
"breakers": [
{
"id": "98765-5gf...",
"name": "payments-primary",
"metadata": {"phase": "enforce", "owner": "payments"}
}
]
}
PATCH
/v1/projects/:project_id/breakers/:breaker_id/metadata
Merge keys into breaker metadata
Auth:
Admin API key
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
project_id |
path | uuid | Yes | Project ID |
breaker_id |
path | uuid | Yes | Breaker ID |
Request Body
metadata
*
Responses
200
Updated breaker metadata
idmetadataname
404
Breaker not found
422
Validation failed
Example
Request
curl -X PATCH https://api.tripswitch.dev/v1/projects/PROJECT_ID/breakers/BREAKER_ID/metadata \
-H "Authorization: Bearer YOUR_USER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"metadata": {"phase": "observe", "old_key": null}}'
Response
{
"id": "98765-5gf...",
"name": "payments-primary",
"metadata": {"phase": "observe", "owner": "payments"}
}