On-Call REST endpoints
Generated6 endpoints under `/v1`.
Auto-generated from the MarBoba OpenAPI spec, published at
api.marboba.com/v1/openapi.json.
GET /oncall/bindings
List on-call bindings
Lists every on-call binding in the calling token’s org. Optional query filters: scope, targetId, provider.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
scope | query | enum (team / component) | optional | |
targetId | query | string | optional | |
provider | query | enum (pagerduty / opsgenie / manual) | optional |
Responses
- 200 — List of on-call bindings. Body: object
- 401 — . Body: (no body)
Auth: BearerPAT
Operation ID: get_oncall-bindings
POST /oncall/bindings
Create an on-call binding
Request body
Request body (application/json): OnCallBindingInput
Responses
- 201 — Created. Body: object
- 400 — . Body: (no body)
- 409 — A binding for the same (scope, targetId, provider) triple already exists.. Body: Error
Auth: BearerPAT
Operation ID: post_oncall-bindings
DELETE /oncall/bindings/{bindingId}
Delete an on-call binding
Hard-deletes the binding doc. The provider integration credentials are unaffected. Requires admin scope (PAT only).
Responses
- 204 — Deleted. Body: (no body)
- 403 — . Body: (no body)
- 404 — . Body: (no body)
Auth: BearerPAT
Operation ID: delete_oncall-bindings-bindingid
GET /oncall/bindings/{bindingId}
Get an on-call binding
Responses
- 200 — The requested on-call binding. Body: object
- 404 — . Body: (no body)
Auth: BearerPAT
Operation ID: get_oncall-bindings-bindingid
PATCH /oncall/bindings/{bindingId}
Update an on-call binding’s label
Only the label field can be updated. Structural fields (scope, targetId, provider, scheduleId) are immutable; change them by deleting and recreating the binding.
Request body
Request body (application/json): object
Responses
- 200 — Updated. Body: object
- 400 — . Body: (no body)
- 404 — . Body: (no body)
Auth: BearerPAT
Operation ID: patch_oncall-bindings-bindingid
POST /oncall/bindings/{bindingId}/refresh
Refresh an on-call binding from its upstream provider
Forces a fresh fetch from PagerDuty/Opsgenie and updates the cached on-call user and shift fields. Manual bindings return immediately with cached fields. Returns 502 upstream_unavailable if the provider call fails — the binding’s lastFetchError field is updated even on failure so admins can see what broke.
Responses
- 200 — Refreshed binding. Body: object
- 404 — . Body: (no body)
- 502 — The upstream provider call failed. Body: Error
Auth: BearerPAT
Operation ID: post_oncall-bindings-bindingid-refresh