Skip to content

Agenda API

Read the Agenda's test plans, approve them, change their items, and read the briefing.

The Agenda is the weekly test plan you make with Certyn in the chat. Release plans work the same way. The REST API calls them QA plans. See Agenda.

Reading works with any valid API key. Approving and changing plans needs platform:manage.

Current plans

GET/api/projects/{projectId}/qa-plans/current?environmentKey=...Bearer or any API key

Returns plan (this week's plan, or null when there is none yet) and releasePlans (open plans for releases).

List plans

GET/api/projects/{projectId}/qa-plans?environmentKey=...Bearer or any API key

Returns plans, page, pageSize, and total. Optional query: page, pageSize.

Get a plan

GET/api/projects/{projectId}/qa-plans/{planId}Bearer or any API key

A plan has status (proposed, approved, completed, expired, superseded), its period, counts, and items. Each item has kind, title, rationaleMarkdown, scheduledForUtc, status, and links to the run it started.

Approve a plan

POST/api/projects/{projectId}/qa-plans/{planId}/approveBearer or API key · platform:manage

Only a proposed plan can be approved. Its items are then scheduled. Any other status returns 409.

Change or remove an item

PATCH/api/projects/{projectId}/qa-plans/{planId}/items/{itemId}Bearer or API key · platform:manage
{ "title": "Retest checkout on Safari", "rationale": "Failed twice last week.", "scheduledForUtc": "2026-11-04T09:00:00Z" }

All fields are optional.

DELETE/api/projects/{projectId}/qa-plans/{planId}/items/{itemId}Bearer or API key · platform:manage

Both return the updated plan. A plan that can no longer be edited returns 409.

Briefing

The briefing on Home: what needs QA attention, read from your connected tools.

GET/api/projects/{projectId}/briefingBearer or any API key

Returns summary, items (each with id, title, why, url, source), couldNotRead, updatedAt, updating, paused, lastError, and connected. Optional query: timeZone.

POST/api/projects/{projectId}/briefing/dismissBearer or API key · platform:manage

Body: { "id": "jira:PAY-412" }. Send "undo": true to bring an item back.

POST/api/projects/{projectId}/briefing/refreshBearer or API key · platform:manage

Returns { "status": "..." }: started, already_running, too_soon, no_plan_time, or nothing_connected.

Example

curl -sS -H "X-API-Key: $CERTYN_API_KEY" \
  "https://api.certyn.io/api/projects/$PROJECT_ID/qa-plans/current?environmentKey=staging"