{"components":{"schemas":{"Problem":{"properties":{"detail":{"type":"string"},"status":{"type":"integer"},"title":{"type":"string"},"type":{"type":"string"}},"required":["type","title","status","detail"],"type":"object"}},"securitySchemes":{"bearer":{"scheme":"bearer","type":"http"}}},"info":{"title":"Nightroll Work API","version":"0.0.0"},"openapi":"3.1.0","paths":{"/api/v1/activity.list":{"post":{"operationId":"activity.list","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"since":{"description":"Only events after this sequence number (e.g. `previous.seq` from `activity.seen`).","format":"int64","type":["integer","null"]},"subject":{"description":"`kind:id`, e.g. \"issue:12\" or \"page:ab12…\".","type":"string"}},"required":["subject"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"actor":{"type":"string"},"actor_kind":{"description":"human | key | agent | system | automation","type":"string"},"created_at":{"format":"int64","type":"integer"},"kind":{"description":"Event kind, e.g. \"issue.updated\", \"comment.created\".","type":"string"},"payload":{"description":"Event payload as emitted (changed fields are `{from, to}`)."},"seq":{"format":"int64","type":"integer"},"subject":{"type":"string"},"title":{"description":"The subject's current title, if it still exists and is viewable.","type":["string","null"]},"via":{"description":"What a machine actor came through, e.g. `agent:claude`.","type":["string","null"]}},"required":["seq","kind","subject","actor","payload","created_at","actor_kind"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["activity:read"]}},"/api/v1/activity.recent":{"post":{"operationId":"activity.recent","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"limit":{"description":"Default 30, max 100.","format":"int64","type":["integer","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"actor":{"type":"string"},"actor_kind":{"description":"human | key | agent | system | automation","type":"string"},"created_at":{"format":"int64","type":"integer"},"kind":{"description":"Event kind, e.g. \"issue.updated\", \"comment.created\".","type":"string"},"payload":{"description":"Event payload as emitted (changed fields are `{from, to}`)."},"seq":{"format":"int64","type":"integer"},"subject":{"type":"string"},"title":{"description":"The subject's current title, if it still exists and is viewable.","type":["string","null"]},"via":{"description":"What a machine actor came through, e.g. `agent:claude`.","type":["string","null"]}},"required":["seq","kind","subject","actor","payload","created_at","actor_kind"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["activity:read"]}},"/api/v1/activity.seen":{"post":{"operationId":"activity.seen","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"subject":{"type":"string"}},"required":["subject"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"changes":{"description":"Events by other people since then.","format":"int64","type":"integer"},"previous":{"description":"When you last looked before now; null the first time.","properties":{"at":{"format":"int64","type":"integer"},"seq":{"format":"int64","type":"integer"}},"required":["seq","at"],"type":["object","null"]}},"required":["changes"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["activity:read"]}},"/api/v1/ai.allowed":{"post":{"operationId":"ai.allowed","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"subjects":{"items":{"type":"string"},"type":"array"}},"required":["subjects"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"allowed":{"type":"boolean"},"reason":{"description":"Why not (excluded by policy, or AI is off).","type":["string","null"]},"subject":{"type":"string"}},"required":["subject","allowed"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["ai:read"]}},"/api/v1/ai.complete":{"post":{"operationId":"ai.complete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"feature":{"description":"What this is for (assistant, summary, triage, test…); usage is grouped by it.","type":"string"},"max_tokens":{"description":"Longest answer (default 1024, at most 8192).","format":"uint32","minimum":0,"type":["integer","null"]},"messages":{"items":{"properties":{"content":{"type":"string"},"role":{"description":"user | assistant","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"model":{"description":"Must be one of the provider's models; default: its default model.","type":["string","null"]},"provider":{"description":"Provider id; default: the first enabled one with a key.","type":["string","null"]},"subjects":{"description":"What the prompt contains: the caller must see each, and none may be excluded from AI.","items":{"type":"string"},"type":["array","null"]},"system":{"type":["string","null"]}},"required":["feature","messages"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"input_tokens":{"format":"int64","type":"integer"},"model":{"type":"string"},"output_tokens":{"format":"int64","type":"integer"},"provider":{"type":"string"},"text":{"type":"string"}},"required":["text","provider","model","input_tokens","output_tokens"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["ai:write"]}},"/api/v1/ai.context":{"post":{"operationId":"ai.context","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"mode":{"description":"summary (default) | changes (what happened after `since`) | explain (rewritten for `profile`)","type":["string","null"]},"profile":{"description":"For `explain`: a reader profile key (`ai.profiles`).","type":["string","null"]},"since":{"description":"For `changes`: an outbox sequence number (`previous.seq` from `activity.seen`).","format":"int64","type":["integer","null"]},"subject":{"description":"`issue:12`, `page:…`, `sprint:3`, or any indexed subject.","type":"string"}},"required":["subject"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"feature":{"description":"summary | changes: the `feature` to pass to `ai.complete`.","type":"string"},"material":{"description":"The subject's material alone (JSON text), for callers writing their own prompt.","type":"string"},"prompt":{"type":"string"},"subject":{"type":"string"},"system":{"description":"Ready to send: the system prompt and the user message (the subject's material inside).","type":"string"},"title":{"type":["string","null"]}},"required":["subject","system","prompt","material","feature"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["ai:read"]}},"/api/v1/ai.explain":{"post":{"operationId":"ai.explain","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"model":{"type":["string","null"]},"profile":{"description":"A reader profile key (`ai.profiles`).","type":"string"},"provider":{"type":["string","null"]},"subject":{"type":"string"}},"required":["subject","profile"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"model":{"type":"string"},"provider":{"type":"string"},"text":{"type":"string"}},"required":["text","provider","model"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["ai:write"]}},"/api/v1/ai.key_revoke":{"post":{"operationId":"ai.key_revoke","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"automation_apply":{"description":"AI automation steps marked \"apply\" may change things without review (otherwise they only propose).","type":"boolean"},"browser_keys":{"description":"People may use their own provider keys, kept in their browser and never sent to us.","type":"boolean"},"enabled":{"description":"AI features are on for this org.","type":"boolean"},"excluded":{"description":"Subjects AI never reads, with everything inside them (`space:ENG`, `project:WEB`, `page:…`, `issue:12`).","items":{"type":"string"},"type":"array"},"member_daily_tokens":{"description":"Org-key tokens one member may use per day (UTC); null = no cap.","format":"int64","type":["integer","null"]},"monthly_tokens":{"description":"Org-key tokens allowed per calendar month (UTC); null = no cap.","format":"int64","type":["integer","null"]},"org_keys":{"description":"AI features may run on the org's stored keys (digests, automations, summaries for everyone).","type":"boolean"},"providers":{"items":{"properties":{"base_url":{"type":"string"},"browser":{"description":"People may use it from the browser with their own key.","type":"boolean"},"default_model":{"type":"string"},"enabled":{"type":"boolean"},"has_key":{"description":"An org key is stored (or none is needed).","type":"boolean"},"id":{"type":"string"},"key_last4":{"description":"Last characters of the stored key (admins only).","type":["string","null"]},"kind":{"description":"Wire format: anthropic (Messages API) | openai (any OpenAI-compatible chat API, Ollama included).","type":"string"},"label":{"type":"string"},"models":{"description":"Models people may pick; the only ones allowed.","items":{"type":"string"},"type":"array"},"needs_key":{"description":"False for local models that take no key.","type":"boolean"}},"required":["id","label","kind","base_url","models","default_model","enabled","needs_key","browser","has_key"],"type":"object"},"type":"array"},"used_month":{"description":"Org-key tokens used this month by everyone, and today by you.","format":"int64","type":"integer"},"used_today":{"format":"int64","type":"integer"}},"required":["enabled","browser_keys","org_keys","excluded","automation_apply","providers","used_month","used_today"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/ai.key_set":{"post":{"operationId":"ai.key_set","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"label":{"type":["string","null"]},"provider":{"type":"string"},"secret":{"description":"The provider's API key. Stored encrypted; never shown again.","type":"string"}},"required":["provider","secret"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"automation_apply":{"description":"AI automation steps marked \"apply\" may change things without review (otherwise they only propose).","type":"boolean"},"browser_keys":{"description":"People may use their own provider keys, kept in their browser and never sent to us.","type":"boolean"},"enabled":{"description":"AI features are on for this org.","type":"boolean"},"excluded":{"description":"Subjects AI never reads, with everything inside them (`space:ENG`, `project:WEB`, `page:…`, `issue:12`).","items":{"type":"string"},"type":"array"},"member_daily_tokens":{"description":"Org-key tokens one member may use per day (UTC); null = no cap.","format":"int64","type":["integer","null"]},"monthly_tokens":{"description":"Org-key tokens allowed per calendar month (UTC); null = no cap.","format":"int64","type":["integer","null"]},"org_keys":{"description":"AI features may run on the org's stored keys (digests, automations, summaries for everyone).","type":"boolean"},"providers":{"items":{"properties":{"base_url":{"type":"string"},"browser":{"description":"People may use it from the browser with their own key.","type":"boolean"},"default_model":{"type":"string"},"enabled":{"type":"boolean"},"has_key":{"description":"An org key is stored (or none is needed).","type":"boolean"},"id":{"type":"string"},"key_last4":{"description":"Last characters of the stored key (admins only).","type":["string","null"]},"kind":{"description":"Wire format: anthropic (Messages API) | openai (any OpenAI-compatible chat API, Ollama included).","type":"string"},"label":{"type":"string"},"models":{"description":"Models people may pick; the only ones allowed.","items":{"type":"string"},"type":"array"},"needs_key":{"description":"False for local models that take no key.","type":"boolean"}},"required":["id","label","kind","base_url","models","default_model","enabled","needs_key","browser","has_key"],"type":"object"},"type":"array"},"used_month":{"description":"Org-key tokens used this month by everyone, and today by you.","format":"int64","type":"integer"},"used_today":{"format":"int64","type":"integer"}},"required":["enabled","browser_keys","org_keys","excluded","automation_apply","providers","used_month","used_today"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/ai.policy":{"post":{"operationId":"ai.policy","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"automation_apply":{"description":"AI automation steps marked \"apply\" may change things without review (otherwise they only propose).","type":"boolean"},"browser_keys":{"description":"People may use their own provider keys, kept in their browser and never sent to us.","type":"boolean"},"enabled":{"description":"AI features are on for this org.","type":"boolean"},"excluded":{"description":"Subjects AI never reads, with everything inside them (`space:ENG`, `project:WEB`, `page:…`, `issue:12`).","items":{"type":"string"},"type":"array"},"member_daily_tokens":{"description":"Org-key tokens one member may use per day (UTC); null = no cap.","format":"int64","type":["integer","null"]},"monthly_tokens":{"description":"Org-key tokens allowed per calendar month (UTC); null = no cap.","format":"int64","type":["integer","null"]},"org_keys":{"description":"AI features may run on the org's stored keys (digests, automations, summaries for everyone).","type":"boolean"},"providers":{"items":{"properties":{"base_url":{"type":"string"},"browser":{"description":"People may use it from the browser with their own key.","type":"boolean"},"default_model":{"type":"string"},"enabled":{"type":"boolean"},"has_key":{"description":"An org key is stored (or none is needed).","type":"boolean"},"id":{"type":"string"},"key_last4":{"description":"Last characters of the stored key (admins only).","type":["string","null"]},"kind":{"description":"Wire format: anthropic (Messages API) | openai (any OpenAI-compatible chat API, Ollama included).","type":"string"},"label":{"type":"string"},"models":{"description":"Models people may pick; the only ones allowed.","items":{"type":"string"},"type":"array"},"needs_key":{"description":"False for local models that take no key.","type":"boolean"}},"required":["id","label","kind","base_url","models","default_model","enabled","needs_key","browser","has_key"],"type":"object"},"type":"array"},"used_month":{"description":"Org-key tokens used this month by everyone, and today by you.","format":"int64","type":"integer"},"used_today":{"format":"int64","type":"integer"}},"required":["enabled","browser_keys","org_keys","excluded","automation_apply","providers","used_month","used_today"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["ai:read"]}},"/api/v1/ai.policy_set":{"post":{"operationId":"ai.policy_set","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"automation_apply":{"description":"Default false.","type":["boolean","null"]},"browser_keys":{"type":"boolean"},"enabled":{"type":"boolean"},"excluded":{"items":{"type":"string"},"type":"array"},"member_daily_tokens":{"format":"int64","type":["integer","null"]},"monthly_tokens":{"format":"int64","type":["integer","null"]},"org_keys":{"type":"boolean"}},"required":["enabled","browser_keys","org_keys","excluded"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"automation_apply":{"description":"AI automation steps marked \"apply\" may change things without review (otherwise they only propose).","type":"boolean"},"browser_keys":{"description":"People may use their own provider keys, kept in their browser and never sent to us.","type":"boolean"},"enabled":{"description":"AI features are on for this org.","type":"boolean"},"excluded":{"description":"Subjects AI never reads, with everything inside them (`space:ENG`, `project:WEB`, `page:…`, `issue:12`).","items":{"type":"string"},"type":"array"},"member_daily_tokens":{"description":"Org-key tokens one member may use per day (UTC); null = no cap.","format":"int64","type":["integer","null"]},"monthly_tokens":{"description":"Org-key tokens allowed per calendar month (UTC); null = no cap.","format":"int64","type":["integer","null"]},"org_keys":{"description":"AI features may run on the org's stored keys (digests, automations, summaries for everyone).","type":"boolean"},"providers":{"items":{"properties":{"base_url":{"type":"string"},"browser":{"description":"People may use it from the browser with their own key.","type":"boolean"},"default_model":{"type":"string"},"enabled":{"type":"boolean"},"has_key":{"description":"An org key is stored (or none is needed).","type":"boolean"},"id":{"type":"string"},"key_last4":{"description":"Last characters of the stored key (admins only).","type":["string","null"]},"kind":{"description":"Wire format: anthropic (Messages API) | openai (any OpenAI-compatible chat API, Ollama included).","type":"string"},"label":{"type":"string"},"models":{"description":"Models people may pick; the only ones allowed.","items":{"type":"string"},"type":"array"},"needs_key":{"description":"False for local models that take no key.","type":"boolean"}},"required":["id","label","kind","base_url","models","default_model","enabled","needs_key","browser","has_key"],"type":"object"},"type":"array"},"used_month":{"description":"Org-key tokens used this month by everyone, and today by you.","format":"int64","type":"integer"},"used_today":{"format":"int64","type":"integer"}},"required":["enabled","browser_keys","org_keys","excluded","automation_apply","providers","used_month","used_today"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/ai.profile_delete":{"post":{"operationId":"ai.profile_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"instructions":{"description":"How to write for them.","type":"string"},"key":{"type":"string"},"label":{"type":"string"}},"required":["key","label","instructions"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/ai.profile_save":{"post":{"operationId":"ai.profile_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"instructions":{"type":"string"},"key":{"description":"Lowercase letters, digits and `-`.","type":"string"},"label":{"type":"string"}},"required":["key","label","instructions"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"instructions":{"description":"How to write for them.","type":"string"},"key":{"type":"string"},"label":{"type":"string"}},"required":["key","label","instructions"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/ai.profiles":{"post":{"operationId":"ai.profiles","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"instructions":{"description":"How to write for them.","type":"string"},"key":{"type":"string"},"label":{"type":"string"}},"required":["key","label","instructions"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["ai:read"]}},"/api/v1/ai.proposal_apply":{"post":{"operationId":"ai.proposal_apply","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"answer":{"description":"The model's answer.","type":"string"},"created_at":{"format":"int64","type":"integer"},"decided_at":{"format":"int64","type":["integer","null"]},"decided_by":{"type":["string","null"]},"error":{"type":["string","null"]},"id":{"format":"int64","type":"integer"},"input":true,"op":{"description":"What applying runs.","type":"string"},"rule":{"description":"The automation rule that asked, by name.","type":["string","null"]},"state":{"description":"open | applied | dismissed | failed","type":"string"},"subject":{"type":"string"},"task":{"type":"string"},"title":{"description":"The subject's title now.","type":["string","null"]}},"required":["id","subject","task","answer","op","input","state","created_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["ai:write"]}},"/api/v1/ai.proposal_dismiss":{"post":{"operationId":"ai.proposal_dismiss","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"answer":{"description":"The model's answer.","type":"string"},"created_at":{"format":"int64","type":"integer"},"decided_at":{"format":"int64","type":["integer","null"]},"decided_by":{"type":["string","null"]},"error":{"type":["string","null"]},"id":{"format":"int64","type":"integer"},"input":true,"op":{"description":"What applying runs.","type":"string"},"rule":{"description":"The automation rule that asked, by name.","type":["string","null"]},"state":{"description":"open | applied | dismissed | failed","type":"string"},"subject":{"type":"string"},"task":{"type":"string"},"title":{"description":"The subject's title now.","type":["string","null"]}},"required":["id","subject","task","answer","op","input","state","created_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["ai:write"]}},"/api/v1/ai.proposals":{"post":{"operationId":"ai.proposals","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"state":{"description":"Default open.","type":["string","null"]},"subject":{"type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"answer":{"description":"The model's answer.","type":"string"},"created_at":{"format":"int64","type":"integer"},"decided_at":{"format":"int64","type":["integer","null"]},"decided_by":{"type":["string","null"]},"error":{"type":["string","null"]},"id":{"format":"int64","type":"integer"},"input":true,"op":{"description":"What applying runs.","type":"string"},"rule":{"description":"The automation rule that asked, by name.","type":["string","null"]},"state":{"description":"open | applied | dismissed | failed","type":"string"},"subject":{"type":"string"},"task":{"type":"string"},"title":{"description":"The subject's title now.","type":["string","null"]}},"required":["id","subject","task","answer","op","input","state","created_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["ai:read"]}},"/api/v1/ai.provider_delete":{"post":{"operationId":"ai.provider_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"automation_apply":{"description":"AI automation steps marked \"apply\" may change things without review (otherwise they only propose).","type":"boolean"},"browser_keys":{"description":"People may use their own provider keys, kept in their browser and never sent to us.","type":"boolean"},"enabled":{"description":"AI features are on for this org.","type":"boolean"},"excluded":{"description":"Subjects AI never reads, with everything inside them (`space:ENG`, `project:WEB`, `page:…`, `issue:12`).","items":{"type":"string"},"type":"array"},"member_daily_tokens":{"description":"Org-key tokens one member may use per day (UTC); null = no cap.","format":"int64","type":["integer","null"]},"monthly_tokens":{"description":"Org-key tokens allowed per calendar month (UTC); null = no cap.","format":"int64","type":["integer","null"]},"org_keys":{"description":"AI features may run on the org's stored keys (digests, automations, summaries for everyone).","type":"boolean"},"providers":{"items":{"properties":{"base_url":{"type":"string"},"browser":{"description":"People may use it from the browser with their own key.","type":"boolean"},"default_model":{"type":"string"},"enabled":{"type":"boolean"},"has_key":{"description":"An org key is stored (or none is needed).","type":"boolean"},"id":{"type":"string"},"key_last4":{"description":"Last characters of the stored key (admins only).","type":["string","null"]},"kind":{"description":"Wire format: anthropic (Messages API) | openai (any OpenAI-compatible chat API, Ollama included).","type":"string"},"label":{"type":"string"},"models":{"description":"Models people may pick; the only ones allowed.","items":{"type":"string"},"type":"array"},"needs_key":{"description":"False for local models that take no key.","type":"boolean"}},"required":["id","label","kind","base_url","models","default_model","enabled","needs_key","browser","has_key"],"type":"object"},"type":"array"},"used_month":{"description":"Org-key tokens used this month by everyone, and today by you.","format":"int64","type":"integer"},"used_today":{"format":"int64","type":"integer"}},"required":["enabled","browser_keys","org_keys","excluded","automation_apply","providers","used_month","used_today"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/ai.provider_models":{"post":{"operationId":"ai.provider_models","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"models":{"description":"Everything the provider lists, plus allowed models it no longer lists (so they can be removed).","items":{"properties":{"allowed":{"description":"On the provider's allowed list (what people can pick).","type":"boolean"},"context":{"description":"Context window in tokens, when the provider says.","format":"int64","type":["integer","null"]},"id":{"type":"string"},"name":{"type":"string"},"price_in":{"description":"USD per million input / output tokens, when the provider says (OpenRouter does).","format":"double","type":["number","null"]},"price_out":{"format":"double","type":["number","null"]}},"required":["id","name","allowed"],"type":"object"},"type":"array"},"provider":{"type":"string"}},"required":["provider","models"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/ai.provider_save":{"post":{"operationId":"ai.provider_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"base_url":{"description":"http(s) base, e.g. https://api.anthropic.com","type":"string"},"browser":{"type":"boolean"},"default_model":{"type":"string"},"enabled":{"type":"boolean"},"id":{"description":"Lowercase letters, digits and `-`.","type":"string"},"kind":{"description":"anthropic | openai","type":"string"},"label":{"type":"string"},"models":{"items":{"type":"string"},"type":"array"},"needs_key":{"type":"boolean"}},"required":["id","label","kind","base_url","models","default_model","enabled","needs_key","browser"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"automation_apply":{"description":"AI automation steps marked \"apply\" may change things without review (otherwise they only propose).","type":"boolean"},"browser_keys":{"description":"People may use their own provider keys, kept in their browser and never sent to us.","type":"boolean"},"enabled":{"description":"AI features are on for this org.","type":"boolean"},"excluded":{"description":"Subjects AI never reads, with everything inside them (`space:ENG`, `project:WEB`, `page:…`, `issue:12`).","items":{"type":"string"},"type":"array"},"member_daily_tokens":{"description":"Org-key tokens one member may use per day (UTC); null = no cap.","format":"int64","type":["integer","null"]},"monthly_tokens":{"description":"Org-key tokens allowed per calendar month (UTC); null = no cap.","format":"int64","type":["integer","null"]},"org_keys":{"description":"AI features may run on the org's stored keys (digests, automations, summaries for everyone).","type":"boolean"},"providers":{"items":{"properties":{"base_url":{"type":"string"},"browser":{"description":"People may use it from the browser with their own key.","type":"boolean"},"default_model":{"type":"string"},"enabled":{"type":"boolean"},"has_key":{"description":"An org key is stored (or none is needed).","type":"boolean"},"id":{"type":"string"},"key_last4":{"description":"Last characters of the stored key (admins only).","type":["string","null"]},"kind":{"description":"Wire format: anthropic (Messages API) | openai (any OpenAI-compatible chat API, Ollama included).","type":"string"},"label":{"type":"string"},"models":{"description":"Models people may pick; the only ones allowed.","items":{"type":"string"},"type":"array"},"needs_key":{"description":"False for local models that take no key.","type":"boolean"}},"required":["id","label","kind","base_url","models","default_model","enabled","needs_key","browser","has_key"],"type":"object"},"type":"array"},"used_month":{"description":"Org-key tokens used this month by everyone, and today by you.","format":"int64","type":"integer"},"used_today":{"format":"int64","type":"integer"}},"required":["enabled","browser_keys","org_keys","excluded","automation_apply","providers","used_month","used_today"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/ai.run":{"post":{"operationId":"ai.run","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"apply":{"description":"Apply without review, if the org's AI policy allows automation to (otherwise it's proposed).","type":["boolean","null"]},"instructions":{"description":"Extra guidance (or, for `prompt`, the whole ask).","type":["string","null"]},"options":{"description":"For classify: the choices, as a list or comma-separated text."},"rule":{"description":"The automation rule asking (`{{rule}}`, its name), for the record.","type":["string","null"]},"subject":{"description":"What it's about: `issue:12`, `page:…`.","type":"string"},"task":{"description":"classify (pick one of `options`) | summarize | draft_reply | prompt (follow `instructions`)","type":"string"},"then":{"description":"What to do with the answer. Default for summarize/draft_reply/prompt: a comment on the subject.","properties":{"input":{"description":"Its input; `{{answer}}` is replaced by the model's answer (a string that is exactly it takes it as is)."},"op":{"description":"The op the answer feeds, e.g. `issues.update`, `comments.create`.","type":"string"}},"required":["op","input"],"type":["object","null"]}},"required":["task","subject"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"job":{"format":"int64","type":"integer"}},"required":["job"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["ai:write"]}},"/api/v1/ai.summarize":{"post":{"operationId":"ai.summarize","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"mode":{"description":"summary (default) | changes","type":["string","null"]},"model":{"type":["string","null"]},"provider":{"type":["string","null"]},"since":{"format":"int64","type":["integer","null"]},"subject":{"type":"string"}},"required":["subject"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"model":{"type":"string"},"provider":{"type":"string"},"summary":{"type":"string"}},"required":["summary","provider","model"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["ai:write"]}},"/api/v1/ai.usage":{"post":{"operationId":"ai.usage","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"days":{"description":"Look back this many days (1-366, default 30).","format":"int64","type":["integer","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"actor":{"type":"string"},"calls":{"format":"int64","type":"integer"},"errors":{"format":"int64","type":"integer"},"feature":{"type":"string"},"input_tokens":{"format":"int64","type":"integer"},"model":{"type":"string"},"output_tokens":{"format":"int64","type":"integer"},"provider":{"type":"string"}},"required":["actor","feature","provider","model","calls","errors","input_tokens","output_tokens"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/analytics.export":{"post":{"operationId":"analytics.export","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"format":{"description":"ndjson | parquet","type":"string"},"from":{"description":"First day, `YYYY-MM-DD` (UTC).","type":"string"},"to":{"description":"Last day, inclusive.","type":"string"}},"required":["from","to","format"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"description":"The file, base64.","type":"string"},"events":{"format":"int64","type":"integer"},"name":{"type":"string"},"truncated":{"description":"More events in the range than one file holds: export a shorter range.","type":"boolean"}},"required":["name","data","events","truncated"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/analytics.query":{"post":{"operationId":"analytics.query","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"sql":{"description":"One SELECT over `events(seq, kind, subject, actor, actor_kind, via, at, payload)`; `at` is Unix seconds,\n`payload` JSON (use json_extract).","type":"string"}},"required":["sql"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"columns":{"items":{"type":"string"},"type":"array"},"ms":{"format":"uint64","minimum":0,"type":"integer"},"rows":{"items":{"items":true,"type":"array"},"type":"array"},"truncated":{"description":"More rows matched than came back.","type":"boolean"}},"required":["columns","rows","truncated","ms"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/analytics.report_delete":{"post":{"operationId":"analytics.report_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/analytics.report_run":{"post":{"operationId":"analytics.report_run","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"created_by":{"type":"string"},"every":{"description":"manual | daily | weekly | monthly","type":"string"},"id":{"format":"int64","type":"integer"},"last_error":{"type":["string","null"]},"last_result":{"description":"The first rows of the last run."},"last_rows":{"format":"int64","type":["integer","null"]},"last_run_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"next_run_at":{"format":"int64","type":["integer","null"]},"recipients":{"description":"Identity ids or `team:<id>` / `team:admins` told when it runs (admins only see it).","items":{"type":"string"},"type":"array"},"sql":{"type":"string"}},"required":["id","name","sql","every","recipients","created_by"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/analytics.report_save":{"post":{"operationId":"analytics.report_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"every":{"description":"manual | daily | weekly | monthly","type":"string"},"id":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"recipients":{"default":[],"items":{"type":"string"},"type":"array"},"sql":{"type":"string"}},"required":["name","sql","every"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"created_by":{"type":"string"},"every":{"description":"manual | daily | weekly | monthly","type":"string"},"id":{"format":"int64","type":"integer"},"last_error":{"type":["string","null"]},"last_result":{"description":"The first rows of the last run."},"last_rows":{"format":"int64","type":["integer","null"]},"last_run_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"next_run_at":{"format":"int64","type":["integer","null"]},"recipients":{"description":"Identity ids or `team:<id>` / `team:admins` told when it runs (admins only see it).","items":{"type":"string"},"type":"array"},"sql":{"type":"string"}},"required":["id","name","sql","every","recipients","created_by"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/analytics.reports":{"post":{"operationId":"analytics.reports","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"created_by":{"type":"string"},"every":{"description":"manual | daily | weekly | monthly","type":"string"},"id":{"format":"int64","type":"integer"},"last_error":{"type":["string","null"]},"last_result":{"description":"The first rows of the last run."},"last_rows":{"format":"int64","type":["integer","null"]},"last_run_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"next_run_at":{"format":"int64","type":["integer","null"]},"recipients":{"description":"Identity ids or `team:<id>` / `team:admins` told when it runs (admins only see it).","items":{"type":"string"},"type":"array"},"sql":{"type":"string"}},"required":["id","name","sql","every","recipients","created_by"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/api.batch":{"post":{"operationId":"api.batch","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"description":"Runs up to 50 ops in order in one transaction: all of them commit, or (on the first error) none do.","properties":{"ops":{"items":{"properties":{"input":{"default":null,"description":"That op's input (defaults to `{}`)."},"op":{"description":"Op id, e.g. `issues.create`.","type":"string"}},"required":["op"],"type":"object"},"type":"array"}},"required":["ops"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"results":{"description":"Each op's output, in order.","items":true,"type":"array"}},"required":["results"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["api:read","api:write"]}},"/api/v1/api.changes":{"post":{"operationId":"api.changes","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"description":"Events after `since` that the caller can see, oldest first. Poll with `since = next` (or use the event stream).","properties":{"limit":{"default":null,"description":"Events to scan, 1-500 (default 100).","format":"int64","type":["integer","null"]},"since":{"default":0,"description":"A sequence number from `next`, an `x-kb-seq` header or an event; 0 = from the beginning.","format":"int64","type":"integer"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"events":{"items":{"properties":{"actor":{"type":"string"},"actor_kind":{"description":"human | key | agent | system | automation.","type":"string"},"created_at":{"format":"int64","type":"integer"},"kind":{"description":"e.g. `issue.updated`.","type":"string"},"payload":true,"seq":{"format":"int64","type":"integer"},"subject":{"description":"`kind:id`, e.g. `issue:42`.","type":"string"},"via":{"description":"`agent:<name>` or `key:<id>` when not a signed-in person.","type":["string","null"]}},"required":["seq","kind","subject","actor","actor_kind","created_at","payload"],"type":"object"},"type":"array"},"more":{"description":"More events are waiting: call again right away.","type":"boolean"},"next":{"description":"Pass as `since` next time (it also skips events you can't see).","format":"int64","type":"integer"}},"required":["events","next","more"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["api:read"]}},"/api/v1/approvals.cancel":{"post":{"operationId":"approvals.cancel","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"approvals":{"format":"int64","type":"integer"},"approvers":{"items":{"type":"string"},"type":"array"},"can_decide":{"description":"The caller may approve or reject it now.","type":"boolean"},"created_at":{"format":"int64","type":"integer"},"decided_at":{"format":"int64","type":["integer","null"]},"id":{"format":"int64","type":"integer"},"key":{"type":"string"},"needed":{"format":"int64","type":"integer"},"note":{"type":"string"},"requested_by":{"type":"string"},"state":{"description":"pending | approved (move it) | rejected | cancelled | done (moved)","type":"string"},"title":{"type":"string"},"to_status":{"type":"string"},"transition":{"type":"string"},"votes":{"items":{"properties":{"approve":{"type":"boolean"},"at":{"format":"int64","type":"integer"},"note":{"type":"string"},"who":{"type":"string"}},"required":["who","approve","note","at"],"type":"object"},"type":"array"}},"required":["id","key","title","to_status","transition","approvers","needed","approvals","note","requested_by","state","created_at","votes","can_decide"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/approvals.decide":{"post":{"operationId":"approvals.decide","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"approve":{"type":"boolean"},"id":{"format":"int64","type":"integer"},"note":{"default":"","type":"string"}},"required":["id","approve"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"blocked":{"description":"Why it couldn't move yet (the requester can move it once that's fixed).","type":["string","null"]},"moved":{"description":"The issue moved now (approved and nothing stopped it).","type":"boolean"},"request":{"properties":{"approvals":{"format":"int64","type":"integer"},"approvers":{"items":{"type":"string"},"type":"array"},"can_decide":{"description":"The caller may approve or reject it now.","type":"boolean"},"created_at":{"format":"int64","type":"integer"},"decided_at":{"format":"int64","type":["integer","null"]},"id":{"format":"int64","type":"integer"},"key":{"type":"string"},"needed":{"format":"int64","type":"integer"},"note":{"type":"string"},"requested_by":{"type":"string"},"state":{"description":"pending | approved (move it) | rejected | cancelled | done (moved)","type":"string"},"title":{"type":"string"},"to_status":{"type":"string"},"transition":{"type":"string"},"votes":{"items":{"properties":{"approve":{"type":"boolean"},"at":{"format":"int64","type":"integer"},"note":{"type":"string"},"who":{"type":"string"}},"required":["who","approve","note","at"],"type":"object"},"type":"array"}},"required":["id","key","title","to_status","transition","approvers","needed","approvals","note","requested_by","state","created_at","votes","can_decide"],"type":"object"}},"required":["request","moved"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/approvals.list":{"post":{"operationId":"approvals.list","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"approvals":{"format":"int64","type":"integer"},"approvers":{"items":{"type":"string"},"type":"array"},"can_decide":{"description":"The caller may approve or reject it now.","type":"boolean"},"created_at":{"format":"int64","type":"integer"},"decided_at":{"format":"int64","type":["integer","null"]},"id":{"format":"int64","type":"integer"},"key":{"type":"string"},"needed":{"format":"int64","type":"integer"},"note":{"type":"string"},"requested_by":{"type":"string"},"state":{"description":"pending | approved (move it) | rejected | cancelled | done (moved)","type":"string"},"title":{"type":"string"},"to_status":{"type":"string"},"transition":{"type":"string"},"votes":{"items":{"properties":{"approve":{"type":"boolean"},"at":{"format":"int64","type":"integer"},"note":{"type":"string"},"who":{"type":"string"}},"required":["who","approve","note","at"],"type":"object"},"type":"array"}},"required":["id","key","title","to_status","transition","approvers","needed","approvals","note","requested_by","state","created_at","votes","can_decide"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/approvals.mine":{"post":{"operationId":"approvals.mine","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"approvals":{"format":"int64","type":"integer"},"approvers":{"items":{"type":"string"},"type":"array"},"can_decide":{"description":"The caller may approve or reject it now.","type":"boolean"},"created_at":{"format":"int64","type":"integer"},"decided_at":{"format":"int64","type":["integer","null"]},"id":{"format":"int64","type":"integer"},"key":{"type":"string"},"needed":{"format":"int64","type":"integer"},"note":{"type":"string"},"requested_by":{"type":"string"},"state":{"description":"pending | approved (move it) | rejected | cancelled | done (moved)","type":"string"},"title":{"type":"string"},"to_status":{"type":"string"},"transition":{"type":"string"},"votes":{"items":{"properties":{"approve":{"type":"boolean"},"at":{"format":"int64","type":"integer"},"note":{"type":"string"},"who":{"type":"string"}},"required":["who","approve","note","at"],"type":"object"},"type":"array"}},"required":["id","key","title","to_status","transition","approvers","needed","approvals","note","requested_by","state","created_at","votes","can_decide"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/approvals.request":{"post":{"operationId":"approvals.request","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"},"note":{"default":"","type":"string"},"to_status":{"description":"The status to move to (a transition with approvers).","type":"string"}},"required":["key","to_status"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"approvals":{"format":"int64","type":"integer"},"approvers":{"items":{"type":"string"},"type":"array"},"can_decide":{"description":"The caller may approve or reject it now.","type":"boolean"},"created_at":{"format":"int64","type":"integer"},"decided_at":{"format":"int64","type":["integer","null"]},"id":{"format":"int64","type":"integer"},"key":{"type":"string"},"needed":{"format":"int64","type":"integer"},"note":{"type":"string"},"requested_by":{"type":"string"},"state":{"description":"pending | approved (move it) | rejected | cancelled | done (moved)","type":"string"},"title":{"type":"string"},"to_status":{"type":"string"},"transition":{"type":"string"},"votes":{"items":{"properties":{"approve":{"type":"boolean"},"at":{"format":"int64","type":"integer"},"note":{"type":"string"},"who":{"type":"string"}},"required":["who","approve","note","at"],"type":"object"},"type":"array"}},"required":["id","key","title","to_status","transition","approvers","needed","approvals","note","requested_by","state","created_at","votes","can_decide"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/assets.create":{"post":{"operationId":"assets.create","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"name":{"type":"string"},"owner":{"type":["string","null"]},"status":{"type":["string","null"]},"type":{"type":"string"},"values":{"additionalProperties":true,"default":{},"type":"object"}},"required":["type","name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys.","items":{"type":"string"},"type":"array"},"key":{"description":"LAPTOP-12","type":"string"},"name":{"type":"string"},"owner":{"description":"Member id.","type":["string","null"]},"status":{"description":"active | maintenance | retired","type":"string"},"type":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"values":{"additionalProperties":true,"description":"Field values by key (references hold asset keys).","type":"object"}},"required":["id","key","type","name","status","values","issues","created_by","created_at","updated_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["assets:write"]}},"/api/v1/assets.delete":{"post":{"operationId":"assets.delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"description":"Asset key (LAPTOP-12) or id.","type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"ok":{"type":"boolean"}},"required":["ok"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["assets:write"]}},"/api/v1/assets.for_issue":{"post":{"operationId":"assets.for_issue","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"issue":{"type":"string"}},"required":["issue"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys.","items":{"type":"string"},"type":"array"},"key":{"description":"LAPTOP-12","type":"string"},"name":{"type":"string"},"owner":{"description":"Member id.","type":["string","null"]},"status":{"description":"active | maintenance | retired","type":"string"},"type":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"values":{"additionalProperties":true,"description":"Field values by key (references hold asset keys).","type":"object"}},"required":["id","key","type","name","status","values","issues","created_by","created_at","updated_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["assets:read"]}},"/api/v1/assets.get":{"post":{"operationId":"assets.get","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"description":"Asset key (LAPTOP-12) or id.","type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys.","items":{"type":"string"},"type":"array"},"key":{"description":"LAPTOP-12","type":"string"},"name":{"type":"string"},"owner":{"description":"Member id.","type":["string","null"]},"status":{"description":"active | maintenance | retired","type":"string"},"type":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"values":{"additionalProperties":true,"description":"Field values by key (references hold asset keys).","type":"object"}},"required":["id","key","type","name","status","values","issues","created_by","created_at","updated_at"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["assets:read"]}},"/api/v1/assets.link":{"post":{"operationId":"assets.link","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"asset":{"description":"Asset key.","type":"string"},"issue":{"description":"Issue key.","type":"string"},"linked":{"default":true,"type":"boolean"}},"required":["asset","issue"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys.","items":{"type":"string"},"type":"array"},"key":{"description":"LAPTOP-12","type":"string"},"name":{"type":"string"},"owner":{"description":"Member id.","type":["string","null"]},"status":{"description":"active | maintenance | retired","type":"string"},"type":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"values":{"additionalProperties":true,"description":"Field values by key (references hold asset keys).","type":"object"}},"required":["id","key","type","name","status","values","issues","created_by","created_at","updated_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["assets:write"]}},"/api/v1/assets.list":{"post":{"operationId":"assets.list","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"q":{"default":"","description":"Words in the key, name or field values.","type":"string"},"refers_to":{"description":"Assets whose reference fields point at this asset key (what depends on it).","type":["string","null"]},"status":{"description":"active | maintenance | retired","type":["string","null"]},"type":{"description":"A type key.","type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys.","items":{"type":"string"},"type":"array"},"key":{"description":"LAPTOP-12","type":"string"},"name":{"type":"string"},"owner":{"description":"Member id.","type":["string","null"]},"status":{"description":"active | maintenance | retired","type":"string"},"type":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"values":{"additionalProperties":true,"description":"Field values by key (references hold asset keys).","type":"object"}},"required":["id","key","type","name","status","values","issues","created_by","created_at","updated_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["assets:read"]}},"/api/v1/assets.type_delete":{"post":{"operationId":"assets.type_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"count":{"format":"int64","type":"integer"},"description":{"type":"string"},"fields":{"items":{"properties":{"key":{"description":"`[a-z0-9_]`.","type":"string"},"name":{"type":"string"},"options":{"description":"select: the choices.","items":{"type":"string"},"type":"array"},"required":{"default":false,"type":"boolean"},"type":{"description":"text | number | date | select | member | asset (a reference to another asset, by key) | url","type":"string"}},"required":["key","name","type"],"type":"object"},"type":"array"},"icon":{"type":"string"},"id":{"format":"int64","type":"integer"},"key":{"description":"Asset keys start with it: LAPTOP-12.","type":"string"},"name":{"type":"string"},"position":{"format":"double","type":"number"}},"required":["id","key","name","icon","description","fields","position","count"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/assets.type_save":{"post":{"operationId":"assets.type_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"default":"","type":"string"},"fields":{"default":[],"items":{"properties":{"key":{"description":"`[a-z0-9_]`.","type":"string"},"name":{"type":"string"},"options":{"description":"select: the choices.","items":{"type":"string"},"type":"array"},"required":{"default":false,"type":"boolean"},"type":{"description":"text | number | date | select | member | asset (a reference to another asset, by key) | url","type":"string"}},"required":["key","name","type"],"type":"object"},"type":"array"},"icon":{"default":"","type":"string"},"id":{"format":"int64","type":["integer","null"]},"key":{"description":"Letters and digits, 2–10, starting with a letter (create only).","type":["string","null"]},"name":{"type":"string"},"position":{"format":"double","type":["number","null"]}},"required":["name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"count":{"format":"int64","type":"integer"},"description":{"type":"string"},"fields":{"items":{"properties":{"key":{"description":"`[a-z0-9_]`.","type":"string"},"name":{"type":"string"},"options":{"description":"select: the choices.","items":{"type":"string"},"type":"array"},"required":{"default":false,"type":"boolean"},"type":{"description":"text | number | date | select | member | asset (a reference to another asset, by key) | url","type":"string"}},"required":["key","name","type"],"type":"object"},"type":"array"},"icon":{"type":"string"},"id":{"format":"int64","type":"integer"},"key":{"description":"Asset keys start with it: LAPTOP-12.","type":"string"},"name":{"type":"string"},"position":{"format":"double","type":"number"}},"required":["id","key","name","icon","description","fields","position","count"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/assets.types":{"post":{"operationId":"assets.types","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"count":{"format":"int64","type":"integer"},"description":{"type":"string"},"fields":{"items":{"properties":{"key":{"description":"`[a-z0-9_]`.","type":"string"},"name":{"type":"string"},"options":{"description":"select: the choices.","items":{"type":"string"},"type":"array"},"required":{"default":false,"type":"boolean"},"type":{"description":"text | number | date | select | member | asset (a reference to another asset, by key) | url","type":"string"}},"required":["key","name","type"],"type":"object"},"type":"array"},"icon":{"type":"string"},"id":{"format":"int64","type":"integer"},"key":{"description":"Asset keys start with it: LAPTOP-12.","type":"string"},"name":{"type":"string"},"position":{"format":"double","type":"number"}},"required":["id","key","name","icon","description","fields","position","count"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["assets:read"]}},"/api/v1/assets.update":{"post":{"operationId":"assets.update","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"},"name":{"type":["string","null"]},"owner":{"description":"Member id; empty clears.","type":["string","null"]},"status":{"type":["string","null"]},"values":{"additionalProperties":true,"description":"Fields to set (null clears); others unchanged.","type":["object","null"]}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys.","items":{"type":"string"},"type":"array"},"key":{"description":"LAPTOP-12","type":"string"},"name":{"type":"string"},"owner":{"description":"Member id.","type":["string","null"]},"status":{"description":"active | maintenance | retired","type":"string"},"type":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"values":{"additionalProperties":true,"description":"Field values by key (references hold asset keys).","type":"object"}},"required":["id","key","type","name","status","values","issues","created_by","created_at","updated_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["assets:write"]}},"/api/v1/attachments.add":{"post":{"operationId":"attachments.add","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"content_type":{"type":["string","null"]},"data":{"description":"Base64 of the file, 10 MB max.","type":"string"},"name":{"type":"string"},"subject":{"description":"What it's attached to, e.g. `issue:42`.","type":"string"}},"required":["subject","name","data"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"content_type":{"type":["string","null"]},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"size":{"format":"int64","type":"integer"},"subject":{"type":"string"}},"required":["id","subject","name","size","created_by","created_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["attachments:write"]}},"/api/v1/attachments.delete":{"post":{"operationId":"attachments.delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"content_type":{"type":["string","null"]},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"size":{"format":"int64","type":"integer"},"subject":{"type":"string"}},"required":["id","subject","name","size","created_by","created_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["attachments:write"]}},"/api/v1/attachments.get":{"post":{"operationId":"attachments.get","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"as_url":{"default":false,"description":"A download link instead of the bytes, where the deployment serves files from their own origin.","type":"boolean"},"id":{"type":"string"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"content_type":{"type":["string","null"]},"data":{"description":"Base64 of the file (empty when `url` is given).","type":"string"},"id":{"type":"string"},"name":{"type":"string"},"url":{"description":"With `as_url`, where the deployment has a files origin: a five-minute link that downloads it.","type":["string","null"]}},"required":["id","name","data"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["attachments:read"]}},"/api/v1/attachments.list":{"post":{"operationId":"attachments.list","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"subject":{"type":"string"}},"required":["subject"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"content_type":{"type":["string","null"]},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"size":{"format":"int64","type":"integer"},"subject":{"type":"string"}},"required":["id","subject","name","size","created_by","created_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["attachments:read"]}},"/api/v1/audit.export":{"post":{"operationId":"audit.export","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"actor":{"default":null,"description":"Identity id of who acted (or `system`, `anonymous`).","type":["string","null"]},"actor_kind":{"default":null,"description":"human | key | agent | system | automation.","type":["string","null"]},"from":{"default":null,"description":"Unix seconds, inclusive.","format":"int64","type":["integer","null"]},"kind":{"default":null,"description":"Event kind, e.g. `issue.updated`; a trailing `*` matches a prefix (`auth.*`).","type":["string","null"]},"q":{"default":null,"description":"Text anywhere in the subject, via or details.","type":["string","null"]},"subject":{"default":null,"description":"`kind:id`, e.g. `issue:42`.","type":["string","null"]},"to":{"default":null,"description":"Unix seconds, exclusive.","format":"int64","type":["integer","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"count":{"format":"uint","minimum":0,"type":"integer"},"ndjson":{"description":"One JSON entry per line, oldest first.","type":"string"},"truncated":{"description":"True when more than 50,000 entries matched (narrow the dates and export again).","type":"boolean"}},"required":["ndjson","count","truncated"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/audit.list":{"post":{"operationId":"audit.list","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"description":"Newest first. Page with `before = next_before`.","properties":{"actor":{"default":null,"description":"Identity id of who acted (or `system`, `anonymous`).","type":["string","null"]},"actor_kind":{"default":null,"description":"human | key | agent | system | automation.","type":["string","null"]},"before":{"default":null,"format":"int64","type":["integer","null"]},"from":{"default":null,"description":"Unix seconds, inclusive.","format":"int64","type":["integer","null"]},"kind":{"default":null,"description":"Event kind, e.g. `issue.updated`; a trailing `*` matches a prefix (`auth.*`).","type":["string","null"]},"limit":{"default":null,"description":"1-200, default 50.","format":"int64","type":["integer","null"]},"q":{"default":null,"description":"Text anywhere in the subject, via or details.","type":["string","null"]},"subject":{"default":null,"description":"`kind:id`, e.g. `issue:42`.","type":["string","null"]},"to":{"default":null,"description":"Unix seconds, exclusive.","format":"int64","type":["integer","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"entries":{"items":{"properties":{"actor":{"type":"string"},"actor_kind":{"type":"string"},"at":{"format":"int64","type":"integer"},"ip":{"type":["string","null"]},"kind":{"type":"string"},"payload":true,"seq":{"format":"int64","type":"integer"},"subject":{"type":"string"},"via":{"type":["string","null"]}},"required":["seq","at","kind","subject","actor","actor_kind","payload"],"type":"object"},"type":"array"},"next_before":{"description":"Pass as `before` for the next page; null at the end.","format":"int64","type":["integer","null"]},"plan":{"type":"string"},"retention_days":{"description":"Entries older than this many days are deleted.","format":"int64","type":"integer"}},"required":["entries","plan","retention_days"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/audit.record":{"post":{"operationId":"audit.record","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"description":"Records a sign-in or membership event that happened in the directory (the cell calls it; not a public op).","properties":{"kind":{"type":"string"},"payload":{"default":null},"subject":{"type":"string"}},"required":["kind","subject"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/automation.catalog":{"post":{"operationId":"automation.catalog","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"general":{"description":"Presets for any rule (web requests…).","items":{"properties":{"id":{"description":"e.g. `issue.transition`.","type":"string"},"input":{"description":"The op's input as a JSON template: `{{field}}` takes a subject field (or actor, event), `{{value}}` what the\nrule author typed. A string that is exactly one placeholder takes the value's JSON type.","type":"string"},"label":{"type":"string"},"op":{"description":"The op it runs.","type":"string"},"options":{"description":"Field whose options suit the value (status, priority, label…), for pickers.","type":["string","null"]},"value":{"description":"What `{{value}}` means (shown next to the input); None = no value.","type":["string","null"]}},"required":["id","label","op","input"],"type":"object"},"type":"array"},"ops":{"description":"Every op an action may run.","items":{"type":"string"},"type":"array"},"subjects":{"items":{"properties":{"events":{"items":{"properties":{"kind":{"type":"string"},"label":{"type":"string"}},"required":["kind","label"],"type":"object"},"type":"array"},"fields":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"}},"required":["key","label"],"type":"object"},"type":"array"},"kind":{"type":"string"},"label":{"type":"string"},"presets":{"items":{"properties":{"id":{"description":"e.g. `issue.transition`.","type":"string"},"input":{"description":"The op's input as a JSON template: `{{field}}` takes a subject field (or actor, event), `{{value}}` what the\nrule author typed. A string that is exactly one placeholder takes the value's JSON type.","type":"string"},"label":{"type":"string"},"op":{"description":"The op it runs.","type":"string"},"options":{"description":"Field whose options suit the value (status, priority, label…), for pickers.","type":["string","null"]},"value":{"description":"What `{{value}}` means (shown next to the input); None = no value.","type":["string","null"]}},"required":["id","label","op","input"],"type":"object"},"type":"array"}},"required":["kind","label","events","fields","presets"],"type":"object"},"type":"array"},"variables":{"description":"Variables every rule has besides the subject's fields.","items":{"properties":{"key":{"type":"string"},"label":{"type":"string"}},"required":["key","label"],"type":"object"},"type":"array"}},"required":["subjects","general","ops","variables"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["automation:read"]}},"/api/v1/automation.delete":{"post":{"operationId":"automation.delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/automation.list":{"post":{"operationId":"automation.list","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"actions":{"items":{"properties":{"input":{"description":"The op's input as a JSON template: `{{field}}` takes a subject field (or `actor`, `event`, `subject`, `rule`),\n`{{value}}` takes `value`. A string that is exactly one placeholder keeps the value's JSON type."},"op":{"description":"Any op id, e.g. `issues.update`.","type":"string"},"preset":{"description":"The preset it was made from (for the editor).","type":["string","null"]},"value":{"default":"","description":"Filled into `{{value}}` (itself a template).","type":"string"}},"required":["op","input"],"type":"object"},"type":"array"},"conditions":{"items":{"properties":{"field":{"description":"A field of the event's subject (see automation.catalog), or `actor`, `actor_kind`, `event`.","type":"string"},"op":{"description":"is | is_not | empty | not_empty | contains","type":"string"},"value":{"default":"","description":"For is / is_not: one value or several separated by commas (any of them).","type":"string"}},"required":["field","op"],"type":"object"},"type":"array"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"enabled":{"type":"boolean"},"id":{"format":"int64","type":"integer"},"last_run_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"next_run_at":{"description":"Scheduled rules: when it runs next.","format":"int64","type":["integer","null"]},"runs":{"format":"int64","type":"integer"},"trigger":{"properties":{"changed":{"description":"Only when the event changed this field (a key of the event payload, or a custom field).","type":["string","null"]},"daily_at":{"description":"Scheduled: daily at HH:MM (UTC).","type":["string","null"]},"event":{"description":"Event kind that fires the rule (`issue.updated`; `issue.*` for any issue event). Omit for a scheduled rule.","type":["string","null"]},"every_minutes":{"description":"Scheduled: every this many minutes (5 or more).","format":"int64","type":["integer","null"]},"query":{"description":"Scheduled: run once for each issue matching this TQL (at most 200 per run); omit to run once.","type":["string","null"]},"to":{"description":"With `changed`: only when it changed to this value.","type":["string","null"]}},"type":"object"}},"required":["id","name","enabled","trigger","conditions","actions","created_by","created_at","runs"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["automation:read"]}},"/api/v1/automation.log":{"post":{"operationId":"automation.log","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"rule":{"description":"One rule's runs; omit for all.","format":"int64","type":["integer","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"actor":{"type":"string"},"at":{"format":"int64","type":"integer"},"event":{"type":"string"},"id":{"format":"int64","type":"integer"},"label":{"description":"The subject's key or title at the time.","type":"string"},"message":{"type":"string"},"ok":{"type":"boolean"},"rule":{"format":"int64","type":"integer"},"subject":{"description":"`kind:id` it ran on; null for scheduled runs.","type":["string","null"]}},"required":["id","rule","label","event","actor","ok","message","at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["automation:read"]}},"/api/v1/automation.run":{"post":{"operationId":"automation.run","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/automation.save":{"post":{"operationId":"automation.save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"actions":{"items":{"properties":{"input":{"description":"The op's input as a JSON template: `{{field}}` takes a subject field (or `actor`, `event`, `subject`, `rule`),\n`{{value}}` takes `value`. A string that is exactly one placeholder keeps the value's JSON type."},"op":{"description":"Any op id, e.g. `issues.update`.","type":"string"},"preset":{"description":"The preset it was made from (for the editor).","type":["string","null"]},"value":{"default":"","description":"Filled into `{{value}}` (itself a template).","type":"string"}},"required":["op","input"],"type":"object"},"type":["array","null"]},"conditions":{"items":{"properties":{"field":{"description":"A field of the event's subject (see automation.catalog), or `actor`, `actor_kind`, `event`.","type":"string"},"op":{"description":"is | is_not | empty | not_empty | contains","type":"string"},"value":{"default":"","description":"For is / is_not: one value or several separated by commas (any of them).","type":"string"}},"required":["field","op"],"type":"object"},"type":["array","null"]},"enabled":{"type":["boolean","null"]},"id":{"description":"Omit to create.","format":"int64","type":["integer","null"]},"name":{"type":["string","null"]},"trigger":{"properties":{"changed":{"description":"Only when the event changed this field (a key of the event payload, or a custom field).","type":["string","null"]},"daily_at":{"description":"Scheduled: daily at HH:MM (UTC).","type":["string","null"]},"event":{"description":"Event kind that fires the rule (`issue.updated`; `issue.*` for any issue event). Omit for a scheduled rule.","type":["string","null"]},"every_minutes":{"description":"Scheduled: every this many minutes (5 or more).","format":"int64","type":["integer","null"]},"query":{"description":"Scheduled: run once for each issue matching this TQL (at most 200 per run); omit to run once.","type":["string","null"]},"to":{"description":"With `changed`: only when it changed to this value.","type":["string","null"]}},"type":["object","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"actions":{"items":{"properties":{"input":{"description":"The op's input as a JSON template: `{{field}}` takes a subject field (or `actor`, `event`, `subject`, `rule`),\n`{{value}}` takes `value`. A string that is exactly one placeholder keeps the value's JSON type."},"op":{"description":"Any op id, e.g. `issues.update`.","type":"string"},"preset":{"description":"The preset it was made from (for the editor).","type":["string","null"]},"value":{"default":"","description":"Filled into `{{value}}` (itself a template).","type":"string"}},"required":["op","input"],"type":"object"},"type":"array"},"conditions":{"items":{"properties":{"field":{"description":"A field of the event's subject (see automation.catalog), or `actor`, `actor_kind`, `event`.","type":"string"},"op":{"description":"is | is_not | empty | not_empty | contains","type":"string"},"value":{"default":"","description":"For is / is_not: one value or several separated by commas (any of them).","type":"string"}},"required":["field","op"],"type":"object"},"type":"array"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"enabled":{"type":"boolean"},"id":{"format":"int64","type":"integer"},"last_run_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"next_run_at":{"description":"Scheduled rules: when it runs next.","format":"int64","type":["integer","null"]},"runs":{"format":"int64","type":"integer"},"trigger":{"properties":{"changed":{"description":"Only when the event changed this field (a key of the event payload, or a custom field).","type":["string","null"]},"daily_at":{"description":"Scheduled: daily at HH:MM (UTC).","type":["string","null"]},"event":{"description":"Event kind that fires the rule (`issue.updated`; `issue.*` for any issue event). Omit for a scheduled rule.","type":["string","null"]},"every_minutes":{"description":"Scheduled: every this many minutes (5 or more).","format":"int64","type":["integer","null"]},"query":{"description":"Scheduled: run once for each issue matching this TQL (at most 200 per run); omit to run once.","type":["string","null"]},"to":{"description":"With `changed`: only when it changed to this value.","type":["string","null"]}},"type":"object"}},"required":["id","name","enabled","trigger","conditions","actions","created_by","created_at","runs"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/chat.bot_token":{"post":{"operationId":"chat.bot_token","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"token":{"type":"string"}},"required":["token"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/chat.connection_delete":{"post":{"operationId":"chat.connection_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"has_bot_token":{"description":"Slack only: a bot token is stored (needed for unfurls).","type":"boolean"},"hook_path":{"description":"Request URL to give the platform (after the site's address).","type":"string"},"id":{"format":"int64","type":"integer"},"last_error":{"type":["string","null"]},"last_event_at":{"format":"int64","type":["integer","null"]},"linked":{"description":"Chat accounts linked to members.","format":"int64","type":"integer"},"name":{"type":"string"},"project":{"description":"Default project for `create` without one and for issues made from messages.","type":"string"},"provider":{"description":"slack | teams | discord","type":"string"},"requests":{"format":"int64","type":"integer"}},"required":["id","provider","name","project","has_bot_token","created_by","created_at","requests","hook_path","linked"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/chat.connection_save":{"post":{"operationId":"chat.connection_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"bot_token":{"description":"Slack bot token (xoxb-…), for unfurls; \"\" removes it. Kept when omitted.","type":["string","null"]},"id":{"format":"int64","type":["integer","null"]},"name":{"type":["string","null"]},"project":{"type":["string","null"]},"provider":{"description":"slack | teams | discord (new connections).","type":["string","null"]},"secret":{"description":"Slack signing secret, Teams outgoing-webhook security token, or Discord application public key. Kept when omitted.","type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"has_bot_token":{"description":"Slack only: a bot token is stored (needed for unfurls).","type":"boolean"},"hook_path":{"description":"Request URL to give the platform (after the site's address).","type":"string"},"id":{"format":"int64","type":"integer"},"last_error":{"type":["string","null"]},"last_event_at":{"format":"int64","type":["integer","null"]},"linked":{"description":"Chat accounts linked to members.","format":"int64","type":"integer"},"name":{"type":"string"},"project":{"description":"Default project for `create` without one and for issues made from messages.","type":"string"},"provider":{"description":"slack | teams | discord","type":"string"},"requests":{"format":"int64","type":"integer"}},"required":["id","provider","name","project","has_bot_token","created_by","created_at","requests","hook_path","linked"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/chat.connections":{"post":{"operationId":"chat.connections","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"has_bot_token":{"description":"Slack only: a bot token is stored (needed for unfurls).","type":"boolean"},"hook_path":{"description":"Request URL to give the platform (after the site's address).","type":"string"},"id":{"format":"int64","type":"integer"},"last_error":{"type":["string","null"]},"last_event_at":{"format":"int64","type":["integer","null"]},"linked":{"description":"Chat accounts linked to members.","format":"int64","type":"integer"},"name":{"type":"string"},"project":{"description":"Default project for `create` without one and for issues made from messages.","type":"string"},"provider":{"description":"slack | teams | discord","type":"string"},"requests":{"format":"int64","type":"integer"}},"required":["id","provider","name","project","has_bot_token","created_by","created_at","requests","hook_path","linked"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["chat:read"]}},"/api/v1/chat.ingest":{"post":{"operationId":"chat.ingest","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"body":{"description":"The raw body (the signature covers it).","type":"string"},"connection":{"format":"int64","type":"integer"},"headers":{"additionalProperties":true,"description":"Request headers, lowercase names.","type":"object"},"members":{"additionalProperties":true,"default":{},"description":"Org members `{id: {scopes, teams}}`, so linked chat users act as themselves.","type":"object"},"origin":{"default":"","description":"The site's address as the platform called it (for links in replies).","type":"string"}},"required":["connection","headers","body"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"reply":{"description":"The JSON to answer the platform with (null = empty 200)."},"result":{"description":"accepted | refused (bad signature)","type":"string"}},"required":["result","reply"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/chat.link":{"post":{"operationId":"chat.link","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"code":{"type":"string"}},"required":["code"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"chat_user":{"type":"string"},"connection":{"format":"int64","type":"integer"},"connection_name":{"type":"string"},"linked_at":{"format":"int64","type":"integer"},"name":{"type":"string"},"provider":{"type":"string"}},"required":["connection","connection_name","provider","chat_user","name","linked_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["chat:write"]}},"/api/v1/chat.links":{"post":{"operationId":"chat.links","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"chat_user":{"type":"string"},"connection":{"format":"int64","type":"integer"},"connection_name":{"type":"string"},"linked_at":{"format":"int64","type":"integer"},"name":{"type":"string"},"provider":{"type":"string"}},"required":["connection","connection_name","provider","chat_user","name","linked_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["chat:read"]}},"/api/v1/chat.subscription_delete":{"post":{"operationId":"chat.subscription_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/chat.subscription_save":{"post":{"operationId":"chat.subscription_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"connection":{"format":"int64","type":["integer","null"]},"events":{"description":"Any of issue.created, issue.updated, issue.assigned, issue.deleted, comment.created.","items":{"type":"string"},"type":["array","null"]},"id":{"format":"int64","type":["integer","null"]},"name":{"type":["string","null"]},"origin":{"description":"The site's address, for links in posts (the web sends its own).","type":["string","null"]},"tql":{"description":"Issues to post about, e.g. `project = WEB AND priority = high`; empty = every issue.","type":["string","null"]},"webhook_url":{"description":"The channel's incoming webhook URL. Kept when omitted.","type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"connection":{"format":"int64","type":"integer"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"events":{"items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"last_sent_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"sent":{"format":"int64","type":"integer"},"tql":{"type":"string"}},"required":["id","connection","name","tql","events","created_by","created_at","sent"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/chat.subscription_test":{"post":{"operationId":"chat.subscription_test","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/chat.subscriptions":{"post":{"operationId":"chat.subscriptions","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"connection":{"format":"int64","type":"integer"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"events":{"items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"last_sent_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"sent":{"format":"int64","type":"integer"},"tql":{"type":"string"}},"required":["id","connection","name","tql","events","created_by","created_at","sent"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["chat:read"]}},"/api/v1/chat.unlink":{"post":{"operationId":"chat.unlink","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"chat_user":{"type":"string"},"connection":{"format":"int64","type":"integer"}},"required":["connection","chat_user"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["chat:write"]}},"/api/v1/checklists.add":{"post":{"operationId":"checklists.add","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"assignee":{"type":["string","null"]},"due_date":{"type":["string","null"]},"key":{"type":"string"},"text":{"description":"One item, or several separated by new lines.","type":"string"}},"required":["key","text"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"description":"The caller can change it (edits the issue).","type":"boolean"},"done":{"format":"int64","type":"integer"},"items":{"items":{"properties":{"assignee":{"type":["string","null"]},"done":{"type":"boolean"},"done_at":{"format":"int64","type":["integer","null"]},"done_by":{"type":["string","null"]},"due_date":{"description":"YYYY-MM-DD","type":["string","null"]},"id":{"format":"int64","type":"integer"},"position":{"format":"double","type":"number"},"text":{"type":"string"}},"required":["id","text","done","position"],"type":"object"},"type":"array"},"key":{"type":"string"},"total":{"format":"int64","type":"integer"}},"required":["key","items","done","total","can_edit"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/checklists.apply":{"post":{"operationId":"checklists.apply","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"},"template":{"format":"int64","type":"integer"}},"required":["key","template"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"description":"The caller can change it (edits the issue).","type":"boolean"},"done":{"format":"int64","type":"integer"},"items":{"items":{"properties":{"assignee":{"type":["string","null"]},"done":{"type":"boolean"},"done_at":{"format":"int64","type":["integer","null"]},"done_by":{"type":["string","null"]},"due_date":{"description":"YYYY-MM-DD","type":["string","null"]},"id":{"format":"int64","type":"integer"},"position":{"format":"double","type":"number"},"text":{"type":"string"}},"required":["id","text","done","position"],"type":"object"},"type":"array"},"key":{"type":"string"},"total":{"format":"int64","type":"integer"}},"required":["key","items","done","total","can_edit"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/checklists.delete":{"post":{"operationId":"checklists.delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/checklists.list":{"post":{"operationId":"checklists.list","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"description":"The caller can change it (edits the issue).","type":"boolean"},"done":{"format":"int64","type":"integer"},"items":{"items":{"properties":{"assignee":{"type":["string","null"]},"done":{"type":"boolean"},"done_at":{"format":"int64","type":["integer","null"]},"done_by":{"type":["string","null"]},"due_date":{"description":"YYYY-MM-DD","type":["string","null"]},"id":{"format":"int64","type":"integer"},"position":{"format":"double","type":"number"},"text":{"type":"string"}},"required":["id","text","done","position"],"type":"object"},"type":"array"},"key":{"type":"string"},"total":{"format":"int64","type":"integer"}},"required":["key","items","done","total","can_edit"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/checklists.reorder":{"post":{"operationId":"checklists.reorder","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"ids":{"description":"Item ids in their new order.","items":{"format":"int64","type":"integer"},"type":"array"},"key":{"type":"string"}},"required":["key","ids"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"description":"The caller can change it (edits the issue).","type":"boolean"},"done":{"format":"int64","type":"integer"},"items":{"items":{"properties":{"assignee":{"type":["string","null"]},"done":{"type":"boolean"},"done_at":{"format":"int64","type":["integer","null"]},"done_by":{"type":["string","null"]},"due_date":{"description":"YYYY-MM-DD","type":["string","null"]},"id":{"format":"int64","type":"integer"},"position":{"format":"double","type":"number"},"text":{"type":"string"}},"required":["id","text","done","position"],"type":"object"},"type":"array"},"key":{"type":"string"},"total":{"format":"int64","type":"integer"}},"required":["key","items","done","total","can_edit"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/checklists.template_delete":{"post":{"operationId":"checklists.template_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/checklists.template_save":{"post":{"operationId":"checklists.template_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"auto":{"default":true,"type":"boolean"},"id":{"format":"int64","type":["integer","null"]},"items":{"items":{"type":"string"},"type":"array"},"kind":{"type":"string"},"name":{"type":"string"}},"required":["kind","name","items"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"auto":{"description":"Added to every new issue of the type.","type":"boolean"},"id":{"format":"int64","type":"integer"},"items":{"items":{"type":"string"},"type":"array"},"kind":{"description":"Issue type key.","type":"string"},"name":{"type":"string"}},"required":["id","kind","name","items","auto"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/checklists.templates":{"post":{"operationId":"checklists.templates","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"auto":{"description":"Added to every new issue of the type.","type":"boolean"},"id":{"format":"int64","type":"integer"},"items":{"items":{"type":"string"},"type":"array"},"kind":{"description":"Issue type key.","type":"string"},"name":{"type":"string"}},"required":["id","kind","name","items","auto"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/checklists.update":{"post":{"operationId":"checklists.update","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"assignee":{"description":"\"\" unassigns.","type":["string","null"]},"done":{"type":["boolean","null"]},"due_date":{"description":"\"\" clears.","type":["string","null"]},"id":{"format":"int64","type":"integer"},"text":{"type":["string","null"]}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"description":"The caller can change it (edits the issue).","type":"boolean"},"done":{"format":"int64","type":"integer"},"items":{"items":{"properties":{"assignee":{"type":["string","null"]},"done":{"type":"boolean"},"done_at":{"format":"int64","type":["integer","null"]},"done_by":{"type":["string","null"]},"due_date":{"description":"YYYY-MM-DD","type":["string","null"]},"id":{"format":"int64","type":"integer"},"position":{"format":"double","type":"number"},"text":{"type":"string"}},"required":["id","text","done","position"],"type":"object"},"type":"array"},"key":{"type":"string"},"total":{"format":"int64","type":"integer"}},"required":["key","items","done","total","can_edit"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/comments.create":{"post":{"operationId":"comments.create","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"anchor":{"description":"Inline comment: JSON `{\"exact\": \"quoted text\", \"prefix\": \"…\", \"suffix\": \"…\"}` locating the text it's about.","type":["string","null"]},"body":{"description":"Markdown (what search, mentions, email and agents read).","type":"string"},"body_doc":{"description":"The same body as a rich document (TipTap JSON, as the web editor writes it); optional.","type":["string","null"]},"internal":{"default":false,"description":"An internal note: the team sees it, customers in the service desk portal never do. Replies follow their thread.","type":"boolean"},"parent":{"description":"Reply to this comment's thread.","format":"int64","type":["integer","null"]},"subject":{"type":"string"}},"required":["subject","body"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["comments:write"]}},"/api/v1/comments.delete":{"post":{"operationId":"comments.delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["comments:write"]}},"/api/v1/comments.import":{"post":{"operationId":"comments.import","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"author":{"description":"Member id, or a name for someone who isn't a member.","type":"string"},"body":{"description":"Markdown.","type":"string"},"created_at":{"description":"Unix seconds.","format":"int64","type":["integer","null"]},"subject":{"type":"string"}},"required":["subject","author","body"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/comments.list":{"post":{"operationId":"comments.list","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"subject":{"type":"string"}},"required":["subject"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"anchor":{"description":"Inline anchor JSON (thread starters only).","type":["string","null"]},"author":{"type":"string"},"body":{"type":"string"},"body_doc":{"description":"The body as a rich document (TipTap JSON); null when there's only markdown.","type":["string","null"]},"created_at":{"format":"int64","type":"integer"},"edited_at":{"description":"When the author last edited it.","format":"int64","type":["integer","null"]},"id":{"format":"int64","type":"integer"},"internal":{"description":"An internal note (not shown to customers).","type":"boolean"},"parent":{"description":"The thread's first comment; null for a thread starter.","format":"int64","type":["integer","null"]},"reactions":{"items":{"properties":{"count":{"format":"int64","type":"integer"},"emoji":{"type":"string"},"mine":{"description":"Whether the caller reacted with it.","type":"boolean"}},"required":["emoji","count","mine"],"type":"object"},"type":"array"},"resolved_at":{"format":"int64","type":["integer","null"]},"resolved_by":{"type":["string","null"]}},"required":["id","author","body","created_at","internal","reactions"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["comments:read"]}},"/api/v1/comments.react":{"post":{"operationId":"comments.react","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"emoji":{"description":"One emoji (or a short code), 16 bytes max.","type":"string"},"id":{"format":"int64","type":"integer"},"on":{"description":"false removes it.","type":"boolean"}},"required":["id","emoji","on"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["comments:write"]}},"/api/v1/comments.resolve":{"post":{"operationId":"comments.resolve","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"description":"The thread's first comment.","format":"int64","type":"integer"},"resolved":{"description":"false reopens it.","type":"boolean"}},"required":["id","resolved"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["comments:write"]}},"/api/v1/comments.update":{"post":{"operationId":"comments.update","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"body":{"description":"Markdown. Without `body_doc` it replaces the rich document too.","type":"string"},"body_doc":{"type":["string","null"]},"id":{"format":"int64","type":"integer"}},"required":["id","body"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["comments:write"]}},"/api/v1/desk.chat_request":{"post":{"operationId":"desk.chat_request","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"channel":{"default":"","description":"Where replies go (Slack: the channel id).","type":"string"},"chat_name":{"default":"","type":"string"},"chat_user":{"type":"string"},"connection":{"format":"int64","type":"integer"},"project":{"description":"The desk's project (the chat connection's default project).","type":"string"},"provider":{"description":"slack | teams | discord","type":"string"},"text":{"description":"First line the summary, the rest the description.","type":"string"}},"required":["project","connection","provider","chat_user","text"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"key":{"type":["string","null"]},"reply":{"description":"What to tell the sender.","type":"string"},"result":{"description":"created | commented | ignored","type":"string"}},"required":["result","reply"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/desk.chat_status":{"post":{"operationId":"desk.chat_status","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"chat_user":{"type":"string"},"connection":{"format":"int64","type":"integer"},"key":{"type":"string"}},"required":["connection","chat_user","key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"key":{"type":["string","null"]},"reply":{"description":"What to tell the sender.","type":"string"},"result":{"description":"created | commented | ignored","type":"string"}},"required":["result","reply"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/desk.customer_add":{"post":{"operationId":"desk.customer_add","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"type":"string"},"name":{"type":"string"}},"required":["email","name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"customer":{"properties":{"active":{"description":"They've set a password (signed up, or were given one).","type":"boolean"},"blocked":{"type":"boolean"},"created_at":{"format":"int64","type":"integer"},"email":{"type":"string"},"id":{"format":"int64","type":"integer"},"last_seen_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"requests":{"format":"int64","type":"integer"}},"required":["id","email","name","active","blocked","created_at","requests"],"type":"object"},"password":{"description":"A password to hand to the customer (shown once); they sign in to the portal with it.","type":"string"}},"required":["customer","password"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/desk.customer_block":{"post":{"operationId":"desk.customer_block","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"blocked":{"type":"boolean"},"id":{"format":"int64","type":"integer"}},"required":["id","blocked"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"active":{"description":"They've set a password (signed up, or were given one).","type":"boolean"},"blocked":{"type":"boolean"},"created_at":{"format":"int64","type":"integer"},"email":{"type":"string"},"id":{"format":"int64","type":"integer"},"last_seen_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"requests":{"format":"int64","type":"integer"}},"required":["id","email","name","active","blocked","created_at","requests"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/desk.customer_reset":{"post":{"operationId":"desk.customer_reset","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"customer":{"properties":{"active":{"description":"They've set a password (signed up, or were given one).","type":"boolean"},"blocked":{"type":"boolean"},"created_at":{"format":"int64","type":"integer"},"email":{"type":"string"},"id":{"format":"int64","type":"integer"},"last_seen_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"requests":{"format":"int64","type":"integer"}},"required":["id","email","name","active","blocked","created_at","requests"],"type":"object"},"password":{"description":"A password to hand to the customer (shown once); they sign in to the portal with it.","type":"string"}},"required":["customer","password"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/desk.customers":{"post":{"operationId":"desk.customers","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"q":{"default":"","type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"active":{"description":"They've set a password (signed up, or were given one).","type":"boolean"},"blocked":{"type":"boolean"},"created_at":{"format":"int64","type":"integer"},"email":{"type":"string"},"id":{"format":"int64","type":"integer"},"last_seen_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"requests":{"format":"int64","type":"integer"}},"required":["id","email","name","active","blocked","created_at","requests"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/desk.deflection_stats":{"post":{"operationId":"desk.deflection_stats","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"project":{"type":"string"}},"required":["project"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"requests":{"format":"int64","type":"integer"},"solved":{"format":"int64","type":"integer"},"top":{"description":"Articles that solved the most, with counts.","items":{"maxItems":3,"minItems":3,"prefixItems":[{"type":"string"},{"type":"string"},{"format":"int64","type":"integer"}],"type":"array"},"type":"array"},"viewed":{"description":"The last 30 days.","format":"int64","type":"integer"}},"required":["viewed","solved","requests","top"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/desk.email_address":{"post":{"operationId":"desk.email_address","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"project":{"type":"string"}},"required":["project"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"path":{"description":"POST inbound email here (Postmark, Mailgun, SendGrid inbound parse, or JSON `{from, name, subject, text}`).","type":"string"}},"required":["path"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/desk.email_ingest":{"post":{"operationId":"desk.email_ingest","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"from":{"description":"The sender's address and name.","type":"string"},"name":{"default":"","type":"string"},"subject":{"default":"","type":"string"},"text":{"default":"","type":"string"},"token":{"description":"The token in the desk's email webhook address.","type":"string"}},"required":["token","from"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"key":{"type":["string","null"]},"reply":{"description":"What to tell the sender.","type":"string"},"result":{"description":"created | commented | ignored","type":"string"}},"required":["result","reply"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/desk.list":{"post":{"operationId":"desk.list","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"enabled":{"type":"boolean"},"intro":{"type":"string"},"kb_space":{"description":"The pages space whose articles the portal suggests (W704).","type":["string","null"]},"name":{"type":"string"},"open_signup":{"description":"Anyone may create a portal account (else agents add customers).","type":"boolean"},"project":{"type":"string"}},"required":["project","name","intro","enabled","open_signup"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/desk.portal_article":{"post":{"operationId":"desk.portal_article","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string"},"text":{"description":"Markdown.","type":"string"},"title":{"type":"string"}},"required":["id","title","text"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["desk:public"]}},"/api/v1/desk.portal_comment":{"post":{"operationId":"desk.portal_comment","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"body":{"type":"string"},"key":{"type":"string"}},"required":["key","body"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"ok":{"type":"boolean"}},"required":["ok"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["desk:portal"]}},"/api/v1/desk.portal_create":{"post":{"operationId":"desk.portal_create","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"title":{"type":"string"},"type":{"format":"int64","type":"integer"},"values":{"additionalProperties":true,"default":{},"type":"object"}},"required":["type","title"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"category":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"desk":{"type":"string"},"key":{"type":"string"},"request_type":{"type":["string","null"]},"status":{"description":"The lane's name, and its category (todo | in_progress | done).","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"}},"required":["key","title","status","category","desk","created_at","updated_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["desk:portal"]}},"/api/v1/desk.portal_form":{"post":{"operationId":"desk.portal_form","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"type":{"format":"int64","type":"integer"},"values":{"additionalProperties":true,"default":{},"type":"object"}},"required":["type"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["desk:portal"]}},"/api/v1/desk.portal_info":{"post":{"operationId":"desk.portal_info","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"has_articles":{"description":"Help articles to suggest (W704).","type":"boolean"},"intro":{"type":"string"},"name":{"type":"string"},"open_signup":{"type":"boolean"},"project":{"type":"string"},"types":{"items":{"properties":{"description":{"type":"string"},"fields":{"items":{"properties":{"field":{"type":"string"},"help":{"type":"string"},"input":{"description":"text | textarea | number | date | select | multi","type":"string"},"label":{"type":"string"},"options":{"description":"select / multi: [value, label].","items":{"maxItems":2,"minItems":2,"prefixItems":[{"type":"string"},{"type":"string"}],"type":"array"},"type":"array"},"required":{"type":"boolean"}},"required":["field","label","help","required","input","options"],"type":"object"},"type":"array"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"}},"required":["id","name","description","fields"],"type":"object"},"type":"array"}},"required":["project","name","intro","open_signup","has_articles","types"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["desk:public"]}},"/api/v1/desk.portal_login":{"post":{"operationId":"desk.portal_login","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"type":"string"},"password":{"type":"string"}},"required":["email","password"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"customer":{"properties":{"active":{"description":"They've set a password (signed up, or were given one).","type":"boolean"},"blocked":{"type":"boolean"},"created_at":{"format":"int64","type":"integer"},"email":{"type":"string"},"id":{"format":"int64","type":"integer"},"last_seen_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"requests":{"format":"int64","type":"integer"}},"required":["id","email","name","active","blocked","created_at","requests"],"type":"object"},"token":{"description":"`Authorization: Bearer kbc_…` for the portal ops.","type":"string"}},"required":["token","customer"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["desk:public"]}},"/api/v1/desk.portal_logout":{"post":{"operationId":"desk.portal_logout","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"ok":{"type":"boolean"}},"required":["ok"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["desk:portal"]}},"/api/v1/desk.portal_me":{"post":{"operationId":"desk.portal_me","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"active":{"description":"They've set a password (signed up, or were given one).","type":"boolean"},"blocked":{"type":"boolean"},"created_at":{"format":"int64","type":"integer"},"email":{"type":"string"},"id":{"format":"int64","type":"integer"},"last_seen_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"requests":{"format":"int64","type":"integer"}},"required":["id","email","name","active","blocked","created_at","requests"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["desk:portal"]}},"/api/v1/desk.portal_request":{"post":{"operationId":"desk.portal_request","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"comments":{"items":{"properties":{"author":{"description":"You | Support (an agent) | the other participant's name.","type":"string"},"body":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"mine":{"type":"boolean"}},"required":["id","author","mine","body","created_at"],"type":"object"},"type":"array"},"description":{"type":"string"},"request":{"properties":{"category":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"desk":{"type":"string"},"key":{"type":"string"},"request_type":{"type":["string","null"]},"status":{"description":"The lane's name, and its category (todo | in_progress | done).","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"}},"required":["key","title","status","category","desk","created_at","updated_at"],"type":"object"}},"required":["request","description","comments"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["desk:portal"]}},"/api/v1/desk.portal_requests":{"post":{"operationId":"desk.portal_requests","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"category":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"desk":{"type":"string"},"key":{"type":"string"},"request_type":{"type":["string","null"]},"status":{"description":"The lane's name, and its category (todo | in_progress | done).","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"}},"required":["key","title","status","category","desk","created_at","updated_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["desk:portal"]}},"/api/v1/desk.portal_signup":{"post":{"operationId":"desk.portal_signup","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"type":"string"},"name":{"type":"string"},"password":{"type":"string"}},"required":["email","name","password"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"customer":{"properties":{"active":{"description":"They've set a password (signed up, or were given one).","type":"boolean"},"blocked":{"type":"boolean"},"created_at":{"format":"int64","type":"integer"},"email":{"type":"string"},"id":{"format":"int64","type":"integer"},"last_seen_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"requests":{"format":"int64","type":"integer"}},"required":["id","email","name","active","blocked","created_at","requests"],"type":"object"},"token":{"description":"`Authorization: Bearer kbc_…` for the portal ops.","type":"string"}},"required":["token","customer"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["desk:public"]}},"/api/v1/desk.portal_solved":{"post":{"operationId":"desk.portal_solved","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"page":{"description":"The article that answered it.","type":"string"},"query":{"default":"","type":"string"},"type":{"format":"int64","type":["integer","null"]}},"required":["page"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"ok":{"type":"boolean"}},"required":["ok"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["desk:public"]}},"/api/v1/desk.portal_suggest":{"post":{"operationId":"desk.portal_suggest","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"text":{"description":"What the customer typed so far.","type":"string"},"type":{"description":"The request type being filled (its desk's knowledge base); none = every desk's.","format":"int64","type":["integer","null"]}},"required":["text"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"id":{"type":"string"},"snippet":{"type":"string"},"title":{"type":"string"}},"required":["id","title","snippet"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["desk:public"]}},"/api/v1/desk.queue":{"post":{"operationId":"desk.queue","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"},"limit":{"format":"int64","type":["integer","null"]}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"queue":{"properties":{"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"project":{"type":"string"},"tql":{"type":"string"}},"required":["id","project","name","tql"],"type":"object"},"rows":{"items":{"properties":{"assignee":{"type":["string","null"]},"category":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"customer":{"description":"The customer's name and email, and the request type (requests only).","type":["string","null"]},"key":{"type":"string"},"priority":{"type":"string"},"request_type":{"type":["string","null"]},"status":{"type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"}},"required":["key","title","status","category","priority","updated_at","created_at"],"type":"object"},"type":"array"},"total":{"format":"int64","type":"integer"}},"required":["queue","total","rows"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/desk.queue_delete":{"post":{"operationId":"desk.queue_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"ok":{"type":"boolean"}},"required":["ok"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/desk.queue_save":{"post":{"operationId":"desk.queue_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"project":{"type":"string"},"tql":{"description":"TQL; `project = <key>` is added.","type":"string"}},"required":["project","name","tql"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"project":{"type":"string"},"tql":{"type":"string"}},"required":["id","project","name","tql"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/desk.request":{"post":{"operationId":"desk.request","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The request record of an issue, with its customer.","properties":{"channel":{"description":"portal | agent","type":"string"},"created_at":{"format":"int64","type":"integer"},"customer":{"properties":{"active":{"description":"They've set a password (signed up, or were given one).","type":"boolean"},"blocked":{"type":"boolean"},"created_at":{"format":"int64","type":"integer"},"email":{"type":"string"},"id":{"format":"int64","type":"integer"},"last_seen_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"requests":{"format":"int64","type":"integer"}},"required":["id","email","name","active","blocked","created_at","requests"],"type":"object"},"issue":{"format":"int64","type":"integer"},"key":{"type":"string"},"participants":{"items":{"format":"int64","type":"integer"},"type":"array"},"project":{"type":"string"},"type":{"description":"Request type id and name.","format":"int64","type":["integer","null"]},"type_name":{"type":["string","null"]}},"required":["issue","key","project","customer","participants","channel","created_at"],"type":["object","null"]}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/desk.request_create":{"post":{"operationId":"desk.request_create","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"customer":{"format":"int64","type":"integer"},"title":{"type":"string"},"type":{"format":"int64","type":"integer"},"values":{"additionalProperties":true,"default":{},"type":"object"}},"required":["type","customer","title"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/desk.save":{"post":{"operationId":"desk.save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"enabled":{"type":"boolean"},"intro":{"type":["string","null"]},"kb_space":{"description":"A pages space to suggest articles from (empty = none).","type":["string","null"]},"name":{"description":"The portal's name for this desk (default: the project's).","type":["string","null"]},"open_signup":{"type":["boolean","null"]},"project":{"type":"string"}},"required":["project","enabled"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"desk":{"properties":{"enabled":{"type":"boolean"},"intro":{"type":"string"},"kb_space":{"description":"The pages space whose articles the portal suggests (W704).","type":["string","null"]},"name":{"type":"string"},"open_signup":{"description":"Anyone may create a portal account (else agents add customers).","type":"boolean"},"project":{"type":"string"}},"required":["project","name","intro","enabled","open_signup"],"type":["object","null"]},"queues":{"items":{"properties":{"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"project":{"type":"string"},"tql":{"type":"string"}},"required":["id","project","name","tql"],"type":"object"},"type":"array"},"types":{"items":{"properties":{"description":{"type":"string"},"enabled":{"type":"boolean"},"fields":{"items":{"properties":{"field":{"description":"description | priority | due_date | components | a custom field key. (The title is always asked.)","type":"string"},"help":{"default":"","type":"string"},"label":{"default":"","description":"What the customer sees (default: the field's name).","type":"string"},"required":{"default":false,"type":"boolean"}},"required":["field"],"type":"object"},"type":"array"},"id":{"format":"int64","type":"integer"},"kind":{"description":"The issue type key requests of this type get.","type":"string"},"name":{"type":"string"},"position":{"format":"double","type":"number"},"project":{"type":"string"}},"required":["id","project","name","description","kind","fields","position","enabled"],"type":"object"},"type":"array"}},"required":["types","queues"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/desk.settings":{"post":{"operationId":"desk.settings","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"project":{"type":"string"}},"required":["project"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"desk":{"properties":{"enabled":{"type":"boolean"},"intro":{"type":"string"},"kb_space":{"description":"The pages space whose articles the portal suggests (W704).","type":["string","null"]},"name":{"type":"string"},"open_signup":{"description":"Anyone may create a portal account (else agents add customers).","type":"boolean"},"project":{"type":"string"}},"required":["project","name","intro","enabled","open_signup"],"type":["object","null"]},"queues":{"items":{"properties":{"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"project":{"type":"string"},"tql":{"type":"string"}},"required":["id","project","name","tql"],"type":"object"},"type":"array"},"types":{"items":{"properties":{"description":{"type":"string"},"enabled":{"type":"boolean"},"fields":{"items":{"properties":{"field":{"description":"description | priority | due_date | components | a custom field key. (The title is always asked.)","type":"string"},"help":{"default":"","type":"string"},"label":{"default":"","description":"What the customer sees (default: the field's name).","type":"string"},"required":{"default":false,"type":"boolean"}},"required":["field"],"type":"object"},"type":"array"},"id":{"format":"int64","type":"integer"},"kind":{"description":"The issue type key requests of this type get.","type":"string"},"name":{"type":"string"},"position":{"format":"double","type":"number"},"project":{"type":"string"}},"required":["id","project","name","description","kind","fields","position","enabled"],"type":"object"},"type":"array"}},"required":["types","queues"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/desk.type_delete":{"post":{"operationId":"desk.type_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"description":{"type":"string"},"enabled":{"type":"boolean"},"fields":{"items":{"properties":{"field":{"description":"description | priority | due_date | components | a custom field key. (The title is always asked.)","type":"string"},"help":{"default":"","type":"string"},"label":{"default":"","description":"What the customer sees (default: the field's name).","type":"string"},"required":{"default":false,"type":"boolean"}},"required":["field"],"type":"object"},"type":"array"},"id":{"format":"int64","type":"integer"},"kind":{"description":"The issue type key requests of this type get.","type":"string"},"name":{"type":"string"},"position":{"format":"double","type":"number"},"project":{"type":"string"}},"required":["id","project","name","description","kind","fields","position","enabled"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/desk.type_save":{"post":{"operationId":"desk.type_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"default":"","type":"string"},"enabled":{"default":true,"type":"boolean"},"fields":{"default":[],"items":{"properties":{"field":{"description":"description | priority | due_date | components | a custom field key. (The title is always asked.)","type":"string"},"help":{"default":"","type":"string"},"label":{"default":"","description":"What the customer sees (default: the field's name).","type":"string"},"required":{"default":false,"type":"boolean"}},"required":["field"],"type":"object"},"type":"array"},"id":{"format":"int64","type":["integer","null"]},"kind":{"description":"Issue type key.","type":"string"},"name":{"type":"string"},"position":{"format":"double","type":["number","null"]},"project":{"type":"string"}},"required":["project","name","kind"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"description":{"type":"string"},"enabled":{"type":"boolean"},"fields":{"items":{"properties":{"field":{"description":"description | priority | due_date | components | a custom field key. (The title is always asked.)","type":"string"},"help":{"default":"","type":"string"},"label":{"default":"","description":"What the customer sees (default: the field's name).","type":"string"},"required":{"default":false,"type":"boolean"}},"required":["field"],"type":"object"},"type":"array"},"id":{"format":"int64","type":"integer"},"kind":{"description":"The issue type key requests of this type get.","type":"string"},"name":{"type":"string"},"position":{"format":"double","type":"number"},"project":{"type":"string"}},"required":["id","project","name","description","kind","fields","position","enabled"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/diagrams.render":{"post":{"operationId":"diagrams.render","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"code":{"type":"string"},"kind":{"description":"plantuml","type":"string"}},"required":["kind","code"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"error":{"type":["string","null"]},"id":{"format":"int64","type":"integer"},"server":{"description":"The server that rendered it.","type":"string"},"state":{"description":"pending (being rendered) | ok | error","type":"string"},"svg":{"description":"The SVG (PlantUML draws syntax errors into it too); show it as an image, never inline.","type":"string"}},"required":["id","state","svg","server"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["diagrams:read"]}},"/api/v1/diagrams.render_result":{"post":{"operationId":"diagrams.render_result","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"error":{"type":["string","null"]},"id":{"format":"int64","type":"integer"},"ok":{"type":"boolean"},"svg":{"default":"","type":"string"}},"required":["id","ok"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"error":{"type":["string","null"]},"id":{"format":"int64","type":"integer"},"server":{"description":"The server that rendered it.","type":"string"},"state":{"description":"pending (being rendered) | ok | error","type":"string"},"svg":{"description":"The SVG (PlantUML draws syntax errors into it too); show it as an image, never inline.","type":"string"}},"required":["id","state","svg","server"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/diagrams.settings":{"post":{"operationId":"diagrams.settings","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"plantuml_enabled":{"description":"PlantUML diagrams render (their source is sent to `plantuml_server`).","type":"boolean"},"plantuml_server":{"description":"Base URL of the PlantUML server (`…/plantuml`, the part before `/svg`).","type":"string"}},"required":["plantuml_enabled","plantuml_server"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["diagrams:read"]}},"/api/v1/diagrams.settings_set":{"post":{"operationId":"diagrams.settings_set","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"plantuml_enabled":{"type":["boolean","null"]},"plantuml_server":{"type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"plantuml_enabled":{"description":"PlantUML diagrams render (their source is sent to `plantuml_server`).","type":"boolean"},"plantuml_server":{"description":"Base URL of the PlantUML server (`…/plantuml`, the part before `/svg`).","type":"string"}},"required":["plantuml_enabled","plantuml_server"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/errors.ingest":{"post":{"operationId":"errors.ingest","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"body":{"type":"string"},"headers":{"additionalProperties":true,"description":"Request headers, lowercase names (plus `token` from the query string).","type":"object"},"source":{"format":"int64","type":"integer"}},"required":["source","headers","body"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"issue":{"type":["string","null"]},"result":{"description":"created | updated | reopened | resolved | ignored | refused","type":"string"}},"required":["result"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/errors.issue":{"post":{"operationId":"errors.issue","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"count":{"format":"int64","type":"integer"},"culprit":{"type":"string"},"environment":{"type":"string"},"first_seen":{"format":"int64","type":"integer"},"last_seen":{"format":"int64","type":"integer"},"level":{"type":"string"},"provider":{"type":"string"},"resolved":{"type":"boolean"},"source":{"type":"string"},"title":{"type":"string"},"url":{"type":"string"}},"required":["source","provider","title","url","level","culprit","environment","count","first_seen","last_seen","resolved"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["errors:read"]}},"/api/v1/errors.source_delete":{"post":{"operationId":"errors.source_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"deliveries":{"format":"int64","type":"integer"},"groups":{"description":"Error groups seen.","format":"int64","type":"integer"},"hook_path":{"description":"Webhook path (after the site's address).","type":"string"},"id":{"format":"int64","type":"integer"},"kind":{"description":"Issue type for new issues (\"\" = the project's default).","type":"string"},"labels":{"description":"Labels for new issues (existing labels).","items":{"type":"string"},"type":"array"},"last_error":{"type":["string","null"]},"last_event_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"priority":{"description":"Priority for new issues (\"\" = the default).","type":"string"},"project":{"description":"Project the issues go to.","type":"string"},"provider":{"description":"sentry | datadog | rollbar","type":"string"},"reopen":{"description":"Reopen a done issue when its error happens again.","type":"boolean"}},"required":["id","provider","name","project","kind","priority","labels","reopen","created_by","created_at","deliveries","hook_path","groups"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/errors.source_save":{"post":{"operationId":"errors.source_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":["integer","null"]},"kind":{"type":["string","null"]},"labels":{"items":{"type":"string"},"type":["array","null"]},"name":{"type":["string","null"]},"priority":{"type":["string","null"]},"project":{"type":["string","null"]},"provider":{"description":"sentry | datadog | rollbar (new sources).","type":["string","null"]},"reopen":{"type":["boolean","null"]},"secret":{"description":"Sentry: the integration's client secret. Datadog and Rollbar get a generated token when omitted.","type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"secret":{"description":"The secret/token, when it was generated now (paste it into Datadog's header or Rollbar's URL).","type":["string","null"]},"source":{"properties":{"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"deliveries":{"format":"int64","type":"integer"},"groups":{"description":"Error groups seen.","format":"int64","type":"integer"},"hook_path":{"description":"Webhook path (after the site's address).","type":"string"},"id":{"format":"int64","type":"integer"},"kind":{"description":"Issue type for new issues (\"\" = the project's default).","type":"string"},"labels":{"description":"Labels for new issues (existing labels).","items":{"type":"string"},"type":"array"},"last_error":{"type":["string","null"]},"last_event_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"priority":{"description":"Priority for new issues (\"\" = the default).","type":"string"},"project":{"description":"Project the issues go to.","type":"string"},"provider":{"description":"sentry | datadog | rollbar","type":"string"},"reopen":{"description":"Reopen a done issue when its error happens again.","type":"boolean"}},"required":["id","provider","name","project","kind","priority","labels","reopen","created_by","created_at","deliveries","hook_path","groups"],"type":"object"}},"required":["source"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/errors.source_secret":{"post":{"operationId":"errors.source_secret","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"secret":{"type":"string"}},"required":["secret"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/errors.sources":{"post":{"operationId":"errors.sources","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"deliveries":{"format":"int64","type":"integer"},"groups":{"description":"Error groups seen.","format":"int64","type":"integer"},"hook_path":{"description":"Webhook path (after the site's address).","type":"string"},"id":{"format":"int64","type":"integer"},"kind":{"description":"Issue type for new issues (\"\" = the project's default).","type":"string"},"labels":{"description":"Labels for new issues (existing labels).","items":{"type":"string"},"type":"array"},"last_error":{"type":["string","null"]},"last_event_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"priority":{"description":"Priority for new issues (\"\" = the default).","type":"string"},"project":{"description":"Project the issues go to.","type":"string"},"provider":{"description":"sentry | datadog | rollbar","type":"string"},"reopen":{"description":"Reopen a done issue when its error happens again.","type":"boolean"}},"required":["id","provider","name","project","kind","priority","labels","reopen","created_by","created_at","deliveries","hook_path","groups"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["errors:read"]}},"/api/v1/export.build":{"post":{"operationId":"export.build","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"description":"What the cell passes in: members and teams live in the directory, outside the org file.","properties":{"directory":true,"id":{"format":"int64","type":"integer"}},"required":["id","directory"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/export.download":{"post":{"operationId":"export.download","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"as_url":{"default":false,"description":"A download link instead of the bytes, where the deployment serves files from their own origin.","type":"boolean"},"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"description":"Base64 of the `.tar` (empty when `url` is given).","type":"string"},"name":{"type":"string"},"url":{"description":"With `as_url`, where the deployment has a files origin: a five-minute link that downloads it.","type":["string","null"]}},"required":["name","data"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["owner"]}},"/api/v1/export.list":{"post":{"operationId":"export.list","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"counts":{"description":"What's inside: rows per table, issues, pages, files."},"created_at":{"format":"int64","type":"integer"},"error":{"type":["string","null"]},"finished_at":{"format":"int64","type":["integer","null"]},"id":{"format":"int64","type":"integer"},"requested_by":{"type":"string"},"size":{"description":"Bytes of the archive.","format":"int64","type":["integer","null"]},"state":{"description":"queued | ready | failed","type":"string"}},"required":["id","requested_by","state","created_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["owner"]}},"/api/v1/export.start":{"post":{"operationId":"export.start","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"counts":{"description":"What's inside: rows per table, issues, pages, files."},"created_at":{"format":"int64","type":"integer"},"error":{"type":["string","null"]},"finished_at":{"format":"int64","type":["integer","null"]},"id":{"format":"int64","type":"integer"},"requested_by":{"type":"string"},"size":{"description":"Bytes of the archive.","format":"int64","type":["integer","null"]},"state":{"description":"queued | ready | failed","type":"string"}},"required":["id","requested_by","state","created_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["owner"]}},"/api/v1/feedback.board_save":{"post":{"operationId":"feedback.board_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"default":"","type":"string"},"enabled":{"default":true,"type":"boolean"},"id":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"visibility":{"default":"public","description":"public | signed_in | team","type":"string"}},"required":["name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"description":{"type":"string"},"enabled":{"type":"boolean"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"position":{"format":"double","type":"number"},"visibility":{"description":"public (anyone, signed out too) | signed_in (portal accounts) | team (members only)","type":"string"}},"required":["id","name","description","visibility","enabled","position"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/feedback.boards":{"post":{"operationId":"feedback.boards","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"description":{"type":"string"},"enabled":{"type":"boolean"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"position":{"format":"double","type":"number"},"visibility":{"description":"public (anyone, signed out too) | signed_in (portal accounts) | team (members only)","type":"string"}},"required":["id","name","description","visibility","enabled","position"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["feedback:read"]}},"/api/v1/feedback.create":{"post":{"operationId":"feedback.create","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"board":{"format":"int64","type":"integer"},"body":{"default":"","type":"string"},"title":{"type":"string"}},"required":["board","title"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"author":{"description":"A member id, or `customer:<id>`.","type":"string"},"author_name":{"description":"The author's name when they're a customer.","type":["string","null"]},"board":{"format":"int64","type":"integer"},"body":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys (team views only).","items":{"type":"string"},"type":"array"},"merged_into":{"description":"Merged into this idea (its votes moved there).","format":"int64","type":["integer","null"]},"shipped_at":{"format":"int64","type":["integer","null"]},"status":{"description":"under_review | planned | in_progress | shipped | declined","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"voted":{"description":"The caller voted for it.","type":"boolean"},"votes":{"format":"int64","type":"integer"}},"required":["id","board","title","body","status","author","votes","voted","issues","created_at","updated_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["feedback:write"]}},"/api/v1/feedback.idea":{"post":{"operationId":"feedback.idea","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"comments":{"description":"Public comments (portal) or all (team): (id, author name, mine, body, internal, created_at).","items":{"maxItems":6,"minItems":6,"prefixItems":[{"format":"int64","type":"integer"},{"type":"string"},{"type":"boolean"},{"type":"string"},{"type":"boolean"},{"format":"int64","type":"integer"}],"type":"array"},"type":"array"},"idea":{"properties":{"author":{"description":"A member id, or `customer:<id>`.","type":"string"},"author_name":{"description":"The author's name when they're a customer.","type":["string","null"]},"board":{"format":"int64","type":"integer"},"body":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys (team views only).","items":{"type":"string"},"type":"array"},"merged_into":{"description":"Merged into this idea (its votes moved there).","format":"int64","type":["integer","null"]},"shipped_at":{"format":"int64","type":["integer","null"]},"status":{"description":"under_review | planned | in_progress | shipped | declined","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"voted":{"description":"The caller voted for it.","type":"boolean"},"votes":{"format":"int64","type":"integer"}},"required":["id","board","title","body","status","author","votes","voted","issues","created_at","updated_at"],"type":"object"},"voters":{"description":"Voters (team views only): member ids and customer names.","items":{"type":"string"},"type":"array"}},"required":["idea","comments","voters"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["feedback:read"]}},"/api/v1/feedback.ideas":{"post":{"operationId":"feedback.ideas","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"board":{"format":"int64","type":["integer","null"]},"q":{"default":"","type":"string"},"sort":{"default":"","description":"votes (default) | new | updated","type":"string"},"status":{"type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"author":{"description":"A member id, or `customer:<id>`.","type":"string"},"author_name":{"description":"The author's name when they're a customer.","type":["string","null"]},"board":{"format":"int64","type":"integer"},"body":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys (team views only).","items":{"type":"string"},"type":"array"},"merged_into":{"description":"Merged into this idea (its votes moved there).","format":"int64","type":["integer","null"]},"shipped_at":{"format":"int64","type":["integer","null"]},"status":{"description":"under_review | planned | in_progress | shipped | declined","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"voted":{"description":"The caller voted for it.","type":"boolean"},"votes":{"format":"int64","type":"integer"}},"required":["id","board","title","body","status","author","votes","voted","issues","created_at","updated_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["feedback:read"]}},"/api/v1/feedback.link":{"post":{"operationId":"feedback.link","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"},"issue":{"type":"string"},"linked":{"default":true,"type":"boolean"}},"required":["id","issue"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"author":{"description":"A member id, or `customer:<id>`.","type":"string"},"author_name":{"description":"The author's name when they're a customer.","type":["string","null"]},"board":{"format":"int64","type":"integer"},"body":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys (team views only).","items":{"type":"string"},"type":"array"},"merged_into":{"description":"Merged into this idea (its votes moved there).","format":"int64","type":["integer","null"]},"shipped_at":{"format":"int64","type":["integer","null"]},"status":{"description":"under_review | planned | in_progress | shipped | declined","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"voted":{"description":"The caller voted for it.","type":"boolean"},"votes":{"format":"int64","type":"integer"}},"required":["id","board","title","body","status","author","votes","voted","issues","created_at","updated_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["feedback:write"]}},"/api/v1/feedback.merge":{"post":{"operationId":"feedback.merge","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"description":"The duplicate.","format":"int64","type":"integer"},"into":{"description":"The idea it goes into (votes move there).","format":"int64","type":"integer"}},"required":["id","into"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"author":{"description":"A member id, or `customer:<id>`.","type":"string"},"author_name":{"description":"The author's name when they're a customer.","type":["string","null"]},"board":{"format":"int64","type":"integer"},"body":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys (team views only).","items":{"type":"string"},"type":"array"},"merged_into":{"description":"Merged into this idea (its votes moved there).","format":"int64","type":["integer","null"]},"shipped_at":{"format":"int64","type":["integer","null"]},"status":{"description":"under_review | planned | in_progress | shipped | declined","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"voted":{"description":"The caller voted for it.","type":"boolean"},"votes":{"format":"int64","type":"integer"}},"required":["id","board","title","body","status","author","votes","voted","issues","created_at","updated_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["feedback:write"]}},"/api/v1/feedback.portal_boards":{"post":{"operationId":"feedback.portal_boards","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"description":{"type":"string"},"enabled":{"type":"boolean"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"position":{"format":"double","type":"number"},"visibility":{"description":"public (anyone, signed out too) | signed_in (portal accounts) | team (members only)","type":"string"}},"required":["id","name","description","visibility","enabled","position"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["desk:public"]}},"/api/v1/feedback.portal_comment":{"post":{"operationId":"feedback.portal_comment","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"body":{"type":"string"},"id":{"format":"int64","type":"integer"}},"required":["id","body"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"comments":{"description":"Public comments (portal) or all (team): (id, author name, mine, body, internal, created_at).","items":{"maxItems":6,"minItems":6,"prefixItems":[{"format":"int64","type":"integer"},{"type":"string"},{"type":"boolean"},{"type":"string"},{"type":"boolean"},{"format":"int64","type":"integer"}],"type":"array"},"type":"array"},"idea":{"properties":{"author":{"description":"A member id, or `customer:<id>`.","type":"string"},"author_name":{"description":"The author's name when they're a customer.","type":["string","null"]},"board":{"format":"int64","type":"integer"},"body":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys (team views only).","items":{"type":"string"},"type":"array"},"merged_into":{"description":"Merged into this idea (its votes moved there).","format":"int64","type":["integer","null"]},"shipped_at":{"format":"int64","type":["integer","null"]},"status":{"description":"under_review | planned | in_progress | shipped | declined","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"voted":{"description":"The caller voted for it.","type":"boolean"},"votes":{"format":"int64","type":"integer"}},"required":["id","board","title","body","status","author","votes","voted","issues","created_at","updated_at"],"type":"object"},"voters":{"description":"Voters (team views only): member ids and customer names.","items":{"type":"string"},"type":"array"}},"required":["idea","comments","voters"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["desk:portal"]}},"/api/v1/feedback.portal_idea":{"post":{"operationId":"feedback.portal_idea","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"comments":{"description":"Public comments (portal) or all (team): (id, author name, mine, body, internal, created_at).","items":{"maxItems":6,"minItems":6,"prefixItems":[{"format":"int64","type":"integer"},{"type":"string"},{"type":"boolean"},{"type":"string"},{"type":"boolean"},{"format":"int64","type":"integer"}],"type":"array"},"type":"array"},"idea":{"properties":{"author":{"description":"A member id, or `customer:<id>`.","type":"string"},"author_name":{"description":"The author's name when they're a customer.","type":["string","null"]},"board":{"format":"int64","type":"integer"},"body":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys (team views only).","items":{"type":"string"},"type":"array"},"merged_into":{"description":"Merged into this idea (its votes moved there).","format":"int64","type":["integer","null"]},"shipped_at":{"format":"int64","type":["integer","null"]},"status":{"description":"under_review | planned | in_progress | shipped | declined","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"voted":{"description":"The caller voted for it.","type":"boolean"},"votes":{"format":"int64","type":"integer"}},"required":["id","board","title","body","status","author","votes","voted","issues","created_at","updated_at"],"type":"object"},"voters":{"description":"Voters (team views only): member ids and customer names.","items":{"type":"string"},"type":"array"}},"required":["idea","comments","voters"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["desk:public"]}},"/api/v1/feedback.portal_ideas":{"post":{"operationId":"feedback.portal_ideas","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"board":{"format":"int64","type":["integer","null"]},"q":{"default":"","type":"string"},"sort":{"default":"","description":"votes (default) | new | updated","type":"string"},"status":{"type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"author":{"description":"A member id, or `customer:<id>`.","type":"string"},"author_name":{"description":"The author's name when they're a customer.","type":["string","null"]},"board":{"format":"int64","type":"integer"},"body":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys (team views only).","items":{"type":"string"},"type":"array"},"merged_into":{"description":"Merged into this idea (its votes moved there).","format":"int64","type":["integer","null"]},"shipped_at":{"format":"int64","type":["integer","null"]},"status":{"description":"under_review | planned | in_progress | shipped | declined","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"voted":{"description":"The caller voted for it.","type":"boolean"},"votes":{"format":"int64","type":"integer"}},"required":["id","board","title","body","status","author","votes","voted","issues","created_at","updated_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["desk:public"]}},"/api/v1/feedback.portal_similar":{"post":{"operationId":"feedback.portal_similar","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"board":{"format":"int64","type":["integer","null"]},"text":{"type":"string"}},"required":["text"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"id":{"format":"int64","type":"integer"},"status":{"type":"string"},"title":{"type":"string"},"votes":{"format":"int64","type":"integer"}},"required":["id","title","status","votes"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["desk:public"]}},"/api/v1/feedback.portal_submit":{"post":{"operationId":"feedback.portal_submit","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"board":{"format":"int64","type":"integer"},"body":{"default":"","type":"string"},"title":{"type":"string"}},"required":["board","title"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"author":{"description":"A member id, or `customer:<id>`.","type":"string"},"author_name":{"description":"The author's name when they're a customer.","type":["string","null"]},"board":{"format":"int64","type":"integer"},"body":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys (team views only).","items":{"type":"string"},"type":"array"},"merged_into":{"description":"Merged into this idea (its votes moved there).","format":"int64","type":["integer","null"]},"shipped_at":{"format":"int64","type":["integer","null"]},"status":{"description":"under_review | planned | in_progress | shipped | declined","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"voted":{"description":"The caller voted for it.","type":"boolean"},"votes":{"format":"int64","type":"integer"}},"required":["id","board","title","body","status","author","votes","voted","issues","created_at","updated_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["desk:portal"]}},"/api/v1/feedback.portal_vote":{"post":{"operationId":"feedback.portal_vote","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"},"on":{"default":true,"description":"false takes the vote back.","type":"boolean"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"author":{"description":"A member id, or `customer:<id>`.","type":"string"},"author_name":{"description":"The author's name when they're a customer.","type":["string","null"]},"board":{"format":"int64","type":"integer"},"body":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys (team views only).","items":{"type":"string"},"type":"array"},"merged_into":{"description":"Merged into this idea (its votes moved there).","format":"int64","type":["integer","null"]},"shipped_at":{"format":"int64","type":["integer","null"]},"status":{"description":"under_review | planned | in_progress | shipped | declined","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"voted":{"description":"The caller voted for it.","type":"boolean"},"votes":{"format":"int64","type":"integer"}},"required":["id","board","title","body","status","author","votes","voted","issues","created_at","updated_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["desk:portal"]}},"/api/v1/feedback.update":{"post":{"operationId":"feedback.update","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"board":{"format":"int64","type":["integer","null"]},"body":{"type":["string","null"]},"id":{"format":"int64","type":"integer"},"status":{"type":["string","null"]},"title":{"type":["string","null"]}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"author":{"description":"A member id, or `customer:<id>`.","type":"string"},"author_name":{"description":"The author's name when they're a customer.","type":["string","null"]},"board":{"format":"int64","type":"integer"},"body":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys (team views only).","items":{"type":"string"},"type":"array"},"merged_into":{"description":"Merged into this idea (its votes moved there).","format":"int64","type":["integer","null"]},"shipped_at":{"format":"int64","type":["integer","null"]},"status":{"description":"under_review | planned | in_progress | shipped | declined","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"voted":{"description":"The caller voted for it.","type":"boolean"},"votes":{"format":"int64","type":"integer"}},"required":["id","board","title","body","status","author","votes","voted","issues","created_at","updated_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["feedback:write"]}},"/api/v1/feedback.vote":{"post":{"operationId":"feedback.vote","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"},"on":{"default":true,"description":"false takes the vote back.","type":"boolean"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"author":{"description":"A member id, or `customer:<id>`.","type":"string"},"author_name":{"description":"The author's name when they're a customer.","type":["string","null"]},"board":{"format":"int64","type":"integer"},"body":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys (team views only).","items":{"type":"string"},"type":"array"},"merged_into":{"description":"Merged into this idea (its votes moved there).","format":"int64","type":["integer","null"]},"shipped_at":{"format":"int64","type":["integer","null"]},"status":{"description":"under_review | planned | in_progress | shipped | declined","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"voted":{"description":"The caller voted for it.","type":"boolean"},"votes":{"format":"int64","type":"integer"}},"required":["id","board","title","body","status","author","votes","voted","issues","created_at","updated_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["feedback:write"]}},"/api/v1/flags.list":{"post":{"operationId":"flags.list","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"flags":{"description":"Every flag set for the org (unset flags use the code's default).","items":{"properties":{"key":{"description":"`module:<name>` or `feature:<name>`.","type":"string"},"updated_at":{"format":"int64","type":"integer"},"updated_by":{"type":"string"},"value":true},"required":["key","value","updated_by","updated_at"],"type":"object"},"type":"array"},"modules":{"description":"Every module in this cell and whether it's on for the org.","items":{"properties":{"enabled":{"type":"boolean"},"locked":{"description":"Can't be switched off.","type":"boolean"},"name":{"type":"string"}},"required":["name","enabled","locked"],"type":"object"},"type":"array"}},"required":["modules","flags"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["flags:read"]}},"/api/v1/flags.set":{"post":{"operationId":"flags.set","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"description":"`module:<name>` or `feature:<name>`.","type":"string"},"value":{"description":"JSON value (usually true/false); null clears it back to the default."}},"required":["key","value"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"key":{"description":"`module:<name>` or `feature:<name>`.","type":"string"},"updated_at":{"format":"int64","type":"integer"},"updated_by":{"type":"string"},"value":true},"required":["key","value","updated_by","updated_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/forms.evaluate":{"post":{"operationId":"forms.evaluate","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"kind":{"type":"string"},"project":{"type":"string"},"values":{"default":null,"description":"The form's current values, issue-shaped (built-ins by name, custom fields under `fields`)."}},"required":["project","kind"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":{"properties":{"default":true,"hidden":{"type":"boolean"},"options":{"description":"Only these values are allowed (null = any).","items":true,"type":["array","null"]},"readonly":{"type":"boolean"},"required":{"type":"boolean"},"rules":{"description":"Names of the rules that set this.","items":{"type":"string"},"type":"array"}},"required":["hidden","required","readonly","rules"],"type":"object"},"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/forms.rule_delete":{"post":{"operationId":"forms.rule_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/forms.rule_reorder":{"post":{"operationId":"forms.rule_reorder","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"ids":{"items":{"format":"int64","type":"integer"},"type":"array"}},"required":["ids"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"actions":{"items":{"properties":{"action":{"description":"hide | require | readonly | options | default","type":"string"},"field":{"type":"string"},"value":{"default":null,"description":"options: the allowed values; default: the value a new issue starts with."}},"required":["field","action"],"type":"object"},"type":"array"},"conditions":{"description":"All must hold (empty = always).","items":{"properties":{"field":{"description":"A built-in field (status, priority, kind, assignee, labels, components, fix_versions, due_date, start_date,\npoints, description, parent) or a custom field key.","type":"string"},"op":{"description":"is | is_not | empty | not_empty","type":"string"},"value":{"default":null,"description":"One value or a list (any of them); option keys for options, member ids for people."}},"required":["field","op"],"type":"object"},"type":"array"},"enabled":{"type":"boolean"},"id":{"format":"int64","type":"integer"},"kinds":{"description":"Issue type keys; empty = every type.","items":{"type":"string"},"type":"array"},"name":{"type":"string"},"position":{"format":"double","type":"number"},"projects":{"description":"Project keys; empty = every project.","items":{"type":"string"},"type":"array"}},"required":["id","name","projects","kinds","conditions","actions","enabled","position"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/forms.rule_save":{"post":{"operationId":"forms.rule_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"actions":{"items":{"properties":{"action":{"description":"hide | require | readonly | options | default","type":"string"},"field":{"type":"string"},"value":{"default":null,"description":"options: the allowed values; default: the value a new issue starts with."}},"required":["field","action"],"type":"object"},"type":"array"},"conditions":{"default":[],"items":{"properties":{"field":{"description":"A built-in field (status, priority, kind, assignee, labels, components, fix_versions, due_date, start_date,\npoints, description, parent) or a custom field key.","type":"string"},"op":{"description":"is | is_not | empty | not_empty","type":"string"},"value":{"default":null,"description":"One value or a list (any of them); option keys for options, member ids for people."}},"required":["field","op"],"type":"object"},"type":"array"},"enabled":{"default":true,"type":"boolean"},"id":{"format":"int64","type":["integer","null"]},"kinds":{"default":[],"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"projects":{"default":[],"items":{"type":"string"},"type":"array"}},"required":["name","actions"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"actions":{"items":{"properties":{"action":{"description":"hide | require | readonly | options | default","type":"string"},"field":{"type":"string"},"value":{"default":null,"description":"options: the allowed values; default: the value a new issue starts with."}},"required":["field","action"],"type":"object"},"type":"array"},"conditions":{"description":"All must hold (empty = always).","items":{"properties":{"field":{"description":"A built-in field (status, priority, kind, assignee, labels, components, fix_versions, due_date, start_date,\npoints, description, parent) or a custom field key.","type":"string"},"op":{"description":"is | is_not | empty | not_empty","type":"string"},"value":{"default":null,"description":"One value or a list (any of them); option keys for options, member ids for people."}},"required":["field","op"],"type":"object"},"type":"array"},"enabled":{"type":"boolean"},"id":{"format":"int64","type":"integer"},"kinds":{"description":"Issue type keys; empty = every type.","items":{"type":"string"},"type":"array"},"name":{"type":"string"},"position":{"format":"double","type":"number"},"projects":{"description":"Project keys; empty = every project.","items":{"type":"string"},"type":"array"}},"required":["id","name","projects","kinds","conditions","actions","enabled","position"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/forms.rules":{"post":{"operationId":"forms.rules","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"actions":{"items":{"properties":{"action":{"description":"hide | require | readonly | options | default","type":"string"},"field":{"type":"string"},"value":{"default":null,"description":"options: the allowed values; default: the value a new issue starts with."}},"required":["field","action"],"type":"object"},"type":"array"},"conditions":{"description":"All must hold (empty = always).","items":{"properties":{"field":{"description":"A built-in field (status, priority, kind, assignee, labels, components, fix_versions, due_date, start_date,\npoints, description, parent) or a custom field key.","type":"string"},"op":{"description":"is | is_not | empty | not_empty","type":"string"},"value":{"default":null,"description":"One value or a list (any of them); option keys for options, member ids for people."}},"required":["field","op"],"type":"object"},"type":"array"},"enabled":{"type":"boolean"},"id":{"format":"int64","type":"integer"},"kinds":{"description":"Issue type keys; empty = every type.","items":{"type":"string"},"type":"array"},"name":{"type":"string"},"position":{"format":"double","type":"number"},"projects":{"description":"Project keys; empty = every project.","items":{"type":"string"},"type":"array"}},"required":["id","name","projects","kinds","conditions","actions","enabled","position"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/git.branch":{"post":{"operationId":"git.branch","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"branch":{"type":"string"},"checkout":{"description":"The command that creates it locally.","type":"string"},"pr_title":{"type":"string"}},"required":["branch","pr_title","checkout"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["git:read"]}},"/api/v1/git.connection_create":{"post":{"operationId":"git.connection_create","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"name":{"type":"string"},"provider":{"type":"string"}},"required":["provider","name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"connection":{"properties":{"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"deliveries":{"format":"int64","type":"integer"},"hook_path":{"description":"Webhook path to give the provider (after the site's address).","type":"string"},"id":{"format":"int64","type":"integer"},"last_error":{"description":"Why the last delivery was refused (bad signature, …), if it was.","type":["string","null"]},"last_event_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"provider":{"description":"github | gitlab | bitbucket | gitea","type":"string"},"repos":{"items":{"type":"string"},"type":"array"}},"required":["id","provider","name","created_by","created_at","deliveries","hook_path","repos"],"type":"object"},"secret":{"description":"The webhook secret to paste into the provider (also readable later by admins).","type":"string"}},"required":["connection","secret"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/git.connection_delete":{"post":{"operationId":"git.connection_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"deliveries":{"format":"int64","type":"integer"},"hook_path":{"description":"Webhook path to give the provider (after the site's address).","type":"string"},"id":{"format":"int64","type":"integer"},"last_error":{"description":"Why the last delivery was refused (bad signature, …), if it was.","type":["string","null"]},"last_event_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"provider":{"description":"github | gitlab | bitbucket | gitea","type":"string"},"repos":{"items":{"type":"string"},"type":"array"}},"required":["id","provider","name","created_by","created_at","deliveries","hook_path","repos"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/git.connection_secret":{"post":{"operationId":"git.connection_secret","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"secret":{"type":"string"}},"required":["secret"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/git.connections":{"post":{"operationId":"git.connections","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"deliveries":{"format":"int64","type":"integer"},"hook_path":{"description":"Webhook path to give the provider (after the site's address).","type":"string"},"id":{"format":"int64","type":"integer"},"last_error":{"description":"Why the last delivery was refused (bad signature, …), if it was.","type":["string","null"]},"last_event_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"provider":{"description":"github | gitlab | bitbucket | gitea","type":"string"},"repos":{"items":{"type":"string"},"type":"array"}},"required":["id","provider","name","created_by","created_at","deliveries","hook_path","repos"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["git:read"]}},"/api/v1/git.dora":{"post":{"operationId":"git.dora","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"days":{"description":"Window in days (default 30).","format":"int64","type":["integer","null"]},"project":{"description":"Only deployments linked to this project's issues.","type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"change_failure_rate":{"description":"Failed share of finished production deployments, 0–1.","format":"double","type":["number","null"]},"days":{"format":"int64","type":"integer"},"deployments":{"description":"Successful production deployments in the window.","format":"int64","type":"integer"},"deployments_per_day":{"format":"double","type":"number"},"environments":{"items":{"type":"string"},"type":"array"},"lead_time_hours":{"description":"Median hours from an issue's first commit to its first successful production deployment.","format":"double","type":["number","null"]},"restore_hours":{"description":"Median hours from a failed production deployment to the next successful one in the same repo and environment.","format":"double","type":["number","null"]},"series":{"description":"[day (YYYY-MM-DD), successes, failures] per day with deployments.","items":{"maxItems":3,"minItems":3,"prefixItems":[{"type":"string"},{"format":"int64","type":"integer"},{"format":"int64","type":"integer"}],"type":"array"},"type":"array"}},"required":["days","environments","deployments","deployments_per_day","series"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["git:read"]}},"/api/v1/git.flag_link":{"post":{"operationId":"git.flag_link","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"connection":{"description":"A LaunchDarkly or Unleash connection.","format":"int64","type":"integer"},"flag":{"type":"string"},"key":{"description":"Issue key.","type":"string"},"linked":{"default":true,"description":"false removes the link.","type":"boolean"}},"required":["key","connection","flag"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"branches":{"items":{"properties":{"deleted":{"type":"boolean"},"name":{"type":"string"},"repo":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"url":{"type":"string"}},"required":["repo","name","url","deleted","updated_at"],"type":"object"},"type":"array"},"builds":{"description":"The latest run of each build (workflow, pipeline, status context), newest first.","items":{"properties":{"branch":{"type":"string"},"finished_at":{"format":"int64","type":["integer","null"]},"name":{"description":"Build name, or the deployment's environment.","type":"string"},"production":{"description":"Deployments: whether the environment counts as production.","type":"boolean"},"repo":{"type":"string"},"sha":{"type":"string"},"started_at":{"format":"int64","type":"integer"},"status":{"type":"string"},"url":{"type":"string"}},"required":["repo","name","status","sha","branch","url","started_at","production"],"type":"object"},"type":"array"},"commits":{"description":"Newest first, at most 50.","items":{"properties":{"at":{"type":"string"},"author":{"type":"string"},"branch":{"type":"string"},"message":{"type":"string"},"repo":{"type":"string"},"sha":{"type":"string"},"url":{"type":"string"}},"required":["repo","sha","message","author","url","branch","at"],"type":"object"},"type":"array"},"deployments":{"description":"The latest deployment to each environment, newest first.","items":{"properties":{"branch":{"type":"string"},"finished_at":{"format":"int64","type":["integer","null"]},"name":{"description":"Build name, or the deployment's environment.","type":"string"},"production":{"description":"Deployments: whether the environment counts as production.","type":"boolean"},"repo":{"type":"string"},"sha":{"type":"string"},"started_at":{"format":"int64","type":"integer"},"status":{"type":"string"},"url":{"type":"string"}},"required":["repo","name","status","sha","branch","url","started_at","production"],"type":"object"},"type":"array"},"flags":{"description":"Feature flags (LaunchDarkly, Unleash) linked to the issue.","items":{"properties":{"archived":{"type":"boolean"},"connection":{"format":"int64","type":"integer"},"environments":{"additionalProperties":true,"description":"environment → on","type":"object"},"key":{"type":"string"},"name":{"type":"string"},"provider":{"description":"launchdarkly | unleash","type":"string"},"updated_at":{"format":"int64","type":"integer"},"url":{"type":"string"}},"required":["connection","provider","key","name","url","environments","archived","updated_at"],"type":"object"},"type":"array"},"prs":{"items":{"properties":{"author":{"type":"string"},"base":{"type":"string"},"branch":{"type":"string"},"number":{"format":"int64","type":"integer"},"repo":{"type":"string"},"reviews":{"additionalProperties":true,"description":"reviewer → approved | changes_requested | commented","type":"object"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"url":{"type":"string"}},"required":["repo","number","title","url","state","branch","base","author","reviews","updated_at"],"type":"object"},"type":"array"}},"required":["branches","commits","prs","builds","deployments","flags"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["git:write"]}},"/api/v1/git.ingest":{"post":{"operationId":"git.ingest","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"authors":{"additionalProperties":true,"default":{},"description":"Members whose email the body mentions, `{email: {id, scopes, teams}}`, so smart commits act as their authors.","type":"object"},"body":{"description":"The raw body, as received (the signature covers it byte for byte).","type":"string"},"connection":{"format":"int64","type":"integer"},"headers":{"additionalProperties":true,"description":"Request headers, lowercase names.","type":"object"}},"required":["connection","headers","body"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"linked":{"items":{"type":"string"},"type":"array"},"result":{"description":"accepted | ignored (an event this module doesn't use) | refused (bad signature)","type":"string"}},"required":["result","linked"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/git.issue":{"post":{"operationId":"git.issue","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"branches":{"items":{"properties":{"deleted":{"type":"boolean"},"name":{"type":"string"},"repo":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"url":{"type":"string"}},"required":["repo","name","url","deleted","updated_at"],"type":"object"},"type":"array"},"builds":{"description":"The latest run of each build (workflow, pipeline, status context), newest first.","items":{"properties":{"branch":{"type":"string"},"finished_at":{"format":"int64","type":["integer","null"]},"name":{"description":"Build name, or the deployment's environment.","type":"string"},"production":{"description":"Deployments: whether the environment counts as production.","type":"boolean"},"repo":{"type":"string"},"sha":{"type":"string"},"started_at":{"format":"int64","type":"integer"},"status":{"type":"string"},"url":{"type":"string"}},"required":["repo","name","status","sha","branch","url","started_at","production"],"type":"object"},"type":"array"},"commits":{"description":"Newest first, at most 50.","items":{"properties":{"at":{"type":"string"},"author":{"type":"string"},"branch":{"type":"string"},"message":{"type":"string"},"repo":{"type":"string"},"sha":{"type":"string"},"url":{"type":"string"}},"required":["repo","sha","message","author","url","branch","at"],"type":"object"},"type":"array"},"deployments":{"description":"The latest deployment to each environment, newest first.","items":{"properties":{"branch":{"type":"string"},"finished_at":{"format":"int64","type":["integer","null"]},"name":{"description":"Build name, or the deployment's environment.","type":"string"},"production":{"description":"Deployments: whether the environment counts as production.","type":"boolean"},"repo":{"type":"string"},"sha":{"type":"string"},"started_at":{"format":"int64","type":"integer"},"status":{"type":"string"},"url":{"type":"string"}},"required":["repo","name","status","sha","branch","url","started_at","production"],"type":"object"},"type":"array"},"flags":{"description":"Feature flags (LaunchDarkly, Unleash) linked to the issue.","items":{"properties":{"archived":{"type":"boolean"},"connection":{"format":"int64","type":"integer"},"environments":{"additionalProperties":true,"description":"environment → on","type":"object"},"key":{"type":"string"},"name":{"type":"string"},"provider":{"description":"launchdarkly | unleash","type":"string"},"updated_at":{"format":"int64","type":"integer"},"url":{"type":"string"}},"required":["connection","provider","key","name","url","environments","archived","updated_at"],"type":"object"},"type":"array"},"prs":{"items":{"properties":{"author":{"type":"string"},"base":{"type":"string"},"branch":{"type":"string"},"number":{"format":"int64","type":"integer"},"repo":{"type":"string"},"reviews":{"additionalProperties":true,"description":"reviewer → approved | changes_requested | commented","type":"object"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"url":{"type":"string"}},"required":["repo","number","title","url","state","branch","base","author","reviews","updated_at"],"type":"object"},"type":"array"}},"required":["branches","commits","prs","builds","deployments","flags"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["git:read"]}},"/api/v1/git.report":{"post":{"operationId":"git.report","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"branch":{"default":"","type":"string"},"id":{"description":"Your CI's id for this run or deployment; reporting the same id again updates it.","type":"string"},"keys":{"default":[],"description":"Issue keys it delivers, besides those found in the branch, message and linked commits.","items":{"type":"string"},"type":"array"},"kind":{"description":"build | deployment","type":"string"},"message":{"default":"","type":"string"},"name":{"description":"Build name (workflow, job), or the environment for a deployment.","type":"string"},"repo":{"description":"Repository name (`acme/web`); builds and deployments reported through the API are grouped under it.","type":"string"},"sha":{"default":"","type":"string"},"status":{"description":"queued | running | success | failure | cancelled (pending for deployments); common CI words are mapped.","type":"string"},"url":{"default":"","type":"string"}},"required":["repo","kind","id","name","status"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"linked":{"items":{"type":"string"},"type":"array"}},"required":["linked"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["git:write"]}},"/api/v1/git.settings":{"post":{"operationId":"git.settings","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"branch_template":{"description":"Branch name for \"branch from issue\": {key}, {summary} (the title as a slug), {type}, {project}.","type":"string"},"merge_status":{"description":"When a linked PR merges, move its issues to this status key (\"\" = don't; \"@done\" = the project's first done lane).","type":"string"},"pr_template":{"description":"Pull request title: {key}, {title}, {type}, {project}.","type":"string"},"production_envs":{"default":"production,prod,live","description":"Comma-separated environment names that count as production (DORA metrics, release badges).","type":"string"},"smart_commits":{"description":"Run `#comment`, `#time` and `#<transition>` commands in commit messages, as the member whose email wrote the commit.","type":"boolean"}},"required":["smart_commits","merge_status","branch_template","pr_template"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["git:read"]}},"/api/v1/git.settings_save":{"post":{"operationId":"git.settings_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"branch_template":{"description":"Branch name for \"branch from issue\": {key}, {summary} (the title as a slug), {type}, {project}.","type":"string"},"merge_status":{"description":"When a linked PR merges, move its issues to this status key (\"\" = don't; \"@done\" = the project's first done lane).","type":"string"},"pr_template":{"description":"Pull request title: {key}, {title}, {type}, {project}.","type":"string"},"production_envs":{"default":"production,prod,live","description":"Comma-separated environment names that count as production (DORA metrics, release badges).","type":"string"},"smart_commits":{"description":"Run `#comment`, `#time` and `#<transition>` commands in commit messages, as the member whose email wrote the commit.","type":"boolean"}},"required":["smart_commits","merge_status","branch_template","pr_template"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"branch_template":{"description":"Branch name for \"branch from issue\": {key}, {summary} (the title as a slug), {type}, {project}.","type":"string"},"merge_status":{"description":"When a linked PR merges, move its issues to this status key (\"\" = don't; \"@done\" = the project's first done lane).","type":"string"},"pr_template":{"description":"Pull request title: {key}, {title}, {type}, {project}.","type":"string"},"production_envs":{"default":"production,prod,live","description":"Comma-separated environment names that count as production (DORA metrics, release badges).","type":"string"},"smart_commits":{"description":"Run `#comment`, `#time` and `#<transition>` commands in commit messages, as the member whose email wrote the commit.","type":"boolean"}},"required":["smart_commits","merge_status","branch_template","pr_template"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/git.version_deployments":{"post":{"operationId":"git.version_deployments","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"project":{"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["project","version"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"deployed":{"description":"Of the version's fix issues, how many have a successful deployment here.","format":"int64","type":"integer"},"environment":{"type":"string"},"issues":{"format":"int64","type":"integer"},"last_at":{"format":"int64","type":"integer"},"last_status":{"type":"string"},"production":{"type":"boolean"}},"required":["environment","production","deployed","issues","last_status","last_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["git:read"]}},"/api/v1/imports.cancel":{"post":{"operationId":"imports.cancel","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"base_url":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"error":{"type":["string","null"]},"finished_at":{"format":"int64","type":["integer","null"]},"id":{"format":"int64","type":"integer"},"log":{"description":"The latest lines (≤ 200).","items":{"type":"string"},"type":"array"},"name":{"type":"string"},"options":true,"pending":{"description":"Requests still queued.","format":"int64","type":"integer"},"source":{"description":"jira","type":"string"},"started_at":{"format":"int64","type":["integer","null"]},"state":{"description":"queued | running | done | failed | cancelled","type":"string"},"stats":{"description":"Counts so far (projects, issues, comments, attachments, …)."}},"required":["id","source","name","base_url","options","state","stats","log","pending","created_by","created_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/imports.history":{"post":{"operationId":"imports.history","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"at":{"format":"int64","type":"integer"},"author":{"type":"string"},"field":{"type":"string"},"from_value":{"type":"string"},"to_value":{"type":"string"}},"required":["at","author","field","from_value","to_value"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/imports.next":{"post":{"operationId":"imports.next","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"run":{"format":"int64","type":"integer"}},"required":["run"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"binary":{"description":"Answer bytes as base64 (attachments).","type":"boolean"},"body":{"type":["string","null"]},"done":{"type":"boolean"},"headers":{"description":"[name, value] pairs, credentials included (cell-internal).","items":{"maxItems":2,"minItems":2,"prefixItems":[{"type":"string"},{"type":"string"}],"type":"array"},"type":"array"},"method":{"type":"string"},"task":{"format":"int64","type":["integer","null"]},"url":{"type":"string"}},"required":["done","url","method","binary","headers"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/imports.resume":{"post":{"operationId":"imports.resume","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"run":{"format":"int64","type":"integer"}},"required":["run"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"done":{"type":"boolean"}},"required":["done"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/imports.runs":{"post":{"operationId":"imports.runs","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"base_url":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"error":{"type":["string","null"]},"finished_at":{"format":"int64","type":["integer","null"]},"id":{"format":"int64","type":"integer"},"log":{"description":"The latest lines (≤ 200).","items":{"type":"string"},"type":"array"},"name":{"type":"string"},"options":true,"pending":{"description":"Requests still queued.","format":"int64","type":"integer"},"source":{"description":"jira","type":"string"},"started_at":{"format":"int64","type":["integer","null"]},"state":{"description":"queued | running | done | failed | cancelled","type":"string"},"stats":{"description":"Counts so far (projects, issues, comments, attachments, …)."}},"required":["id","source","name","base_url","options","state","stats","log","pending","created_by","created_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/imports.start":{"post":{"operationId":"imports.start","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"attachments":{"default":true,"description":"Bring attachments (≤ 10 MB each).","type":"boolean"},"base_url":{"default":"","description":"The site, e.g. https://acme.atlassian.net or your Data Center address. Others: empty for the public service\n(or your GitHub Enterprise API address).","type":"string"},"email":{"default":"","description":"Jira/Confluence Cloud: your Atlassian account email (with an API token); Data Center: empty, with a personal access\ntoken. Trello: your API key (with a token).","type":"string"},"projects":{"default":[],"description":"What to bring: Jira project keys, Confluence space keys, GitHub `owner/repo`s, Linear team keys, Trello board ids,\nAsana project ids. Empty = all the token can see (not for GitHub and Trello; Notion: every page shared with the\nintegration, into one space named by the first entry).","items":{"type":"string"},"type":"array"},"source":{"description":"jira | confluence | github | linear | trello | asana | notion","type":"string"},"token":{"default":"","description":"Empty for a public site that allows anonymous reads.","type":"string"}},"required":["source"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"base_url":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"error":{"type":["string","null"]},"finished_at":{"format":"int64","type":["integer","null"]},"id":{"format":"int64","type":"integer"},"log":{"description":"The latest lines (≤ 200).","items":{"type":"string"},"type":"array"},"name":{"type":"string"},"options":true,"pending":{"description":"Requests still queued.","format":"int64","type":"integer"},"source":{"description":"jira","type":"string"},"started_at":{"format":"int64","type":["integer","null"]},"state":{"description":"queued | running | done | failed | cancelled","type":"string"},"stats":{"description":"Counts so far (projects, issues, comments, attachments, …)."}},"required":["id","source","name","base_url","options","state","stats","log","pending","created_by","created_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/imports.step":{"post":{"operationId":"imports.step","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"body":{"default":"","description":"Text, or base64 for binary tasks.","type":"string"},"error":{"description":"Why there was no answer.","type":["string","null"]},"members":{"additionalProperties":true,"default":{},"description":"The org's members `{email: id}`, to match people.","type":"object"},"run":{"format":"int64","type":"integer"},"status":{"description":"HTTP status (0 = no answer).","format":"int64","type":"integer"},"task":{"format":"int64","type":"integer"},"teams":{"additionalProperties":true,"default":{},"description":"The org's teams `{name: id}`, to match groups.","type":"object"}},"required":["run","task","status"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"done":{"type":"boolean"}},"required":["done"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/imports.sync_save":{"post":{"operationId":"imports.sync_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"direction":{"description":"both | in","type":["string","null"]},"every":{"format":"int64","type":["integer","null"]},"id":{"format":"int64","type":"integer"},"paused":{"description":"Paused: nothing is polled or sent; changes made here wait in the queue.","type":["boolean","null"]},"statuses":{"additionalProperties":true,"type":["object","null"]}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"base_url":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"error":{"type":["string","null"]},"finished_at":{"format":"int64","type":["integer","null"]},"id":{"format":"int64","type":"integer"},"log":{"description":"The latest lines (≤ 200).","items":{"type":"string"},"type":"array"},"name":{"type":"string"},"options":true,"pending":{"description":"Requests still queued.","format":"int64","type":"integer"},"source":{"description":"jira","type":"string"},"started_at":{"format":"int64","type":["integer","null"]},"state":{"description":"queued | running | done | failed | cancelled","type":"string"},"stats":{"description":"Counts so far (projects, issues, comments, attachments, …)."}},"required":["id","source","name","base_url","options","state","stats","log","pending","created_by","created_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/imports.sync_start":{"post":{"operationId":"imports.sync_start","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"attachments":{"default":true,"description":"Bring attachments (≤ 10 MB each).","type":"boolean"},"base_url":{"description":"The Jira site: https://acme.atlassian.net or your Data Center address.","type":"string"},"direction":{"default":"both","description":"both | in (Jira → here only).","type":"string"},"email":{"default":"","description":"Cloud: your Atlassian account email (with an API token); Data Center: empty, with a personal access token.","type":"string"},"every":{"description":"Seconds between polls (60–3600, default 120).","format":"int64","type":["integer","null"]},"jira_project":{"description":"The Jira project key.","type":"string"},"project":{"default":"","description":"A project here to link instead (issues matched by number); empty = the Jira project is imported first.","type":"string"},"statuses":{"additionalProperties":true,"default":{},"description":"Jira status name → lane name here, where they differ.","type":"object"},"token":{"default":"","description":"Needed to write to Jira; empty only for a read-only mirror (`direction: in`) of a public site.","type":"string"}},"required":["base_url","jira_project"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"base_url":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"error":{"type":["string","null"]},"finished_at":{"format":"int64","type":["integer","null"]},"id":{"format":"int64","type":"integer"},"log":{"description":"The latest lines (≤ 200).","items":{"type":"string"},"type":"array"},"name":{"type":"string"},"options":true,"pending":{"description":"Requests still queued.","format":"int64","type":"integer"},"source":{"description":"jira","type":"string"},"started_at":{"format":"int64","type":["integer","null"]},"state":{"description":"queued | running | done | failed | cancelled","type":"string"},"stats":{"description":"Counts so far (projects, issues, comments, attachments, …)."}},"required":["id","source","name","base_url","options","state","stats","log","pending","created_by","created_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/imports.users":{"post":{"operationId":"imports.users","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"run":{"format":"int64","type":"integer"}},"required":["run"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"email":{"type":"string"},"ext":{"type":"string"},"member":{"description":"The member they were matched to (by email), if any.","type":["string","null"]},"name":{"type":"string"}},"required":["ext","name","email"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/incidents.declare":{"post":{"operationId":"incidents.declare","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"commander":{"description":"Member id (default: whoever declares it).","type":["string","null"]},"issues":{"default":[],"description":"Issue keys it touches.","items":{"type":"string"},"type":"array"},"severity":{"description":"A severity key (default: the least severe).","type":["string","null"]},"summary":{"default":"","type":"string"},"title":{"type":"string"}},"required":["title"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"incident":{"properties":{"commander":{"description":"The incident commander (a member id).","type":["string","null"]},"created_by":{"type":"string"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys.","items":{"type":"string"},"type":"array"},"last_update_at":{"description":"When the last status update was posted.","format":"int64","type":"integer"},"postmortem":{"description":"Its postmortem page (W706).","type":["string","null"]},"resolved_at":{"format":"int64","type":["integer","null"]},"severity":{"type":"string"},"started_at":{"format":"int64","type":"integer"},"status":{"description":"investigating | identified | monitoring | resolved","type":"string"},"summary":{"type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","title","severity","status","summary","created_by","started_at","updated_at","last_update_at","issues"],"type":"object"},"pages":{"description":"Paging attempts: (provider name, action, state, error, at).","items":{"maxItems":5,"minItems":5,"prefixItems":[{"type":"string"},{"type":"string"},{"type":"string"},{"type":["string","null"]},{"format":"int64","type":"integer"}],"type":"array"},"type":"array"},"timeline":{"items":{"properties":{"at":{"format":"int64","type":"integer"},"author":{"type":"string"},"body":{"type":"string"},"id":{"format":"int64","type":"integer"},"kind":{"description":"declared | status | severity | commander | update | note | link | page | resolved | reopened","type":"string"},"public":{"description":"Status updates meant for everyone (a status page, W710); notes and changes are internal.","type":"boolean"}},"required":["id","at","kind","author","body","public"],"type":"object"},"type":"array"}},"required":["incident","timeline","pages"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["incidents:write"]}},"/api/v1/incidents.get":{"post":{"operationId":"incidents.get","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"incident":{"properties":{"commander":{"description":"The incident commander (a member id).","type":["string","null"]},"created_by":{"type":"string"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys.","items":{"type":"string"},"type":"array"},"last_update_at":{"description":"When the last status update was posted.","format":"int64","type":"integer"},"postmortem":{"description":"Its postmortem page (W706).","type":["string","null"]},"resolved_at":{"format":"int64","type":["integer","null"]},"severity":{"type":"string"},"started_at":{"format":"int64","type":"integer"},"status":{"description":"investigating | identified | monitoring | resolved","type":"string"},"summary":{"type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","title","severity","status","summary","created_by","started_at","updated_at","last_update_at","issues"],"type":"object"},"pages":{"description":"Paging attempts: (provider name, action, state, error, at).","items":{"maxItems":5,"minItems":5,"prefixItems":[{"type":"string"},{"type":"string"},{"type":"string"},{"type":["string","null"]},{"format":"int64","type":"integer"}],"type":"array"},"type":"array"},"timeline":{"items":{"properties":{"at":{"format":"int64","type":"integer"},"author":{"type":"string"},"body":{"type":"string"},"id":{"format":"int64","type":"integer"},"kind":{"description":"declared | status | severity | commander | update | note | link | page | resolved | reopened","type":"string"},"public":{"description":"Status updates meant for everyone (a status page, W710); notes and changes are internal.","type":"boolean"}},"required":["id","at","kind","author","body","public"],"type":"object"},"type":"array"}},"required":["incident","timeline","pages"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["incidents:read"]}},"/api/v1/incidents.link":{"post":{"operationId":"incidents.link","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"},"key":{"type":"string"},"linked":{"default":true,"description":"false unlinks.","type":"boolean"}},"required":["id","key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"incident":{"properties":{"commander":{"description":"The incident commander (a member id).","type":["string","null"]},"created_by":{"type":"string"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys.","items":{"type":"string"},"type":"array"},"last_update_at":{"description":"When the last status update was posted.","format":"int64","type":"integer"},"postmortem":{"description":"Its postmortem page (W706).","type":["string","null"]},"resolved_at":{"format":"int64","type":["integer","null"]},"severity":{"type":"string"},"started_at":{"format":"int64","type":"integer"},"status":{"description":"investigating | identified | monitoring | resolved","type":"string"},"summary":{"type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","title","severity","status","summary","created_by","started_at","updated_at","last_update_at","issues"],"type":"object"},"pages":{"description":"Paging attempts: (provider name, action, state, error, at).","items":{"maxItems":5,"minItems":5,"prefixItems":[{"type":"string"},{"type":"string"},{"type":"string"},{"type":["string","null"]},{"format":"int64","type":"integer"}],"type":"array"},"type":"array"},"timeline":{"items":{"properties":{"at":{"format":"int64","type":"integer"},"author":{"type":"string"},"body":{"type":"string"},"id":{"format":"int64","type":"integer"},"kind":{"description":"declared | status | severity | commander | update | note | link | page | resolved | reopened","type":"string"},"public":{"description":"Status updates meant for everyone (a status page, W710); notes and changes are internal.","type":"boolean"}},"required":["id","at","kind","author","body","public"],"type":"object"},"type":"array"}},"required":["incident","timeline","pages"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["incidents:write"]}},"/api/v1/incidents.list":{"post":{"operationId":"incidents.list","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"open":{"default":false,"description":"Only open ones (not resolved).","type":"boolean"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"commander":{"description":"The incident commander (a member id).","type":["string","null"]},"created_by":{"type":"string"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys.","items":{"type":"string"},"type":"array"},"last_update_at":{"description":"When the last status update was posted.","format":"int64","type":"integer"},"postmortem":{"description":"Its postmortem page (W706).","type":["string","null"]},"resolved_at":{"format":"int64","type":["integer","null"]},"severity":{"type":"string"},"started_at":{"format":"int64","type":"integer"},"status":{"description":"investigating | identified | monitoring | resolved","type":"string"},"summary":{"type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","title","severity","status","summary","created_by","started_at","updated_at","last_update_at","issues"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["incidents:read"]}},"/api/v1/incidents.note":{"post":{"operationId":"incidents.note","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"body":{"type":"string"},"id":{"format":"int64","type":"integer"}},"required":["id","body"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"incident":{"properties":{"commander":{"description":"The incident commander (a member id).","type":["string","null"]},"created_by":{"type":"string"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys.","items":{"type":"string"},"type":"array"},"last_update_at":{"description":"When the last status update was posted.","format":"int64","type":"integer"},"postmortem":{"description":"Its postmortem page (W706).","type":["string","null"]},"resolved_at":{"format":"int64","type":["integer","null"]},"severity":{"type":"string"},"started_at":{"format":"int64","type":"integer"},"status":{"description":"investigating | identified | monitoring | resolved","type":"string"},"summary":{"type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","title","severity","status","summary","created_by","started_at","updated_at","last_update_at","issues"],"type":"object"},"pages":{"description":"Paging attempts: (provider name, action, state, error, at).","items":{"maxItems":5,"minItems":5,"prefixItems":[{"type":"string"},{"type":"string"},{"type":"string"},{"type":["string","null"]},{"format":"int64","type":"integer"}],"type":"array"},"type":"array"},"timeline":{"items":{"properties":{"at":{"format":"int64","type":"integer"},"author":{"type":"string"},"body":{"type":"string"},"id":{"format":"int64","type":"integer"},"kind":{"description":"declared | status | severity | commander | update | note | link | page | resolved | reopened","type":"string"},"public":{"description":"Status updates meant for everyone (a status page, W710); notes and changes are internal.","type":"boolean"}},"required":["id","at","kind","author","body","public"],"type":"object"},"type":"array"}},"required":["incident","timeline","pages"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["incidents:write"]}},"/api/v1/incidents.page":{"post":{"operationId":"incidents.page","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"incident":{"properties":{"commander":{"description":"The incident commander (a member id).","type":["string","null"]},"created_by":{"type":"string"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys.","items":{"type":"string"},"type":"array"},"last_update_at":{"description":"When the last status update was posted.","format":"int64","type":"integer"},"postmortem":{"description":"Its postmortem page (W706).","type":["string","null"]},"resolved_at":{"format":"int64","type":["integer","null"]},"severity":{"type":"string"},"started_at":{"format":"int64","type":"integer"},"status":{"description":"investigating | identified | monitoring | resolved","type":"string"},"summary":{"type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","title","severity","status","summary","created_by","started_at","updated_at","last_update_at","issues"],"type":"object"},"pages":{"description":"Paging attempts: (provider name, action, state, error, at).","items":{"maxItems":5,"minItems":5,"prefixItems":[{"type":"string"},{"type":"string"},{"type":"string"},{"type":["string","null"]},{"format":"int64","type":"integer"}],"type":"array"},"type":"array"},"timeline":{"items":{"properties":{"at":{"format":"int64","type":"integer"},"author":{"type":"string"},"body":{"type":"string"},"id":{"format":"int64","type":"integer"},"kind":{"description":"declared | status | severity | commander | update | note | link | page | resolved | reopened","type":"string"},"public":{"description":"Status updates meant for everyone (a status page, W710); notes and changes are internal.","type":"boolean"}},"required":["id","at","kind","author","body","public"],"type":"object"},"type":"array"}},"required":["incident","timeline","pages"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["incidents:write"]}},"/api/v1/incidents.page_request":{"post":{"operationId":"incidents.page_request","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"body":{"type":"string"},"gone":{"description":"Nothing to send (the pager or incident is gone).","type":"boolean"},"headers":{"items":{"maxItems":2,"minItems":2,"prefixItems":[{"type":"string"},{"type":"string"}],"type":"array"},"type":"array"},"method":{"type":"string"},"url":{"type":"string"}},"required":["gone","method","url","headers","body"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/incidents.page_result":{"post":{"operationId":"incidents.page_result","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"body":{"default":"","type":"string"},"error":{"type":["string","null"]},"id":{"format":"int64","type":"integer"},"status":{"format":"int64","type":"integer"}},"required":["id","status"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"ok":{"type":"boolean"}},"required":["ok"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/incidents.pager_delete":{"post":{"operationId":"incidents.pager_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"enabled":{"type":"boolean"},"id":{"format":"int64","type":"integer"},"last_error":{"type":["string","null"]},"name":{"type":"string"},"provider":{"description":"pagerduty | opsgenie","type":"string"},"region":{"description":"Opsgenie: us | eu.","type":"string"},"severities":{"description":"Severities it pages for (empty = every severity marked “page”).","items":{"type":"string"},"type":"array"}},"required":["id","provider","name","region","severities","enabled"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/incidents.pager_save":{"post":{"operationId":"incidents.pager_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"enabled":{"type":["boolean","null"]},"id":{"format":"int64","type":["integer","null"]},"key":{"description":"PagerDuty: an Events API v2 integration (routing) key. Opsgenie: an API integration key. Left out keeps it.","type":["string","null"]},"name":{"type":["string","null"]},"provider":{"description":"pagerduty | opsgenie","type":["string","null"]},"region":{"type":["string","null"]},"severities":{"items":{"type":"string"},"type":["array","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"enabled":{"type":"boolean"},"id":{"format":"int64","type":"integer"},"last_error":{"type":["string","null"]},"name":{"type":"string"},"provider":{"description":"pagerduty | opsgenie","type":"string"},"region":{"description":"Opsgenie: us | eu.","type":"string"},"severities":{"description":"Severities it pages for (empty = every severity marked “page”).","items":{"type":"string"},"type":"array"}},"required":["id","provider","name","region","severities","enabled"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/incidents.pagers":{"post":{"operationId":"incidents.pagers","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"enabled":{"type":"boolean"},"id":{"format":"int64","type":"integer"},"last_error":{"type":["string","null"]},"name":{"type":"string"},"provider":{"description":"pagerduty | opsgenie","type":"string"},"region":{"description":"Opsgenie: us | eu.","type":"string"},"severities":{"description":"Severities it pages for (empty = every severity marked “page”).","items":{"type":"string"},"type":"array"}},"required":["id","provider","name","region","severities","enabled"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/incidents.postmortem":{"post":{"operationId":"incidents.postmortem","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"ai":{"default":false,"description":"Let the org's AI draft the summary and a root-cause hypothesis.","type":"boolean"},"id":{"format":"int64","type":"integer"},"space":{"description":"The pages space to write it in.","type":"string"}},"required":["id","space"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"ai_note":{"description":"Why the AI part was skipped, if it was.","type":["string","null"]},"created":{"description":"Made now (false: the incident already had one).","type":"boolean"},"page":{"description":"The page (a draft until someone publishes it).","type":"string"}},"required":["page","created"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["incidents:write"]}},"/api/v1/incidents.severities":{"post":{"operationId":"incidents.severities","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"color":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"page":{"description":"Declaring (or raising to) this severity pages on-call.","type":"boolean"},"position":{"format":"double","type":"number"},"update_minutes":{"description":"Remind the commander when no update was posted for this long (0 = never).","format":"int64","type":"integer"}},"required":["key","name","color","page","update_minutes","position"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["incidents:read"]}},"/api/v1/incidents.severity_delete":{"post":{"operationId":"incidents.severity_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"color":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"page":{"description":"Declaring (or raising to) this severity pages on-call.","type":"boolean"},"position":{"format":"double","type":"number"},"update_minutes":{"description":"Remind the commander when no update was posted for this long (0 = never).","format":"int64","type":"integer"}},"required":["key","name","color","page","update_minutes","position"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/incidents.severity_save":{"post":{"operationId":"incidents.severity_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"color":{"default":"","type":"string"},"key":{"description":"Omit to make one (from the name).","type":["string","null"]},"name":{"type":"string"},"page":{"default":false,"type":"boolean"},"position":{"format":"double","type":["number","null"]},"update_minutes":{"default":0,"format":"int64","type":"integer"}},"required":["name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"color":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"page":{"description":"Declaring (or raising to) this severity pages on-call.","type":"boolean"},"position":{"format":"double","type":"number"},"update_minutes":{"description":"Remind the commander when no update was posted for this long (0 = never).","format":"int64","type":"integer"}},"required":["key","name","color","page","update_minutes","position"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/incidents.update":{"post":{"operationId":"incidents.update","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"commander":{"description":"Member id; empty clears.","type":["string","null"]},"id":{"format":"int64","type":"integer"},"message":{"description":"A status update for the timeline.","type":["string","null"]},"public":{"description":"The update is public (for a status page); default true.","type":["boolean","null"]},"severity":{"type":["string","null"]},"status":{"description":"investigating | identified | monitoring | resolved","type":["string","null"]},"summary":{"type":["string","null"]},"title":{"type":["string","null"]}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"incident":{"properties":{"commander":{"description":"The incident commander (a member id).","type":["string","null"]},"created_by":{"type":"string"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Linked issue keys.","items":{"type":"string"},"type":"array"},"last_update_at":{"description":"When the last status update was posted.","format":"int64","type":"integer"},"postmortem":{"description":"Its postmortem page (W706).","type":["string","null"]},"resolved_at":{"format":"int64","type":["integer","null"]},"severity":{"type":"string"},"started_at":{"format":"int64","type":"integer"},"status":{"description":"investigating | identified | monitoring | resolved","type":"string"},"summary":{"type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","title","severity","status","summary","created_by","started_at","updated_at","last_update_at","issues"],"type":"object"},"pages":{"description":"Paging attempts: (provider name, action, state, error, at).","items":{"maxItems":5,"minItems":5,"prefixItems":[{"type":"string"},{"type":"string"},{"type":"string"},{"type":["string","null"]},{"format":"int64","type":"integer"}],"type":"array"},"type":"array"},"timeline":{"items":{"properties":{"at":{"format":"int64","type":"integer"},"author":{"type":"string"},"body":{"type":"string"},"id":{"format":"int64","type":"integer"},"kind":{"description":"declared | status | severity | commander | update | note | link | page | resolved | reopened","type":"string"},"public":{"description":"Status updates meant for everyone (a status page, W710); notes and changes are internal.","type":"boolean"}},"required":["id","at","kind","author","body","public"],"type":"object"},"type":"array"}},"required":["incident","timeline","pages"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["incidents:write"]}},"/api/v1/issues.assign":{"post":{"operationId":"issues.assign","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"assignee":{"description":"Member id; empty string unassigns.","type":"string"},"base":{"default":null,"description":"The assignee you saw (null = unassigned); see `issues.update` `base`.","type":["string","null"]},"key":{"type":"string"}},"required":["key","assignee"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"affects_versions":{"items":{"type":"string"},"type":"array"},"assignee":{"type":["string","null"]},"category":{"description":"The lane's category: todo | in_progress | done.","type":"string"},"children":{"description":"Children (issues whose parent this is).","format":"int64","type":"integer"},"components":{"items":{"type":"string"},"type":"array"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"description":{"type":"string"},"description_doc":{"description":"The description as a rich document (TipTap JSON); null when there's only the markdown `description`.","type":["string","null"]},"due_date":{"description":"YYYY-MM-DD","type":["string","null"]},"epic":{"description":"Key of the epic (level-1 ancestor: the parent, or a sub-task's grandparent).","type":["string","null"]},"fields":{"additionalProperties":true,"description":"Custom field values by key, formulas computed.","type":"object"},"fix_versions":{"items":{"type":"string"},"type":"array"},"id":{"description":"Internal id; comments use the subject `issue:{id}`.","format":"int64","type":"integer"},"key":{"description":"`{project}-{number}`, e.g. \"KB-12\".","type":"string"},"kind":{"type":"string"},"labels":{"description":"Label keys.","items":{"type":"string"},"type":"array"},"notices":{"description":"Only on `issues.update` / `issues.assign` answers: fields someone else changed since `base` that yours replaced.","items":{"description":"\"Someone also changed this\": a field another person changed after you loaded the issue, which your change replaced.","properties":{"at":{"format":"int64","type":["integer","null"]},"by":{"description":"Who set theirs, and when (from the issue's history; null if unknown).","type":["string","null"]},"field":{"description":"Issue field name, or `fields.<key>` for a custom field.","type":"string"},"theirs":{"description":"What they had set (send it back to undo yours)."},"yours":true},"required":["field","theirs","yours"],"type":"object"},"type":"array"},"number":{"format":"int64","type":"integer"},"parent":{"description":"Key of the parent issue (one hierarchy level up).","type":["string","null"]},"points":{"description":"Story points.","format":"double","type":["number","null"]},"priority":{"type":"string"},"project":{"type":"string"},"rank":{"description":"Backlog order within the project: sort by this text, ascending (see `issues.rank`). Null until the backfill runs.","type":["string","null"]},"recurring":{"description":"day | week | month when this issue is a recurring template.","type":["string","null"]},"resolution":{"description":"Resolution key; set while in a done lane.","type":["string","null"]},"resolved_at":{"format":"int64","type":["integer","null"]},"security":{"description":"Security level id: only its members (plus the reporter, assignee and admins) see the issue. Null = the project's viewers.","format":"int64","type":["integer","null"]},"sprint":{"description":"Sprint id; null = backlog.","format":"int64","type":["integer","null"]},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]},"status":{"description":"Lane key within the project.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"votes":{"format":"int64","type":"integer"},"watchers":{"format":"int64","type":"integer"}},"required":["id","key","project","number","title","description","status","category","priority","kind","created_by","created_at","updated_at","labels","components","fix_versions","affects_versions","votes","watchers","children","fields","notices"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.board_get":{"post":{"operationId":"issues.board_get","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"project":{"type":"string"}},"required":["project"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"description":"The caller may change this (project admins).","type":"boolean"},"card_fields":{"description":"Which of key, kind, priority, labels, epic, parent, points, assignee, due cards show.","items":{"type":"string"},"type":"array"},"project":{"type":"string"},"quick_filters":{"items":{"properties":{"name":{"type":"string"},"tql":{"description":"TQL, ANDed with the project (and with other active quick filters).","type":"string"}},"required":["name","tql"],"type":"object"},"type":"array"},"swimlanes":{"description":"none | assignee | epic | priority","type":"string"},"wip":{"additionalProperties":{"format":"int64","type":"integer"},"description":"Status key → most cards that column should hold (a warning, never a block).","type":"object"}},"required":["project","swimlanes","quick_filters","card_fields","wip","can_edit"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.board_save":{"post":{"operationId":"issues.board_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"card_fields":{"items":{"type":"string"},"type":"array"},"project":{"type":"string"},"quick_filters":{"items":{"properties":{"name":{"type":"string"},"tql":{"description":"TQL, ANDed with the project (and with other active quick filters).","type":"string"}},"required":["name","tql"],"type":"object"},"type":"array"},"swimlanes":{"type":"string"},"wip":{"additionalProperties":{"format":"int64","type":"integer"},"type":"object"}},"required":["project","swimlanes","quick_filters","card_fields","wip"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"description":"The caller may change this (project admins).","type":"boolean"},"card_fields":{"description":"Which of key, kind, priority, labels, epic, parent, points, assignee, due cards show.","items":{"type":"string"},"type":"array"},"project":{"type":"string"},"quick_filters":{"items":{"properties":{"name":{"type":"string"},"tql":{"description":"TQL, ANDed with the project (and with other active quick filters).","type":"string"}},"required":["name","tql"],"type":"object"},"type":"array"},"swimlanes":{"description":"none | assignee | epic | priority","type":"string"},"wip":{"additionalProperties":{"format":"int64","type":"integer"},"description":"Status key → most cards that column should hold (a warning, never a block).","type":"object"}},"required":["project","swimlanes","quick_filters","card_fields","wip","can_edit"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.bulk":{"post":{"operationId":"issues.bulk","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"assignee":{"description":"Member id; \"\" unassigns.","type":["string","null"]},"delete":{"description":"Delete them (sub-tasks go with their parents).","type":["boolean","null"]},"dry_run":{"default":false,"description":"Work it out and show what would change, then roll it all back.","type":"boolean"},"fields":{"additionalProperties":true,"description":"Custom field values to set on each.","type":["object","null"]},"fix_versions_add":{"description":"Version names to add as fix versions.","items":{"type":"string"},"type":["array","null"]},"keys":{"description":"Issue keys to change (max 500). All changes apply or none do.","items":{"type":"string"},"type":"array"},"labels_add":{"items":{"type":"string"},"type":["array","null"]},"labels_remove":{"items":{"type":"string"},"type":["array","null"]},"move_to":{"description":"Move them to this project.","type":["string","null"]},"parent":{"default":null,"description":"Parent key; null clears.","type":["string","null"]},"priority":{"type":["string","null"]},"resolution":{"type":["string","null"]},"sprint":{"default":null,"description":"Sprint id; null = backlog.","format":"int64","type":["integer","null"]},"status":{"type":["string","null"]}},"required":["keys"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"format":"int64","type":"integer"},"preview":{"description":"dry_run: what each affected issue would look like.","items":{"properties":{"changes":{"additionalProperties":true,"description":"field → {from, to}","type":"object"},"deleted":{"description":"It would be deleted.","type":"boolean"},"key":{"description":"The issue's key now (before the change).","type":"string"},"title":{"type":"string"}},"required":["key","title","deleted","changes"],"type":"object"},"type":["array","null"]},"undo":{"description":"Pass to `issues.bulk_undo` until `undo_until` to put everything back.","format":"int64","type":["integer","null"]},"undo_until":{"format":"int64","type":["integer","null"]},"updated":{"description":"Keys after the change (moved issues have new keys).","items":{"type":"string"},"type":"array"}},"required":["updated","deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.bulk_undo":{"post":{"operationId":"issues.bulk_undo","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"force":{"default":false,"description":"Undo even over changes made to these issues since (they're lost).","type":"boolean"},"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"restored":{"description":"Issues put back as they were.","items":{"type":"string"},"type":"array"}},"required":["restored"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.bulk_undos":{"post":{"operationId":"issues.bulk_undos","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"created_at":{"format":"int64","type":"integer"},"expires_at":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"summary":{"type":"string"}},"required":["id","summary","created_at","expires_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.burndown":{"post":{"operationId":"issues.burndown","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"days":{"description":"One entry per day from the start through today (or the end); days without changes carry the last snapshot.","items":{"properties":{"day":{"description":"YYYY-MM-DD","type":"string"},"remaining_issues":{"format":"int64","type":"integer"},"remaining_points":{"format":"double","type":"number"},"scope_issues":{"format":"int64","type":"integer"},"scope_points":{"format":"double","type":"number"}},"required":["day","scope_points","remaining_points","scope_issues","remaining_issues"],"type":"object"},"type":"array"},"sprint":{"properties":{"committed_points":{"description":"Points in the sprint when it started (velocity: committed).","format":"double","type":["number","null"]},"completed_at":{"format":"int64","type":["integer","null"]},"completed_points":{"description":"Points done when it completed (velocity: completed).","format":"double","type":["number","null"]},"created_at":{"format":"int64","type":"integer"},"done_issues":{"format":"int64","type":"integer"},"done_points":{"format":"double","type":"number"},"end_date":{"type":["string","null"]},"goal":{"type":"string"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Current contents.","format":"int64","type":"integer"},"name":{"type":"string"},"points":{"format":"double","type":"number"},"project":{"type":"string"},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]},"state":{"description":"planned | active | closed","type":"string"}},"required":["id","project","name","goal","state","created_at","issues","points","done_issues","done_points"],"type":"object"}},"required":["sprint","days"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.calendar_feed_delete":{"post":{"operationId":"issues.calendar_feed_delete","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.calendar_feed_rotate":{"post":{"operationId":"issues.calendar_feed_rotate","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"feed":{"properties":{"created_at":{"format":"int64","type":"integer"},"due":{"type":"boolean"},"id":{"format":"int64","type":"integer"},"last_fetched_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"projects":{"description":"Sprints and releases of these projects (empty = every project you can see).","items":{"type":"string"},"type":"array"},"releases":{"type":"boolean"},"sprints":{"type":"boolean"},"tql":{"description":"Which issues' due dates (empty = every issue you can see that has one).","type":"string"}},"required":["id","name","tql","projects","due","sprints","releases","created_at"],"type":"object"},"path":{"description":"The feed's address after the site's: `/cal/{org}/{token}.ics`. Shown once; rotate to get a new one.","type":["string","null"]}},"required":["feed"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.calendar_feed_save":{"post":{"operationId":"issues.calendar_feed_save","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"due":{"type":["boolean","null"]},"id":{"format":"int64","type":["integer","null"]},"name":{"type":["string","null"]},"projects":{"items":{"type":"string"},"type":["array","null"]},"releases":{"type":["boolean","null"]},"sprints":{"type":["boolean","null"]},"tql":{"type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"feed":{"properties":{"created_at":{"format":"int64","type":"integer"},"due":{"type":"boolean"},"id":{"format":"int64","type":"integer"},"last_fetched_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"projects":{"description":"Sprints and releases of these projects (empty = every project you can see).","items":{"type":"string"},"type":"array"},"releases":{"type":"boolean"},"sprints":{"type":"boolean"},"tql":{"description":"Which issues' due dates (empty = every issue you can see that has one).","type":"string"}},"required":["id","name","tql","projects","due","sprints","releases","created_at"],"type":"object"},"path":{"description":"The feed's address after the site's: `/cal/{org}/{token}.ics`. Shown once; rotate to get a new one.","type":["string","null"]}},"required":["feed"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.calendar_feeds":{"post":{"operationId":"issues.calendar_feeds","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"created_at":{"format":"int64","type":"integer"},"due":{"type":"boolean"},"id":{"format":"int64","type":"integer"},"last_fetched_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"projects":{"description":"Sprints and releases of these projects (empty = every project you can see).","items":{"type":"string"},"type":"array"},"releases":{"type":"boolean"},"sprints":{"type":"boolean"},"tql":{"description":"Which issues' due dates (empty = every issue you can see that has one).","type":"string"}},"required":["id","name","tql","projects","due","sprints","releases","created_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.calendar_ics":{"post":{"operationId":"issues.calendar_ics","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"origin":{"default":"","description":"The site's address, for issue links.","type":"string"},"token":{"type":"string"}},"required":["token"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"ics":{"type":"string"}},"required":["ics"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.calendar_owner":{"post":{"operationId":"issues.calendar_owner","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"origin":{"default":"","description":"The site's address, for issue links.","type":"string"},"token":{"type":"string"}},"required":["token"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"member":{"type":"string"}},"required":["member"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/issues.carry_over":{"post":{"operationId":"issues.carry_over","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"affects_versions":{"items":{"type":"string"},"type":"array"},"assignee":{"type":["string","null"]},"category":{"description":"The lane's category: todo | in_progress | done.","type":"string"},"children":{"description":"Children (issues whose parent this is).","format":"int64","type":"integer"},"components":{"items":{"type":"string"},"type":"array"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"description":{"type":"string"},"description_doc":{"description":"The description as a rich document (TipTap JSON); null when there's only the markdown `description`.","type":["string","null"]},"due_date":{"description":"YYYY-MM-DD","type":["string","null"]},"epic":{"description":"Key of the epic (level-1 ancestor: the parent, or a sub-task's grandparent).","type":["string","null"]},"fields":{"additionalProperties":true,"description":"Custom field values by key, formulas computed.","type":"object"},"fix_versions":{"items":{"type":"string"},"type":"array"},"id":{"description":"Internal id; comments use the subject `issue:{id}`.","format":"int64","type":"integer"},"key":{"description":"`{project}-{number}`, e.g. \"KB-12\".","type":"string"},"kind":{"type":"string"},"labels":{"description":"Label keys.","items":{"type":"string"},"type":"array"},"notices":{"description":"Only on `issues.update` / `issues.assign` answers: fields someone else changed since `base` that yours replaced.","items":{"description":"\"Someone also changed this\": a field another person changed after you loaded the issue, which your change replaced.","properties":{"at":{"format":"int64","type":["integer","null"]},"by":{"description":"Who set theirs, and when (from the issue's history; null if unknown).","type":["string","null"]},"field":{"description":"Issue field name, or `fields.<key>` for a custom field.","type":"string"},"theirs":{"description":"What they had set (send it back to undo yours)."},"yours":true},"required":["field","theirs","yours"],"type":"object"},"type":"array"},"number":{"format":"int64","type":"integer"},"parent":{"description":"Key of the parent issue (one hierarchy level up).","type":["string","null"]},"points":{"description":"Story points.","format":"double","type":["number","null"]},"priority":{"type":"string"},"project":{"type":"string"},"rank":{"description":"Backlog order within the project: sort by this text, ascending (see `issues.rank`). Null until the backfill runs.","type":["string","null"]},"recurring":{"description":"day | week | month when this issue is a recurring template.","type":["string","null"]},"resolution":{"description":"Resolution key; set while in a done lane.","type":["string","null"]},"resolved_at":{"format":"int64","type":["integer","null"]},"security":{"description":"Security level id: only its members (plus the reporter, assignee and admins) see the issue. Null = the project's viewers.","format":"int64","type":["integer","null"]},"sprint":{"description":"Sprint id; null = backlog.","format":"int64","type":["integer","null"]},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]},"status":{"description":"Lane key within the project.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"votes":{"format":"int64","type":"integer"},"watchers":{"format":"int64","type":"integer"}},"required":["id","key","project","number","title","description","status","category","priority","kind","created_by","created_at","updated_at","labels","components","fix_versions","affects_versions","votes","watchers","children","fields","notices"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.clone":{"post":{"operationId":"issues.clone","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"},"links":{"description":"Copy the original's links (default false). The clone is always linked to it (\"clones\").","type":["boolean","null"]},"subtasks":{"description":"Clone sub-tasks too (default true).","type":["boolean","null"]},"title":{"description":"Defaults to \"CLONE - <title>\".","type":["string","null"]}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"affects_versions":{"items":{"type":"string"},"type":"array"},"assignee":{"type":["string","null"]},"category":{"description":"The lane's category: todo | in_progress | done.","type":"string"},"children":{"description":"Children (issues whose parent this is).","format":"int64","type":"integer"},"components":{"items":{"type":"string"},"type":"array"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"description":{"type":"string"},"description_doc":{"description":"The description as a rich document (TipTap JSON); null when there's only the markdown `description`.","type":["string","null"]},"due_date":{"description":"YYYY-MM-DD","type":["string","null"]},"epic":{"description":"Key of the epic (level-1 ancestor: the parent, or a sub-task's grandparent).","type":["string","null"]},"fields":{"additionalProperties":true,"description":"Custom field values by key, formulas computed.","type":"object"},"fix_versions":{"items":{"type":"string"},"type":"array"},"id":{"description":"Internal id; comments use the subject `issue:{id}`.","format":"int64","type":"integer"},"key":{"description":"`{project}-{number}`, e.g. \"KB-12\".","type":"string"},"kind":{"type":"string"},"labels":{"description":"Label keys.","items":{"type":"string"},"type":"array"},"notices":{"description":"Only on `issues.update` / `issues.assign` answers: fields someone else changed since `base` that yours replaced.","items":{"description":"\"Someone also changed this\": a field another person changed after you loaded the issue, which your change replaced.","properties":{"at":{"format":"int64","type":["integer","null"]},"by":{"description":"Who set theirs, and when (from the issue's history; null if unknown).","type":["string","null"]},"field":{"description":"Issue field name, or `fields.<key>` for a custom field.","type":"string"},"theirs":{"description":"What they had set (send it back to undo yours)."},"yours":true},"required":["field","theirs","yours"],"type":"object"},"type":"array"},"number":{"format":"int64","type":"integer"},"parent":{"description":"Key of the parent issue (one hierarchy level up).","type":["string","null"]},"points":{"description":"Story points.","format":"double","type":["number","null"]},"priority":{"type":"string"},"project":{"type":"string"},"rank":{"description":"Backlog order within the project: sort by this text, ascending (see `issues.rank`). Null until the backfill runs.","type":["string","null"]},"recurring":{"description":"day | week | month when this issue is a recurring template.","type":["string","null"]},"resolution":{"description":"Resolution key; set while in a done lane.","type":["string","null"]},"resolved_at":{"format":"int64","type":["integer","null"]},"security":{"description":"Security level id: only its members (plus the reporter, assignee and admins) see the issue. Null = the project's viewers.","format":"int64","type":["integer","null"]},"sprint":{"description":"Sprint id; null = backlog.","format":"int64","type":["integer","null"]},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]},"status":{"description":"Lane key within the project.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"votes":{"format":"int64","type":"integer"},"watchers":{"format":"int64","type":"integer"}},"required":["id","key","project","number","title","description","status","category","priority","kind","created_by","created_at","updated_at","labels","components","fix_versions","affects_versions","votes","watchers","children","fields","notices"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.component_delete":{"post":{"operationId":"issues.component_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"},"move_to":{"description":"Issues move to this version instead of losing it.","format":"int64","type":["integer","null"]}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.component_save":{"post":{"operationId":"issues.component_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"default_assignee":{"description":"Member id; \"\" clears.","type":["string","null"]},"description":{"type":["string","null"]},"id":{"description":"Omit to create.","format":"int64","type":["integer","null"]},"lead":{"description":"Member id; \"\" clears.","type":["string","null"]},"name":{"type":["string","null"]},"project":{"description":"Required to create.","type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"default_assignee":{"description":"New issues with this component and no assignee go to this member.","type":["string","null"]},"description":{"type":"string"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Issues with this component.","format":"int64","type":"integer"},"lead":{"type":["string","null"]},"name":{"type":"string"},"project":{"type":"string"}},"required":["id","project","name","description","issues"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.components":{"post":{"operationId":"issues.components","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"project":{"type":"string"}},"required":["project"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"default_assignee":{"description":"New issues with this component and no assignee go to this member.","type":["string","null"]},"description":{"type":"string"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Issues with this component.","format":"int64","type":"integer"},"lead":{"type":["string","null"]},"name":{"type":"string"},"project":{"type":"string"}},"required":["id","project","name","description","issues"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.create":{"post":{"operationId":"issues.create","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"affects_versions":{"items":{"type":"string"},"type":["array","null"]},"assignee":{"description":"Member id. Defaults to a component's default assignee.","type":["string","null"]},"components":{"description":"Component names of the project.","items":{"type":"string"},"type":["array","null"]},"description":{"description":"Markdown (what search, TQL, mentions and agents read).","type":["string","null"]},"description_doc":{"description":"The same description as a rich document (TipTap JSON, as the web editor writes it); optional.","type":["string","null"]},"due_date":{"description":"YYYY-MM-DD","type":["string","null"]},"fields":{"additionalProperties":true,"description":"Custom field values by field key (see `issues.fields`). Fields left out get their default.","type":["object","null"]},"fix_versions":{"description":"Version names of the project.","items":{"type":"string"},"type":["array","null"]},"kind":{"description":"Defaults to the first type.","type":["string","null"]},"labels":{"description":"Label keys.","items":{"type":"string"},"type":["array","null"]},"parent":{"description":"Key of the parent: an issue of the type one level up (a story's epic, a sub-task's story).","type":["string","null"]},"points":{"format":"double","type":["number","null"]},"priority":{"description":"Defaults to the last (least urgent) priority.","type":["string","null"]},"project":{"description":"Project key, e.g. \"KB\".","type":"string"},"security":{"description":"Security level id (you must be one of its members).","format":"int64","type":["integer","null"]},"sprint":{"description":"Ignored for sub-tasks, which follow their parent.","format":"int64","type":["integer","null"]},"start_date":{"description":"YYYY-MM-DD, on or before the due date (the timeline draws start → due).","type":["string","null"]},"status":{"description":"A lane key of the project; defaults to its first \"todo\" lane.","type":["string","null"]},"title":{"type":"string"}},"required":["project","title"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"affects_versions":{"items":{"type":"string"},"type":"array"},"assignee":{"type":["string","null"]},"category":{"description":"The lane's category: todo | in_progress | done.","type":"string"},"children":{"description":"Children (issues whose parent this is).","format":"int64","type":"integer"},"components":{"items":{"type":"string"},"type":"array"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"description":{"type":"string"},"description_doc":{"description":"The description as a rich document (TipTap JSON); null when there's only the markdown `description`.","type":["string","null"]},"due_date":{"description":"YYYY-MM-DD","type":["string","null"]},"epic":{"description":"Key of the epic (level-1 ancestor: the parent, or a sub-task's grandparent).","type":["string","null"]},"fields":{"additionalProperties":true,"description":"Custom field values by key, formulas computed.","type":"object"},"fix_versions":{"items":{"type":"string"},"type":"array"},"id":{"description":"Internal id; comments use the subject `issue:{id}`.","format":"int64","type":"integer"},"key":{"description":"`{project}-{number}`, e.g. \"KB-12\".","type":"string"},"kind":{"type":"string"},"labels":{"description":"Label keys.","items":{"type":"string"},"type":"array"},"notices":{"description":"Only on `issues.update` / `issues.assign` answers: fields someone else changed since `base` that yours replaced.","items":{"description":"\"Someone also changed this\": a field another person changed after you loaded the issue, which your change replaced.","properties":{"at":{"format":"int64","type":["integer","null"]},"by":{"description":"Who set theirs, and when (from the issue's history; null if unknown).","type":["string","null"]},"field":{"description":"Issue field name, or `fields.<key>` for a custom field.","type":"string"},"theirs":{"description":"What they had set (send it back to undo yours)."},"yours":true},"required":["field","theirs","yours"],"type":"object"},"type":"array"},"number":{"format":"int64","type":"integer"},"parent":{"description":"Key of the parent issue (one hierarchy level up).","type":["string","null"]},"points":{"description":"Story points.","format":"double","type":["number","null"]},"priority":{"type":"string"},"project":{"type":"string"},"rank":{"description":"Backlog order within the project: sort by this text, ascending (see `issues.rank`). Null until the backfill runs.","type":["string","null"]},"recurring":{"description":"day | week | month when this issue is a recurring template.","type":["string","null"]},"resolution":{"description":"Resolution key; set while in a done lane.","type":["string","null"]},"resolved_at":{"format":"int64","type":["integer","null"]},"security":{"description":"Security level id: only its members (plus the reporter, assignee and admins) see the issue. Null = the project's viewers.","format":"int64","type":["integer","null"]},"sprint":{"description":"Sprint id; null = backlog.","format":"int64","type":["integer","null"]},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]},"status":{"description":"Lane key within the project.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"votes":{"format":"int64","type":"integer"},"watchers":{"format":"int64","type":"integer"}},"required":["id","key","project","number","title","description","status","category","priority","kind","created_by","created_at","updated_at","labels","components","fix_versions","affects_versions","votes","watchers","children","fields","notices"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.dashboard_delete":{"post":{"operationId":"issues.dashboard_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.dashboard_get":{"post":{"operationId":"issues.dashboard_get","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"created_at":{"format":"int64","type":"integer"},"editors":{"items":{"type":"string"},"type":"array"},"gadgets":{"items":{"properties":{"config":{"properties":{"days":{"description":"created_resolved: days back (7-365, default 30).","format":"int64","type":["integer","null"]},"field":{"description":"pie: what to slice by; two_d: rows. status | priority | type | assignee | labels | components | epic","type":["string","null"]},"filter":{"description":"…or a saved filter's id (its TQL).","format":"int64","type":["integer","null"]},"key":{"type":["string","null"]},"limit":{"description":"filter: rows shown (default 10, max 50).","format":"int64","type":["integer","null"]},"plugin":{"description":"plugin (W614): the plugin and its gadget's key; the web renders it through `plugins.render`.","type":["string","null"]},"project":{"description":"sprint_health: the project whose active sprint it shows.","type":["string","null"]},"tql":{"description":"TQL the gadget reads (with the reader's permissions)…","type":["string","null"]},"x":{"description":"two_d: columns.","type":["string","null"]}},"type":"object"},"id":{"description":"Stable within the dashboard (the web makes one).","type":"string"},"title":{"type":"string"},"type":{"description":"filter | pie | two_d | created_resolved | sprint_health | plugin","type":"string"},"width":{"default":"half","description":"half | full","type":"string"}},"required":["id","type","title","config"],"type":"object"},"type":"array"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"owner":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"viewers":{"description":"Who else sees it (`everyone`, `admins`, `team:<id>`, member ids). Empty = only the owner.","items":{"type":"string"},"type":"array"}},"required":["id","name","owner","viewers","editors","gadgets","can_edit","created_at","updated_at"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.dashboard_save":{"post":{"operationId":"issues.dashboard_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"editors":{"default":[],"items":{"type":"string"},"type":"array"},"gadgets":{"default":[],"items":{"properties":{"config":{"properties":{"days":{"description":"created_resolved: days back (7-365, default 30).","format":"int64","type":["integer","null"]},"field":{"description":"pie: what to slice by; two_d: rows. status | priority | type | assignee | labels | components | epic","type":["string","null"]},"filter":{"description":"…or a saved filter's id (its TQL).","format":"int64","type":["integer","null"]},"key":{"type":["string","null"]},"limit":{"description":"filter: rows shown (default 10, max 50).","format":"int64","type":["integer","null"]},"plugin":{"description":"plugin (W614): the plugin and its gadget's key; the web renders it through `plugins.render`.","type":["string","null"]},"project":{"description":"sprint_health: the project whose active sprint it shows.","type":["string","null"]},"tql":{"description":"TQL the gadget reads (with the reader's permissions)…","type":["string","null"]},"x":{"description":"two_d: columns.","type":["string","null"]}},"type":"object"},"id":{"description":"Stable within the dashboard (the web makes one).","type":"string"},"title":{"type":"string"},"type":{"description":"filter | pie | two_d | created_resolved | sprint_health | plugin","type":"string"},"width":{"default":"half","description":"half | full","type":"string"}},"required":["id","type","title","config"],"type":"object"},"type":"array"},"id":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"viewers":{"default":[],"items":{"type":"string"},"type":"array"}},"required":["name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"created_at":{"format":"int64","type":"integer"},"editors":{"items":{"type":"string"},"type":"array"},"gadgets":{"items":{"properties":{"config":{"properties":{"days":{"description":"created_resolved: days back (7-365, default 30).","format":"int64","type":["integer","null"]},"field":{"description":"pie: what to slice by; two_d: rows. status | priority | type | assignee | labels | components | epic","type":["string","null"]},"filter":{"description":"…or a saved filter's id (its TQL).","format":"int64","type":["integer","null"]},"key":{"type":["string","null"]},"limit":{"description":"filter: rows shown (default 10, max 50).","format":"int64","type":["integer","null"]},"plugin":{"description":"plugin (W614): the plugin and its gadget's key; the web renders it through `plugins.render`.","type":["string","null"]},"project":{"description":"sprint_health: the project whose active sprint it shows.","type":["string","null"]},"tql":{"description":"TQL the gadget reads (with the reader's permissions)…","type":["string","null"]},"x":{"description":"two_d: columns.","type":["string","null"]}},"type":"object"},"id":{"description":"Stable within the dashboard (the web makes one).","type":"string"},"title":{"type":"string"},"type":{"description":"filter | pie | two_d | created_resolved | sprint_health | plugin","type":"string"},"width":{"default":"half","description":"half | full","type":"string"}},"required":["id","type","title","config"],"type":"object"},"type":"array"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"owner":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"viewers":{"description":"Who else sees it (`everyone`, `admins`, `team:<id>`, member ids). Empty = only the owner.","items":{"type":"string"},"type":"array"}},"required":["id","name","owner","viewers","editors","gadgets","can_edit","created_at","updated_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.dashboards":{"post":{"operationId":"issues.dashboards","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"can_edit":{"type":"boolean"},"created_at":{"format":"int64","type":"integer"},"editors":{"items":{"type":"string"},"type":"array"},"gadgets":{"items":{"properties":{"config":{"properties":{"days":{"description":"created_resolved: days back (7-365, default 30).","format":"int64","type":["integer","null"]},"field":{"description":"pie: what to slice by; two_d: rows. status | priority | type | assignee | labels | components | epic","type":["string","null"]},"filter":{"description":"…or a saved filter's id (its TQL).","format":"int64","type":["integer","null"]},"key":{"type":["string","null"]},"limit":{"description":"filter: rows shown (default 10, max 50).","format":"int64","type":["integer","null"]},"plugin":{"description":"plugin (W614): the plugin and its gadget's key; the web renders it through `plugins.render`.","type":["string","null"]},"project":{"description":"sprint_health: the project whose active sprint it shows.","type":["string","null"]},"tql":{"description":"TQL the gadget reads (with the reader's permissions)…","type":["string","null"]},"x":{"description":"two_d: columns.","type":["string","null"]}},"type":"object"},"id":{"description":"Stable within the dashboard (the web makes one).","type":"string"},"title":{"type":"string"},"type":{"description":"filter | pie | two_d | created_resolved | sprint_health | plugin","type":"string"},"width":{"default":"half","description":"half | full","type":"string"}},"required":["id","type","title","config"],"type":"object"},"type":"array"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"owner":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"viewers":{"description":"Who else sees it (`everyone`, `admins`, `team:<id>`, member ids). Empty = only the owner.","items":{"type":"string"},"type":"array"}},"required":["id","name","owner","viewers","editors","gadgets","can_edit","created_at","updated_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.delete":{"post":{"operationId":"issues.delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"description":"Issue key, e.g. \"KB-12\". Keys from before a move still work.","type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.field_delete":{"post":{"operationId":"issues.field_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/issues.field_save":{"post":{"operationId":"issues.field_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"default_value":{"default":null,"description":"null clears."},"description":{"type":["string","null"]},"formula":{"type":["string","null"]},"id":{"description":"Omit to create.","format":"int64","type":["integer","null"]},"key":{"description":"Create only; derived from the name when omitted.","type":["string","null"]},"kinds":{"items":{"type":"string"},"type":["array","null"]},"name":{"type":["string","null"]},"options":{"items":{"description":"One choice of a select / multiselect / cascade field; `children` are the second-level choices of a cascade.","properties":{"children":{"default":[],"items":{"type":"string"},"type":"array"},"value":{"type":"string"}},"required":["value"],"type":"object"},"type":["array","null"]},"position":{"format":"double","type":["number","null"]},"projects":{"items":{"type":"string"},"type":["array","null"]},"required":{"type":["boolean","null"]},"type":{"description":"Create only. text | textarea | number | select | multiselect | cascade | user | users | date | url | labels | formula","type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"default_value":{"description":"Value new issues start with."},"description":{"type":"string"},"formula":{"description":"Formula fields: arithmetic over number fields and `points`, e.g. `{reach} * {impact} / {points}`.","type":"string"},"id":{"format":"int64","type":"integer"},"key":{"description":"Stable key used in `fields` on issues.","type":"string"},"kinds":{"description":"Issue type keys that use this field; empty = all.","items":{"type":"string"},"type":"array"},"name":{"type":"string"},"options":{"description":"Choices for select, multiselect and cascade.","items":{"description":"One choice of a select / multiselect / cascade field; `children` are the second-level choices of a cascade.","properties":{"children":{"default":[],"items":{"type":"string"},"type":"array"},"value":{"type":"string"}},"required":["value"],"type":"object"},"type":"array"},"position":{"format":"double","type":"number"},"projects":{"description":"Project keys that use this field; empty = all.","items":{"type":"string"},"type":"array"},"required":{"type":"boolean"},"type":{"description":"text | textarea | number | select | multiselect | cascade | user | users | date | url | labels | formula","type":"string"}},"required":["id","key","name","type","description","options","kinds","projects","required","formula","position"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/issues.fields":{"post":{"operationId":"issues.fields","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"default_value":{"description":"Value new issues start with."},"description":{"type":"string"},"formula":{"description":"Formula fields: arithmetic over number fields and `points`, e.g. `{reach} * {impact} / {points}`.","type":"string"},"id":{"format":"int64","type":"integer"},"key":{"description":"Stable key used in `fields` on issues.","type":"string"},"kinds":{"description":"Issue type keys that use this field; empty = all.","items":{"type":"string"},"type":"array"},"name":{"type":"string"},"options":{"description":"Choices for select, multiselect and cascade.","items":{"description":"One choice of a select / multiselect / cascade field; `children` are the second-level choices of a cascade.","properties":{"children":{"default":[],"items":{"type":"string"},"type":"array"},"value":{"type":"string"}},"required":["value"],"type":"object"},"type":"array"},"position":{"format":"double","type":"number"},"projects":{"description":"Project keys that use this field; empty = all.","items":{"type":"string"},"type":"array"},"required":{"type":"boolean"},"type":{"description":"text | textarea | number | select | multiselect | cascade | user | users | date | url | labels | formula","type":"string"}},"required":["id","key","name","type","description","options","kinds","projects","required","formula","position"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.filter_delete":{"post":{"operationId":"issues.filter_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.filter_run":{"post":{"operationId":"issues.filter_run","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"description":"Runs a saved filter as the caller (their permissions apply), optionally within one project.","properties":{"id":{"format":"int64","type":"integer"},"limit":{"format":"int64","type":["integer","null"]},"offset":{"format":"int64","type":["integer","null"]},"project":{"description":"Only this project's issues (boards pass theirs).","type":["string","null"]}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"issues":{"items":{"properties":{"affects_versions":{"items":{"type":"string"},"type":"array"},"assignee":{"type":["string","null"]},"category":{"description":"The lane's category: todo | in_progress | done.","type":"string"},"children":{"description":"Children (issues whose parent this is).","format":"int64","type":"integer"},"components":{"items":{"type":"string"},"type":"array"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"description":{"type":"string"},"description_doc":{"description":"The description as a rich document (TipTap JSON); null when there's only the markdown `description`.","type":["string","null"]},"due_date":{"description":"YYYY-MM-DD","type":["string","null"]},"epic":{"description":"Key of the epic (level-1 ancestor: the parent, or a sub-task's grandparent).","type":["string","null"]},"fields":{"additionalProperties":true,"description":"Custom field values by key, formulas computed.","type":"object"},"fix_versions":{"items":{"type":"string"},"type":"array"},"id":{"description":"Internal id; comments use the subject `issue:{id}`.","format":"int64","type":"integer"},"key":{"description":"`{project}-{number}`, e.g. \"KB-12\".","type":"string"},"kind":{"type":"string"},"labels":{"description":"Label keys.","items":{"type":"string"},"type":"array"},"notices":{"description":"Only on `issues.update` / `issues.assign` answers: fields someone else changed since `base` that yours replaced.","items":{"description":"\"Someone also changed this\": a field another person changed after you loaded the issue, which your change replaced.","properties":{"at":{"format":"int64","type":["integer","null"]},"by":{"description":"Who set theirs, and when (from the issue's history; null if unknown).","type":["string","null"]},"field":{"description":"Issue field name, or `fields.<key>` for a custom field.","type":"string"},"theirs":{"description":"What they had set (send it back to undo yours)."},"yours":true},"required":["field","theirs","yours"],"type":"object"},"type":"array"},"number":{"format":"int64","type":"integer"},"parent":{"description":"Key of the parent issue (one hierarchy level up).","type":["string","null"]},"points":{"description":"Story points.","format":"double","type":["number","null"]},"priority":{"type":"string"},"project":{"type":"string"},"rank":{"description":"Backlog order within the project: sort by this text, ascending (see `issues.rank`). Null until the backfill runs.","type":["string","null"]},"recurring":{"description":"day | week | month when this issue is a recurring template.","type":["string","null"]},"resolution":{"description":"Resolution key; set while in a done lane.","type":["string","null"]},"resolved_at":{"format":"int64","type":["integer","null"]},"security":{"description":"Security level id: only its members (plus the reporter, assignee and admins) see the issue. Null = the project's viewers.","format":"int64","type":["integer","null"]},"sprint":{"description":"Sprint id; null = backlog.","format":"int64","type":["integer","null"]},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]},"status":{"description":"Lane key within the project.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"votes":{"format":"int64","type":"integer"},"watchers":{"format":"int64","type":"integer"}},"required":["id","key","project","number","title","description","status","category","priority","kind","created_by","created_at","updated_at","labels","components","fix_versions","affects_versions","votes","watchers","children","fields","notices"],"type":"object"},"type":"array"},"limit":{"format":"int64","type":"integer"},"offset":{"format":"int64","type":"integer"},"total":{"description":"Every match you can see.","format":"int64","type":"integer"}},"required":["issues","total","offset","limit"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.filter_save":{"post":{"operationId":"issues.filter_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":["string","null"]},"editors":{"items":{"type":"string"},"type":["array","null"]},"id":{"description":"Omit to create.","format":"int64","type":["integer","null"]},"name":{"type":["string","null"]},"tql":{"description":"TQL; checked when saved.","type":["string","null"]},"viewers":{"items":{"type":"string"},"type":["array","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"description":"The caller may change it.","type":"boolean"},"created_at":{"format":"int64","type":"integer"},"description":{"type":"string"},"editors":{"description":"Who else may change or delete it (same entries).","items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"owner":{"type":"string"},"tql":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"viewers":{"description":"Who else sees it: `everyone`, `admins`, `team:<id>`, member ids. Empty = only the owner.","items":{"type":"string"},"type":"array"}},"required":["id","name","description","tql","owner","viewers","editors","can_edit","created_at","updated_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.filter_subs":{"post":{"operationId":"issues.filter_subs","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"filter":{"description":"Only subscriptions to this filter.","format":"int64","type":["integer","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"at":{"description":"HH:MM in the subscriber's own time.","type":"string"},"every":{"description":"daily | weekdays | weekly","type":"string"},"filter":{"format":"int64","type":"integer"},"filter_name":{"type":"string"},"id":{"format":"int64","type":"integer"},"last_sent":{"description":"The subscriber's local date of the last email.","type":["string","null"]},"skip_empty":{"description":"Send nothing when the filter matches no issues.","type":"boolean"},"tz_offset":{"description":"Minutes behind UTC (the browser's `getTimezoneOffset()`).","format":"int64","type":"integer"},"weekday":{"description":"weekly: 0 Sunday … 6 Saturday.","format":"int64","type":["integer","null"]}},"required":["id","filter","filter_name","every","at","tz_offset","skip_empty"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.filter_subscribe":{"post":{"operationId":"issues.filter_subscribe","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"at":{"description":"HH:MM, 24-hour, your own time.","type":"string"},"every":{"description":"daily | weekdays | weekly","type":"string"},"filter":{"format":"int64","type":"integer"},"id":{"description":"Omit to subscribe; give one of yours to change it.","format":"int64","type":["integer","null"]},"skip_empty":{"default":true,"type":"boolean"},"tz_offset":{"default":0,"format":"int64","type":"integer"},"weekday":{"description":"weekly: 0 Sunday … 6 Saturday (default Monday).","format":"int64","type":["integer","null"]}},"required":["filter","every","at"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"at":{"description":"HH:MM in the subscriber's own time.","type":"string"},"every":{"description":"daily | weekdays | weekly","type":"string"},"filter":{"format":"int64","type":"integer"},"filter_name":{"type":"string"},"id":{"format":"int64","type":"integer"},"last_sent":{"description":"The subscriber's local date of the last email.","type":["string","null"]},"skip_empty":{"description":"Send nothing when the filter matches no issues.","type":"boolean"},"tz_offset":{"description":"Minutes behind UTC (the browser's `getTimezoneOffset()`).","format":"int64","type":"integer"},"weekday":{"description":"weekly: 0 Sunday … 6 Saturday.","format":"int64","type":["integer","null"]}},"required":["id","filter","filter_name","every","at","tz_offset","skip_empty"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.filter_unsubscribe":{"post":{"operationId":"issues.filter_unsubscribe","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.filters":{"post":{"operationId":"issues.filters","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"can_edit":{"description":"The caller may change it.","type":"boolean"},"created_at":{"format":"int64","type":"integer"},"description":{"type":"string"},"editors":{"description":"Who else may change or delete it (same entries).","items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"owner":{"type":"string"},"tql":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"viewers":{"description":"Who else sees it: `everyone`, `admins`, `team:<id>`, member ids. Empty = only the owner.","items":{"type":"string"},"type":"array"}},"required":["id","name","description","tql","owner","viewers","editors","can_edit","created_at","updated_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.focus":{"post":{"operationId":"issues.focus","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"limit":{"description":"Default 10, max 50.","format":"uint","minimum":0,"type":["integer","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"due_today":{"format":"int64","type":"integer"},"in_progress":{"format":"int64","type":"integer"},"items":{"items":{"properties":{"category":{"description":"todo | in_progress","type":"string"},"due_date":{"type":["string","null"]},"key":{"type":"string"},"priority":{"type":"string"},"reasons":{"description":"Why it's here, most important first (\"overdue by 2 days\", \"blocks KB-3\", \"in the current sprint\").","items":{"type":"string"},"type":"array"},"score":{"format":"int64","type":"integer"},"status":{"type":"string"},"title":{"type":"string"}},"required":["key","title","status","category","priority","score","reasons"],"type":"object"},"type":"array"},"open":{"description":"All open issues assigned to you (the list may be cut).","format":"int64","type":"integer"},"overdue":{"format":"int64","type":"integer"}},"required":["items","open","overdue","due_today","in_progress"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.gadget":{"post":{"operationId":"issues.gadget","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"config":{"properties":{"days":{"description":"created_resolved: days back (7-365, default 30).","format":"int64","type":["integer","null"]},"field":{"description":"pie: what to slice by; two_d: rows. status | priority | type | assignee | labels | components | epic","type":["string","null"]},"filter":{"description":"…or a saved filter's id (its TQL).","format":"int64","type":["integer","null"]},"key":{"type":["string","null"]},"limit":{"description":"filter: rows shown (default 10, max 50).","format":"int64","type":["integer","null"]},"plugin":{"description":"plugin (W614): the plugin and its gadget's key; the web renders it through `plugins.render`.","type":["string","null"]},"project":{"description":"sprint_health: the project whose active sprint it shows.","type":["string","null"]},"tql":{"description":"TQL the gadget reads (with the reader's permissions)…","type":["string","null"]},"x":{"description":"two_d: columns.","type":["string","null"]}},"type":"object"},"type":{"type":"string"}},"required":["type","config"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"buckets":{"description":"pie.","items":{"properties":{"count":{"format":"int64","type":"integer"},"key":{"type":"string"},"label":{"type":"string"}},"required":["key","label","count"],"type":"object"},"type":["array","null"]},"grid":{"description":"two_d.","properties":{"cols":{"items":{"properties":{"count":{"format":"int64","type":"integer"},"key":{"type":"string"},"label":{"type":"string"}},"required":["key","label","count"],"type":"object"},"type":"array"},"counts":{"description":"counts[row][col].","items":{"items":{"format":"int64","type":"integer"},"type":"array"},"type":"array"},"rows":{"description":"Row and column buckets (keys and labels), largest first.","items":{"properties":{"count":{"format":"int64","type":"integer"},"key":{"type":"string"},"label":{"type":"string"}},"required":["key","label","count"],"type":"object"},"type":"array"}},"required":["rows","cols","counts"],"type":["object","null"]},"health":{"description":"sprint_health (null when no sprint is active).","properties":{"added":{"description":"Work added since it started (same unit), open issues blocked by another open issue, open and unassigned.","format":"double","type":"number"},"blocked":{"format":"int64","type":"integer"},"end_date":{"type":["string","null"]},"in_progress":{"format":"int64","type":"integer"},"open":{"format":"int64","type":"integer"},"sprint":{"type":"string"},"time_pct":{"description":"Share of the sprint's days gone, and of its work done (points, or issues without points), 0-100.","format":"int64","type":"integer"},"unassigned":{"format":"int64","type":"integer"},"unit":{"type":"string"},"work_pct":{"format":"int64","type":"integer"}},"required":["sprint","time_pct","work_pct","added","blocked","unassigned","in_progress","open","unit"],"type":["object","null"]},"issues":{"description":"filter: the first rows.","items":{"properties":{"affects_versions":{"items":{"type":"string"},"type":"array"},"assignee":{"type":["string","null"]},"category":{"description":"The lane's category: todo | in_progress | done.","type":"string"},"children":{"description":"Children (issues whose parent this is).","format":"int64","type":"integer"},"components":{"items":{"type":"string"},"type":"array"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"description":{"type":"string"},"description_doc":{"description":"The description as a rich document (TipTap JSON); null when there's only the markdown `description`.","type":["string","null"]},"due_date":{"description":"YYYY-MM-DD","type":["string","null"]},"epic":{"description":"Key of the epic (level-1 ancestor: the parent, or a sub-task's grandparent).","type":["string","null"]},"fields":{"additionalProperties":true,"description":"Custom field values by key, formulas computed.","type":"object"},"fix_versions":{"items":{"type":"string"},"type":"array"},"id":{"description":"Internal id; comments use the subject `issue:{id}`.","format":"int64","type":"integer"},"key":{"description":"`{project}-{number}`, e.g. \"KB-12\".","type":"string"},"kind":{"type":"string"},"labels":{"description":"Label keys.","items":{"type":"string"},"type":"array"},"notices":{"description":"Only on `issues.update` / `issues.assign` answers: fields someone else changed since `base` that yours replaced.","items":{"description":"\"Someone also changed this\": a field another person changed after you loaded the issue, which your change replaced.","properties":{"at":{"format":"int64","type":["integer","null"]},"by":{"description":"Who set theirs, and when (from the issue's history; null if unknown).","type":["string","null"]},"field":{"description":"Issue field name, or `fields.<key>` for a custom field.","type":"string"},"theirs":{"description":"What they had set (send it back to undo yours)."},"yours":true},"required":["field","theirs","yours"],"type":"object"},"type":"array"},"number":{"format":"int64","type":"integer"},"parent":{"description":"Key of the parent issue (one hierarchy level up).","type":["string","null"]},"points":{"description":"Story points.","format":"double","type":["number","null"]},"priority":{"type":"string"},"project":{"type":"string"},"rank":{"description":"Backlog order within the project: sort by this text, ascending (see `issues.rank`). Null until the backfill runs.","type":["string","null"]},"recurring":{"description":"day | week | month when this issue is a recurring template.","type":["string","null"]},"resolution":{"description":"Resolution key; set while in a done lane.","type":["string","null"]},"resolved_at":{"format":"int64","type":["integer","null"]},"security":{"description":"Security level id: only its members (plus the reporter, assignee and admins) see the issue. Null = the project's viewers.","format":"int64","type":["integer","null"]},"sprint":{"description":"Sprint id; null = backlog.","format":"int64","type":["integer","null"]},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]},"status":{"description":"Lane key within the project.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"votes":{"format":"int64","type":"integer"},"watchers":{"format":"int64","type":"integer"}},"required":["id","key","project","number","title","description","status","category","priority","kind","created_by","created_at","updated_at","labels","components","fix_versions","affects_versions","votes","watchers","children","fields","notices"],"type":"object"},"type":["array","null"]},"partial":{"type":"boolean"},"series":{"description":"created_resolved.","properties":{"created":{"items":{"format":"int64","type":"integer"},"type":"array"},"days":{"description":"YYYY-MM-DD, oldest first.","items":{"type":"string"},"type":"array"},"resolved":{"items":{"format":"int64","type":"integer"},"type":"array"}},"required":["days","created","resolved"],"type":["object","null"]},"total":{"description":"Matching issues counted, and whether there were more than the gadget reads.","format":"int64","type":"integer"}},"required":["total","partial"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.get":{"post":{"operationId":"issues.get","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"description":"Issue key, e.g. \"KB-12\". Keys from before a move still work.","type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"affects_versions":{"items":{"type":"string"},"type":"array"},"assignee":{"type":["string","null"]},"category":{"description":"The lane's category: todo | in_progress | done.","type":"string"},"children":{"description":"Children (issues whose parent this is).","format":"int64","type":"integer"},"components":{"items":{"type":"string"},"type":"array"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"description":{"type":"string"},"description_doc":{"description":"The description as a rich document (TipTap JSON); null when there's only the markdown `description`.","type":["string","null"]},"due_date":{"description":"YYYY-MM-DD","type":["string","null"]},"epic":{"description":"Key of the epic (level-1 ancestor: the parent, or a sub-task's grandparent).","type":["string","null"]},"fields":{"additionalProperties":true,"description":"Custom field values by key, formulas computed.","type":"object"},"fix_versions":{"items":{"type":"string"},"type":"array"},"id":{"description":"Internal id; comments use the subject `issue:{id}`.","format":"int64","type":"integer"},"key":{"description":"`{project}-{number}`, e.g. \"KB-12\".","type":"string"},"kind":{"type":"string"},"labels":{"description":"Label keys.","items":{"type":"string"},"type":"array"},"notices":{"description":"Only on `issues.update` / `issues.assign` answers: fields someone else changed since `base` that yours replaced.","items":{"description":"\"Someone also changed this\": a field another person changed after you loaded the issue, which your change replaced.","properties":{"at":{"format":"int64","type":["integer","null"]},"by":{"description":"Who set theirs, and when (from the issue's history; null if unknown).","type":["string","null"]},"field":{"description":"Issue field name, or `fields.<key>` for a custom field.","type":"string"},"theirs":{"description":"What they had set (send it back to undo yours)."},"yours":true},"required":["field","theirs","yours"],"type":"object"},"type":"array"},"number":{"format":"int64","type":"integer"},"parent":{"description":"Key of the parent issue (one hierarchy level up).","type":["string","null"]},"points":{"description":"Story points.","format":"double","type":["number","null"]},"priority":{"type":"string"},"project":{"type":"string"},"rank":{"description":"Backlog order within the project: sort by this text, ascending (see `issues.rank`). Null until the backfill runs.","type":["string","null"]},"recurring":{"description":"day | week | month when this issue is a recurring template.","type":["string","null"]},"resolution":{"description":"Resolution key; set while in a done lane.","type":["string","null"]},"resolved_at":{"format":"int64","type":["integer","null"]},"security":{"description":"Security level id: only its members (plus the reporter, assignee and admins) see the issue. Null = the project's viewers.","format":"int64","type":["integer","null"]},"sprint":{"description":"Sprint id; null = backlog.","format":"int64","type":["integer","null"]},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]},"status":{"description":"Lane key within the project.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"votes":{"format":"int64","type":"integer"},"watchers":{"format":"int64","type":"integer"}},"required":["id","key","project","number","title","description","status","category","priority","kind","created_by","created_at","updated_at","labels","components","fix_versions","affects_versions","votes","watchers","children","fields","notices"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.goal_delete":{"post":{"operationId":"issues.goal_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.goal_get":{"post":{"operationId":"issues.goal_get","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"children":{"description":"Direct sub-goals (key results).","items":{"properties":{"can_edit":{"type":"boolean"},"description":{"type":"string"},"done":{"format":"double","type":"number"},"editors":{"description":"Who else may change it (owner and admins always can).","items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"linked":{"description":"Linked issues the reader can see, and the standard issues under them (done / total, points when any).","format":"int64","type":"integer"},"metric":{"description":"A number to move: progress is how far `current` has gone from `start` toward `target`.","properties":{"current":{"format":"double","type":"number"},"start":{"format":"double","type":"number"},"target":{"format":"double","type":"number"},"unit":{"default":"","description":"Shown after the numbers: %, users, ms…","type":"string"}},"required":["start","target","current"],"type":["object","null"]},"name":{"type":"string"},"owner":{"type":"string"},"parent":{"description":"The objective this is a key result (or sub-goal) of.","format":"int64","type":["integer","null"]},"position":{"format":"double","type":"number"},"progress":{"description":"0-100: the metric, the linked work, and sub-goals averaged.","format":"int64","type":"integer"},"status":{"description":"A goal_status option key (On track, At risk, Off track, Achieved by default; configurable).","type":"string"},"target_date":{"description":"YYYY-MM-DD","type":["string","null"]},"total":{"format":"double","type":"number"},"unit":{"description":"points | issues","type":"string"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","name","description","owner","editors","status","position","progress","linked","done","total","unit","can_edit","updated_at"],"type":"object"},"type":"array"},"goal":{"properties":{"can_edit":{"type":"boolean"},"description":{"type":"string"},"done":{"format":"double","type":"number"},"editors":{"description":"Who else may change it (owner and admins always can).","items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"linked":{"description":"Linked issues the reader can see, and the standard issues under them (done / total, points when any).","format":"int64","type":"integer"},"metric":{"description":"A number to move: progress is how far `current` has gone from `start` toward `target`.","properties":{"current":{"format":"double","type":"number"},"start":{"format":"double","type":"number"},"target":{"format":"double","type":"number"},"unit":{"default":"","description":"Shown after the numbers: %, users, ms…","type":"string"}},"required":["start","target","current"],"type":["object","null"]},"name":{"type":"string"},"owner":{"type":"string"},"parent":{"description":"The objective this is a key result (or sub-goal) of.","format":"int64","type":["integer","null"]},"position":{"format":"double","type":"number"},"progress":{"description":"0-100: the metric, the linked work, and sub-goals averaged.","format":"int64","type":"integer"},"status":{"description":"A goal_status option key (On track, At risk, Off track, Achieved by default; configurable).","type":"string"},"target_date":{"description":"YYYY-MM-DD","type":["string","null"]},"total":{"format":"double","type":"number"},"unit":{"description":"points | issues","type":"string"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","name","description","owner","editors","status","position","progress","linked","done","total","unit","can_edit","updated_at"],"type":"object"},"issues":{"description":"Linked issues the reader can see.","items":{"properties":{"affects_versions":{"items":{"type":"string"},"type":"array"},"assignee":{"type":["string","null"]},"category":{"description":"The lane's category: todo | in_progress | done.","type":"string"},"children":{"description":"Children (issues whose parent this is).","format":"int64","type":"integer"},"components":{"items":{"type":"string"},"type":"array"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"description":{"type":"string"},"description_doc":{"description":"The description as a rich document (TipTap JSON); null when there's only the markdown `description`.","type":["string","null"]},"due_date":{"description":"YYYY-MM-DD","type":["string","null"]},"epic":{"description":"Key of the epic (level-1 ancestor: the parent, or a sub-task's grandparent).","type":["string","null"]},"fields":{"additionalProperties":true,"description":"Custom field values by key, formulas computed.","type":"object"},"fix_versions":{"items":{"type":"string"},"type":"array"},"id":{"description":"Internal id; comments use the subject `issue:{id}`.","format":"int64","type":"integer"},"key":{"description":"`{project}-{number}`, e.g. \"KB-12\".","type":"string"},"kind":{"type":"string"},"labels":{"description":"Label keys.","items":{"type":"string"},"type":"array"},"notices":{"description":"Only on `issues.update` / `issues.assign` answers: fields someone else changed since `base` that yours replaced.","items":{"description":"\"Someone also changed this\": a field another person changed after you loaded the issue, which your change replaced.","properties":{"at":{"format":"int64","type":["integer","null"]},"by":{"description":"Who set theirs, and when (from the issue's history; null if unknown).","type":["string","null"]},"field":{"description":"Issue field name, or `fields.<key>` for a custom field.","type":"string"},"theirs":{"description":"What they had set (send it back to undo yours)."},"yours":true},"required":["field","theirs","yours"],"type":"object"},"type":"array"},"number":{"format":"int64","type":"integer"},"parent":{"description":"Key of the parent issue (one hierarchy level up).","type":["string","null"]},"points":{"description":"Story points.","format":"double","type":["number","null"]},"priority":{"type":"string"},"project":{"type":"string"},"rank":{"description":"Backlog order within the project: sort by this text, ascending (see `issues.rank`). Null until the backfill runs.","type":["string","null"]},"recurring":{"description":"day | week | month when this issue is a recurring template.","type":["string","null"]},"resolution":{"description":"Resolution key; set while in a done lane.","type":["string","null"]},"resolved_at":{"format":"int64","type":["integer","null"]},"security":{"description":"Security level id: only its members (plus the reporter, assignee and admins) see the issue. Null = the project's viewers.","format":"int64","type":["integer","null"]},"sprint":{"description":"Sprint id; null = backlog.","format":"int64","type":["integer","null"]},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]},"status":{"description":"Lane key within the project.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"votes":{"format":"int64","type":"integer"},"watchers":{"format":"int64","type":"integer"}},"required":["id","key","project","number","title","description","status","category","priority","kind","created_by","created_at","updated_at","labels","components","fix_versions","affects_versions","votes","watchers","children","fields","notices"],"type":"object"},"type":"array"}},"required":["goal","issues","children"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.goal_link":{"post":{"operationId":"issues.goal_link","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"goal":{"format":"int64","type":"integer"},"key":{"description":"Issue key (usually an epic).","type":"string"}},"required":["goal","key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"description":{"type":"string"},"done":{"format":"double","type":"number"},"editors":{"description":"Who else may change it (owner and admins always can).","items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"linked":{"description":"Linked issues the reader can see, and the standard issues under them (done / total, points when any).","format":"int64","type":"integer"},"metric":{"description":"A number to move: progress is how far `current` has gone from `start` toward `target`.","properties":{"current":{"format":"double","type":"number"},"start":{"format":"double","type":"number"},"target":{"format":"double","type":"number"},"unit":{"default":"","description":"Shown after the numbers: %, users, ms…","type":"string"}},"required":["start","target","current"],"type":["object","null"]},"name":{"type":"string"},"owner":{"type":"string"},"parent":{"description":"The objective this is a key result (or sub-goal) of.","format":"int64","type":["integer","null"]},"position":{"format":"double","type":"number"},"progress":{"description":"0-100: the metric, the linked work, and sub-goals averaged.","format":"int64","type":"integer"},"status":{"description":"A goal_status option key (On track, At risk, Off track, Achieved by default; configurable).","type":"string"},"target_date":{"description":"YYYY-MM-DD","type":["string","null"]},"total":{"format":"double","type":"number"},"unit":{"description":"points | issues","type":"string"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","name","description","owner","editors","status","position","progress","linked","done","total","unit","can_edit","updated_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.goal_save":{"post":{"operationId":"issues.goal_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"default":"","type":"string"},"editors":{"default":[],"items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":["integer","null"]},"metric":{"description":"A number to move: progress is how far `current` has gone from `start` toward `target`.","properties":{"current":{"format":"double","type":"number"},"start":{"format":"double","type":"number"},"target":{"format":"double","type":"number"},"unit":{"default":"","description":"Shown after the numbers: %, users, ms…","type":"string"}},"required":["start","target","current"],"type":["object","null"]},"name":{"type":"string"},"owner":{"description":"Member id; default you.","type":["string","null"]},"parent":{"format":"int64","type":["integer","null"]},"status":{"description":"goal_status key; default the first.","type":["string","null"]},"target_date":{"type":["string","null"]}},"required":["name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"description":{"type":"string"},"done":{"format":"double","type":"number"},"editors":{"description":"Who else may change it (owner and admins always can).","items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"linked":{"description":"Linked issues the reader can see, and the standard issues under them (done / total, points when any).","format":"int64","type":"integer"},"metric":{"description":"A number to move: progress is how far `current` has gone from `start` toward `target`.","properties":{"current":{"format":"double","type":"number"},"start":{"format":"double","type":"number"},"target":{"format":"double","type":"number"},"unit":{"default":"","description":"Shown after the numbers: %, users, ms…","type":"string"}},"required":["start","target","current"],"type":["object","null"]},"name":{"type":"string"},"owner":{"type":"string"},"parent":{"description":"The objective this is a key result (or sub-goal) of.","format":"int64","type":["integer","null"]},"position":{"format":"double","type":"number"},"progress":{"description":"0-100: the metric, the linked work, and sub-goals averaged.","format":"int64","type":"integer"},"status":{"description":"A goal_status option key (On track, At risk, Off track, Achieved by default; configurable).","type":"string"},"target_date":{"description":"YYYY-MM-DD","type":["string","null"]},"total":{"format":"double","type":"number"},"unit":{"description":"points | issues","type":"string"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","name","description","owner","editors","status","position","progress","linked","done","total","unit","can_edit","updated_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.goal_unlink":{"post":{"operationId":"issues.goal_unlink","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"goal":{"format":"int64","type":"integer"},"key":{"description":"Issue key (usually an epic).","type":"string"}},"required":["goal","key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"description":{"type":"string"},"done":{"format":"double","type":"number"},"editors":{"description":"Who else may change it (owner and admins always can).","items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"linked":{"description":"Linked issues the reader can see, and the standard issues under them (done / total, points when any).","format":"int64","type":"integer"},"metric":{"description":"A number to move: progress is how far `current` has gone from `start` toward `target`.","properties":{"current":{"format":"double","type":"number"},"start":{"format":"double","type":"number"},"target":{"format":"double","type":"number"},"unit":{"default":"","description":"Shown after the numbers: %, users, ms…","type":"string"}},"required":["start","target","current"],"type":["object","null"]},"name":{"type":"string"},"owner":{"type":"string"},"parent":{"description":"The objective this is a key result (or sub-goal) of.","format":"int64","type":["integer","null"]},"position":{"format":"double","type":"number"},"progress":{"description":"0-100: the metric, the linked work, and sub-goals averaged.","format":"int64","type":"integer"},"status":{"description":"A goal_status option key (On track, At risk, Off track, Achieved by default; configurable).","type":"string"},"target_date":{"description":"YYYY-MM-DD","type":["string","null"]},"total":{"format":"double","type":"number"},"unit":{"description":"points | issues","type":"string"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","name","description","owner","editors","status","position","progress","linked","done","total","unit","can_edit","updated_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.goals":{"post":{"operationId":"issues.goals","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"issue":{"description":"Only goals this issue (key) is linked to.","type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"can_edit":{"type":"boolean"},"description":{"type":"string"},"done":{"format":"double","type":"number"},"editors":{"description":"Who else may change it (owner and admins always can).","items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"linked":{"description":"Linked issues the reader can see, and the standard issues under them (done / total, points when any).","format":"int64","type":"integer"},"metric":{"description":"A number to move: progress is how far `current` has gone from `start` toward `target`.","properties":{"current":{"format":"double","type":"number"},"start":{"format":"double","type":"number"},"target":{"format":"double","type":"number"},"unit":{"default":"","description":"Shown after the numbers: %, users, ms…","type":"string"}},"required":["start","target","current"],"type":["object","null"]},"name":{"type":"string"},"owner":{"type":"string"},"parent":{"description":"The objective this is a key result (or sub-goal) of.","format":"int64","type":["integer","null"]},"position":{"format":"double","type":"number"},"progress":{"description":"0-100: the metric, the linked work, and sub-goals averaged.","format":"int64","type":"integer"},"status":{"description":"A goal_status option key (On track, At risk, Off track, Achieved by default; configurable).","type":"string"},"target_date":{"description":"YYYY-MM-DD","type":["string","null"]},"total":{"format":"double","type":"number"},"unit":{"description":"points | issues","type":"string"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","name","description","owner","editors","status","position","progress","linked","done","total","unit","can_edit","updated_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.import":{"post":{"operationId":"issues.import","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"dry_run":{"description":"Validate everything, create nothing.","type":["boolean","null"]},"project":{"type":"string"},"rows":{"description":"One object per issue, with the fields of `issues.create` (title required; project defaults to `project`).","items":true,"type":"array"}},"required":["project","rows"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"created":{"description":"Keys created (in a dry run: the keys they would get).","items":{"type":"string"},"type":"array"},"dry_run":{"type":"boolean"},"errors":{"items":{"properties":{"message":{"type":"string"},"row":{"description":"0-based index into `rows`.","format":"uint","minimum":0,"type":"integer"}},"required":["row","message"],"type":"object"},"type":"array"}},"required":["created","errors","dry_run"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.import_one":{"post":{"operationId":"issues.import_one","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"affects_versions":{"default":[],"items":{"type":"string"},"type":"array"},"assignee":{"description":"Member ids.","type":["string","null"]},"components":{"default":[],"items":{"type":"string"},"type":"array"},"created_at":{"description":"Unix seconds.","format":"int64","type":["integer","null"]},"created_by":{"type":["string","null"]},"description":{"default":"","type":"string"},"due_date":{"type":["string","null"]},"fields":{"additionalProperties":true,"default":{},"description":"Custom field values by field key.","type":"object"},"fix_versions":{"default":[],"items":{"type":"string"},"type":"array"},"kind":{"description":"Names; made when the org doesn't have them.","type":["string","null"]},"labels":{"default":[],"items":{"type":"string"},"type":"array"},"number":{"description":"The number it had (PROJ-123 → 123); taken or missing = the next free one.","format":"int64","type":["integer","null"]},"old_key":{"description":"Its key in the old tracker, when that differs from the new one: it keeps working.","type":["string","null"]},"parent":{"description":"Key of an already imported parent.","type":["string","null"]},"points":{"format":"double","type":["number","null"]},"priority":{"type":["string","null"]},"project":{"type":"string"},"resolved_at":{"format":"int64","type":["integer","null"]},"sprint":{"properties":{"end_date":{"type":["string","null"]},"name":{"type":"string"},"start_date":{"type":["string","null"]},"state":{"description":"planned | active | closed","type":["string","null"]}},"required":["name"],"type":["object","null"]},"status":{"type":["string","null"]},"status_category":{"description":"todo | in_progress | done, for a lane that has to be made.","type":["string","null"]},"title":{"type":"string"},"updated_at":{"format":"int64","type":["integer","null"]}},"required":["project","title"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"affects_versions":{"items":{"type":"string"},"type":"array"},"assignee":{"type":["string","null"]},"category":{"description":"The lane's category: todo | in_progress | done.","type":"string"},"children":{"description":"Children (issues whose parent this is).","format":"int64","type":"integer"},"components":{"items":{"type":"string"},"type":"array"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"description":{"type":"string"},"description_doc":{"description":"The description as a rich document (TipTap JSON); null when there's only the markdown `description`.","type":["string","null"]},"due_date":{"description":"YYYY-MM-DD","type":["string","null"]},"epic":{"description":"Key of the epic (level-1 ancestor: the parent, or a sub-task's grandparent).","type":["string","null"]},"fields":{"additionalProperties":true,"description":"Custom field values by key, formulas computed.","type":"object"},"fix_versions":{"items":{"type":"string"},"type":"array"},"id":{"description":"Internal id; comments use the subject `issue:{id}`.","format":"int64","type":"integer"},"key":{"description":"`{project}-{number}`, e.g. \"KB-12\".","type":"string"},"kind":{"type":"string"},"labels":{"description":"Label keys.","items":{"type":"string"},"type":"array"},"notices":{"description":"Only on `issues.update` / `issues.assign` answers: fields someone else changed since `base` that yours replaced.","items":{"description":"\"Someone also changed this\": a field another person changed after you loaded the issue, which your change replaced.","properties":{"at":{"format":"int64","type":["integer","null"]},"by":{"description":"Who set theirs, and when (from the issue's history; null if unknown).","type":["string","null"]},"field":{"description":"Issue field name, or `fields.<key>` for a custom field.","type":"string"},"theirs":{"description":"What they had set (send it back to undo yours)."},"yours":true},"required":["field","theirs","yours"],"type":"object"},"type":"array"},"number":{"format":"int64","type":"integer"},"parent":{"description":"Key of the parent issue (one hierarchy level up).","type":["string","null"]},"points":{"description":"Story points.","format":"double","type":["number","null"]},"priority":{"type":"string"},"project":{"type":"string"},"rank":{"description":"Backlog order within the project: sort by this text, ascending (see `issues.rank`). Null until the backfill runs.","type":["string","null"]},"recurring":{"description":"day | week | month when this issue is a recurring template.","type":["string","null"]},"resolution":{"description":"Resolution key; set while in a done lane.","type":["string","null"]},"resolved_at":{"format":"int64","type":["integer","null"]},"security":{"description":"Security level id: only its members (plus the reporter, assignee and admins) see the issue. Null = the project's viewers.","format":"int64","type":["integer","null"]},"sprint":{"description":"Sprint id; null = backlog.","format":"int64","type":["integer","null"]},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]},"status":{"description":"Lane key within the project.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"votes":{"format":"int64","type":"integer"},"watchers":{"format":"int64","type":"integer"}},"required":["id","key","project","number","title","description","status","category","priority","kind","created_by","created_at","updated_at","labels","components","fix_versions","affects_versions","votes","watchers","children","fields","notices"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/issues.link":{"post":{"operationId":"issues.link","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"description":"The issue you're on.","type":"string"},"outward":{"description":"true: `key` <outward> `target` (\"KB-1 blocks KB-2\"); false: `key` <inward> `target` (\"KB-1 is blocked by KB-2\").","type":"boolean"},"target":{"type":"string"},"type_id":{"description":"Link type id (`issues.link_types`).","format":"int64","type":"integer"}},"required":["key","type_id","outward","target"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"description":"The other end of a link, as seen from one issue.","properties":{"assignee":{"type":["string","null"]},"category":{"type":"string"},"id":{"format":"int64","type":"integer"},"key":{"type":"string"},"kind":{"type":"string"},"outward":{"description":"true when this issue is the link's source.","type":"boolean"},"phrase":{"description":"How this issue relates to `key`, e.g. \"is blocked by\".","type":"string"},"priority":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"},"type_id":{"format":"int64","type":"integer"}},"required":["id","type_id","phrase","outward","key","title","status","category","kind","priority"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.link_type_delete":{"post":{"operationId":"issues.link_type_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/issues.link_type_save":{"post":{"operationId":"issues.link_type_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"description":"Omit to create.","format":"int64","type":["integer","null"]},"inward":{"type":["string","null"]},"name":{"type":["string","null"]},"outward":{"type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"},"inward":{"description":"Phrase from the target: \"is blocked by\".","type":"string"},"name":{"type":"string"},"outward":{"description":"Phrase from the source: \"blocks\".","type":"string"},"position":{"format":"double","type":"number"}},"required":["id","name","outward","inward","position"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/issues.link_types":{"post":{"operationId":"issues.link_types","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"id":{"format":"int64","type":"integer"},"inward":{"description":"Phrase from the target: \"is blocked by\".","type":"string"},"name":{"type":"string"},"outward":{"description":"Phrase from the source: \"blocks\".","type":"string"},"position":{"format":"double","type":"number"}},"required":["id","name","outward","inward","position"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.links":{"post":{"operationId":"issues.links","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"description":"The other end of a link, as seen from one issue.","properties":{"assignee":{"type":["string","null"]},"category":{"type":"string"},"id":{"format":"int64","type":"integer"},"key":{"type":"string"},"kind":{"type":"string"},"outward":{"description":"true when this issue is the link's source.","type":"boolean"},"phrase":{"description":"How this issue relates to `key`, e.g. \"is blocked by\".","type":"string"},"priority":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"},"type_id":{"format":"int64","type":"integer"}},"required":["id","type_id","phrase","outward","key","title","status","category","kind","priority"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.list":{"post":{"operationId":"issues.list","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"assignee":{"type":["string","null"]},"backlog":{"description":"Only issues in no sprint.","type":["boolean","null"]},"component":{"description":"Component or fix version name (with `project`).","type":["string","null"]},"fix_version":{"type":["string","null"]},"label":{"type":["string","null"]},"parent":{"description":"Parent key: its children (an epic's issues, a story's sub-tasks).","type":["string","null"]},"project":{"type":["string","null"]},"q":{"description":"Text in the key, title or description.","type":["string","null"]},"sprint":{"format":"int64","type":["integer","null"]},"status":{"type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"affects_versions":{"items":{"type":"string"},"type":"array"},"assignee":{"type":["string","null"]},"category":{"description":"The lane's category: todo | in_progress | done.","type":"string"},"children":{"description":"Children (issues whose parent this is).","format":"int64","type":"integer"},"components":{"items":{"type":"string"},"type":"array"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"description":{"type":"string"},"description_doc":{"description":"The description as a rich document (TipTap JSON); null when there's only the markdown `description`.","type":["string","null"]},"due_date":{"description":"YYYY-MM-DD","type":["string","null"]},"epic":{"description":"Key of the epic (level-1 ancestor: the parent, or a sub-task's grandparent).","type":["string","null"]},"fields":{"additionalProperties":true,"description":"Custom field values by key, formulas computed.","type":"object"},"fix_versions":{"items":{"type":"string"},"type":"array"},"id":{"description":"Internal id; comments use the subject `issue:{id}`.","format":"int64","type":"integer"},"key":{"description":"`{project}-{number}`, e.g. \"KB-12\".","type":"string"},"kind":{"type":"string"},"labels":{"description":"Label keys.","items":{"type":"string"},"type":"array"},"notices":{"description":"Only on `issues.update` / `issues.assign` answers: fields someone else changed since `base` that yours replaced.","items":{"description":"\"Someone also changed this\": a field another person changed after you loaded the issue, which your change replaced.","properties":{"at":{"format":"int64","type":["integer","null"]},"by":{"description":"Who set theirs, and when (from the issue's history; null if unknown).","type":["string","null"]},"field":{"description":"Issue field name, or `fields.<key>` for a custom field.","type":"string"},"theirs":{"description":"What they had set (send it back to undo yours)."},"yours":true},"required":["field","theirs","yours"],"type":"object"},"type":"array"},"number":{"format":"int64","type":"integer"},"parent":{"description":"Key of the parent issue (one hierarchy level up).","type":["string","null"]},"points":{"description":"Story points.","format":"double","type":["number","null"]},"priority":{"type":"string"},"project":{"type":"string"},"rank":{"description":"Backlog order within the project: sort by this text, ascending (see `issues.rank`). Null until the backfill runs.","type":["string","null"]},"recurring":{"description":"day | week | month when this issue is a recurring template.","type":["string","null"]},"resolution":{"description":"Resolution key; set while in a done lane.","type":["string","null"]},"resolved_at":{"format":"int64","type":["integer","null"]},"security":{"description":"Security level id: only its members (plus the reporter, assignee and admins) see the issue. Null = the project's viewers.","format":"int64","type":["integer","null"]},"sprint":{"description":"Sprint id; null = backlog.","format":"int64","type":["integer","null"]},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]},"status":{"description":"Lane key within the project.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"votes":{"format":"int64","type":"integer"},"watchers":{"format":"int64","type":"integer"}},"required":["id","key","project","number","title","description","status","category","priority","kind","created_by","created_at","updated_at","labels","components","fix_versions","affects_versions","votes","watchers","children","fields","notices"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.move":{"post":{"operationId":"issues.move","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"},"project":{"description":"Target project key.","type":"string"},"status":{"description":"Status in the target project; defaults to the same key if it exists there, else its first \"todo\" lane.","type":["string","null"]}},"required":["key","project"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"affects_versions":{"items":{"type":"string"},"type":"array"},"assignee":{"type":["string","null"]},"category":{"description":"The lane's category: todo | in_progress | done.","type":"string"},"children":{"description":"Children (issues whose parent this is).","format":"int64","type":"integer"},"components":{"items":{"type":"string"},"type":"array"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"description":{"type":"string"},"description_doc":{"description":"The description as a rich document (TipTap JSON); null when there's only the markdown `description`.","type":["string","null"]},"due_date":{"description":"YYYY-MM-DD","type":["string","null"]},"epic":{"description":"Key of the epic (level-1 ancestor: the parent, or a sub-task's grandparent).","type":["string","null"]},"fields":{"additionalProperties":true,"description":"Custom field values by key, formulas computed.","type":"object"},"fix_versions":{"items":{"type":"string"},"type":"array"},"id":{"description":"Internal id; comments use the subject `issue:{id}`.","format":"int64","type":"integer"},"key":{"description":"`{project}-{number}`, e.g. \"KB-12\".","type":"string"},"kind":{"type":"string"},"labels":{"description":"Label keys.","items":{"type":"string"},"type":"array"},"notices":{"description":"Only on `issues.update` / `issues.assign` answers: fields someone else changed since `base` that yours replaced.","items":{"description":"\"Someone also changed this\": a field another person changed after you loaded the issue, which your change replaced.","properties":{"at":{"format":"int64","type":["integer","null"]},"by":{"description":"Who set theirs, and when (from the issue's history; null if unknown).","type":["string","null"]},"field":{"description":"Issue field name, or `fields.<key>` for a custom field.","type":"string"},"theirs":{"description":"What they had set (send it back to undo yours)."},"yours":true},"required":["field","theirs","yours"],"type":"object"},"type":"array"},"number":{"format":"int64","type":"integer"},"parent":{"description":"Key of the parent issue (one hierarchy level up).","type":["string","null"]},"points":{"description":"Story points.","format":"double","type":["number","null"]},"priority":{"type":"string"},"project":{"type":"string"},"rank":{"description":"Backlog order within the project: sort by this text, ascending (see `issues.rank`). Null until the backfill runs.","type":["string","null"]},"recurring":{"description":"day | week | month when this issue is a recurring template.","type":["string","null"]},"resolution":{"description":"Resolution key; set while in a done lane.","type":["string","null"]},"resolved_at":{"format":"int64","type":["integer","null"]},"security":{"description":"Security level id: only its members (plus the reporter, assignee and admins) see the issue. Null = the project's viewers.","format":"int64","type":["integer","null"]},"sprint":{"description":"Sprint id; null = backlog.","format":"int64","type":["integer","null"]},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]},"status":{"description":"Lane key within the project.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"votes":{"format":"int64","type":"integer"},"watchers":{"format":"int64","type":"integer"}},"required":["id","key","project","number","title","description","status","category","priority","kind","created_by","created_at","updated_at","labels","components","fix_versions","affects_versions","votes","watchers","children","fields","notices"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.option_delete":{"post":{"operationId":"issues.option_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"},"replace_with":{"description":"Key that issues currently using this option move to. Required when any do.","type":["string","null"]}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.option_reorder":{"post":{"operationId":"issues.option_reorder","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"ids":{"description":"Option ids of one list in their new order.","items":{"format":"int64","type":"integer"},"type":"array"}},"required":["ids"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"category":{"description":"Statuses only: todo | in_progress | done. Drives \"open\", progress bars and dashboards.","type":["string","null"]},"color":{"description":"Hex color, or empty.","type":"string"},"field":{"description":"status | priority | kind | label | retro | resolution | goal_status","type":"string"},"icon":{"description":"`glyph:<name>`, emoji/text, or a `data:image/…` URL; empty for none.","type":"string"},"id":{"format":"int64","type":"integer"},"key":{"type":"string"},"name":{"type":"string"},"position":{"format":"double","type":"number"},"project":{"description":"Statuses: the project whose lane this is, or null for the org template new projects copy.","type":["string","null"]},"rules":{"description":"Types only (empty defaults otherwise).","properties":{"level":{"default":0,"description":"Hierarchy level: -1 sub-task, 0 standard (default), 1 epic, 2+ levels above epic (initiative…).\nAn issue's parent is always exactly one level up; sub-tasks must have one. Levels above 0 stay out of sprints.","format":"int32","type":"integer"},"points":{"default":null,"description":"Story points: \"hidden\" | \"optional\" | \"required\". Default optional.","type":["string","null"]},"required":{"default":[],"description":"Fields that must be filled in: description | assignee | points | labels | parent | components | fix_versions | due_date.","items":{"type":"string"},"type":"array"},"template":{"default":"","description":"Smart-text the description starts with for new issues of this type.","type":"string"}},"type":"object"}},"required":["id","field","key","name","color","icon","position","rules"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.option_save":{"post":{"operationId":"issues.option_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"category":{"description":"Statuses: todo | in_progress | done","type":["string","null"]},"color":{"type":["string","null"]},"field":{"description":"status | priority | kind | label | retro | resolution | goal_status (create only)","type":["string","null"]},"icon":{"type":["string","null"]},"id":{"description":"Omit to create.","format":"int64","type":["integer","null"]},"key":{"description":"Stable key stored on issues; derived from the name when omitted (create only).","type":["string","null"]},"name":{"type":["string","null"]},"position":{"description":"Defaults to the end of the list.","format":"double","type":["number","null"]},"project":{"description":"Statuses: project key for a project lane, omit for the org template (create only).","type":["string","null"]},"rules":{"description":"Types only: replaces the type's rules.","properties":{"level":{"default":0,"description":"Hierarchy level: -1 sub-task, 0 standard (default), 1 epic, 2+ levels above epic (initiative…).\nAn issue's parent is always exactly one level up; sub-tasks must have one. Levels above 0 stay out of sprints.","format":"int32","type":"integer"},"points":{"default":null,"description":"Story points: \"hidden\" | \"optional\" | \"required\". Default optional.","type":["string","null"]},"required":{"default":[],"description":"Fields that must be filled in: description | assignee | points | labels | parent | components | fix_versions | due_date.","items":{"type":"string"},"type":"array"},"template":{"default":"","description":"Smart-text the description starts with for new issues of this type.","type":"string"}},"type":["object","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"category":{"description":"Statuses only: todo | in_progress | done. Drives \"open\", progress bars and dashboards.","type":["string","null"]},"color":{"description":"Hex color, or empty.","type":"string"},"field":{"description":"status | priority | kind | label | retro | resolution | goal_status","type":"string"},"icon":{"description":"`glyph:<name>`, emoji/text, or a `data:image/…` URL; empty for none.","type":"string"},"id":{"format":"int64","type":"integer"},"key":{"type":"string"},"name":{"type":"string"},"position":{"format":"double","type":"number"},"project":{"description":"Statuses: the project whose lane this is, or null for the org template new projects copy.","type":["string","null"]},"rules":{"description":"Types only (empty defaults otherwise).","properties":{"level":{"default":0,"description":"Hierarchy level: -1 sub-task, 0 standard (default), 1 epic, 2+ levels above epic (initiative…).\nAn issue's parent is always exactly one level up; sub-tasks must have one. Levels above 0 stay out of sprints.","format":"int32","type":"integer"},"points":{"default":null,"description":"Story points: \"hidden\" | \"optional\" | \"required\". Default optional.","type":["string","null"]},"required":{"default":[],"description":"Fields that must be filled in: description | assignee | points | labels | parent | components | fix_versions | due_date.","items":{"type":"string"},"type":"array"},"template":{"default":"","description":"Smart-text the description starts with for new issues of this type.","type":"string"}},"type":"object"}},"required":["id","field","key","name","color","icon","position","rules"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.option_scheme_delete":{"post":{"operationId":"issues.option_scheme_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/issues.option_scheme_save":{"post":{"operationId":"issues.option_scheme_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"default_key":{"type":["string","null"]},"field":{"description":"priority | resolution (fixed once created)","type":"string"},"id":{"format":"int64","type":["integer","null"]},"keys":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"}},"required":["field","name","keys"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"default_key":{"description":"For new issues (priority) or when nothing else picks one (resolution); null = the usual (last priority, first\nresolution) among `keys`.","type":["string","null"]},"field":{"description":"priority | resolution","type":"string"},"id":{"format":"int64","type":"integer"},"keys":{"description":"Option keys in it (shown in the org's order).","items":{"type":"string"},"type":"array"},"name":{"type":"string"},"projects":{"description":"Projects using it.","items":{"type":"string"},"type":"array"}},"required":["id","field","name","keys","projects"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/issues.option_schemes":{"post":{"operationId":"issues.option_schemes","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"default_key":{"description":"For new issues (priority) or when nothing else picks one (resolution); null = the usual (last priority, first\nresolution) among `keys`.","type":["string","null"]},"field":{"description":"priority | resolution","type":"string"},"id":{"format":"int64","type":"integer"},"keys":{"description":"Option keys in it (shown in the org's order).","items":{"type":"string"},"type":"array"},"name":{"type":"string"},"projects":{"description":"Projects using it.","items":{"type":"string"},"type":"array"}},"required":["id","field","name","keys","projects"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.options":{"post":{"operationId":"issues.options","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"category":{"description":"Statuses only: todo | in_progress | done. Drives \"open\", progress bars and dashboards.","type":["string","null"]},"color":{"description":"Hex color, or empty.","type":"string"},"field":{"description":"status | priority | kind | label | retro | resolution | goal_status","type":"string"},"icon":{"description":"`glyph:<name>`, emoji/text, or a `data:image/…` URL; empty for none.","type":"string"},"id":{"format":"int64","type":"integer"},"key":{"type":"string"},"name":{"type":"string"},"position":{"format":"double","type":"number"},"project":{"description":"Statuses: the project whose lane this is, or null for the org template new projects copy.","type":["string","null"]},"rules":{"description":"Types only (empty defaults otherwise).","properties":{"level":{"default":0,"description":"Hierarchy level: -1 sub-task, 0 standard (default), 1 epic, 2+ levels above epic (initiative…).\nAn issue's parent is always exactly one level up; sub-tasks must have one. Levels above 0 stay out of sprints.","format":"int32","type":"integer"},"points":{"default":null,"description":"Story points: \"hidden\" | \"optional\" | \"required\". Default optional.","type":["string","null"]},"required":{"default":[],"description":"Fields that must be filled in: description | assignee | points | labels | parent | components | fix_versions | due_date.","items":{"type":"string"},"type":"array"},"template":{"default":"","description":"Smart-text the description starts with for new issues of this type.","type":"string"}},"type":"object"}},"required":["id","field","key","name","color","icon","position","rules"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.plan":{"post":{"operationId":"issues.plan","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"keys":{"description":"Issue keys.","items":{"type":"string"},"type":"array"},"sprint":{"description":"Target sprint; null = backlog.","format":"int64","type":["integer","null"]}},"required":["keys"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"affects_versions":{"items":{"type":"string"},"type":"array"},"assignee":{"type":["string","null"]},"category":{"description":"The lane's category: todo | in_progress | done.","type":"string"},"children":{"description":"Children (issues whose parent this is).","format":"int64","type":"integer"},"components":{"items":{"type":"string"},"type":"array"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"description":{"type":"string"},"description_doc":{"description":"The description as a rich document (TipTap JSON); null when there's only the markdown `description`.","type":["string","null"]},"due_date":{"description":"YYYY-MM-DD","type":["string","null"]},"epic":{"description":"Key of the epic (level-1 ancestor: the parent, or a sub-task's grandparent).","type":["string","null"]},"fields":{"additionalProperties":true,"description":"Custom field values by key, formulas computed.","type":"object"},"fix_versions":{"items":{"type":"string"},"type":"array"},"id":{"description":"Internal id; comments use the subject `issue:{id}`.","format":"int64","type":"integer"},"key":{"description":"`{project}-{number}`, e.g. \"KB-12\".","type":"string"},"kind":{"type":"string"},"labels":{"description":"Label keys.","items":{"type":"string"},"type":"array"},"notices":{"description":"Only on `issues.update` / `issues.assign` answers: fields someone else changed since `base` that yours replaced.","items":{"description":"\"Someone also changed this\": a field another person changed after you loaded the issue, which your change replaced.","properties":{"at":{"format":"int64","type":["integer","null"]},"by":{"description":"Who set theirs, and when (from the issue's history; null if unknown).","type":["string","null"]},"field":{"description":"Issue field name, or `fields.<key>` for a custom field.","type":"string"},"theirs":{"description":"What they had set (send it back to undo yours)."},"yours":true},"required":["field","theirs","yours"],"type":"object"},"type":"array"},"number":{"format":"int64","type":"integer"},"parent":{"description":"Key of the parent issue (one hierarchy level up).","type":["string","null"]},"points":{"description":"Story points.","format":"double","type":["number","null"]},"priority":{"type":"string"},"project":{"type":"string"},"rank":{"description":"Backlog order within the project: sort by this text, ascending (see `issues.rank`). Null until the backfill runs.","type":["string","null"]},"recurring":{"description":"day | week | month when this issue is a recurring template.","type":["string","null"]},"resolution":{"description":"Resolution key; set while in a done lane.","type":["string","null"]},"resolved_at":{"format":"int64","type":["integer","null"]},"security":{"description":"Security level id: only its members (plus the reporter, assignee and admins) see the issue. Null = the project's viewers.","format":"int64","type":["integer","null"]},"sprint":{"description":"Sprint id; null = backlog.","format":"int64","type":["integer","null"]},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]},"status":{"description":"Lane key within the project.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"votes":{"format":"int64","type":"integer"},"watchers":{"format":"int64","type":"integer"}},"required":["id","key","project","number","title","description","status","category","priority","kind","created_by","created_at","updated_at","labels","components","fix_versions","affects_versions","votes","watchers","children","fields","notices"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.plan_baseline_delete":{"post":{"operationId":"issues.plan_baseline_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"baseline":{"format":"int64","type":"integer"},"plan":{"format":"int64","type":"integer"}},"required":["plan","baseline"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"dates":{"additionalProperties":{"maxItems":2,"minItems":2,"prefixItems":[{"type":"string"},{"type":"string"}],"type":"array"},"description":"Issue key → [start, due].","type":"object"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"scenario":{"description":"The scenario it was taken from (null = the live issues).","format":"int64","type":["integer","null"]}},"required":["id","name","created_by","created_at","dates"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.plan_baseline_save":{"post":{"operationId":"issues.plan_baseline_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"name":{"type":"string"},"plan":{"format":"int64","type":"integer"},"scenario":{"description":"Snapshot this scenario's dates (default the live issues).","format":"int64","type":["integer","null"]}},"required":["plan","name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"dates":{"additionalProperties":{"maxItems":2,"minItems":2,"prefixItems":[{"type":"string"},{"type":"string"}],"type":"array"},"description":"Issue key → [start, due].","type":"object"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"scenario":{"description":"The scenario it was taken from (null = the live issues).","format":"int64","type":["integer","null"]}},"required":["id","name","created_by","created_at","dates"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.plan_baselines":{"post":{"operationId":"issues.plan_baselines","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"dates":{"additionalProperties":{"maxItems":2,"minItems":2,"prefixItems":[{"type":"string"},{"type":"string"}],"type":"array"},"description":"Issue key → [start, due].","type":"object"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"scenario":{"description":"The scenario it was taken from (null = the live issues).","format":"int64","type":["integer","null"]}},"required":["id","name","created_by","created_at","dates"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.plan_change":{"post":{"operationId":"issues.plan_change","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"assignee":{"type":["string","null"]},"discard":{"default":false,"description":"Drop this issue's staged change instead.","type":"boolean"},"due_date":{"type":["string","null"]},"key":{"type":"string"},"plan":{"format":"int64","type":"integer"},"scenario":{"format":"int64","type":"integer"},"start_date":{"description":"The dates and assignee to stage (YYYY-MM-DD; assignee \"\" = unassign, omitted = unchanged).","type":["string","null"]}},"required":["plan","scenario","key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"count":{"format":"uint","minimum":0,"type":"integer"}},"required":["count"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.plan_commit":{"post":{"operationId":"issues.plan_commit","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"keys":{"description":"Only these issues (default all staged).","items":{"type":"string"},"type":["array","null"]},"plan":{"format":"int64","type":"integer"},"scenario":{"format":"int64","type":"integer"}},"required":["plan","scenario"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"count":{"format":"uint","minimum":0,"type":"integer"}},"required":["count"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.plan_delete":{"post":{"operationId":"issues.plan_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.plan_gantt":{"post":{"operationId":"issues.plan_gantt","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"baseline":{"description":"Compare with this baseline.","format":"int64","type":["integer","null"]},"id":{"format":"int64","type":"integer"},"scenario":{"format":"int64","type":["integer","null"]}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"baseline":{"description":"The chosen baseline's dates, and how many days each issue's due date has moved since (+ = later).","properties":{"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"dates":{"additionalProperties":{"maxItems":2,"minItems":2,"prefixItems":[{"type":"string"},{"type":"string"}],"type":"array"},"description":"Issue key → [start, due].","type":"object"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"scenario":{"description":"The scenario it was taken from (null = the live issues).","format":"int64","type":["integer","null"]}},"required":["id","name","created_by","created_at","dates"],"type":["object","null"]},"critical":{"description":"Issues with no slack: a day's slip on any of them moves `finish`. In schedule order.","items":{"type":"string"},"type":"array"},"finish":{"description":"Last due date of the plan's dated open work.","type":["string","null"]},"slack":{"additionalProperties":{"format":"int64","type":"integer"},"description":"Days each dated open issue can slip without moving `finish` (along \"blocks\" links).","type":"object"},"variance":{"additionalProperties":{"format":"int64","type":"integer"},"type":"object"}},"required":["critical","slack","variance"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.plan_save":{"post":{"operationId":"issues.plan_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"editors":{"default":[],"items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"settings":{"properties":{"capacity":{"default":[],"items":{"properties":{"points_per_week":{"description":"Story points per week.","format":"double","type":"number"},"who":{"description":"Member id, or \"\" for unassigned work.","type":"string"}},"required":["who","points_per_week"],"type":"object"},"type":"array"},"default_points":{"default":1.0,"description":"Estimate used for issues without points. Default 1.","format":"double","type":"number"},"default_velocity":{"default":10.0,"description":"Points per week for anyone not listed (and unassigned work). Default 10.","format":"double","type":"number"},"tql":{"description":"The plan's issues: any projects, e.g. `project IN (WEB, API) AND statusCategory != Done ORDER BY rank`.","type":"string"}},"required":["tql"],"type":"object"},"viewers":{"default":[],"items":{"type":"string"},"type":"array"}},"required":["name","settings"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"editors":{"items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"owner":{"type":"string"},"scenarios":{"items":{"properties":{"changes":{"description":"Staged changes in it.","format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"}},"required":["id","name","changes"],"type":"object"},"type":"array"},"settings":{"properties":{"capacity":{"default":[],"items":{"properties":{"points_per_week":{"description":"Story points per week.","format":"double","type":"number"},"who":{"description":"Member id, or \"\" for unassigned work.","type":"string"}},"required":["who","points_per_week"],"type":"object"},"type":"array"},"default_points":{"default":1.0,"description":"Estimate used for issues without points. Default 1.","format":"double","type":"number"},"default_velocity":{"default":10.0,"description":"Points per week for anyone not listed (and unassigned work). Default 10.","format":"double","type":"number"},"tql":{"description":"The plan's issues: any projects, e.g. `project IN (WEB, API) AND statusCategory != Done ORDER BY rank`.","type":"string"}},"required":["tql"],"type":"object"},"updated_at":{"format":"int64","type":"integer"},"viewers":{"items":{"type":"string"},"type":"array"}},"required":["id","name","owner","viewers","editors","settings","scenarios","can_edit","updated_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.plan_scenario_delete":{"post":{"operationId":"issues.plan_scenario_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"plan":{"format":"int64","type":"integer"},"scenario":{"format":"int64","type":"integer"}},"required":["plan","scenario"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"editors":{"items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"owner":{"type":"string"},"scenarios":{"items":{"properties":{"changes":{"description":"Staged changes in it.","format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"}},"required":["id","name","changes"],"type":"object"},"type":"array"},"settings":{"properties":{"capacity":{"default":[],"items":{"properties":{"points_per_week":{"description":"Story points per week.","format":"double","type":"number"},"who":{"description":"Member id, or \"\" for unassigned work.","type":"string"}},"required":["who","points_per_week"],"type":"object"},"type":"array"},"default_points":{"default":1.0,"description":"Estimate used for issues without points. Default 1.","format":"double","type":"number"},"default_velocity":{"default":10.0,"description":"Points per week for anyone not listed (and unassigned work). Default 10.","format":"double","type":"number"},"tql":{"description":"The plan's issues: any projects, e.g. `project IN (WEB, API) AND statusCategory != Done ORDER BY rank`.","type":"string"}},"required":["tql"],"type":"object"},"updated_at":{"format":"int64","type":"integer"},"viewers":{"items":{"type":"string"},"type":"array"}},"required":["id","name","owner","viewers","editors","settings","scenarios","can_edit","updated_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.plan_scenario_save":{"post":{"operationId":"issues.plan_scenario_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"copy_from":{"description":"New scenarios start as a copy of this one's changes.","format":"int64","type":["integer","null"]},"id":{"description":"Omit to add one.","format":"int64","type":["integer","null"]},"name":{"type":"string"},"plan":{"format":"int64","type":"integer"}},"required":["plan","name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"editors":{"items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"owner":{"type":"string"},"scenarios":{"items":{"properties":{"changes":{"description":"Staged changes in it.","format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"}},"required":["id","name","changes"],"type":"object"},"type":"array"},"settings":{"properties":{"capacity":{"default":[],"items":{"properties":{"points_per_week":{"description":"Story points per week.","format":"double","type":"number"},"who":{"description":"Member id, or \"\" for unassigned work.","type":"string"}},"required":["who","points_per_week"],"type":"object"},"type":"array"},"default_points":{"default":1.0,"description":"Estimate used for issues without points. Default 1.","format":"double","type":"number"},"default_velocity":{"default":10.0,"description":"Points per week for anyone not listed (and unassigned work). Default 10.","format":"double","type":"number"},"tql":{"description":"The plan's issues: any projects, e.g. `project IN (WEB, API) AND statusCategory != Done ORDER BY rank`.","type":"string"}},"required":["tql"],"type":"object"},"updated_at":{"format":"int64","type":"integer"},"viewers":{"items":{"type":"string"},"type":"array"}},"required":["id","name","owner","viewers","editors","settings","scenarios","can_edit","updated_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.plan_schedule":{"post":{"operationId":"issues.plan_schedule","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"plan":{"format":"int64","type":"integer"},"scenario":{"format":"int64","type":"integer"},"start":{"description":"First day work can start (default today).","type":["string","null"]}},"required":["plan","scenario"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"count":{"format":"uint","minimum":0,"type":"integer"}},"required":["count"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.plan_view":{"post":{"operationId":"issues.plan_view","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"},"scenario":{"description":"Show this scenario's staged changes; omit for the issues as they are.","format":"int64","type":["integer","null"]}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deps":{"items":{"description":"`from` blocks `to` (a \"Blocks\" link): `to` should start after `from` is due.","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"type":"object"},"type":"array"},"items":{"items":{"properties":{"affects_versions":{"items":{"type":"string"},"type":"array"},"assignee":{"type":["string","null"]},"category":{"description":"The lane's category: todo | in_progress | done.","type":"string"},"changed":{"description":"The scenario changes this issue (dates and assignee shown are the scenario's).","type":"boolean"},"children":{"description":"Children (issues whose parent this is).","format":"int64","type":"integer"},"components":{"items":{"type":"string"},"type":"array"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"description":{"type":"string"},"description_doc":{"description":"The description as a rich document (TipTap JSON); null when there's only the markdown `description`.","type":["string","null"]},"due_date":{"description":"YYYY-MM-DD","type":["string","null"]},"epic":{"description":"Key of the epic (level-1 ancestor: the parent, or a sub-task's grandparent).","type":["string","null"]},"fields":{"additionalProperties":true,"description":"Custom field values by key, formulas computed.","type":"object"},"fix_versions":{"items":{"type":"string"},"type":"array"},"id":{"description":"Internal id; comments use the subject `issue:{id}`.","format":"int64","type":"integer"},"key":{"description":"`{project}-{number}`, e.g. \"KB-12\".","type":"string"},"kind":{"type":"string"},"labels":{"description":"Label keys.","items":{"type":"string"},"type":"array"},"level":{"description":"Hierarchy level of its type.","format":"int64","type":"integer"},"live_assignee":{"type":["string","null"]},"live_due_date":{"type":["string","null"]},"live_start_date":{"description":"The issue's own values when changed.","type":["string","null"]},"notices":{"description":"Only on `issues.update` / `issues.assign` answers: fields someone else changed since `base` that yours replaced.","items":{"description":"\"Someone also changed this\": a field another person changed after you loaded the issue, which your change replaced.","properties":{"at":{"format":"int64","type":["integer","null"]},"by":{"description":"Who set theirs, and when (from the issue's history; null if unknown).","type":["string","null"]},"field":{"description":"Issue field name, or `fields.<key>` for a custom field.","type":"string"},"theirs":{"description":"What they had set (send it back to undo yours)."},"yours":true},"required":["field","theirs","yours"],"type":"object"},"type":"array"},"number":{"format":"int64","type":"integer"},"parent":{"description":"Key of the parent issue (one hierarchy level up).","type":["string","null"]},"points":{"description":"Story points.","format":"double","type":["number","null"]},"priority":{"type":"string"},"project":{"type":"string"},"rank":{"description":"Backlog order within the project: sort by this text, ascending (see `issues.rank`). Null until the backfill runs.","type":["string","null"]},"recurring":{"description":"day | week | month when this issue is a recurring template.","type":["string","null"]},"resolution":{"description":"Resolution key; set while in a done lane.","type":["string","null"]},"resolved_at":{"format":"int64","type":["integer","null"]},"security":{"description":"Security level id: only its members (plus the reporter, assignee and admins) see the issue. Null = the project's viewers.","format":"int64","type":["integer","null"]},"sprint":{"description":"Sprint id; null = backlog.","format":"int64","type":["integer","null"]},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]},"status":{"description":"Lane key within the project.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"votes":{"format":"int64","type":"integer"},"watchers":{"format":"int64","type":"integer"}},"required":["id","key","project","number","title","description","status","category","priority","kind","created_by","created_at","updated_at","labels","components","fix_versions","affects_versions","votes","watchers","children","fields","notices","level","changed"],"type":"object"},"type":"array"},"load":{"description":"Work per person per week against their capacity.","items":{"properties":{"points_per_week":{"format":"double","type":"number"},"weeks":{"description":"Scheduled points falling in each week (spread over each issue's working days).","items":{"properties":{"points":{"format":"double","type":"number"},"week":{"description":"Monday, YYYY-MM-DD.","type":"string"}},"required":["week","points"],"type":"object"},"type":"array"},"who":{"description":"Member id, or \"\" for unassigned.","type":"string"}},"required":["who","points_per_week","weeks"],"type":"object"},"type":"array"},"plan":{"properties":{"can_edit":{"type":"boolean"},"editors":{"items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"owner":{"type":"string"},"scenarios":{"items":{"properties":{"changes":{"description":"Staged changes in it.","format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"}},"required":["id","name","changes"],"type":"object"},"type":"array"},"settings":{"properties":{"capacity":{"default":[],"items":{"properties":{"points_per_week":{"description":"Story points per week.","format":"double","type":"number"},"who":{"description":"Member id, or \"\" for unassigned work.","type":"string"}},"required":["who","points_per_week"],"type":"object"},"type":"array"},"default_points":{"default":1.0,"description":"Estimate used for issues without points. Default 1.","format":"double","type":"number"},"default_velocity":{"default":10.0,"description":"Points per week for anyone not listed (and unassigned work). Default 10.","format":"double","type":"number"},"tql":{"description":"The plan's issues: any projects, e.g. `project IN (WEB, API) AND statusCategory != Done ORDER BY rank`.","type":"string"}},"required":["tql"],"type":"object"},"updated_at":{"format":"int64","type":"integer"},"viewers":{"items":{"type":"string"},"type":"array"}},"required":["id","name","owner","viewers","editors","settings","scenarios","can_edit","updated_at"],"type":"object"},"scenario":{"format":"int64","type":["integer","null"]},"total":{"description":"Matching issues (more than `items` when cut at 2,000).","format":"int64","type":"integer"}},"required":["plan","items","deps","total","load"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.plans":{"post":{"operationId":"issues.plans","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"can_edit":{"type":"boolean"},"editors":{"items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"owner":{"type":"string"},"scenarios":{"items":{"properties":{"changes":{"description":"Staged changes in it.","format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"}},"required":["id","name","changes"],"type":"object"},"type":"array"},"settings":{"properties":{"capacity":{"default":[],"items":{"properties":{"points_per_week":{"description":"Story points per week.","format":"double","type":"number"},"who":{"description":"Member id, or \"\" for unassigned work.","type":"string"}},"required":["who","points_per_week"],"type":"object"},"type":"array"},"default_points":{"default":1.0,"description":"Estimate used for issues without points. Default 1.","format":"double","type":"number"},"default_velocity":{"default":10.0,"description":"Points per week for anyone not listed (and unassigned work). Default 10.","format":"double","type":"number"},"tql":{"description":"The plan's issues: any projects, e.g. `project IN (WEB, API) AND statusCategory != Done ORDER BY rank`.","type":"string"}},"required":["tql"],"type":"object"},"updated_at":{"format":"int64","type":"integer"},"viewers":{"items":{"type":"string"},"type":"array"}},"required":["id","name","owner","viewers","editors","settings","scenarios","can_edit","updated_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.project_create":{"post":{"operationId":"issues.project_create","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"color":{"type":["string","null"]},"copy_from":{"description":"Copy columns, workflow, components and board settings from this project…","type":["string","null"]},"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"key":{"type":"string"},"lead":{"description":"Project lead (member id): a default assignee and a workflow role.","type":["string","null"]},"name":{"type":"string"},"style":{"description":"scrum (backlog and sprints) | kanban (a continuous board). Default scrum.","type":["string","null"]},"template":{"description":"…or start from a project template (key, see `issues.templates`). Neither = the org's default columns.","type":["string","null"]}},"required":["key","name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"admins":{"description":"Who changes settings, columns, workflow, components and versions.","items":{"type":"string"},"type":"array"},"can_admin":{"type":"boolean"},"can_edit":{"description":"What the caller may do.","type":"boolean"},"color":{"type":"string"},"counts":{"description":"Issues per status category.","properties":{"done":{"format":"int64","type":"integer"},"in_progress":{"format":"int64","type":"integer"},"todo":{"format":"int64","type":"integer"}},"required":["todo","in_progress","done"],"type":"object"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"description":{"type":"string"},"editors":{"description":"Who creates and changes issues, sprints and links.","items":{"type":"string"},"type":"array"},"icon":{"type":"string"},"key":{"type":"string"},"lead":{"description":"Administers the project (as do org admins and anyone in `admins`).","type":["string","null"]},"name":{"type":"string"},"priority_scheme":{"description":"Priority / resolution schemes in use; null = all the org's options.","format":"int64","type":["integer","null"]},"resolution_scheme":{"format":"int64","type":["integer","null"]},"scheme":{"description":"Permission scheme in use (its lists replace the project's own); null = the project's own lists.","format":"int64","type":["integer","null"]},"style":{"description":"scrum | kanban","type":"string"},"viewers":{"description":"Who sees the project and its issues: `everyone`, `admins`, `team:<id>`, member ids.","items":{"type":"string"},"type":"array"}},"required":["key","name","description","icon","color","created_by","created_at","counts","style","viewers","editors","admins","can_edit","can_admin"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.project_delete":{"post":{"operationId":"issues.project_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/issues.project_get":{"post":{"operationId":"issues.project_get","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"admins":{"description":"Who changes settings, columns, workflow, components and versions.","items":{"type":"string"},"type":"array"},"can_admin":{"type":"boolean"},"can_edit":{"description":"What the caller may do.","type":"boolean"},"color":{"type":"string"},"counts":{"description":"Issues per status category.","properties":{"done":{"format":"int64","type":"integer"},"in_progress":{"format":"int64","type":"integer"},"todo":{"format":"int64","type":"integer"}},"required":["todo","in_progress","done"],"type":"object"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"description":{"type":"string"},"editors":{"description":"Who creates and changes issues, sprints and links.","items":{"type":"string"},"type":"array"},"icon":{"type":"string"},"key":{"type":"string"},"lead":{"description":"Administers the project (as do org admins and anyone in `admins`).","type":["string","null"]},"name":{"type":"string"},"priority_scheme":{"description":"Priority / resolution schemes in use; null = all the org's options.","format":"int64","type":["integer","null"]},"resolution_scheme":{"format":"int64","type":["integer","null"]},"scheme":{"description":"Permission scheme in use (its lists replace the project's own); null = the project's own lists.","format":"int64","type":["integer","null"]},"style":{"description":"scrum | kanban","type":"string"},"viewers":{"description":"Who sees the project and its issues: `everyone`, `admins`, `team:<id>`, member ids.","items":{"type":"string"},"type":"array"}},"required":["key","name","description","icon","color","created_by","created_at","counts","style","viewers","editors","admins","can_edit","can_admin"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.project_list":{"post":{"operationId":"issues.project_list","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"admins":{"description":"Who changes settings, columns, workflow, components and versions.","items":{"type":"string"},"type":"array"},"can_admin":{"type":"boolean"},"can_edit":{"description":"What the caller may do.","type":"boolean"},"color":{"type":"string"},"counts":{"description":"Issues per status category.","properties":{"done":{"format":"int64","type":"integer"},"in_progress":{"format":"int64","type":"integer"},"todo":{"format":"int64","type":"integer"}},"required":["todo","in_progress","done"],"type":"object"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"description":{"type":"string"},"editors":{"description":"Who creates and changes issues, sprints and links.","items":{"type":"string"},"type":"array"},"icon":{"type":"string"},"key":{"type":"string"},"lead":{"description":"Administers the project (as do org admins and anyone in `admins`).","type":["string","null"]},"name":{"type":"string"},"priority_scheme":{"description":"Priority / resolution schemes in use; null = all the org's options.","format":"int64","type":["integer","null"]},"resolution_scheme":{"format":"int64","type":["integer","null"]},"scheme":{"description":"Permission scheme in use (its lists replace the project's own); null = the project's own lists.","format":"int64","type":["integer","null"]},"style":{"description":"scrum | kanban","type":"string"},"viewers":{"description":"Who sees the project and its issues: `everyone`, `admins`, `team:<id>`, member ids.","items":{"type":"string"},"type":"array"}},"required":["key","name","description","icon","color","created_by","created_at","counts","style","viewers","editors","admins","can_edit","can_admin"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.project_options":{"post":{"operationId":"issues.project_options","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"project":{"type":"string"}},"required":["project"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"default_priority":{"type":["string","null"]},"default_resolution":{"type":["string","null"]},"priorities":{"description":"Allowed keys in order; the default for new issues / resolving.","items":{"type":"string"},"type":"array"},"resolutions":{"items":{"type":"string"},"type":"array"}},"required":["priorities","resolutions"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.project_update":{"post":{"operationId":"issues.project_update","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"admins":{"items":{"type":"string"},"type":["array","null"]},"color":{"type":["string","null"]},"description":{"type":["string","null"]},"editors":{"items":{"type":"string"},"type":["array","null"]},"icon":{"type":["string","null"]},"key":{"type":"string"},"lead":{"description":"Member id; empty clears.","type":["string","null"]},"name":{"type":["string","null"]},"priority_scheme":{"default":null,"description":"Priority / resolution scheme (`issues.option_schemes`); null = all the org's options.","format":"int64","type":["integer","null"]},"resolution_scheme":{"default":null,"format":"int64","type":["integer","null"]},"scheme":{"default":null,"description":"Use a shared permission scheme; null = back to the project's own lists.","format":"int64","type":["integer","null"]},"style":{"type":["string","null"]},"viewers":{"description":"Permission lists (`everyone`, `admins`, `team:<id>`, member ids).","items":{"type":"string"},"type":["array","null"]}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"admins":{"description":"Who changes settings, columns, workflow, components and versions.","items":{"type":"string"},"type":"array"},"can_admin":{"type":"boolean"},"can_edit":{"description":"What the caller may do.","type":"boolean"},"color":{"type":"string"},"counts":{"description":"Issues per status category.","properties":{"done":{"format":"int64","type":"integer"},"in_progress":{"format":"int64","type":"integer"},"todo":{"format":"int64","type":"integer"}},"required":["todo","in_progress","done"],"type":"object"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"description":{"type":"string"},"editors":{"description":"Who creates and changes issues, sprints and links.","items":{"type":"string"},"type":"array"},"icon":{"type":"string"},"key":{"type":"string"},"lead":{"description":"Administers the project (as do org admins and anyone in `admins`).","type":["string","null"]},"name":{"type":"string"},"priority_scheme":{"description":"Priority / resolution schemes in use; null = all the org's options.","format":"int64","type":["integer","null"]},"resolution_scheme":{"format":"int64","type":["integer","null"]},"scheme":{"description":"Permission scheme in use (its lists replace the project's own); null = the project's own lists.","format":"int64","type":["integer","null"]},"style":{"description":"scrum | kanban","type":"string"},"viewers":{"description":"Who sees the project and its issues: `everyone`, `admins`, `team:<id>`, member ids.","items":{"type":"string"},"type":"array"}},"required":["key","name","description","icon","color","created_by","created_at","counts","style","viewers","editors","admins","can_edit","can_admin"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.query":{"post":{"operationId":"issues.query","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"description":"Issues matching a TQL query (JQL-style), e.g. `project = KB AND status != Done AND assignee = currentUser()\nORDER BY priority DESC`. Fields: project, key, summary, description, text (~ only), status, statusCategory,\npriority, type, resolution, assignee, reporter, labels, component, fixVersion, affectedVersion, sprint, parent, epic,\ncreated, updated, resolved, due, points, votes, watchers, and custom fields by key or name (quote names with spaces).\nOperators: = != > >= < <= ~ (contains) !~ IN (...) NOT IN (...) IS [NOT] EMPTY; AND, OR, NOT, parentheses.\nFunctions: currentUser(), openSprints(), closedSprints(), futureSprints(), releasedVersions(), unreleasedVersions(),\nnow(), startOfDay(), endOfDay(), startOfWeek(), startOfMonth(), startOfYear(); relative dates like -7d, -2w, 3h.","properties":{"limit":{"description":"1-500, default 50.","format":"int64","type":["integer","null"]},"offset":{"format":"int64","type":["integer","null"]},"tql":{"type":"string"}},"required":["tql"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"issues":{"items":{"properties":{"affects_versions":{"items":{"type":"string"},"type":"array"},"assignee":{"type":["string","null"]},"category":{"description":"The lane's category: todo | in_progress | done.","type":"string"},"children":{"description":"Children (issues whose parent this is).","format":"int64","type":"integer"},"components":{"items":{"type":"string"},"type":"array"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"description":{"type":"string"},"description_doc":{"description":"The description as a rich document (TipTap JSON); null when there's only the markdown `description`.","type":["string","null"]},"due_date":{"description":"YYYY-MM-DD","type":["string","null"]},"epic":{"description":"Key of the epic (level-1 ancestor: the parent, or a sub-task's grandparent).","type":["string","null"]},"fields":{"additionalProperties":true,"description":"Custom field values by key, formulas computed.","type":"object"},"fix_versions":{"items":{"type":"string"},"type":"array"},"id":{"description":"Internal id; comments use the subject `issue:{id}`.","format":"int64","type":"integer"},"key":{"description":"`{project}-{number}`, e.g. \"KB-12\".","type":"string"},"kind":{"type":"string"},"labels":{"description":"Label keys.","items":{"type":"string"},"type":"array"},"notices":{"description":"Only on `issues.update` / `issues.assign` answers: fields someone else changed since `base` that yours replaced.","items":{"description":"\"Someone also changed this\": a field another person changed after you loaded the issue, which your change replaced.","properties":{"at":{"format":"int64","type":["integer","null"]},"by":{"description":"Who set theirs, and when (from the issue's history; null if unknown).","type":["string","null"]},"field":{"description":"Issue field name, or `fields.<key>` for a custom field.","type":"string"},"theirs":{"description":"What they had set (send it back to undo yours)."},"yours":true},"required":["field","theirs","yours"],"type":"object"},"type":"array"},"number":{"format":"int64","type":"integer"},"parent":{"description":"Key of the parent issue (one hierarchy level up).","type":["string","null"]},"points":{"description":"Story points.","format":"double","type":["number","null"]},"priority":{"type":"string"},"project":{"type":"string"},"rank":{"description":"Backlog order within the project: sort by this text, ascending (see `issues.rank`). Null until the backfill runs.","type":["string","null"]},"recurring":{"description":"day | week | month when this issue is a recurring template.","type":["string","null"]},"resolution":{"description":"Resolution key; set while in a done lane.","type":["string","null"]},"resolved_at":{"format":"int64","type":["integer","null"]},"security":{"description":"Security level id: only its members (plus the reporter, assignee and admins) see the issue. Null = the project's viewers.","format":"int64","type":["integer","null"]},"sprint":{"description":"Sprint id; null = backlog.","format":"int64","type":["integer","null"]},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]},"status":{"description":"Lane key within the project.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"votes":{"format":"int64","type":"integer"},"watchers":{"format":"int64","type":"integer"}},"required":["id","key","project","number","title","description","status","category","priority","kind","created_by","created_at","updated_at","labels","components","fix_versions","affects_versions","votes","watchers","children","fields","notices"],"type":"object"},"type":"array"},"limit":{"format":"int64","type":"integer"},"offset":{"format":"int64","type":"integer"},"total":{"description":"Every match you can see.","format":"int64","type":"integer"}},"required":["issues","total","offset","limit"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.rank":{"post":{"operationId":"issues.rank","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"after":{"description":"…or just below this one. Neither = the top.","type":["string","null"]},"before":{"description":"Put it just above this issue (same project)…","type":["string","null"]},"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"},"rank":{"type":"string"}},"required":["key","rank"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.recur_set":{"post":{"operationId":"issues.recur_set","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"every":{"description":"day | week | month; null stops recurring.","type":["string","null"]},"key":{"type":"string"},"next_on":{"description":"First date to create a copy (YYYY-MM-DD); defaults to one period from today.","type":["string","null"]}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"affects_versions":{"items":{"type":"string"},"type":"array"},"assignee":{"type":["string","null"]},"category":{"description":"The lane's category: todo | in_progress | done.","type":"string"},"children":{"description":"Children (issues whose parent this is).","format":"int64","type":"integer"},"components":{"items":{"type":"string"},"type":"array"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"description":{"type":"string"},"description_doc":{"description":"The description as a rich document (TipTap JSON); null when there's only the markdown `description`.","type":["string","null"]},"due_date":{"description":"YYYY-MM-DD","type":["string","null"]},"epic":{"description":"Key of the epic (level-1 ancestor: the parent, or a sub-task's grandparent).","type":["string","null"]},"fields":{"additionalProperties":true,"description":"Custom field values by key, formulas computed.","type":"object"},"fix_versions":{"items":{"type":"string"},"type":"array"},"id":{"description":"Internal id; comments use the subject `issue:{id}`.","format":"int64","type":"integer"},"key":{"description":"`{project}-{number}`, e.g. \"KB-12\".","type":"string"},"kind":{"type":"string"},"labels":{"description":"Label keys.","items":{"type":"string"},"type":"array"},"notices":{"description":"Only on `issues.update` / `issues.assign` answers: fields someone else changed since `base` that yours replaced.","items":{"description":"\"Someone also changed this\": a field another person changed after you loaded the issue, which your change replaced.","properties":{"at":{"format":"int64","type":["integer","null"]},"by":{"description":"Who set theirs, and when (from the issue's history; null if unknown).","type":["string","null"]},"field":{"description":"Issue field name, or `fields.<key>` for a custom field.","type":"string"},"theirs":{"description":"What they had set (send it back to undo yours)."},"yours":true},"required":["field","theirs","yours"],"type":"object"},"type":"array"},"number":{"format":"int64","type":"integer"},"parent":{"description":"Key of the parent issue (one hierarchy level up).","type":["string","null"]},"points":{"description":"Story points.","format":"double","type":["number","null"]},"priority":{"type":"string"},"project":{"type":"string"},"rank":{"description":"Backlog order within the project: sort by this text, ascending (see `issues.rank`). Null until the backfill runs.","type":["string","null"]},"recurring":{"description":"day | week | month when this issue is a recurring template.","type":["string","null"]},"resolution":{"description":"Resolution key; set while in a done lane.","type":["string","null"]},"resolved_at":{"format":"int64","type":["integer","null"]},"security":{"description":"Security level id: only its members (plus the reporter, assignee and admins) see the issue. Null = the project's viewers.","format":"int64","type":["integer","null"]},"sprint":{"description":"Sprint id; null = backlog.","format":"int64","type":["integer","null"]},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]},"status":{"description":"Lane key within the project.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"votes":{"format":"int64","type":"integer"},"watchers":{"format":"int64","type":"integer"}},"required":["id","key","project","number","title","description","status","category","priority","kind","created_by","created_at","updated_at","labels","components","fix_versions","affects_versions","votes","watchers","children","fields","notices"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.recur_tick":{"post":{"operationId":"issues.recur_tick","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"created":{"items":{"type":"string"},"type":"array"}},"required":["created"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/issues.recurring":{"post":{"operationId":"issues.recurring","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"every":{"type":"string"},"key":{"type":"string"},"next_on":{"type":"string"},"title":{"type":"string"}},"required":["key","title","every","next_on"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.release_notes":{"post":{"operationId":"issues.release_notes","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"group_by":{"description":"type (default) | component | none","type":["string","null"]},"include_open":{"default":false,"description":"Include fix-version issues that aren't done yet (default false).","type":"boolean"},"version":{"description":"Version id.","format":"int64","type":"integer"}},"required":["version"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"issues":{"description":"Issues in the notes.","format":"int64","type":"integer"},"markdown":{"description":"Markdown.","type":"string"}},"required":["markdown","issues"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.release_notes_ai":{"post":{"operationId":"issues.release_notes_ai","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"include_open":{"default":false,"type":"boolean"},"model":{"type":["string","null"]},"provider":{"type":["string","null"]},"tone":{"type":["string","null"]},"version":{"format":"int64","type":"integer"}},"required":["version"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"issues":{"description":"Issues in the notes.","format":"int64","type":"integer"},"markdown":{"description":"Markdown.","type":"string"}},"required":["markdown","issues"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.release_notes_prompt":{"post":{"operationId":"issues.release_notes_prompt","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"include_open":{"default":false,"type":"boolean"},"tone":{"description":"e.g. \"friendly, for customers\" (default) or \"technical, for developers\".","type":["string","null"]},"version":{"format":"int64","type":"integer"}},"required":["version"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"prompt":{"type":"string"},"subjects":{"items":{"type":"string"},"type":"array"},"system":{"type":"string"}},"required":["system","prompt","subjects"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.release_notes_publish":{"post":{"operationId":"issues.release_notes_publish","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"space":{"description":"Space key to publish into.","type":"string"},"title":{"description":"Default \"<project> <version> release notes\".","type":["string","null"]},"version":{"format":"int64","type":"integer"}},"required":["version","space"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"page":{"description":"The page's id.","type":"string"},"title":{"type":"string"}},"required":["page","title"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.release_notes_save":{"post":{"operationId":"issues.release_notes_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"notes":{"description":"Markdown.","type":"string"},"version":{"format":"int64","type":"integer"}},"required":["version","notes"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"},"done":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Issues with this fix version, and how many of them are done.","format":"int64","type":"integer"},"name":{"type":"string"},"notes":{"description":"Saved release notes (markdown).","type":"string"},"project":{"type":"string"},"release_date":{"type":["string","null"]},"released":{"type":"boolean"},"released_at":{"format":"int64","type":["integer","null"]},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]}},"required":["id","project","name","description","released","issues","done","notes"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.report_cycle":{"post":{"operationId":"issues.report_cycle","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"days":{"description":"Days back from today (default 30 for flow, 90 for cycle time; at most 365).","format":"int64","type":["integer","null"]},"project":{"type":"string"}},"required":["project"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"cycle":{"description":"Started → resolved.","properties":{"avg":{"description":"Days, one decimal.","format":"double","type":["number","null"]},"count":{"format":"uint","minimum":0,"type":"integer"},"median":{"format":"double","type":["number","null"]},"p85":{"format":"double","type":["number","null"]}},"required":["count"],"type":"object"},"items":{"description":"Issues resolved in the window, oldest first: the control chart's points.","items":{"properties":{"created_at":{"format":"int64","type":"integer"},"cycle_days":{"format":"double","type":["number","null"]},"key":{"type":"string"},"lead_days":{"format":"double","type":"number"},"resolved_at":{"format":"int64","type":"integer"},"started_at":{"description":"First time it entered an in-progress column; null if it went straight to done.","format":"int64","type":["integer","null"]},"title":{"type":"string"}},"required":["key","title","created_at","resolved_at","lead_days"],"type":"object"},"type":"array"},"lead":{"description":"Created → resolved.","properties":{"avg":{"description":"Days, one decimal.","format":"double","type":["number","null"]},"count":{"format":"uint","minimum":0,"type":"integer"},"median":{"format":"double","type":["number","null"]},"p85":{"format":"double","type":["number","null"]}},"required":["count"],"type":"object"}},"required":["items","lead","cycle"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.report_flow":{"post":{"operationId":"issues.report_flow","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"days":{"description":"Days back from today (default 30 for flow, 90 for cycle time; at most 365).","format":"int64","type":["integer","null"]},"project":{"type":"string"}},"required":["project"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"counts":{"description":"counts[d][s]: issues in `statuses[s]` at the end of `days[d]`.","items":{"items":{"format":"int64","type":"integer"},"type":"array"},"type":"array"},"days":{"description":"YYYY-MM-DD (UTC), oldest first.","items":{"type":"string"},"type":"array"},"statuses":{"description":"The project's columns, in board order.","items":{"properties":{"category":{"description":"todo | in_progress | done","type":"string"},"color":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name","category","color"],"type":"object"},"type":"array"}},"required":["days","statuses","counts"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.retro_add":{"post":{"operationId":"issues.retro_add","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"anonymous":{"description":"Hide the author from everyone (the server keeps it only so they can remove the card).","type":["boolean","null"]},"body":{"type":"string"},"col":{"type":"string"},"sprint":{"format":"int64","type":"integer"}},"required":["sprint","col","body"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"anonymous":{"type":"boolean"},"author":{"description":"null on anonymous cards.","type":["string","null"]},"body":{"type":"string"},"col":{"description":"Retro column key (org-configurable, field \"retro\").","type":"string"},"created_at":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"mine":{"description":"The caller wrote it (true on your own anonymous cards too, so you can remove them).","type":"boolean"},"sprint":{"format":"int64","type":"integer"},"voted":{"description":"Whether the caller voted.","type":"boolean"},"votes":{"format":"int64","type":"integer"}},"required":["id","sprint","col","body","anonymous","mine","created_at","votes","voted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.retro_delete":{"post":{"operationId":"issues.retro_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.retro_list":{"post":{"operationId":"issues.retro_list","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"anonymous":{"type":"boolean"},"author":{"description":"null on anonymous cards.","type":["string","null"]},"body":{"type":"string"},"col":{"description":"Retro column key (org-configurable, field \"retro\").","type":"string"},"created_at":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"mine":{"description":"The caller wrote it (true on your own anonymous cards too, so you can remove them).","type":"boolean"},"sprint":{"format":"int64","type":"integer"},"voted":{"description":"Whether the caller voted.","type":"boolean"},"votes":{"format":"int64","type":"integer"}},"required":["id","sprint","col","body","anonymous","mine","created_at","votes","voted"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.retro_vote":{"post":{"operationId":"issues.retro_vote","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"anonymous":{"type":"boolean"},"author":{"description":"null on anonymous cards.","type":["string","null"]},"body":{"type":"string"},"col":{"description":"Retro column key (org-configurable, field \"retro\").","type":"string"},"created_at":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"mine":{"description":"The caller wrote it (true on your own anonymous cards too, so you can remove them).","type":"boolean"},"sprint":{"format":"int64","type":"integer"},"voted":{"description":"Whether the caller voted.","type":"boolean"},"votes":{"format":"int64","type":"integer"}},"required":["id","sprint","col","body","anonymous","mine","created_at","votes","voted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.scheme_delete":{"post":{"operationId":"issues.scheme_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/issues.scheme_save":{"post":{"operationId":"issues.scheme_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"admins":{"items":{"type":"string"},"type":["array","null"]},"description":{"type":["string","null"]},"editors":{"items":{"type":"string"},"type":["array","null"]},"id":{"description":"Omit to create.","format":"int64","type":["integer","null"]},"name":{"type":["string","null"]},"viewers":{"items":{"type":"string"},"type":["array","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"admins":{"items":{"type":"string"},"type":"array"},"description":{"type":"string"},"editors":{"items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"projects":{"description":"Keys of projects using it.","items":{"type":"string"},"type":"array"},"viewers":{"items":{"type":"string"},"type":"array"}},"required":["id","name","description","viewers","editors","admins","projects"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/issues.schemes":{"post":{"operationId":"issues.schemes","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"admins":{"items":{"type":"string"},"type":"array"},"description":{"type":"string"},"editors":{"items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"projects":{"description":"Keys of projects using it.","items":{"type":"string"},"type":"array"},"viewers":{"items":{"type":"string"},"type":"array"}},"required":["id","name","description","viewers","editors","admins","projects"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.security_delete":{"post":{"operationId":"issues.security_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/issues.security_levels":{"post":{"operationId":"issues.security_levels","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"description":{"type":"string"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Issues at this level.","format":"int64","type":"integer"},"members":{"description":"Who sees issues at this level (besides each issue's reporter and assignee, and org admins).","items":{"type":"string"},"type":"array"},"mine":{"description":"Whether the caller is a member (may put issues at this level).","type":"boolean"},"name":{"type":"string"},"position":{"format":"double","type":"number"}},"required":["id","name","description","members","position","mine","issues"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.security_save":{"post":{"operationId":"issues.security_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":["string","null"]},"id":{"format":"int64","type":["integer","null"]},"members":{"items":{"type":"string"},"type":["array","null"]},"name":{"type":["string","null"]},"position":{"format":"double","type":["number","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Issues at this level.","format":"int64","type":"integer"},"members":{"description":"Who sees issues at this level (besides each issue's reporter and assignee, and org admins).","items":{"type":"string"},"type":"array"},"mine":{"description":"Whether the caller is a member (may put issues at this level).","type":"boolean"},"name":{"type":"string"},"position":{"format":"double","type":"number"}},"required":["id","name","description","members","position","mine","issues"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/issues.similar":{"post":{"operationId":"issues.similar","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"description":"The issue itself, left out of its own matches.","type":["string","null"]},"limit":{"description":"Default 5, max 20.","format":"uint","minimum":0,"type":["integer","null"]},"project":{"description":"Same-project matches come first.","type":["string","null"]},"title":{"type":"string"}},"required":["title"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"assignee":{"type":["string","null"]},"category":{"description":"open | done","type":"string"},"key":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"}},"required":["key","title","status","category"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.social":{"post":{"operationId":"issues.social","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"voted":{"type":"boolean"},"votes":{"format":"int64","type":"integer"},"watchers":{"description":"Watcher ids.","items":{"type":"string"},"type":"array"},"watching":{"type":"boolean"}},"required":["watchers","watching","votes","voted"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.sprint_complete":{"post":{"operationId":"issues.sprint_complete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"},"move_to":{"description":"A planned sprint of the same project that unfinished issues move to; omit for the backlog.","format":"int64","type":["integer","null"]}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"committed_points":{"description":"Points in the sprint when it started (velocity: committed).","format":"double","type":["number","null"]},"completed_at":{"format":"int64","type":["integer","null"]},"completed_points":{"description":"Points done when it completed (velocity: completed).","format":"double","type":["number","null"]},"created_at":{"format":"int64","type":"integer"},"done_issues":{"format":"int64","type":"integer"},"done_points":{"format":"double","type":"number"},"end_date":{"type":["string","null"]},"goal":{"type":"string"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Current contents.","format":"int64","type":"integer"},"name":{"type":"string"},"points":{"format":"double","type":"number"},"project":{"type":"string"},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]},"state":{"description":"planned | active | closed","type":"string"}},"required":["id","project","name","goal","state","created_at","issues","points","done_issues","done_points"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.sprint_delete":{"post":{"operationId":"issues.sprint_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.sprint_get":{"post":{"operationId":"issues.sprint_get","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"committed_points":{"description":"Points in the sprint when it started (velocity: committed).","format":"double","type":["number","null"]},"completed_at":{"format":"int64","type":["integer","null"]},"completed_points":{"description":"Points done when it completed (velocity: completed).","format":"double","type":["number","null"]},"created_at":{"format":"int64","type":"integer"},"done_issues":{"format":"int64","type":"integer"},"done_points":{"format":"double","type":"number"},"end_date":{"type":["string","null"]},"goal":{"type":"string"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Current contents.","format":"int64","type":"integer"},"name":{"type":"string"},"points":{"format":"double","type":"number"},"project":{"type":"string"},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]},"state":{"description":"planned | active | closed","type":"string"}},"required":["id","project","name","goal","state","created_at","issues","points","done_issues","done_points"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.sprint_list":{"post":{"operationId":"issues.sprint_list","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"project":{"type":"string"}},"required":["project"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"committed_points":{"description":"Points in the sprint when it started (velocity: committed).","format":"double","type":["number","null"]},"completed_at":{"format":"int64","type":["integer","null"]},"completed_points":{"description":"Points done when it completed (velocity: completed).","format":"double","type":["number","null"]},"created_at":{"format":"int64","type":"integer"},"done_issues":{"format":"int64","type":"integer"},"done_points":{"format":"double","type":"number"},"end_date":{"type":["string","null"]},"goal":{"type":"string"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Current contents.","format":"int64","type":"integer"},"name":{"type":"string"},"points":{"format":"double","type":"number"},"project":{"type":"string"},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]},"state":{"description":"planned | active | closed","type":"string"}},"required":["id","project","name","goal","state","created_at","issues","points","done_issues","done_points"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.sprint_report":{"post":{"operationId":"issues.sprint_report","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"added":{"description":"Put into the sprint after it started.","items":{"properties":{"key":{"type":"string"},"points":{"format":"double","type":["number","null"]},"title":{"type":"string"}},"required":["key","title"],"type":"object"},"type":"array"},"completed":{"description":"Done (in a done column) and still in the sprint.","items":{"properties":{"key":{"type":"string"},"points":{"format":"double","type":["number","null"]},"title":{"type":"string"}},"required":["key","title"],"type":"object"},"type":"array"},"not_completed":{"description":"Still open in the sprint, or (closed sprints) moved out when it completed.","items":{"properties":{"key":{"type":"string"},"points":{"format":"double","type":["number","null"]},"title":{"type":"string"}},"required":["key","title"],"type":"object"},"type":"array"},"removed":{"description":"Taken out while it ran (not counting the move at completion).","items":{"properties":{"key":{"type":"string"},"points":{"format":"double","type":["number","null"]},"title":{"type":"string"}},"required":["key","title"],"type":"object"},"type":"array"}},"required":["completed","not_completed","added","removed"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.sprint_save":{"post":{"operationId":"issues.sprint_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"end_date":{"type":["string","null"]},"goal":{"type":["string","null"]},"id":{"description":"Omit to create.","format":"int64","type":["integer","null"]},"name":{"description":"Defaults to \"{KEY} Sprint {n}\".","type":["string","null"]},"project":{"description":"Required to create.","type":["string","null"]},"start_date":{"type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"committed_points":{"description":"Points in the sprint when it started (velocity: committed).","format":"double","type":["number","null"]},"completed_at":{"format":"int64","type":["integer","null"]},"completed_points":{"description":"Points done when it completed (velocity: completed).","format":"double","type":["number","null"]},"created_at":{"format":"int64","type":"integer"},"done_issues":{"format":"int64","type":"integer"},"done_points":{"format":"double","type":"number"},"end_date":{"type":["string","null"]},"goal":{"type":"string"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Current contents.","format":"int64","type":"integer"},"name":{"type":"string"},"points":{"format":"double","type":"number"},"project":{"type":"string"},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]},"state":{"description":"planned | active | closed","type":"string"}},"required":["id","project","name","goal","state","created_at","issues","points","done_issues","done_points"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.sprint_start":{"post":{"operationId":"issues.sprint_start","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"end_date":{"description":"Defaults to the planned date, else two weeks after the start.","type":["string","null"]},"id":{"format":"int64","type":"integer"},"start_date":{"description":"Defaults to the planned date, else today.","type":["string","null"]}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"committed_points":{"description":"Points in the sprint when it started (velocity: committed).","format":"double","type":["number","null"]},"completed_at":{"format":"int64","type":["integer","null"]},"completed_points":{"description":"Points done when it completed (velocity: completed).","format":"double","type":["number","null"]},"created_at":{"format":"int64","type":"integer"},"done_issues":{"format":"int64","type":"integer"},"done_points":{"format":"double","type":"number"},"end_date":{"type":["string","null"]},"goal":{"type":"string"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Current contents.","format":"int64","type":"integer"},"name":{"type":"string"},"points":{"format":"double","type":"number"},"project":{"type":"string"},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]},"state":{"description":"planned | active | closed","type":"string"}},"required":["id","project","name","goal","state","created_at","issues","points","done_issues","done_points"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.standup":{"post":{"operationId":"issues.standup","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"day":{"description":"YYYY-MM-DD, the reader's own date (default today, UTC).","type":["string","null"]},"project":{"type":"string"}},"required":["project"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"day":{"type":"string"},"people":{"description":"Everyone with sprint work or a statement today, busiest first (the order to go round in).","items":{"properties":{"identity":{"type":"string"},"in_progress":{"format":"int64","type":"integer"},"open":{"description":"Open issues assigned to them in the active sprint, and how many are in progress.","format":"int64","type":"integer"},"statement":{"properties":{"blockers":{"type":"string"},"today":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"yesterday":{"type":"string"}},"required":["yesterday","today","blockers","updated_at"],"type":["object","null"]}},"required":["identity","open","in_progress"],"type":"object"},"type":"array"},"sprint":{"description":"Active sprint id, if one runs.","format":"int64","type":["integer","null"]}},"required":["day","people"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.standup_save":{"post":{"operationId":"issues.standup_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"blockers":{"type":"string"},"day":{"type":["string","null"]},"project":{"type":"string"},"today":{"type":"string"},"yesterday":{"type":"string"}},"required":["project","yesterday","today","blockers"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"day":{"type":"string"},"people":{"description":"Everyone with sprint work or a statement today, busiest first (the order to go round in).","items":{"properties":{"identity":{"type":"string"},"in_progress":{"format":"int64","type":"integer"},"open":{"description":"Open issues assigned to them in the active sprint, and how many are in progress.","format":"int64","type":"integer"},"statement":{"properties":{"blockers":{"type":"string"},"today":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"yesterday":{"type":"string"}},"required":["yesterday","today","blockers","updated_at"],"type":["object","null"]}},"required":["identity","open","in_progress"],"type":"object"},"type":"array"},"sprint":{"description":"Active sprint id, if one runs.","format":"int64","type":["integer","null"]}},"required":["day","people"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.structure_delete":{"post":{"operationId":"issues.structure_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.structure_get":{"post":{"operationId":"issues.structure_get","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"editors":{"items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"owner":{"type":"string"},"source":{"description":"Where a structure's rows come from.","properties":{"depth":{"description":"Levels below the roots, 1-6 (default 3).","format":"int64","type":["integer","null"]},"expand":{"default":"children","description":"How rows expand: children (hierarchy) | links | both | none.","type":"string"},"link_type":{"description":"links: only this link type (id, outward direction); empty = every type.","format":"int64","type":["integer","null"]},"sum_fields":{"default":[],"description":"Number custom fields (keys) to sum next to points.","items":{"type":"string"},"type":"array"},"tql":{"description":"TQL for the top-level rows (≤500).","type":"string"}},"required":["tql"],"type":"object"},"updated_at":{"format":"int64","type":"integer"},"viewers":{"description":"Who else sees it (`everyone`, `admins`, `team:<id>`, member ids). Empty = only the owner.","items":{"type":"string"},"type":"array"}},"required":["id","name","owner","viewers","editors","source","can_edit","updated_at"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.structure_save":{"post":{"operationId":"issues.structure_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"editors":{"default":[],"items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"source":{"description":"Where a structure's rows come from.","properties":{"depth":{"description":"Levels below the roots, 1-6 (default 3).","format":"int64","type":["integer","null"]},"expand":{"default":"children","description":"How rows expand: children (hierarchy) | links | both | none.","type":"string"},"link_type":{"description":"links: only this link type (id, outward direction); empty = every type.","format":"int64","type":["integer","null"]},"sum_fields":{"default":[],"description":"Number custom fields (keys) to sum next to points.","items":{"type":"string"},"type":"array"},"tql":{"description":"TQL for the top-level rows (≤500).","type":"string"}},"required":["tql"],"type":"object"},"viewers":{"default":[],"items":{"type":"string"},"type":"array"}},"required":["name","source"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"editors":{"items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"owner":{"type":"string"},"source":{"description":"Where a structure's rows come from.","properties":{"depth":{"description":"Levels below the roots, 1-6 (default 3).","format":"int64","type":["integer","null"]},"expand":{"default":"children","description":"How rows expand: children (hierarchy) | links | both | none.","type":"string"},"link_type":{"description":"links: only this link type (id, outward direction); empty = every type.","format":"int64","type":["integer","null"]},"sum_fields":{"default":[],"description":"Number custom fields (keys) to sum next to points.","items":{"type":"string"},"type":"array"},"tql":{"description":"TQL for the top-level rows (≤500).","type":"string"}},"required":["tql"],"type":"object"},"updated_at":{"format":"int64","type":"integer"},"viewers":{"description":"Who else sees it (`everyone`, `admins`, `team:<id>`, member ids). Empty = only the owner.","items":{"type":"string"},"type":"array"}},"required":["id","name","owner","viewers","editors","source","can_edit","updated_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.structure_tree":{"post":{"operationId":"issues.structure_tree","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"description":"Where a structure's rows come from.","properties":{"depth":{"description":"Levels below the roots, 1-6 (default 3).","format":"int64","type":["integer","null"]},"expand":{"default":"children","description":"How rows expand: children (hierarchy) | links | both | none.","type":"string"},"link_type":{"description":"links: only this link type (id, outward direction); empty = every type.","format":"int64","type":["integer","null"]},"sum_fields":{"default":[],"description":"Number custom fields (keys) to sum next to points.","items":{"type":"string"},"type":"array"},"tql":{"description":"TQL for the top-level rows (≤500).","type":"string"}},"required":["tql"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"partial":{"description":"Cut at the row or root limit.","type":"boolean"},"rows":{"items":{"properties":{"assignee":{"type":["string","null"]},"branch":{"description":"The row has rows under it.","type":"boolean"},"category":{"type":"string"},"depth":{"description":"0 for roots.","format":"int64","type":"integer"},"due_date":{"type":["string","null"]},"key":{"type":"string"},"kind":{"type":"string"},"points":{"format":"double","type":["number","null"]},"priority":{"type":"string"},"project":{"type":"string"},"rollup":{"properties":{"done":{"format":"int64","type":"integer"},"due_date":{"type":["string","null"]},"issues":{"description":"This row and everything under it (each issue counted once per branch).","format":"int64","type":"integer"},"points":{"format":"double","type":"number"},"progress":{"description":"done / issues × 100.","format":"int64","type":"integer"},"start_date":{"type":["string","null"]},"sums":{"additionalProperties":{"format":"double","type":"number"},"description":"Sums of `sum_fields`.","type":"object"}},"required":["issues","done","progress","points","sums"],"type":"object"},"start_date":{"type":["string","null"]},"status":{"type":"string"},"title":{"type":"string"},"up":{"description":"Index of the parent row; null for roots.","format":"uint","minimum":0,"type":["integer","null"]},"values":{"additionalProperties":{"format":"double","type":"number"},"description":"The sum_fields values of this issue itself.","type":"object"},"via":{"description":"How it hangs under its parent row: \"child\", or the link phrase (\"blocks\").","type":["string","null"]}},"required":["key","title","project","kind","status","category","priority","depth","branch","rollup","values"],"type":"object"},"type":"array"},"total_roots":{"description":"Roots matched by the TQL (they may be more than shown).","format":"int64","type":"integer"}},"required":["rows","total_roots","partial"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.structures":{"post":{"operationId":"issues.structures","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"can_edit":{"type":"boolean"},"editors":{"items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"owner":{"type":"string"},"source":{"description":"Where a structure's rows come from.","properties":{"depth":{"description":"Levels below the roots, 1-6 (default 3).","format":"int64","type":["integer","null"]},"expand":{"default":"children","description":"How rows expand: children (hierarchy) | links | both | none.","type":"string"},"link_type":{"description":"links: only this link type (id, outward direction); empty = every type.","format":"int64","type":["integer","null"]},"sum_fields":{"default":[],"description":"Number custom fields (keys) to sum next to points.","items":{"type":"string"},"type":"array"},"tql":{"description":"TQL for the top-level rows (≤500).","type":"string"}},"required":["tql"],"type":"object"},"updated_at":{"format":"int64","type":"integer"},"viewers":{"description":"Who else sees it (`everyone`, `admins`, `team:<id>`, member ids). Empty = only the owner.","items":{"type":"string"},"type":"array"}},"required":["id","name","owner","viewers","editors","source","can_edit","updated_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.template_delete":{"post":{"operationId":"issues.template_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/issues.template_save":{"post":{"operationId":"issues.template_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"config":{"description":"…or give them.","properties":{"board":{"default":null,"description":"Board settings as `issues.board_save` takes them (without project); null = the defaults."},"components":{"default":[],"items":{"properties":{"default_assignee":{"type":["string","null"]},"description":{"default":"","type":"string"},"lead":{"description":"Member ids (kept when copying from a project).","type":["string","null"]},"name":{"type":"string"}},"required":["name"],"type":"object"},"type":"array"},"statuses":{"items":{"properties":{"category":{"description":"todo | in_progress | done","type":"string"},"color":{"default":"","type":"string"},"icon":{"default":"","type":"string"},"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name","category"],"type":"object"},"type":"array"},"transitions":{"default":[],"items":{"properties":{"from_status":{"description":"null = from any column.","type":["string","null"]},"name":{"type":"string"},"rules":{"default":null},"to_status":{"type":"string"}},"required":["name","to_status"],"type":"object"},"type":"array"}},"required":["statuses"],"type":["object","null"]},"description":{"default":"","type":"string"},"from_project":{"description":"Take the columns, workflow, components and board from this project…","type":["string","null"]},"id":{"description":"Omit to add one.","format":"int64","type":["integer","null"]},"name":{"type":"string"},"style":{"description":"scrum | kanban","type":"string"}},"required":["name","style"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"config":{"properties":{"board":{"default":null,"description":"Board settings as `issues.board_save` takes them (without project); null = the defaults."},"components":{"default":[],"items":{"properties":{"default_assignee":{"type":["string","null"]},"description":{"default":"","type":"string"},"lead":{"description":"Member ids (kept when copying from a project).","type":["string","null"]},"name":{"type":"string"}},"required":["name"],"type":"object"},"type":"array"},"statuses":{"items":{"properties":{"category":{"description":"todo | in_progress | done","type":"string"},"color":{"default":"","type":"string"},"icon":{"default":"","type":"string"},"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name","category"],"type":"object"},"type":"array"},"transitions":{"default":[],"items":{"properties":{"from_status":{"description":"null = from any column.","type":["string","null"]},"name":{"type":"string"},"rules":{"default":null},"to_status":{"type":"string"}},"required":["name","to_status"],"type":"object"},"type":"array"}},"required":["statuses"],"type":"object"},"description":{"type":"string"},"id":{"format":"int64","type":"integer"},"key":{"type":"string"},"name":{"type":"string"},"position":{"format":"double","type":"number"},"style":{"description":"scrum | kanban","type":"string"}},"required":["id","key","name","description","style","config","position"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/issues.templates":{"post":{"operationId":"issues.templates","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"config":{"properties":{"board":{"default":null,"description":"Board settings as `issues.board_save` takes them (without project); null = the defaults."},"components":{"default":[],"items":{"properties":{"default_assignee":{"type":["string","null"]},"description":{"default":"","type":"string"},"lead":{"description":"Member ids (kept when copying from a project).","type":["string","null"]},"name":{"type":"string"}},"required":["name"],"type":"object"},"type":"array"},"statuses":{"items":{"properties":{"category":{"description":"todo | in_progress | done","type":"string"},"color":{"default":"","type":"string"},"icon":{"default":"","type":"string"},"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name","category"],"type":"object"},"type":"array"},"transitions":{"default":[],"items":{"properties":{"from_status":{"description":"null = from any column.","type":["string","null"]},"name":{"type":"string"},"rules":{"default":null},"to_status":{"type":"string"}},"required":["name","to_status"],"type":"object"},"type":"array"}},"required":["statuses"],"type":"object"},"description":{"type":"string"},"id":{"format":"int64","type":"integer"},"key":{"type":"string"},"name":{"type":"string"},"position":{"format":"double","type":"number"},"style":{"description":"scrum | kanban","type":"string"}},"required":["id","key","name","description","style","config","position"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.timeline":{"post":{"operationId":"issues.timeline","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"project":{"type":"string"}},"required":["project"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"description":"The caller can reschedule (edit the project's issues).","type":"boolean"},"deps":{"items":{"description":"`from` blocks `to` (a \"Blocks\" link): `to` should start after `from` is due.","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"type":"object"},"type":"array"},"items":{"description":"Epics (level ≥ 1, highest first) and their children, in rank order; `parent` gives the nesting.","items":{"properties":{"affects_versions":{"items":{"type":"string"},"type":"array"},"assignee":{"type":["string","null"]},"category":{"description":"The lane's category: todo | in_progress | done.","type":"string"},"children":{"description":"Children (issues whose parent this is).","format":"int64","type":"integer"},"components":{"items":{"type":"string"},"type":"array"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"description":{"type":"string"},"description_doc":{"description":"The description as a rich document (TipTap JSON); null when there's only the markdown `description`.","type":["string","null"]},"due_date":{"description":"YYYY-MM-DD","type":["string","null"]},"epic":{"description":"Key of the epic (level-1 ancestor: the parent, or a sub-task's grandparent).","type":["string","null"]},"fields":{"additionalProperties":true,"description":"Custom field values by key, formulas computed.","type":"object"},"fix_versions":{"items":{"type":"string"},"type":"array"},"id":{"description":"Internal id; comments use the subject `issue:{id}`.","format":"int64","type":"integer"},"key":{"description":"`{project}-{number}`, e.g. \"KB-12\".","type":"string"},"kind":{"type":"string"},"labels":{"description":"Label keys.","items":{"type":"string"},"type":"array"},"notices":{"description":"Only on `issues.update` / `issues.assign` answers: fields someone else changed since `base` that yours replaced.","items":{"description":"\"Someone also changed this\": a field another person changed after you loaded the issue, which your change replaced.","properties":{"at":{"format":"int64","type":["integer","null"]},"by":{"description":"Who set theirs, and when (from the issue's history; null if unknown).","type":["string","null"]},"field":{"description":"Issue field name, or `fields.<key>` for a custom field.","type":"string"},"theirs":{"description":"What they had set (send it back to undo yours)."},"yours":true},"required":["field","theirs","yours"],"type":"object"},"type":"array"},"number":{"format":"int64","type":"integer"},"parent":{"description":"Key of the parent issue (one hierarchy level up).","type":["string","null"]},"points":{"description":"Story points.","format":"double","type":["number","null"]},"priority":{"type":"string"},"project":{"type":"string"},"rank":{"description":"Backlog order within the project: sort by this text, ascending (see `issues.rank`). Null until the backfill runs.","type":["string","null"]},"recurring":{"description":"day | week | month when this issue is a recurring template.","type":["string","null"]},"resolution":{"description":"Resolution key; set while in a done lane.","type":["string","null"]},"resolved_at":{"format":"int64","type":["integer","null"]},"security":{"description":"Security level id: only its members (plus the reporter, assignee and admins) see the issue. Null = the project's viewers.","format":"int64","type":["integer","null"]},"sprint":{"description":"Sprint id; null = backlog.","format":"int64","type":["integer","null"]},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]},"status":{"description":"Lane key within the project.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"votes":{"format":"int64","type":"integer"},"watchers":{"format":"int64","type":"integer"}},"required":["id","key","project","number","title","description","status","category","priority","kind","created_by","created_at","updated_at","labels","components","fix_versions","affects_versions","votes","watchers","children","fields","notices"],"type":"object"},"type":"array"},"levels":{"additionalProperties":{"format":"int64","type":"integer"},"description":"Hierarchy level per type key (types missing here are level 0).","type":"object"}},"required":["items","levels","deps","can_edit"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.transition_delete":{"post":{"operationId":"issues.transition_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.transition_save":{"post":{"operationId":"issues.transition_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"from_status":{"description":"Status key, or null / \"\" for any status.","type":["string","null"]},"id":{"description":"Omit to create.","format":"int64","type":["integer","null"]},"name":{"description":"Defaults to the target status's name.","type":["string","null"]},"project":{"description":"Required to create.","type":["string","null"]},"rules":{"properties":{"approvals_needed":{"default":0,"description":"How many of them must approve (default 1).","format":"int64","type":"integer"},"approvers":{"default":[],"description":"Approval step (approvals add-on): who may approve — member ids, `team:<id>`, `admins`, `lead`. Empty = none.\nMoving then needs an approved request (`approvals.request`).","items":{"type":"string"},"type":"array"},"assign":{"default":"","description":"Post-function: assign to me | reporter | lead, or none (unassign). Empty = leave the assignee.","type":"string"},"checklist":{"default":false,"description":"Validator: every checklist item is done (checklists add-on).","type":"boolean"},"only":{"default":[],"description":"Condition: who may run it, any of assignee | reporter | lead | admin. Empty = anyone.","items":{"type":"string"},"type":"array"},"require":{"default":[],"description":"Validator: fields that must be filled in after it (built-in: assignee, points, description, labels, parent,\ncomponents, fix_versions, due_date; or a custom field key).","items":{"type":"string"},"type":"array"},"resolution":{"default":"","description":"Post-function: the resolution set when it lands in a done status. Empty = the first resolution.","type":"string"}},"type":["object","null"]},"to_status":{"type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"from_status":{"description":"null = from any status.","type":["string","null"]},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"position":{"format":"double","type":"number"},"project":{"type":"string"},"rules":{"properties":{"approvals_needed":{"default":0,"description":"How many of them must approve (default 1).","format":"int64","type":"integer"},"approvers":{"default":[],"description":"Approval step (approvals add-on): who may approve — member ids, `team:<id>`, `admins`, `lead`. Empty = none.\nMoving then needs an approved request (`approvals.request`).","items":{"type":"string"},"type":"array"},"assign":{"default":"","description":"Post-function: assign to me | reporter | lead, or none (unassign). Empty = leave the assignee.","type":"string"},"checklist":{"default":false,"description":"Validator: every checklist item is done (checklists add-on).","type":"boolean"},"only":{"default":[],"description":"Condition: who may run it, any of assignee | reporter | lead | admin. Empty = anyone.","items":{"type":"string"},"type":"array"},"require":{"default":[],"description":"Validator: fields that must be filled in after it (built-in: assignee, points, description, labels, parent,\ncomponents, fix_versions, due_date; or a custom field key).","items":{"type":"string"},"type":"array"},"resolution":{"default":"","description":"Post-function: the resolution set when it lands in a done status. Empty = the first resolution.","type":"string"}},"type":"object"},"to_status":{"type":"string"}},"required":["id","project","name","to_status","rules","position"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.transitions":{"post":{"operationId":"issues.transitions","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"allowed":{"description":"False when a condition blocks the caller (see `reason`).","type":"boolean"},"id":{"description":"Transition id; null in an open workflow.","format":"int64","type":["integer","null"]},"name":{"type":"string"},"needs_approval":{"default":false,"description":"Moving needs approval first (`approvals.request`).","type":"boolean"},"reason":{"type":["string","null"]},"require":{"description":"Fields the transition requires.","items":{"type":"string"},"type":"array"},"to_status":{"type":"string"}},"required":["name","to_status","allowed","require"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.triage":{"post":{"operationId":"issues.triage","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":["string","null"]},"key":{"type":["string","null"]},"model":{"type":["string","null"]},"project":{"type":"string"},"provider":{"type":["string","null"]},"title":{"type":"string"}},"required":["project","title"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"assignee":{"description":"A member id seen working on this project or on similar issues.","type":["string","null"]},"duplicates":{"items":{"properties":{"key":{"type":"string"},"reason":{"type":"string"},"title":{"type":"string"}},"required":["key","title","reason"],"type":"object"},"type":"array"},"kind":{"description":"Keys of the org's options; null when the model had no confident pick (or picked something that doesn't exist).","type":["string","null"]},"labels":{"items":{"type":"string"},"type":"array"},"priority":{"type":["string","null"]},"why":{"description":"One sentence on why.","type":"string"}},"required":["labels","duplicates","why"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.triage_parse":{"post":{"operationId":"issues.triage_parse","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":["string","null"]},"project":{"type":"string"},"text":{"description":"The model's answer.","type":"string"},"title":{"type":["string","null"]}},"required":["project","text"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"assignee":{"description":"A member id seen working on this project or on similar issues.","type":["string","null"]},"duplicates":{"items":{"properties":{"key":{"type":"string"},"reason":{"type":"string"},"title":{"type":"string"}},"required":["key","title","reason"],"type":"object"},"type":"array"},"kind":{"description":"Keys of the org's options; null when the model had no confident pick (or picked something that doesn't exist).","type":["string","null"]},"labels":{"items":{"type":"string"},"type":"array"},"priority":{"type":["string","null"]},"why":{"description":"One sentence on why.","type":"string"}},"required":["labels","duplicates","why"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.triage_prompt":{"post":{"operationId":"issues.triage_prompt","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":["string","null"]},"key":{"description":"Triaging an existing issue (the queue): its key.","type":["string","null"]},"project":{"type":"string"},"title":{"type":"string"}},"required":["project","title"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"prompt":{"type":"string"},"subjects":{"description":"What the prompt contains (for AI exclusions).","items":{"type":"string"},"type":"array"},"system":{"type":"string"}},"required":["system","prompt","subjects"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.unlink":{"post":{"operationId":"issues.unlink","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.update":{"post":{"operationId":"issues.update","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"add_labels":{"description":"Labels to add (after `labels`).","items":{"type":"string"},"type":["array","null"]},"affects_versions":{"items":{"type":"string"},"type":["array","null"]},"base":{"additionalProperties":true,"default":null,"description":"The values you saw for the fields you're changing (same names as the issue's; custom fields under `fields`).\nWhere someone else changed one since, your value still wins and the answer's `notices` say who and what.","type":["object","null"]},"components":{"description":"Replace the issue's components / versions (names).","items":{"type":"string"},"type":["array","null"]},"description":{"description":"Markdown. Sent without `description_doc`, it replaces the rich document too.","type":["string","null"]},"description_doc":{"default":null,"description":"The description as a rich document (TipTap JSON); send `description` (its markdown) with it. null clears it.","type":["string","null"]},"due_date":{"default":null,"description":"YYYY-MM-DD; null clears.","type":["string","null"]},"expect_status":{"description":"Compare-and-set: fail with 409 if the issue is no longer in this status.","type":["string","null"]},"fields":{"additionalProperties":true,"description":"Custom field values to set (null clears); fields left out are unchanged.","type":["object","null"]},"fix_versions":{"items":{"type":"string"},"type":["array","null"]},"key":{"type":"string"},"kind":{"type":["string","null"]},"labels":{"description":"Replaces the issue's labels.","items":{"type":"string"},"type":["array","null"]},"parent":{"default":null,"description":"Parent key; null clears.","type":["string","null"]},"points":{"default":null,"description":"null clears.","format":"double","type":["number","null"]},"priority":{"type":["string","null"]},"remove_labels":{"description":"Labels to remove (after `labels`).","items":{"type":"string"},"type":["array","null"]},"resolution":{"description":"Resolution key when landing in (or already in) a done lane; defaults to the transition's, else the first.","type":["string","null"]},"security":{"default":null,"description":"Security level id; null = visible to the whole project.","format":"int64","type":["integer","null"]},"start_date":{"default":null,"description":"YYYY-MM-DD; null clears.","type":["string","null"]},"status":{"description":"Target lane. If the project has a workflow, a transition to it must exist and be allowed.","type":["string","null"]},"title":{"type":["string","null"]}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"affects_versions":{"items":{"type":"string"},"type":"array"},"assignee":{"type":["string","null"]},"category":{"description":"The lane's category: todo | in_progress | done.","type":"string"},"children":{"description":"Children (issues whose parent this is).","format":"int64","type":"integer"},"components":{"items":{"type":"string"},"type":"array"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"description":{"type":"string"},"description_doc":{"description":"The description as a rich document (TipTap JSON); null when there's only the markdown `description`.","type":["string","null"]},"due_date":{"description":"YYYY-MM-DD","type":["string","null"]},"epic":{"description":"Key of the epic (level-1 ancestor: the parent, or a sub-task's grandparent).","type":["string","null"]},"fields":{"additionalProperties":true,"description":"Custom field values by key, formulas computed.","type":"object"},"fix_versions":{"items":{"type":"string"},"type":"array"},"id":{"description":"Internal id; comments use the subject `issue:{id}`.","format":"int64","type":"integer"},"key":{"description":"`{project}-{number}`, e.g. \"KB-12\".","type":"string"},"kind":{"type":"string"},"labels":{"description":"Label keys.","items":{"type":"string"},"type":"array"},"notices":{"description":"Only on `issues.update` / `issues.assign` answers: fields someone else changed since `base` that yours replaced.","items":{"description":"\"Someone also changed this\": a field another person changed after you loaded the issue, which your change replaced.","properties":{"at":{"format":"int64","type":["integer","null"]},"by":{"description":"Who set theirs, and when (from the issue's history; null if unknown).","type":["string","null"]},"field":{"description":"Issue field name, or `fields.<key>` for a custom field.","type":"string"},"theirs":{"description":"What they had set (send it back to undo yours)."},"yours":true},"required":["field","theirs","yours"],"type":"object"},"type":"array"},"number":{"format":"int64","type":"integer"},"parent":{"description":"Key of the parent issue (one hierarchy level up).","type":["string","null"]},"points":{"description":"Story points.","format":"double","type":["number","null"]},"priority":{"type":"string"},"project":{"type":"string"},"rank":{"description":"Backlog order within the project: sort by this text, ascending (see `issues.rank`). Null until the backfill runs.","type":["string","null"]},"recurring":{"description":"day | week | month when this issue is a recurring template.","type":["string","null"]},"resolution":{"description":"Resolution key; set while in a done lane.","type":["string","null"]},"resolved_at":{"format":"int64","type":["integer","null"]},"security":{"description":"Security level id: only its members (plus the reporter, assignee and admins) see the issue. Null = the project's viewers.","format":"int64","type":["integer","null"]},"sprint":{"description":"Sprint id; null = backlog.","format":"int64","type":["integer","null"]},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]},"status":{"description":"Lane key within the project.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"votes":{"format":"int64","type":"integer"},"watchers":{"format":"int64","type":"integer"}},"required":["id","key","project","number","title","description","status","category","priority","kind","created_by","created_at","updated_at","labels","components","fix_versions","affects_versions","votes","watchers","children","fields","notices"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.version_delete":{"post":{"operationId":"issues.version_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"},"move_to":{"description":"Issues move to this version instead of losing it.","format":"int64","type":["integer","null"]}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.version_release":{"post":{"operationId":"issues.version_release","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"},"move_to":{"description":"Unfinished issues move to this version of the same project; omit to leave them.","format":"int64","type":["integer","null"]},"released":{"description":"false un-releases.","type":"boolean"}},"required":["id","released"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"},"done":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Issues with this fix version, and how many of them are done.","format":"int64","type":"integer"},"name":{"type":"string"},"notes":{"description":"Saved release notes (markdown).","type":"string"},"project":{"type":"string"},"release_date":{"type":["string","null"]},"released":{"type":"boolean"},"released_at":{"format":"int64","type":["integer","null"]},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]}},"required":["id","project","name","description","released","issues","done","notes"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.version_save":{"post":{"operationId":"issues.version_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":["string","null"]},"id":{"format":"int64","type":["integer","null"]},"name":{"type":["string","null"]},"project":{"type":["string","null"]},"release_date":{"type":["string","null"]},"start_date":{"description":"YYYY-MM-DD; \"\" clears.","type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"},"done":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Issues with this fix version, and how many of them are done.","format":"int64","type":"integer"},"name":{"type":"string"},"notes":{"description":"Saved release notes (markdown).","type":"string"},"project":{"type":"string"},"release_date":{"type":["string","null"]},"released":{"type":"boolean"},"released_at":{"format":"int64","type":["integer","null"]},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]}},"required":["id","project","name","description","released","issues","done","notes"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.versions":{"post":{"operationId":"issues.versions","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"project":{"type":"string"}},"required":["project"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"description":{"type":"string"},"done":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"issues":{"description":"Issues with this fix version, and how many of them are done.","format":"int64","type":"integer"},"name":{"type":"string"},"notes":{"description":"Saved release notes (markdown).","type":"string"},"project":{"type":"string"},"release_date":{"type":["string","null"]},"released":{"type":"boolean"},"released_at":{"format":"int64","type":["integer","null"]},"start_date":{"description":"YYYY-MM-DD","type":["string","null"]}},"required":["id","project","name","description","released","issues","done","notes"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.vote":{"post":{"operationId":"issues.vote","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"},"voted":{"type":"boolean"}},"required":["key","voted"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"voted":{"type":"boolean"},"votes":{"format":"int64","type":"integer"},"watchers":{"description":"Watcher ids.","items":{"type":"string"},"type":"array"},"watching":{"type":"boolean"}},"required":["watchers","watching","votes","voted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.watch":{"post":{"operationId":"issues.watch","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"},"watching":{"type":"boolean"},"who":{"description":"Someone else to add or remove (admins and the issue's assignee/reporter); default the caller.","type":["string","null"]}},"required":["key","watching"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"voted":{"type":"boolean"},"votes":{"format":"int64","type":"integer"},"watchers":{"description":"Watcher ids.","items":{"type":"string"},"type":"array"},"watching":{"type":"boolean"}},"required":["watchers","watching","votes","voted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/issues.workflow":{"post":{"operationId":"issues.workflow","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"project":{"type":"string"}},"required":["project"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"from_status":{"description":"null = from any status.","type":["string","null"]},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"position":{"format":"double","type":"number"},"project":{"type":"string"},"rules":{"properties":{"approvals_needed":{"default":0,"description":"How many of them must approve (default 1).","format":"int64","type":"integer"},"approvers":{"default":[],"description":"Approval step (approvals add-on): who may approve — member ids, `team:<id>`, `admins`, `lead`. Empty = none.\nMoving then needs an approved request (`approvals.request`).","items":{"type":"string"},"type":"array"},"assign":{"default":"","description":"Post-function: assign to me | reporter | lead, or none (unassign). Empty = leave the assignee.","type":"string"},"checklist":{"default":false,"description":"Validator: every checklist item is done (checklists add-on).","type":"boolean"},"only":{"default":[],"description":"Condition: who may run it, any of assignee | reporter | lead | admin. Empty = anyone.","items":{"type":"string"},"type":"array"},"require":{"default":[],"description":"Validator: fields that must be filled in after it (built-in: assignee, points, description, labels, parent,\ncomponents, fix_versions, due_date; or a custom field key).","items":{"type":"string"},"type":"array"},"resolution":{"default":"","description":"Post-function: the resolution set when it lands in a done status. Empty = the first resolution.","type":"string"}},"type":"object"},"to_status":{"type":"string"}},"required":["id","project","name","to_status","rules","position"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/issues.workflow_copy":{"post":{"operationId":"issues.workflow_copy","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"from_status":{"description":"null = from any status.","type":["string","null"]},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"position":{"format":"double","type":"number"},"project":{"type":"string"},"rules":{"properties":{"approvals_needed":{"default":0,"description":"How many of them must approve (default 1).","format":"int64","type":"integer"},"approvers":{"default":[],"description":"Approval step (approvals add-on): who may approve — member ids, `team:<id>`, `admins`, `lead`. Empty = none.\nMoving then needs an approved request (`approvals.request`).","items":{"type":"string"},"type":"array"},"assign":{"default":"","description":"Post-function: assign to me | reporter | lead, or none (unassign). Empty = leave the assignee.","type":"string"},"checklist":{"default":false,"description":"Validator: every checklist item is done (checklists add-on).","type":"boolean"},"only":{"default":[],"description":"Condition: who may run it, any of assignee | reporter | lead | admin. Empty = anyone.","items":{"type":"string"},"type":"array"},"require":{"default":[],"description":"Validator: fields that must be filled in after it (built-in: assignee, points, description, labels, parent,\ncomponents, fix_versions, due_date; or a custom field key).","items":{"type":"string"},"type":"array"},"resolution":{"default":"","description":"Post-function: the resolution set when it lands in a done status. Empty = the first resolution.","type":"string"}},"type":"object"},"to_status":{"type":"string"}},"required":["id","project","name","to_status","rules","position"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/jobs.list":{"post":{"operationId":"jobs.list","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"limit":{"default":null,"description":"1-200, default 50.","format":"int64","type":["integer","null"]},"state":{"default":null,"description":"queued | running | done | dead; all when omitted.","type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"jobs":{"items":{"properties":{"attempts":{"format":"int64","type":"integer"},"created_at":{"format":"int64","type":"integer"},"finished_at":{"format":"int64","type":["integer","null"]},"id":{"format":"int64","type":"integer"},"kind":{"description":"`<module>.<what>`, e.g. `webhooks.deliver`.","type":"string"},"last_error":{"type":["string","null"]},"max_attempts":{"format":"int64","type":"integer"},"payload":true,"run_at":{"format":"int64","type":"integer"},"state":{"description":"queued | running | done | dead.","type":"string"}},"required":["id","kind","payload","state","run_at","attempts","max_attempts","created_at"],"type":"object"},"type":"array"},"schedules":{"items":{"properties":{"every_secs":{"format":"int64","type":"integer"},"kind":{"type":"string"},"last_run_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"next_at":{"format":"int64","type":"integer"}},"required":["name","kind","every_secs","next_at"],"type":"object"},"type":"array"}},"required":["jobs","schedules"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/jobs.retry":{"post":{"operationId":"jobs.retry","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"attempts":{"format":"int64","type":"integer"},"created_at":{"format":"int64","type":"integer"},"finished_at":{"format":"int64","type":["integer","null"]},"id":{"format":"int64","type":"integer"},"kind":{"description":"`<module>.<what>`, e.g. `webhooks.deliver`.","type":"string"},"last_error":{"type":["string","null"]},"max_attempts":{"format":"int64","type":"integer"},"payload":true,"run_at":{"format":"int64","type":"integer"},"state":{"description":"queued | running | done | dead.","type":"string"}},"required":["id","kind","payload","state","run_at","attempts","max_attempts","created_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/keys.create":{"post":{"operationId":"keys.create","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"cidrs":{"description":"Only accept it from these addresses or CIDR ranges.","items":{"type":"string"},"type":["array","null"]},"expires_days":{"description":"Days until it expires (1–365, default 90).","format":"int64","type":["integer","null"]},"kind":{"description":"personal | agent","type":"string"},"name":{"type":"string"},"scopes":{"description":"Scopes like `issues:read`, `issues:write`, `pages:read`; `read` = every module's read scope, `write` = every\nmodule's read and write. A key never gets more than its owner's role allows.","items":{"type":"string"},"type":"array"}},"required":["name","kind","scopes"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"key":{"properties":{"cidrs":{"items":{"type":"string"},"type":"array"},"created_at":{"format":"int64","type":"integer"},"expires_at":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"kind":{"description":"personal (acts as you) | agent (acts on your behalf as `agent:<name>`)","type":"string"},"last_ip":{"type":["string","null"]},"last_used_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"owner":{"type":"string"},"prefix":{"description":"First characters of the key, to recognize it.","type":"string"},"revoked_at":{"format":"int64","type":["integer","null"]},"scopes":{"items":{"type":"string"},"type":"array"}},"required":["id","name","kind","owner","prefix","scopes","cidrs","expires_at","created_at"],"type":"object"},"secret":{"description":"The key itself. Shown once: store it now.","type":"string"}},"required":["secret","key"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["keys:write"]}},"/api/v1/keys.list":{"post":{"operationId":"keys.list","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"cidrs":{"items":{"type":"string"},"type":"array"},"created_at":{"format":"int64","type":"integer"},"expires_at":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"kind":{"description":"personal (acts as you) | agent (acts on your behalf as `agent:<name>`)","type":"string"},"last_ip":{"type":["string","null"]},"last_used_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"owner":{"type":"string"},"prefix":{"description":"First characters of the key, to recognize it.","type":"string"},"revoked_at":{"format":"int64","type":["integer","null"]},"scopes":{"items":{"type":"string"},"type":"array"}},"required":["id","name","kind","owner","prefix","scopes","cidrs","expires_at","created_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["keys:read"]}},"/api/v1/keys.revoke":{"post":{"operationId":"keys.revoke","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"cidrs":{"items":{"type":"string"},"type":"array"},"created_at":{"format":"int64","type":"integer"},"expires_at":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"kind":{"description":"personal (acts as you) | agent (acts on your behalf as `agent:<name>`)","type":"string"},"last_ip":{"type":["string","null"]},"last_used_at":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"owner":{"type":"string"},"prefix":{"description":"First characters of the key, to recognize it.","type":"string"},"revoked_at":{"format":"int64","type":["integer","null"]},"scopes":{"items":{"type":"string"},"type":"array"}},"required":["id","name","kind","owner","prefix","scopes","cidrs","expires_at","created_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["keys:write"]}},"/api/v1/links.refresh":{"post":{"operationId":"links.refresh","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"url":{"type":"string"}},"required":["url"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"code":{"description":"Code permalinks (W607): the linked lines, the first line's number and the language (from the file extension).","type":["string","null"]},"code_start":{"format":"int64","type":["integer","null"]},"description":{"type":"string"},"embed":{"description":"Design files (Figma, Miro): a URL to show in an iframe.","type":["string","null"]},"error":{"type":["string","null"]},"fetched_at":{"format":"int64","type":["integer","null"]},"host":{"type":"string"},"id":{"format":"int64","type":"integer"},"image":{"description":"An absolute image URL (og:image), or empty.","type":"string"},"lang":{"type":["string","null"]},"provider":{"description":"Known service from the host (GitHub, Figma, Google Docs …), else the host.","type":"string"},"site":{"description":"The site's own name (og:site_name), or empty.","type":"string"},"state":{"description":"pending (being fetched) | ok | error (the page couldn't be read: private, blocked, gone)","type":"string"},"title":{"type":"string"},"url":{"type":"string"}},"required":["id","url","state","title","description","image","site","provider","host"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["links:write"]}},"/api/v1/links.unfurl":{"post":{"operationId":"links.unfurl","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"url":{"type":"string"}},"required":["url"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"code":{"description":"Code permalinks (W607): the linked lines, the first line's number and the language (from the file extension).","type":["string","null"]},"code_start":{"format":"int64","type":["integer","null"]},"description":{"type":"string"},"embed":{"description":"Design files (Figma, Miro): a URL to show in an iframe.","type":["string","null"]},"error":{"type":["string","null"]},"fetched_at":{"format":"int64","type":["integer","null"]},"host":{"type":"string"},"id":{"format":"int64","type":"integer"},"image":{"description":"An absolute image URL (og:image), or empty.","type":"string"},"lang":{"type":["string","null"]},"provider":{"description":"Known service from the host (GitHub, Figma, Google Docs …), else the host.","type":"string"},"site":{"description":"The site's own name (og:site_name), or empty.","type":"string"},"state":{"description":"pending (being fetched) | ok | error (the page couldn't be read: private, blocked, gone)","type":"string"},"title":{"type":"string"},"url":{"type":"string"}},"required":["id","url","state","title","description","image","site","provider","host"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["links:read"]}},"/api/v1/links.unfurl_result":{"post":{"operationId":"links.unfurl_result","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"code":{"type":["string","null"]},"code_start":{"format":"int64","type":["integer","null"]},"description":{"default":"","type":"string"},"error":{"type":["string","null"]},"image":{"default":"","type":"string"},"ok":{"type":"boolean"},"site":{"default":"","type":"string"},"title":{"default":"","type":"string"},"url":{"type":"string"}},"required":["url","ok"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"code":{"description":"Code permalinks (W607): the linked lines, the first line's number and the language (from the file extension).","type":["string","null"]},"code_start":{"format":"int64","type":["integer","null"]},"description":{"type":"string"},"embed":{"description":"Design files (Figma, Miro): a URL to show in an iframe.","type":["string","null"]},"error":{"type":["string","null"]},"fetched_at":{"format":"int64","type":["integer","null"]},"host":{"type":"string"},"id":{"format":"int64","type":"integer"},"image":{"description":"An absolute image URL (og:image), or empty.","type":"string"},"lang":{"type":["string","null"]},"provider":{"description":"Known service from the host (GitHub, Figma, Google Docs …), else the host.","type":"string"},"site":{"description":"The site's own name (og:site_name), or empty.","type":"string"},"state":{"description":"pending (being fetched) | ok | error (the page couldn't be read: private, blocked, gone)","type":"string"},"title":{"type":"string"},"url":{"type":"string"}},"required":["id","url","state","title","description","image","site","provider","host"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/market.bundle":{"post":{"operationId":"market.bundle","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/market.listing":{"post":{"operationId":"market.listing","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"bundle":{"description":"The signed bundle, to install (`plugins.install {signed: {bundle, publisher, signature, listing}}`).","type":"string"},"latest":{"description":"The latest approved version.","properties":{"allow":{"items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"listing":{"format":"int64","type":"integer"},"name":{"type":"string"},"note":{"type":"string"},"permissions":{"items":{"type":"string"},"type":"array"},"plugin":{"type":"string"},"publisher_key":{"type":"string"},"publisher_org":{"type":"string"},"reviewed_at":{"format":"int64","type":["integer","null"]},"runtime":{"description":"rhai | wasm","type":"string"},"sha256":{"type":"string"},"state":{"description":"submitted | approved | rejected","type":"string"},"submitted_at":{"format":"int64","type":"integer"},"summary":{"type":"string"},"version":{"type":"string"}},"required":["id","listing","plugin","version","name","summary","permissions","allow","runtime","sha256","state","note","publisher_org","publisher_key","submitted_at"],"type":"object"},"signature":{"type":"string"}},"required":["latest","bundle","signature"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["market:read"]}},"/api/v1/market.listings":{"post":{"operationId":"market.listings","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"q":{"default":"","description":"Words in the name or summary.","type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"allow":{"items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"listing":{"format":"int64","type":"integer"},"name":{"type":"string"},"note":{"type":"string"},"permissions":{"items":{"type":"string"},"type":"array"},"plugin":{"type":"string"},"publisher_key":{"type":"string"},"publisher_org":{"type":"string"},"reviewed_at":{"format":"int64","type":["integer","null"]},"runtime":{"description":"rhai | wasm","type":"string"},"sha256":{"type":"string"},"state":{"description":"submitted | approved | rejected","type":"string"},"submitted_at":{"format":"int64","type":"integer"},"summary":{"type":"string"},"version":{"type":"string"}},"required":["id","listing","plugin","version","name","summary","permissions","allow","runtime","sha256","state","note","publisher_org","publisher_key","submitted_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["market:read"]}},"/api/v1/market.review":{"post":{"operationId":"market.review","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"approve":{"type":"boolean"},"id":{"description":"The version id.","format":"int64","type":"integer"},"note":{"default":"","description":"Why (shown to the publisher).","type":"string"}},"required":["id","approve"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"allow":{"items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"listing":{"format":"int64","type":"integer"},"name":{"type":"string"},"note":{"type":"string"},"permissions":{"items":{"type":"string"},"type":"array"},"plugin":{"type":"string"},"publisher_key":{"type":"string"},"publisher_org":{"type":"string"},"reviewed_at":{"format":"int64","type":["integer","null"]},"runtime":{"description":"rhai | wasm","type":"string"},"sha256":{"type":"string"},"state":{"description":"submitted | approved | rejected","type":"string"},"submitted_at":{"format":"int64","type":"integer"},"summary":{"type":"string"},"version":{"type":"string"}},"required":["id","listing","plugin","version","name","summary","permissions","allow","runtime","sha256","state","note","publisher_org","publisher_key","submitted_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/market.submissions":{"post":{"operationId":"market.submissions","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"reviewer":{"description":"The caller reviews the catalog (an admin of the org that keeps it).","type":"boolean"},"versions":{"items":{"properties":{"allow":{"items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"listing":{"format":"int64","type":"integer"},"name":{"type":"string"},"note":{"type":"string"},"permissions":{"items":{"type":"string"},"type":"array"},"plugin":{"type":"string"},"publisher_key":{"type":"string"},"publisher_org":{"type":"string"},"reviewed_at":{"format":"int64","type":["integer","null"]},"runtime":{"description":"rhai | wasm","type":"string"},"sha256":{"type":"string"},"state":{"description":"submitted | approved | rejected","type":"string"},"submitted_at":{"format":"int64","type":"integer"},"summary":{"type":"string"},"version":{"type":"string"}},"required":["id","listing","plugin","version","name","summary","permissions","allow","runtime","sha256","state","note","publisher_org","publisher_key","submitted_at"],"type":"object"},"type":"array"}},"required":["reviewer","versions"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["market:read"]}},"/api/v1/market.submit":{"post":{"operationId":"market.submit","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"bundle":{"description":"The bundle text from `plugins.sign`.","type":"string"},"publisher":{"type":"string"},"signature":{"type":"string"}},"required":["bundle","publisher","signature"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"allow":{"items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"listing":{"format":"int64","type":"integer"},"name":{"type":"string"},"note":{"type":"string"},"permissions":{"items":{"type":"string"},"type":"array"},"plugin":{"type":"string"},"publisher_key":{"type":"string"},"publisher_org":{"type":"string"},"reviewed_at":{"format":"int64","type":["integer","null"]},"runtime":{"description":"rhai | wasm","type":"string"},"sha256":{"type":"string"},"state":{"description":"submitted | approved | rejected","type":"string"},"submitted_at":{"format":"int64","type":"integer"},"summary":{"type":"string"},"version":{"type":"string"}},"required":["id","listing","plugin","version","name","summary","permissions","allow","runtime","sha256","state","note","publisher_org","publisher_key","submitted_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["market:write"]}},"/api/v1/notifications.digest":{"post":{"operationId":"notifications.digest","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"empty":{"description":"Nothing to report (no open work, no mentions).","type":"boolean"},"focus":{"description":"The ranked focus list (`issues.focus`); null when issues are switched off."},"mentions":{"description":"Unread mentions of you or your teams.","items":{"properties":{"actor":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"subject":{"type":"string"},"title":{"type":["string","null"]}},"required":["subject","actor","created_at"],"type":"object"},"type":"array"},"period":{"description":"day | week","type":"string"},"week":{"description":"Weekly: issues of yours done in the last 7 days, open ones due in the next 7, and overdue ones."}},"required":["mentions","period","empty"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["notifications:read"]}},"/api/v1/notifications.digest_prefs":{"post":{"operationId":"notifications.digest_prefs","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"ai":{"description":"Add a short AI-written plan for the day (needs a usable AI model; org key for email).","type":"boolean"},"at":{"description":"HH:MM in the person's own time.","type":"string"},"browser":{"description":"Show a browser notification the first time the app is open after `at`.","type":"boolean"},"email":{"description":"Send it by email each morning.","type":"boolean"},"period":{"default":"day","description":"day | week","type":"string"},"tz_offset":{"description":"Minutes behind UTC, as the browser's `Date.getTimezoneOffset()` gives it.","format":"int64","type":"integer"},"week_day":{"default":1,"description":"Weekly: the day it comes, 0 = Sunday … 6 = Saturday.","format":"int64","type":"integer"},"weekdays":{"description":"Weekdays only (Monday to Friday, local time).","type":"boolean"}},"required":["email","browser","ai","at","tz_offset","weekdays"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["notifications:read"]}},"/api/v1/notifications.digest_prefs_set":{"post":{"operationId":"notifications.digest_prefs_set","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"ai":{"description":"Add a short AI-written plan for the day (needs a usable AI model; org key for email).","type":"boolean"},"at":{"description":"HH:MM in the person's own time.","type":"string"},"browser":{"description":"Show a browser notification the first time the app is open after `at`.","type":"boolean"},"email":{"description":"Send it by email each morning.","type":"boolean"},"period":{"default":"day","description":"day | week","type":"string"},"tz_offset":{"description":"Minutes behind UTC, as the browser's `Date.getTimezoneOffset()` gives it.","format":"int64","type":"integer"},"week_day":{"default":1,"description":"Weekly: the day it comes, 0 = Sunday … 6 = Saturday.","format":"int64","type":"integer"},"weekdays":{"description":"Weekdays only (Monday to Friday, local time).","type":"boolean"}},"required":["email","browser","ai","at","tz_offset","weekdays"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"ai":{"description":"Add a short AI-written plan for the day (needs a usable AI model; org key for email).","type":"boolean"},"at":{"description":"HH:MM in the person's own time.","type":"string"},"browser":{"description":"Show a browser notification the first time the app is open after `at`.","type":"boolean"},"email":{"description":"Send it by email each morning.","type":"boolean"},"period":{"default":"day","description":"day | week","type":"string"},"tz_offset":{"description":"Minutes behind UTC, as the browser's `Date.getTimezoneOffset()` gives it.","format":"int64","type":"integer"},"week_day":{"default":1,"description":"Weekly: the day it comes, 0 = Sunday … 6 = Saturday.","format":"int64","type":"integer"},"weekdays":{"description":"Weekdays only (Monday to Friday, local time).","type":"boolean"}},"required":["email","browser","ai","at","tz_offset","weekdays"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["notifications:write"]}},"/api/v1/notifications.email_member":{"post":{"operationId":"notifications.email_member","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"identity":{"type":"string"},"notification":true},"required":["identity","notification"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"updated":{"format":"uint","minimum":0,"type":"integer"}},"required":["updated"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/notifications.list":{"post":{"operationId":"notifications.list","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"actor":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"id":{"description":"The event's seq; one notification per event.","format":"int64","type":"integer"},"kind":{"description":"Event kind, e.g. \"comment.created\".","type":"string"},"read":{"type":"boolean"},"reason":{"description":"\"mentioned\", \"assigned\".","type":"string"},"subject":{"description":"`kind:id`, e.g. \"issue:12\".","type":"string"},"team":{"description":"Set when it reached the caller only through this team.","format":"int64","type":["integer","null"]},"title":{"description":"The subject's current title.","type":["string","null"]}},"required":["id","subject","kind","reason","actor","created_at","read"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["notifications:read"]}},"/api/v1/notifications.mark_read":{"post":{"operationId":"notifications.mark_read","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"description":"A notification id; omit to mark everything read.","format":"int64","type":["integer","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"updated":{"format":"uint","minimum":0,"type":"integer"}},"required":["updated"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["notifications:write"]}},"/api/v1/notifications.policies":{"post":{"operationId":"notifications.policies","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"limits":{"properties":{"email_per_hour":{"default":0,"description":"Emails per person per hour (0 = no limit).","format":"int64","type":"integer"},"push_per_hour":{"default":0,"description":"Browser pushes per person per hour (0 = no limit).","format":"int64","type":"integer"}},"type":"object"},"policies":{"items":{"properties":{"email":{"type":"boolean"},"event":{"description":"A reason or `*`.","type":"string"},"inbox":{"type":"boolean"},"locked":{"default":false,"description":"People can't change it.","type":"boolean"},"push":{"default":null,"description":"Browser push; unset = the same as email.","type":["boolean","null"]},"required":{"default":false,"description":"People can't turn its channels off (they may add more).","type":"boolean"},"scope":{"default":"","description":"`project:<key>`, `space:<key>`, or empty for the whole org.","type":"string"}},"required":["event","inbox","email"],"type":"object"},"type":"array"}},"required":["policies","limits"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["notifications:read"]}},"/api/v1/notifications.policies_set":{"post":{"operationId":"notifications.policies_set","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"limits":{"default":{"email_per_hour":0,"push_per_hour":0},"properties":{"email_per_hour":{"default":0,"description":"Emails per person per hour (0 = no limit).","format":"int64","type":"integer"},"push_per_hour":{"default":0,"description":"Browser pushes per person per hour (0 = no limit).","format":"int64","type":"integer"}},"type":"object"},"policies":{"items":{"properties":{"email":{"type":"boolean"},"event":{"description":"A reason or `*`.","type":"string"},"inbox":{"type":"boolean"},"locked":{"default":false,"description":"People can't change it.","type":"boolean"},"push":{"default":null,"description":"Browser push; unset = the same as email.","type":["boolean","null"]},"required":{"default":false,"description":"People can't turn its channels off (they may add more).","type":"boolean"},"scope":{"default":"","description":"`project:<key>`, `space:<key>`, or empty for the whole org.","type":"string"}},"required":["event","inbox","email"],"type":"object"},"type":"array"}},"required":["policies"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"limits":{"properties":{"email_per_hour":{"default":0,"description":"Emails per person per hour (0 = no limit).","format":"int64","type":"integer"},"push_per_hour":{"default":0,"description":"Browser pushes per person per hour (0 = no limit).","format":"int64","type":"integer"}},"type":"object"},"policies":{"items":{"properties":{"email":{"type":"boolean"},"event":{"description":"A reason or `*`.","type":"string"},"inbox":{"type":"boolean"},"locked":{"default":false,"description":"People can't change it.","type":"boolean"},"push":{"default":null,"description":"Browser push; unset = the same as email.","type":["boolean","null"]},"required":{"default":false,"description":"People can't turn its channels off (they may add more).","type":"boolean"},"scope":{"default":"","description":"`project:<key>`, `space:<key>`, or empty for the whole org.","type":"string"}},"required":["event","inbox","email"],"type":"object"},"type":"array"}},"required":["policies","limits"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/notifications.prefs":{"post":{"operationId":"notifications.prefs","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"channels":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"}},"required":["key","label"],"type":"object"},"type":"array"},"email_by_default":{"description":"Reasons that email by default (everything goes to the inbox by default).","items":{"type":"string"},"type":"array"},"policies":{"description":"The org's policies (W807): locked ones override these rules, required ones can't be turned off.","items":{"properties":{"email":{"type":"boolean"},"event":{"description":"A reason or `*`.","type":"string"},"inbox":{"type":"boolean"},"locked":{"default":false,"description":"People can't change it.","type":"boolean"},"push":{"default":null,"description":"Browser push; unset = the same as email.","type":["boolean","null"]},"required":{"default":false,"description":"People can't turn its channels off (they may add more).","type":"boolean"},"scope":{"default":"","description":"`project:<key>`, `space:<key>`, or empty for the whole org.","type":"string"}},"required":["event","inbox","email"],"type":"object"},"type":"array"},"quiet":{"properties":{"enabled":{"type":"boolean"},"end":{"type":"string"},"start":{"description":"HH:MM in the person's own time.","type":"string"},"tz_offset":{"description":"Minutes behind UTC, as the browser's `Date.getTimezoneOffset()` gives it (PDT = 420).","format":"int64","type":"integer"}},"required":["enabled","start","end","tz_offset"],"type":["object","null"]},"reasons":{"description":"Reasons rules can name, with what happens by default.","items":{"properties":{"key":{"type":"string"},"label":{"type":"string"}},"required":["key","label"],"type":"object"},"type":"array"},"rules":{"items":{"properties":{"email":{"type":"boolean"},"event":{"description":"A reason (mentioned, assigned, …) or `*` for all.","type":"string"},"inbox":{"type":"boolean"},"push":{"default":null,"description":"Browser push; unset = the same as email.","type":["boolean","null"]},"scope":{"default":"","description":"`project:<key>` or `space:<key>`; empty = everywhere.","type":"string"}},"required":["event","inbox","email"],"type":"object"},"type":"array"}},"required":["rules","policies","channels","reasons","email_by_default"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["notifications:read"]}},"/api/v1/notifications.prefs_set":{"post":{"operationId":"notifications.prefs_set","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"description":"Replaces your rules and/or quiet hours in this organization.","properties":{"quiet":{"properties":{"enabled":{"type":"boolean"},"end":{"type":"string"},"start":{"description":"HH:MM in the person's own time.","type":"string"},"tz_offset":{"description":"Minutes behind UTC, as the browser's `Date.getTimezoneOffset()` gives it (PDT = 420).","format":"int64","type":"integer"}},"required":["enabled","start","end","tz_offset"],"type":["object","null"]},"rules":{"items":{"properties":{"email":{"type":"boolean"},"event":{"description":"A reason (mentioned, assigned, …) or `*` for all.","type":"string"},"inbox":{"type":"boolean"},"push":{"default":null,"description":"Browser push; unset = the same as email.","type":["boolean","null"]},"scope":{"default":"","description":"`project:<key>` or `space:<key>`; empty = everywhere.","type":"string"}},"required":["event","inbox","email"],"type":"object"},"type":["array","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"channels":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"}},"required":["key","label"],"type":"object"},"type":"array"},"email_by_default":{"description":"Reasons that email by default (everything goes to the inbox by default).","items":{"type":"string"},"type":"array"},"policies":{"description":"The org's policies (W807): locked ones override these rules, required ones can't be turned off.","items":{"properties":{"email":{"type":"boolean"},"event":{"description":"A reason or `*`.","type":"string"},"inbox":{"type":"boolean"},"locked":{"default":false,"description":"People can't change it.","type":"boolean"},"push":{"default":null,"description":"Browser push; unset = the same as email.","type":["boolean","null"]},"required":{"default":false,"description":"People can't turn its channels off (they may add more).","type":"boolean"},"scope":{"default":"","description":"`project:<key>`, `space:<key>`, or empty for the whole org.","type":"string"}},"required":["event","inbox","email"],"type":"object"},"type":"array"},"quiet":{"properties":{"enabled":{"type":"boolean"},"end":{"type":"string"},"start":{"description":"HH:MM in the person's own time.","type":"string"},"tz_offset":{"description":"Minutes behind UTC, as the browser's `Date.getTimezoneOffset()` gives it (PDT = 420).","format":"int64","type":"integer"}},"required":["enabled","start","end","tz_offset"],"type":["object","null"]},"reasons":{"description":"Reasons rules can name, with what happens by default.","items":{"properties":{"key":{"type":"string"},"label":{"type":"string"}},"required":["key","label"],"type":"object"},"type":"array"},"rules":{"items":{"properties":{"email":{"type":"boolean"},"event":{"description":"A reason (mentioned, assigned, …) or `*` for all.","type":"string"},"inbox":{"type":"boolean"},"push":{"default":null,"description":"Browser push; unset = the same as email.","type":["boolean","null"]},"scope":{"default":"","description":"`project:<key>` or `space:<key>`; empty = everywhere.","type":"string"}},"required":["event","inbox","email"],"type":"object"},"type":"array"}},"required":["rules","policies","channels","reasons","email_by_default"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["notifications:write"]}},"/api/v1/notifications.push_delivered":{"post":{"operationId":"notifications.push_delivered","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"endpoint":{"type":"string"},"ok":{"description":"false: the push service says the subscription is gone.","type":"boolean"}},"required":["endpoint","ok"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"public":{"description":"The application server key for `pushManager.subscribe` (base64url); null until the cell made one.","type":["string","null"]}},"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/notifications.push_key":{"post":{"operationId":"notifications.push_key","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"public":{"description":"The application server key for `pushManager.subscribe` (base64url); null until the cell made one.","type":["string","null"]}},"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["notifications:read"]}},"/api/v1/notifications.push_queue":{"post":{"operationId":"notifications.push_queue","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"public":{"description":"The application server key for `pushManager.subscribe` (base64url); null until the cell made one.","type":["string","null"]}},"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/notifications.push_subscribe":{"post":{"operationId":"notifications.push_subscribe","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"auth":{"type":"string"},"endpoint":{"type":"string"},"label":{"default":"","description":"e.g. \"Chrome on Mac\".","type":"string"},"p256dh":{"description":"`keys.p256dh` and `keys.auth` of the browser's subscription (base64url).","type":"string"}},"required":["endpoint","p256dh","auth"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"created_at":{"format":"int64","type":"integer"},"endpoint":{"type":"string"},"label":{"type":"string"},"last_ok_at":{"format":"int64","type":["integer","null"]}},"required":["endpoint","label","created_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["notifications:write"]}},"/api/v1/notifications.push_subscriptions":{"post":{"operationId":"notifications.push_subscriptions","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"created_at":{"format":"int64","type":"integer"},"endpoint":{"type":"string"},"label":{"type":"string"},"last_ok_at":{"format":"int64","type":["integer","null"]}},"required":["endpoint","label","created_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["notifications:read"]}},"/api/v1/notifications.push_targets":{"post":{"operationId":"notifications.push_targets","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"identity":{"type":"string"}},"required":["identity"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"private":{"type":"string"},"public":{"type":"string"},"subscriptions":{"description":"(endpoint, p256dh, auth)","items":{"maxItems":3,"minItems":3,"prefixItems":[{"type":"string"},{"type":"string"},{"type":"string"}],"type":"array"},"type":"array"}},"required":["subscriptions","private","public"],"type":["object","null"]}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/notifications.push_test":{"post":{"operationId":"notifications.push_test","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"created_at":{"format":"int64","type":"integer"},"endpoint":{"type":"string"},"label":{"type":"string"},"last_ok_at":{"format":"int64","type":["integer","null"]}},"required":["endpoint","label","created_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["notifications:write"]}},"/api/v1/notifications.push_unsubscribe":{"post":{"operationId":"notifications.push_unsubscribe","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"endpoint":{"type":"string"}},"required":["endpoint"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"created_at":{"format":"int64","type":"integer"},"endpoint":{"type":"string"},"label":{"type":"string"},"last_ok_at":{"format":"int64","type":["integer","null"]}},"required":["endpoint","label","created_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["notifications:write"]}},"/api/v1/notifications.vapid_set":{"post":{"operationId":"notifications.vapid_set","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"private":{"type":"string"},"public":{"type":"string"}},"required":["private","public"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"public":{"description":"The application server key for `pushManager.subscribe` (base64url); null until the cell made one.","type":["string","null"]}},"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/pages.analytics":{"post":{"operationId":"pages.analytics","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"days":{"description":"Days back for the daily series (7-365, default 30).","format":"int64","type":["integer","null"]},"id":{"type":"string"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"people":{"description":"Who has seen the page, most recent first.","items":{"properties":{"current":{"description":"They've seen the current published version.","type":"boolean"},"first_at":{"format":"int64","type":"integer"},"last_at":{"format":"int64","type":"integer"},"member":{"type":"string"},"version":{"description":"The page version they last saw.","format":"int64","type":"integer"},"views":{"format":"int64","type":"integer"}},"required":["member","views","first_at","last_at","version","current"],"type":"object"},"type":"array"},"readers":{"format":"int64","type":"integer"},"series":{"description":"Every day of the window, oldest first.","items":{"properties":{"day":{"description":"YYYY-MM-DD (UTC).","type":"string"},"readers":{"format":"int64","type":"integer"},"views":{"format":"int64","type":"integer"}},"required":["day","views","readers"],"type":"object"},"type":"array"},"views":{"description":"All-time views and distinct readers.","format":"int64","type":"integer"}},"required":["views","readers","series","people"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.attachment_add":{"post":{"operationId":"pages.attachment_add","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"data":{"description":"Base64 bytes; at most 50 KB decoded.","type":"string"},"mime":{"type":"string"},"name":{"type":"string"},"page":{"type":"string"}},"required":["page","name","mime","data"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"id":{"type":"string"},"mime":{"type":"string"},"name":{"type":"string"},"page":{"type":"string"},"size":{"format":"int64","type":"integer"}},"required":["id","page","name","mime","size","created_by","created_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.attachment_delete":{"post":{"operationId":"pages.attachment_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.attachment_get":{"post":{"operationId":"pages.attachment_get","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"as_url":{"default":false,"description":"A download link instead of the bytes, where the deployment serves files from their own origin.","type":"boolean"},"id":{"type":"string"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"description":"Base64 bytes (empty when `url` is given).","type":"string"},"id":{"type":"string"},"mime":{"type":"string"},"name":{"type":"string"},"url":{"description":"With `as_url`, where the deployment has a files origin: a five-minute link that downloads it.","type":["string","null"]}},"required":["id","name","mime","data"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.attachments":{"post":{"operationId":"pages.attachments","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"id":{"type":"string"},"mime":{"type":"string"},"name":{"type":"string"},"page":{"type":"string"},"size":{"format":"int64","type":"integer"}},"required":["id","page","name","mime","size","created_by","created_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.blog":{"post":{"operationId":"pages.blog","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"limit":{"description":"Newest first; default 50, max 5000.","format":"int64","type":["integer","null"]},"space":{"description":"One space's blog; omitted = every space you can see.","type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"created_by":{"type":"string"},"icon":{"type":"string"},"id":{"type":"string"},"published_at":{"description":"When it was first published; null for drafts.","format":"int64","type":["integer","null"]},"space":{"type":"string"},"status":{"description":"draft (yours, unpublished) | current","type":"string"},"summary":{"description":"The start of the post's text (markdown), for the blog list.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","space","title","icon","status","created_by","updated_at","summary"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.board":{"post":{"operationId":"pages.board","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"state":{"description":"The yrs (Yjs) document as one update, base64; empty for a board nobody has drawn on.","type":"string"},"text":{"description":"Its notes' text, one per line.","type":"string"}},"required":["state","can_edit","text"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.by_label":{"post":{"operationId":"pages.by_label","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"label":{"type":"string"},"space":{"type":["string","null"]}},"required":["label"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"icon":{"type":"string"},"id":{"type":"string"},"labels":{"items":{"type":"string"},"type":"array"},"space":{"type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","space","title","icon","labels","updated_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.create":{"post":{"operationId":"pages.create","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"doc_json":{"description":"Starting content (TipTap JSON) instead of a template.","type":["string","null"]},"icon":{"type":["string","null"]},"kind":{"description":"page (default) | blog: a blog post in the space's blog (no parent).","type":["string","null"]},"parent":{"type":["string","null"]},"space":{"type":"string"},"template":{"description":"Template id: the new draft starts with its content.","format":"int64","type":["integer","null"]},"title":{"description":"Defaults to \"Untitled\" (made unique). Titles are unique, so `[[Title]]` always means one page.","type":["string","null"]}},"required":["space"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"description":"Whether the caller may edit (and so change permissions or delete).","type":"boolean"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"doc_json":{"description":"Published content as ProseMirror/TipTap JSON. Empty with version ≥ 1 means legacy markdown in `text`.","type":"string"},"editors":{"items":{"type":"string"},"type":["array","null"]},"has_changes":{"description":"The live (being edited) doc differs from the published version.","type":"boolean"},"icon":{"type":"string"},"id":{"type":"string"},"kind":{"description":"page (in the space's tree) | blog (a dated post in the space's blog)","type":"string"},"labels":{"description":"Labels (lowercase tags).","items":{"type":"string"},"type":"array"},"parent":{"description":"Parent page id; null = top level of the space.","type":["string","null"]},"published_at":{"description":"When it was first published; null for drafts.","format":"int64","type":["integer","null"]},"space":{"type":"string"},"status":{"description":"draft (only its author sees it, never published) | current","type":"string"},"text":{"description":"Published content as markdown: search, mentions, smart-link embeds and agents read this.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"updated_by":{"type":["string","null"]},"version":{"description":"Published version number; 0 = never published.","format":"int64","type":"integer"},"viewers":{"description":"The page's own restrictions; null = inherited from its parent pages and the space.","items":{"type":"string"},"type":["array","null"]}},"required":["id","space","title","icon","status","version","doc_json","text","has_changes","created_by","created_at","updated_at","can_edit","labels","kind"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.db_column_delete":{"post":{"operationId":"pages.db_column_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"db":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"}},"required":["db","id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"columns":{"items":{"properties":{"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"options":{"description":"select / multi: the choices.","items":{"properties":{"color":{"default":"","description":"grey | blue | green | yellow | red | purple","type":"string"},"value":{"type":"string"}},"required":["value"],"type":"object"},"type":"array"},"type":{"description":"text | number | select | multi | date | checkbox | person | issue | url","type":"string"}},"required":["id","name","type","options"],"type":"object"},"type":"array"},"id":{"format":"int64","type":"integer"},"page":{"type":"string"},"rows":{"items":{"properties":{"cells":{"additionalProperties":true,"description":"Column id → value: text / url / date (YYYY-MM-DD) / select / person as a string, number as a number, checkbox\nas a bool, multi and issue (keys) as string arrays.","type":"object"},"created_by":{"type":"string"},"id":{"format":"int64","type":"integer"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","cells","created_by","updated_at"],"type":"object"},"type":"array"},"title":{"type":"string"}},"required":["id","page","title","columns","rows","can_edit"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.db_column_save":{"post":{"operationId":"pages.db_column_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"before":{"description":"Put it before this column (omitted = keep its place, or last for a new one).","format":"int64","type":["integer","null"]},"db":{"format":"int64","type":"integer"},"id":{"description":"Omitted = a new column.","format":"int64","type":["integer","null"]},"name":{"type":"string"},"options":{"default":[],"items":{"properties":{"color":{"default":"","description":"grey | blue | green | yellow | red | purple","type":"string"},"value":{"type":"string"}},"required":["value"],"type":"object"},"type":"array"},"type":{"type":"string"}},"required":["db","name","type"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"columns":{"items":{"properties":{"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"options":{"description":"select / multi: the choices.","items":{"properties":{"color":{"default":"","description":"grey | blue | green | yellow | red | purple","type":"string"},"value":{"type":"string"}},"required":["value"],"type":"object"},"type":"array"},"type":{"description":"text | number | select | multi | date | checkbox | person | issue | url","type":"string"}},"required":["id","name","type","options"],"type":"object"},"type":"array"},"id":{"format":"int64","type":"integer"},"page":{"type":"string"},"rows":{"items":{"properties":{"cells":{"additionalProperties":true,"description":"Column id → value: text / url / date (YYYY-MM-DD) / select / person as a string, number as a number, checkbox\nas a bool, multi and issue (keys) as string arrays.","type":"object"},"created_by":{"type":"string"},"id":{"format":"int64","type":"integer"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","cells","created_by","updated_at"],"type":"object"},"type":"array"},"title":{"type":"string"}},"required":["id","page","title","columns","rows","can_edit"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.db_create":{"post":{"operationId":"pages.db_create","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"page":{"type":"string"},"title":{"type":["string","null"]}},"required":["page"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"columns":{"items":{"properties":{"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"options":{"description":"select / multi: the choices.","items":{"properties":{"color":{"default":"","description":"grey | blue | green | yellow | red | purple","type":"string"},"value":{"type":"string"}},"required":["value"],"type":"object"},"type":"array"},"type":{"description":"text | number | select | multi | date | checkbox | person | issue | url","type":"string"}},"required":["id","name","type","options"],"type":"object"},"type":"array"},"id":{"format":"int64","type":"integer"},"page":{"type":"string"},"rows":{"items":{"properties":{"cells":{"additionalProperties":true,"description":"Column id → value: text / url / date (YYYY-MM-DD) / select / person as a string, number as a number, checkbox\nas a bool, multi and issue (keys) as string arrays.","type":"object"},"created_by":{"type":"string"},"id":{"format":"int64","type":"integer"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","cells","created_by","updated_at"],"type":"object"},"type":"array"},"title":{"type":"string"}},"required":["id","page","title","columns","rows","can_edit"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.db_delete":{"post":{"operationId":"pages.db_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.db_get":{"post":{"operationId":"pages.db_get","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"columns":{"items":{"properties":{"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"options":{"description":"select / multi: the choices.","items":{"properties":{"color":{"default":"","description":"grey | blue | green | yellow | red | purple","type":"string"},"value":{"type":"string"}},"required":["value"],"type":"object"},"type":"array"},"type":{"description":"text | number | select | multi | date | checkbox | person | issue | url","type":"string"}},"required":["id","name","type","options"],"type":"object"},"type":"array"},"id":{"format":"int64","type":"integer"},"page":{"type":"string"},"rows":{"items":{"properties":{"cells":{"additionalProperties":true,"description":"Column id → value: text / url / date (YYYY-MM-DD) / select / person as a string, number as a number, checkbox\nas a bool, multi and issue (keys) as string arrays.","type":"object"},"created_by":{"type":"string"},"id":{"format":"int64","type":"integer"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","cells","created_by","updated_at"],"type":"object"},"type":"array"},"title":{"type":"string"}},"required":["id","page","title","columns","rows","can_edit"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.db_links":{"post":{"operationId":"pages.db_links","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"db":{"format":"int64","type":"integer"},"label":{"description":"The row's first text cell, to name it.","type":"string"},"page":{"type":"string"},"page_title":{"type":"string"},"row":{"format":"int64","type":"integer"},"title":{"type":"string"}},"required":["db","title","page","page_title","row","label"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.db_row_add":{"post":{"operationId":"pages.db_row_add","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"cells":{"additionalProperties":true,"default":{},"type":"object"},"db":{"format":"int64","type":"integer"}},"required":["db"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"columns":{"items":{"properties":{"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"options":{"description":"select / multi: the choices.","items":{"properties":{"color":{"default":"","description":"grey | blue | green | yellow | red | purple","type":"string"},"value":{"type":"string"}},"required":["value"],"type":"object"},"type":"array"},"type":{"description":"text | number | select | multi | date | checkbox | person | issue | url","type":"string"}},"required":["id","name","type","options"],"type":"object"},"type":"array"},"id":{"format":"int64","type":"integer"},"page":{"type":"string"},"rows":{"items":{"properties":{"cells":{"additionalProperties":true,"description":"Column id → value: text / url / date (YYYY-MM-DD) / select / person as a string, number as a number, checkbox\nas a bool, multi and issue (keys) as string arrays.","type":"object"},"created_by":{"type":"string"},"id":{"format":"int64","type":"integer"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","cells","created_by","updated_at"],"type":"object"},"type":"array"},"title":{"type":"string"}},"required":["id","page","title","columns","rows","can_edit"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.db_row_delete":{"post":{"operationId":"pages.db_row_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"db":{"format":"int64","type":"integer"},"row":{"format":"int64","type":"integer"}},"required":["db","row"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"columns":{"items":{"properties":{"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"options":{"description":"select / multi: the choices.","items":{"properties":{"color":{"default":"","description":"grey | blue | green | yellow | red | purple","type":"string"},"value":{"type":"string"}},"required":["value"],"type":"object"},"type":"array"},"type":{"description":"text | number | select | multi | date | checkbox | person | issue | url","type":"string"}},"required":["id","name","type","options"],"type":"object"},"type":"array"},"id":{"format":"int64","type":"integer"},"page":{"type":"string"},"rows":{"items":{"properties":{"cells":{"additionalProperties":true,"description":"Column id → value: text / url / date (YYYY-MM-DD) / select / person as a string, number as a number, checkbox\nas a bool, multi and issue (keys) as string arrays.","type":"object"},"created_by":{"type":"string"},"id":{"format":"int64","type":"integer"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","cells","created_by","updated_at"],"type":"object"},"type":"array"},"title":{"type":"string"}},"required":["id","page","title","columns","rows","can_edit"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.db_row_update":{"post":{"operationId":"pages.db_row_update","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"cells":{"additionalProperties":true,"description":"Column id → new value; null clears the cell. Other cells are kept.","type":"object"},"db":{"format":"int64","type":"integer"},"row":{"format":"int64","type":"integer"}},"required":["db","row","cells"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"columns":{"items":{"properties":{"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"options":{"description":"select / multi: the choices.","items":{"properties":{"color":{"default":"","description":"grey | blue | green | yellow | red | purple","type":"string"},"value":{"type":"string"}},"required":["value"],"type":"object"},"type":"array"},"type":{"description":"text | number | select | multi | date | checkbox | person | issue | url","type":"string"}},"required":["id","name","type","options"],"type":"object"},"type":"array"},"id":{"format":"int64","type":"integer"},"page":{"type":"string"},"rows":{"items":{"properties":{"cells":{"additionalProperties":true,"description":"Column id → value: text / url / date (YYYY-MM-DD) / select / person as a string, number as a number, checkbox\nas a bool, multi and issue (keys) as string arrays.","type":"object"},"created_by":{"type":"string"},"id":{"format":"int64","type":"integer"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","cells","created_by","updated_at"],"type":"object"},"type":"array"},"title":{"type":"string"}},"required":["id","page","title","columns","rows","can_edit"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.db_update":{"post":{"operationId":"pages.db_update","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"},"title":{"type":"string"}},"required":["id","title"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"columns":{"items":{"properties":{"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"options":{"description":"select / multi: the choices.","items":{"properties":{"color":{"default":"","description":"grey | blue | green | yellow | red | purple","type":"string"},"value":{"type":"string"}},"required":["value"],"type":"object"},"type":"array"},"type":{"description":"text | number | select | multi | date | checkbox | person | issue | url","type":"string"}},"required":["id","name","type","options"],"type":"object"},"type":"array"},"id":{"format":"int64","type":"integer"},"page":{"type":"string"},"rows":{"items":{"properties":{"cells":{"additionalProperties":true,"description":"Column id → value: text / url / date (YYYY-MM-DD) / select / person as a string, number as a number, checkbox\nas a bool, multi and issue (keys) as string arrays.","type":"object"},"created_by":{"type":"string"},"id":{"format":"int64","type":"integer"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","cells","created_by","updated_at"],"type":"object"},"type":"array"},"title":{"type":"string"}},"required":["id","page","title","columns","rows","can_edit"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.dbs":{"post":{"operationId":"pages.dbs","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"page":{"type":"string"}},"required":["page"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"can_edit":{"type":"boolean"},"columns":{"items":{"properties":{"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"options":{"description":"select / multi: the choices.","items":{"properties":{"color":{"default":"","description":"grey | blue | green | yellow | red | purple","type":"string"},"value":{"type":"string"}},"required":["value"],"type":"object"},"type":"array"},"type":{"description":"text | number | select | multi | date | checkbox | person | issue | url","type":"string"}},"required":["id","name","type","options"],"type":"object"},"type":"array"},"id":{"format":"int64","type":"integer"},"page":{"type":"string"},"rows":{"items":{"properties":{"cells":{"additionalProperties":true,"description":"Column id → value: text / url / date (YYYY-MM-DD) / select / person as a string, number as a number, checkbox\nas a bool, multi and issue (keys) as string arrays.","type":"object"},"created_by":{"type":"string"},"id":{"format":"int64","type":"integer"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","cells","created_by","updated_at"],"type":"object"},"type":"array"},"title":{"type":"string"}},"required":["id","page","title","columns","rows","can_edit"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.delete":{"post":{"operationId":"pages.delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.discard":{"post":{"operationId":"pages.discard","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"description":"Whether the caller may edit (and so change permissions or delete).","type":"boolean"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"doc_json":{"description":"Published content as ProseMirror/TipTap JSON. Empty with version ≥ 1 means legacy markdown in `text`.","type":"string"},"editors":{"items":{"type":"string"},"type":["array","null"]},"has_changes":{"description":"The live (being edited) doc differs from the published version.","type":"boolean"},"icon":{"type":"string"},"id":{"type":"string"},"kind":{"description":"page (in the space's tree) | blog (a dated post in the space's blog)","type":"string"},"labels":{"description":"Labels (lowercase tags).","items":{"type":"string"},"type":"array"},"parent":{"description":"Parent page id; null = top level of the space.","type":["string","null"]},"published_at":{"description":"When it was first published; null for drafts.","format":"int64","type":["integer","null"]},"space":{"type":"string"},"status":{"description":"draft (only its author sees it, never published) | current","type":"string"},"text":{"description":"Published content as markdown: search, mentions, smart-link embeds and agents read this.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"updated_by":{"type":["string","null"]},"version":{"description":"Published version number; 0 = never published.","format":"int64","type":"integer"},"viewers":{"description":"The page's own restrictions; null = inherited from its parent pages and the space.","items":{"type":"string"},"type":["array","null"]}},"required":["id","space","title","icon","status","version","doc_json","text","has_changes","created_by","created_at","updated_at","can_edit","labels","kind"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.export":{"post":{"operationId":"pages.export","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"format":{"description":"markdown | html | word","type":"string"},"id":{"type":"string"}},"required":["id","format"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"description":"The file's text (Markdown or HTML).","type":"string"},"mime":{"type":"string"},"name":{"description":"A file name for the download.","type":"string"}},"required":["name","mime","data"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.follow":{"post":{"operationId":"pages.follow","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"follow":{"description":"true to follow, false to stop.","type":"boolean"},"key":{"type":"string"}},"required":["key","follow"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"followers":{"format":"int64","type":"integer"},"following":{"type":"boolean"},"key":{"type":"string"}},"required":["key","following","followers"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.get":{"post":{"operationId":"pages.get","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"description":"Whether the caller may edit (and so change permissions or delete).","type":"boolean"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"doc_json":{"description":"Published content as ProseMirror/TipTap JSON. Empty with version ≥ 1 means legacy markdown in `text`.","type":"string"},"editors":{"items":{"type":"string"},"type":["array","null"]},"has_changes":{"description":"The live (being edited) doc differs from the published version.","type":"boolean"},"icon":{"type":"string"},"id":{"type":"string"},"kind":{"description":"page (in the space's tree) | blog (a dated post in the space's blog)","type":"string"},"labels":{"description":"Labels (lowercase tags).","items":{"type":"string"},"type":"array"},"parent":{"description":"Parent page id; null = top level of the space.","type":["string","null"]},"published_at":{"description":"When it was first published; null for drafts.","format":"int64","type":["integer","null"]},"space":{"type":"string"},"status":{"description":"draft (only its author sees it, never published) | current","type":"string"},"text":{"description":"Published content as markdown: search, mentions, smart-link embeds and agents read this.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"updated_by":{"type":["string","null"]},"version":{"description":"Published version number; 0 = never published.","format":"int64","type":"integer"},"viewers":{"description":"The page's own restrictions; null = inherited from its parent pages and the space.","items":{"type":"string"},"type":["array","null"]}},"required":["id","space","title","icon","status","version","doc_json","text","has_changes","created_by","created_at","updated_at","can_edit","labels","kind"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.include":{"post":{"operationId":"pages.include","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"excerpt":{"default":false,"description":"Only its excerpt (the first Excerpt block) rather than the whole page.","type":"boolean"},"id":{"description":"The page to include.","type":"string"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"doc_json":{"description":"The published content (or the excerpt's) as TipTap JSON; empty when the page was never published.","type":"string"},"icon":{"type":"string"},"id":{"type":"string"},"no_excerpt":{"description":"excerpt was asked for but the page has no Excerpt block.","type":"boolean"},"space":{"type":"string"},"text":{"description":"The same as markdown (excerpts: plain text).","type":"string"},"title":{"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["id","title","icon","space","version","doc_json","text","no_excerpt"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.labels":{"post":{"operationId":"pages.labels","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"space":{"description":"Only labels used in this space.","type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"label":{"type":"string"},"pages":{"format":"int64","type":"integer"}},"required":["label","pages"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.list":{"post":{"operationId":"pages.list","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"space":{"type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"created_by":{"type":"string"},"has_changes":{"type":"boolean"},"icon":{"type":"string"},"id":{"type":"string"},"kind":{"description":"page | whiteboard (blog posts aren't in the tree)","type":"string"},"parent":{"type":["string","null"]},"position":{"format":"double","type":"number"},"restricted":{"description":"Has its own view or edit restrictions.","type":"boolean"},"space":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"version":{"format":"int64","type":"integer"}},"required":["id","space","title","position","icon","status","version","has_changes","created_by","updated_at","restricted","kind"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.live_check":{"post":{"operationId":"pages.live_check","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"ok":{"type":"boolean"}},"required":["ok"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.move":{"post":{"operationId":"pages.move","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"before":{"description":"Put it right before this sibling; omit to put it last.","type":["string","null"]},"id":{"type":"string"},"parent":{"description":"New parent page id; null or \"\" = top level of the (new) space.","type":["string","null"]},"space":{"description":"Move to another space (with its sub-pages). Defaults to the parent's space.","type":["string","null"]}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"description":"Whether the caller may edit (and so change permissions or delete).","type":"boolean"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"doc_json":{"description":"Published content as ProseMirror/TipTap JSON. Empty with version ≥ 1 means legacy markdown in `text`.","type":"string"},"editors":{"items":{"type":"string"},"type":["array","null"]},"has_changes":{"description":"The live (being edited) doc differs from the published version.","type":"boolean"},"icon":{"type":"string"},"id":{"type":"string"},"kind":{"description":"page (in the space's tree) | blog (a dated post in the space's blog)","type":"string"},"labels":{"description":"Labels (lowercase tags).","items":{"type":"string"},"type":"array"},"parent":{"description":"Parent page id; null = top level of the space.","type":["string","null"]},"published_at":{"description":"When it was first published; null for drafts.","format":"int64","type":["integer","null"]},"space":{"type":"string"},"status":{"description":"draft (only its author sees it, never published) | current","type":"string"},"text":{"description":"Published content as markdown: search, mentions, smart-link embeds and agents read this.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"updated_by":{"type":["string","null"]},"version":{"description":"Published version number; 0 = never published.","format":"int64","type":"integer"},"viewers":{"description":"The page's own restrictions; null = inherited from its parent pages and the space.","items":{"type":"string"},"type":["array","null"]}},"required":["id","space","title","icon","status","version","doc_json","text","has_changes","created_by","created_at","updated_at","can_edit","labels","kind"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.permissions":{"post":{"operationId":"pages.permissions","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"editors":{"items":{"type":"string"},"type":["array","null"]},"inherited_editors":{"items":{"type":"string"},"type":"array"},"inherited_viewers":{"description":"What applies when the page's own list is unset (nearest restricted parent, else the space).","items":{"type":"string"},"type":"array"},"owner":{"type":"string"},"viewers":{"description":"The page's own lists; null = inherited.","items":{"type":"string"},"type":["array","null"]}},"required":["owner","inherited_viewers","inherited_editors","can_edit"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.properties_report":{"post":{"operationId":"pages.properties_report","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"columns":{"default":[],"description":"Only these columns, in this order (default: every key, in first-seen order).","items":{"type":"string"},"type":"array"},"descending":{"default":false,"type":"boolean"},"label":{"description":"Pages with this label…","type":["string","null"]},"sort":{"description":"Sort by this column (default: title).","type":["string","null"]},"space":{"description":"…and/or in this space.","type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"columns":{"items":{"type":"string"},"type":"array"},"rows":{"items":{"properties":{"id":{"type":"string"},"space":{"type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"values":{"description":"Column → value (\"\" when the page doesn't have it).","items":{"type":"string"},"type":"array"}},"required":["id","title","space","updated_at","values"],"type":"object"},"type":"array"}},"required":["columns","rows"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.publish":{"post":{"operationId":"pages.publish","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"doc_json":{"description":"The document to publish (TipTap JSON), as the editor has it.","type":"string"},"id":{"type":"string"},"message":{"description":"Optional note shown in the page history.","type":["string","null"]},"text":{"description":"The same content as markdown.","type":"string"},"title":{"type":["string","null"]}},"required":["id","doc_json","text"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"description":"Whether the caller may edit (and so change permissions or delete).","type":"boolean"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"doc_json":{"description":"Published content as ProseMirror/TipTap JSON. Empty with version ≥ 1 means legacy markdown in `text`.","type":"string"},"editors":{"items":{"type":"string"},"type":["array","null"]},"has_changes":{"description":"The live (being edited) doc differs from the published version.","type":"boolean"},"icon":{"type":"string"},"id":{"type":"string"},"kind":{"description":"page (in the space's tree) | blog (a dated post in the space's blog)","type":"string"},"labels":{"description":"Labels (lowercase tags).","items":{"type":"string"},"type":"array"},"parent":{"description":"Parent page id; null = top level of the space.","type":["string","null"]},"published_at":{"description":"When it was first published; null for drafts.","format":"int64","type":["integer","null"]},"space":{"type":"string"},"status":{"description":"draft (only its author sees it, never published) | current","type":"string"},"text":{"description":"Published content as markdown: search, mentions, smart-link embeds and agents read this.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"updated_by":{"type":["string","null"]},"version":{"description":"Published version number; 0 = never published.","format":"int64","type":"integer"},"viewers":{"description":"The page's own restrictions; null = inherited from its parent pages and the space.","items":{"type":"string"},"type":["array","null"]}},"required":["id","space","title","icon","status","version","doc_json","text","has_changes","created_by","created_at","updated_at","can_edit","labels","kind"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.restore":{"post":{"operationId":"pages.restore","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["id","version"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"description":"Whether the caller may edit (and so change permissions or delete).","type":"boolean"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"doc_json":{"description":"Published content as ProseMirror/TipTap JSON. Empty with version ≥ 1 means legacy markdown in `text`.","type":"string"},"editors":{"items":{"type":"string"},"type":["array","null"]},"has_changes":{"description":"The live (being edited) doc differs from the published version.","type":"boolean"},"icon":{"type":"string"},"id":{"type":"string"},"kind":{"description":"page (in the space's tree) | blog (a dated post in the space's blog)","type":"string"},"labels":{"description":"Labels (lowercase tags).","items":{"type":"string"},"type":"array"},"parent":{"description":"Parent page id; null = top level of the space.","type":["string","null"]},"published_at":{"description":"When it was first published; null for drafts.","format":"int64","type":["integer","null"]},"space":{"type":"string"},"status":{"description":"draft (only its author sees it, never published) | current","type":"string"},"text":{"description":"Published content as markdown: search, mentions, smart-link embeds and agents read this.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"updated_by":{"type":["string","null"]},"version":{"description":"Published version number; 0 = never published.","format":"int64","type":"integer"},"viewers":{"description":"The page's own restrictions; null = inherited from its parent pages and the space.","items":{"type":"string"},"type":["array","null"]}},"required":["id","space","title","icon","status","version","doc_json","text","has_changes","created_by","created_at","updated_at","can_edit","labels","kind"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.set_labels":{"post":{"operationId":"pages.set_labels","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string"},"labels":{"description":"Replaces the page's labels (cleaned: lowercase, dashes for spaces).","items":{"type":"string"},"type":"array"}},"required":["id","labels"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.set_permissions":{"post":{"operationId":"pages.set_permissions","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"editors":{"default":null,"items":{"type":"string"},"type":["array","null"]},"id":{"type":"string"},"viewers":{"default":null,"description":"`everyone`, `admins`, `team:<id>` or member ids; null = inherit; omit to leave unchanged.","items":{"type":"string"},"type":["array","null"]}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"description":"Whether the caller may edit (and so change permissions or delete).","type":"boolean"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"doc_json":{"description":"Published content as ProseMirror/TipTap JSON. Empty with version ≥ 1 means legacy markdown in `text`.","type":"string"},"editors":{"items":{"type":"string"},"type":["array","null"]},"has_changes":{"description":"The live (being edited) doc differs from the published version.","type":"boolean"},"icon":{"type":"string"},"id":{"type":"string"},"kind":{"description":"page (in the space's tree) | blog (a dated post in the space's blog)","type":"string"},"labels":{"description":"Labels (lowercase tags).","items":{"type":"string"},"type":"array"},"parent":{"description":"Parent page id; null = top level of the space.","type":["string","null"]},"published_at":{"description":"When it was first published; null for drafts.","format":"int64","type":["integer","null"]},"space":{"type":"string"},"status":{"description":"draft (only its author sees it, never published) | current","type":"string"},"text":{"description":"Published content as markdown: search, mentions, smart-link embeds and agents read this.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"updated_by":{"type":["string","null"]},"version":{"description":"Published version number; 0 = never published.","format":"int64","type":"integer"},"viewers":{"description":"The page's own restrictions; null = inherited from its parent pages and the space.","items":{"type":"string"},"type":["array","null"]}},"required":["id","space","title","icon","status","version","doc_json","text","has_changes","created_by","created_at","updated_at","can_edit","labels","kind"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.space_analytics":{"post":{"operationId":"pages.space_analytics","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"days":{"format":"int64","type":["integer","null"]},"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"pages":{"description":"Most viewed pages in the window (pages you can see), top 20.","items":{"properties":{"id":{"type":"string"},"readers":{"format":"int64","type":"integer"},"title":{"type":"string"},"views":{"format":"int64","type":"integer"}},"required":["id","title","views","readers"],"type":"object"},"type":"array"},"readers":{"format":"int64","type":"integer"},"series":{"items":{"properties":{"day":{"description":"YYYY-MM-DD (UTC).","type":"string"},"readers":{"format":"int64","type":"integer"},"views":{"format":"int64","type":"integer"}},"required":["day","views","readers"],"type":"object"},"type":"array"},"views":{"format":"int64","type":"integer"}},"required":["views","readers","series","pages"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.space_create":{"post":{"operationId":"pages.space_create","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"color":{"type":["string","null"]},"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"key":{"description":"2-10 letters/digits, starting with a letter (like project keys).","type":"string"},"name":{"type":"string"}},"required":["key","name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"description":"What the caller may do.","type":"boolean"},"can_manage":{"type":"boolean"},"color":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"created_by":{"description":"The owner: may change permissions and delete the space (as may admins).","type":"string"},"description":{"type":"string"},"editors":{"description":"Who may add and edit its pages (pages can narrow this).","items":{"type":"string"},"type":"array"},"followers":{"format":"int64","type":"integer"},"following":{"description":"The caller follows the space (new blog posts notify them).","type":"boolean"},"home":{"description":"The space's home page id.","type":["string","null"]},"icon":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"pages":{"description":"Published pages in the space.","format":"int64","type":"integer"},"viewers":{"description":"Who sees the space: `everyone`, `admins`, `team:<id>` or member ids.","items":{"type":"string"},"type":"array"}},"required":["key","name","description","icon","color","pages","created_by","created_at","viewers","editors","can_edit","can_manage","following","followers"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.space_delete":{"post":{"operationId":"pages.space_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.space_export":{"post":{"operationId":"pages.space_export","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"format":{"description":"markdown | html","type":"string"},"key":{"type":"string"}},"required":["key","format"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"created_at":{"format":"int64","type":"integer"},"error":{"type":["string","null"]},"finished_at":{"format":"int64","type":["integer","null"]},"format":{"type":"string"},"id":{"format":"int64","type":"integer"},"pages":{"format":"int64","type":["integer","null"]},"requested_by":{"type":"string"},"size":{"format":"int64","type":["integer","null"]},"space":{"type":"string"},"state":{"description":"queued | ready | failed","type":"string"}},"required":["id","space","format","requested_by","state","created_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.space_export_get":{"post":{"operationId":"pages.space_export_get","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"as_url":{"default":false,"description":"A download link instead of the bytes, where the deployment serves files from their own origin.","type":"boolean"},"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"description":"The .tar, base64 (empty when `url` is given).","type":"string"},"name":{"type":"string"},"url":{"description":"With `as_url`, where the deployment has a files origin: a five-minute link that downloads it.","type":["string","null"]}},"required":["name","data"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.space_exports":{"post":{"operationId":"pages.space_exports","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"created_at":{"format":"int64","type":"integer"},"error":{"type":["string","null"]},"finished_at":{"format":"int64","type":["integer","null"]},"format":{"type":"string"},"id":{"format":"int64","type":"integer"},"pages":{"format":"int64","type":["integer","null"]},"requested_by":{"type":"string"},"size":{"format":"int64","type":["integer","null"]},"space":{"type":"string"},"state":{"description":"queued | ready | failed","type":"string"}},"required":["id","space","format","requested_by","state","created_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.space_get":{"post":{"operationId":"pages.space_get","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"description":"What the caller may do.","type":"boolean"},"can_manage":{"type":"boolean"},"color":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"created_by":{"description":"The owner: may change permissions and delete the space (as may admins).","type":"string"},"description":{"type":"string"},"editors":{"description":"Who may add and edit its pages (pages can narrow this).","items":{"type":"string"},"type":"array"},"followers":{"format":"int64","type":"integer"},"following":{"description":"The caller follows the space (new blog posts notify them).","type":"boolean"},"home":{"description":"The space's home page id.","type":["string","null"]},"icon":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"pages":{"description":"Published pages in the space.","format":"int64","type":"integer"},"viewers":{"description":"Who sees the space: `everyone`, `admins`, `team:<id>` or member ids.","items":{"type":"string"},"type":"array"}},"required":["key","name","description","icon","color","pages","created_by","created_at","viewers","editors","can_edit","can_manage","following","followers"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.space_permissions":{"post":{"operationId":"pages.space_permissions","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"editors":{"items":{"type":"string"},"type":["array","null"]},"key":{"type":"string"},"viewers":{"items":{"type":"string"},"type":["array","null"]}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"description":"What the caller may do.","type":"boolean"},"can_manage":{"type":"boolean"},"color":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"created_by":{"description":"The owner: may change permissions and delete the space (as may admins).","type":"string"},"description":{"type":"string"},"editors":{"description":"Who may add and edit its pages (pages can narrow this).","items":{"type":"string"},"type":"array"},"followers":{"format":"int64","type":"integer"},"following":{"description":"The caller follows the space (new blog posts notify them).","type":"boolean"},"home":{"description":"The space's home page id.","type":["string","null"]},"icon":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"pages":{"description":"Published pages in the space.","format":"int64","type":"integer"},"viewers":{"description":"Who sees the space: `everyone`, `admins`, `team:<id>` or member ids.","items":{"type":"string"},"type":"array"}},"required":["key","name","description","icon","color","pages","created_by","created_at","viewers","editors","can_edit","can_manage","following","followers"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.space_update":{"post":{"operationId":"pages.space_update","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"color":{"type":["string","null"]},"description":{"type":["string","null"]},"home":{"description":"A page id in this space.","type":["string","null"]},"icon":{"type":["string","null"]},"key":{"type":"string"},"name":{"type":["string","null"]}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"description":"What the caller may do.","type":"boolean"},"can_manage":{"type":"boolean"},"color":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"created_by":{"description":"The owner: may change permissions and delete the space (as may admins).","type":"string"},"description":{"type":"string"},"editors":{"description":"Who may add and edit its pages (pages can narrow this).","items":{"type":"string"},"type":"array"},"followers":{"format":"int64","type":"integer"},"following":{"description":"The caller follows the space (new blog posts notify them).","type":"boolean"},"home":{"description":"The space's home page id.","type":["string","null"]},"icon":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"pages":{"description":"Published pages in the space.","format":"int64","type":"integer"},"viewers":{"description":"Who sees the space: `everyone`, `admins`, `team:<id>` or member ids.","items":{"type":"string"},"type":"array"}},"required":["key","name","description","icon","color","pages","created_by","created_at","viewers","editors","can_edit","can_manage","following","followers"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.spaces":{"post":{"operationId":"pages.spaces","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"can_edit":{"description":"What the caller may do.","type":"boolean"},"can_manage":{"type":"boolean"},"color":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"created_by":{"description":"The owner: may change permissions and delete the space (as may admins).","type":"string"},"description":{"type":"string"},"editors":{"description":"Who may add and edit its pages (pages can narrow this).","items":{"type":"string"},"type":"array"},"followers":{"format":"int64","type":"integer"},"following":{"description":"The caller follows the space (new blog posts notify them).","type":"boolean"},"home":{"description":"The space's home page id.","type":["string","null"]},"icon":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"pages":{"description":"Published pages in the space.","format":"int64","type":"integer"},"viewers":{"description":"Who sees the space: `everyone`, `admins`, `team:<id>` or member ids.","items":{"type":"string"},"type":"array"}},"required":["key","name","description","icon","color","pages","created_by","created_at","viewers","editors","can_edit","can_manage","following","followers"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.template_delete":{"post":{"operationId":"pages.template_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.template_save":{"post":{"operationId":"pages.template_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":["string","null"]},"doc_json":{"type":"string"},"icon":{"type":["string","null"]},"id":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"space":{"type":["string","null"]}},"required":["name","doc_json"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"created_by":{"type":"string"},"description":{"type":"string"},"doc_json":{"type":"string"},"icon":{"type":"string"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"space":{"description":"Space it belongs to; null = every space.","type":["string","null"]}},"required":["id","name","description","icon","doc_json","created_by"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.templates":{"post":{"operationId":"pages.templates","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"created_by":{"type":"string"},"description":{"type":"string"},"doc_json":{"type":"string"},"icon":{"type":"string"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"space":{"description":"Space it belongs to; null = every space.","type":["string","null"]}},"required":["id","name","description","icon","doc_json","created_by"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.update":{"post":{"operationId":"pages.update","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"icon":{"type":["string","null"]},"id":{"type":"string"},"title":{"type":["string","null"]}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"description":"Whether the caller may edit (and so change permissions or delete).","type":"boolean"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"doc_json":{"description":"Published content as ProseMirror/TipTap JSON. Empty with version ≥ 1 means legacy markdown in `text`.","type":"string"},"editors":{"items":{"type":"string"},"type":["array","null"]},"has_changes":{"description":"The live (being edited) doc differs from the published version.","type":"boolean"},"icon":{"type":"string"},"id":{"type":"string"},"kind":{"description":"page (in the space's tree) | blog (a dated post in the space's blog)","type":"string"},"labels":{"description":"Labels (lowercase tags).","items":{"type":"string"},"type":"array"},"parent":{"description":"Parent page id; null = top level of the space.","type":["string","null"]},"published_at":{"description":"When it was first published; null for drafts.","format":"int64","type":["integer","null"]},"space":{"type":"string"},"status":{"description":"draft (only its author sees it, never published) | current","type":"string"},"text":{"description":"Published content as markdown: search, mentions, smart-link embeds and agents read this.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"},"updated_by":{"type":["string","null"]},"version":{"description":"Published version number; 0 = never published.","format":"int64","type":"integer"},"viewers":{"description":"The page's own restrictions; null = inherited from its parent pages and the space.","items":{"type":"string"},"type":["array","null"]}},"required":["id","space","title","icon","status","version","doc_json","text","has_changes","created_by","created_at","updated_at","can_edit","labels","kind"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:write"]}},"/api/v1/pages.version_get":{"post":{"operationId":"pages.version_get","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["id","version"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"author":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"doc_json":{"type":"string"},"message":{"type":"string"},"text":{"type":"string"},"title":{"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["version","title","doc_json","text","message","author","created_at"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.versions":{"post":{"operationId":"pages.versions","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"author":{"type":"string"},"created_at":{"format":"int64","type":"integer"},"message":{"type":"string"},"title":{"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["version","title","message","author","created_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/pages.view":{"post":{"operationId":"pages.view","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"views":{"format":"int64","type":"integer"}},"required":["views"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["pages:read"]}},"/api/v1/plugins.action":{"post":{"operationId":"plugins.action","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"action":{"type":"string"},"context":{"default":null},"input":{"default":null},"plugin":{"type":"string"}},"required":["plugin","action"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"error":{"type":["string","null"]},"logs":{"items":{"type":"string"},"type":"array"},"ok":{"type":"boolean"},"value":true},"required":["ok","value","logs"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["plugins:read"]}},"/api/v1/plugins.call":{"post":{"operationId":"plugins.call","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"input":{"default":null},"op":{"type":"string"},"plugin":{"type":"string"}},"required":["plugin","op"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"error":{"type":["string","null"]},"logs":{"items":{"type":"string"},"type":"array"},"ok":{"type":"boolean"},"value":true},"required":["ok","value","logs"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["plugins:read"]}},"/api/v1/plugins.enable":{"post":{"operationId":"plugins.enable","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"enabled":{"type":"boolean"},"key":{"type":"string"}},"required":["key","enabled"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"allow":{"items":{"type":"string"},"type":"array"},"description":{"type":"string"},"enabled":{"type":"boolean"},"events":{"items":{"properties":{"handler":{"type":"string"},"on":{"description":"Event kinds: `issue.created`, `issue.*`, `*`.","items":{"type":"string"},"type":"array"}},"required":["on","handler"],"type":"object"},"type":"array"},"installed_at":{"format":"int64","type":"integer"},"installed_by":{"type":"string"},"key":{"type":"string"},"listing":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"ops":{"items":{"properties":{"description":{"default":"","type":"string"},"handler":{"description":"The function (Rhai) or entry (Wasm) that answers.","type":"string"},"input":{"default":null,"description":"JSON Schema of its input (shown to MCP clients)."},"name":{"description":"`[a-z0-9_]`; the tool is `plugin_<key>_<name>`.","type":"string"},"scope":{"description":"The scope a caller needs (`issues:read`, `admin`, …).","type":"string"}},"required":["name","scope","handler"],"type":"object"},"type":"array"},"permissions":{"items":{"type":"string"},"type":"array"},"publisher":{"description":"Signed bundles: the publisher's key, and the marketplace listing it came from.","type":["string","null"]},"runtime":{"description":"rhai | wasm","type":"string"},"settings":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"secret":{"type":"boolean"},"set":{"type":"boolean"},"value":{"description":"Non-secret values; secrets show only whether they're set."}},"required":["key","label","secret","set"],"type":"object"},"type":"array"},"token_prefix":{"description":"First characters of the install token.","type":"string"},"ui":{"description":"Where a plugin shows up in the app.","properties":{"actions":{"default":[],"description":"Handlers buttons in its UI trees may call (`plugins.action`).","items":{"type":"string"},"type":"array"},"card_badges":{"default":[],"description":"Batch: the handler gets `context.keys` and answers `{KEY: node}`.","items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"commands":{"default":[],"description":"The handler answers `{message?, insert? (text for the editor), open? (a link)}`.","items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"gadgets":{"default":[],"items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"issue_panels":{"default":[],"items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"page_macros":{"default":[],"items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"}},"type":"object"},"updated_at":{"format":"int64","type":"integer"},"version":{"type":"string"}},"required":["key","name","version","description","runtime","permissions","allow","ops","events","settings","ui","enabled","token_prefix","installed_by","installed_at","updated_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/plugins.http_result":{"post":{"operationId":"plugins.http_result","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"body":{"default":"","type":"string"},"error":{"type":["string","null"]},"id":{"format":"int64","type":"integer"},"status":{"description":"0 = no answer.","format":"int64","type":"integer"}},"required":["id","status"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"ok":{"type":"boolean"}},"required":["ok"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/plugins.http_take":{"post":{"operationId":"plugins.http_take","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"body":{"type":["string","null"]},"gone":{"description":"Gone (uninstalled, disabled, or already sent): nothing to do.","type":"boolean"},"headers":{"items":{"maxItems":2,"minItems":2,"prefixItems":[{"type":"string"},{"type":"string"}],"type":"array"},"type":"array"},"method":{"type":"string"},"url":{"type":"string"}},"required":["gone","method","url","headers"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/plugins.install":{"post":{"operationId":"plugins.install","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"manifest":{"description":"With `source` or `wasm`; or give `signed` instead.","properties":{"allow":{"default":[],"description":"Hosts it may send HTTP requests to: `api.example.com` or `*.example.com` (https only, public addresses).","items":{"type":"string"},"type":"array"},"description":{"default":"","type":"string"},"events":{"default":[],"items":{"properties":{"handler":{"type":"string"},"on":{"description":"Event kinds: `issue.created`, `issue.*`, `*`.","items":{"type":"string"},"type":"array"}},"required":["on","handler"],"type":"object"},"type":"array"},"key":{"description":"`[a-z0-9-]`, 2–40: its identity (`plugin:<key>` in the audit log).","type":"string"},"name":{"type":"string"},"ops":{"default":[],"items":{"properties":{"description":{"default":"","type":"string"},"handler":{"description":"The function (Rhai) or entry (Wasm) that answers.","type":"string"},"input":{"default":null,"description":"JSON Schema of its input (shown to MCP clients)."},"name":{"description":"`[a-z0-9_]`; the tool is `plugin_<key>_<name>`.","type":"string"},"scope":{"description":"The scope a caller needs (`issues:read`, `admin`, …).","type":"string"}},"required":["name","scope","handler"],"type":"object"},"type":"array"},"permissions":{"default":[],"description":"Op scopes it runs with: `<module>:read|write` or `admin`. `plugins:*` and `keys:*` are never granted.","items":{"type":"string"},"type":"array"},"settings":{"default":[],"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"secret":{"default":false,"description":"Stored sealed; never shown again.","type":"boolean"}},"required":["key","label"],"type":"object"},"type":"array"},"ui":{"default":{"actions":[],"card_badges":[],"commands":[],"gadgets":[],"issue_panels":[],"page_macros":[]},"description":"UI extensions (W614).","properties":{"actions":{"default":[],"description":"Handlers buttons in its UI trees may call (`plugins.action`).","items":{"type":"string"},"type":"array"},"card_badges":{"default":[],"description":"Batch: the handler gets `context.keys` and answers `{KEY: node}`.","items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"commands":{"default":[],"description":"The handler answers `{message?, insert? (text for the editor), open? (a link)}`.","items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"gadgets":{"default":[],"items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"issue_panels":{"default":[],"items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"page_macros":{"default":[],"items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"}},"type":"object"},"version":{"type":"string"}},"required":["key","name","version"],"type":["object","null"]},"settings":{"additionalProperties":true,"default":{},"description":"Setting values by key.","type":"object"},"signed":{"description":"A signed bundle (W616): `bundle` is the JSON text `{manifest, source | wasm}`, signed (Ed25519) by `publisher`.","properties":{"bundle":{"type":"string"},"listing":{"description":"The marketplace listing it came from.","format":"int64","type":["integer","null"]},"publisher":{"description":"The publisher's public key (hex).","type":"string"},"signature":{"description":"Signature of the bundle text (hex).","type":"string"}},"required":["bundle","publisher","signature"],"type":["object","null"]},"source":{"default":null,"description":"Rhai source defining the handlers (`fn estimate(input) { … }`).","type":["string","null"]},"wasm":{"default":null,"description":"Or a Wasm module, base64.","type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"plugin":{"properties":{"allow":{"items":{"type":"string"},"type":"array"},"description":{"type":"string"},"enabled":{"type":"boolean"},"events":{"items":{"properties":{"handler":{"type":"string"},"on":{"description":"Event kinds: `issue.created`, `issue.*`, `*`.","items":{"type":"string"},"type":"array"}},"required":["on","handler"],"type":"object"},"type":"array"},"installed_at":{"format":"int64","type":"integer"},"installed_by":{"type":"string"},"key":{"type":"string"},"listing":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"ops":{"items":{"properties":{"description":{"default":"","type":"string"},"handler":{"description":"The function (Rhai) or entry (Wasm) that answers.","type":"string"},"input":{"default":null,"description":"JSON Schema of its input (shown to MCP clients)."},"name":{"description":"`[a-z0-9_]`; the tool is `plugin_<key>_<name>`.","type":"string"},"scope":{"description":"The scope a caller needs (`issues:read`, `admin`, …).","type":"string"}},"required":["name","scope","handler"],"type":"object"},"type":"array"},"permissions":{"items":{"type":"string"},"type":"array"},"publisher":{"description":"Signed bundles: the publisher's key, and the marketplace listing it came from.","type":["string","null"]},"runtime":{"description":"rhai | wasm","type":"string"},"settings":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"secret":{"type":"boolean"},"set":{"type":"boolean"},"value":{"description":"Non-secret values; secrets show only whether they're set."}},"required":["key","label","secret","set"],"type":"object"},"type":"array"},"token_prefix":{"description":"First characters of the install token.","type":"string"},"ui":{"description":"Where a plugin shows up in the app.","properties":{"actions":{"default":[],"description":"Handlers buttons in its UI trees may call (`plugins.action`).","items":{"type":"string"},"type":"array"},"card_badges":{"default":[],"description":"Batch: the handler gets `context.keys` and answers `{KEY: node}`.","items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"commands":{"default":[],"description":"The handler answers `{message?, insert? (text for the editor), open? (a link)}`.","items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"gadgets":{"default":[],"items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"issue_panels":{"default":[],"items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"page_macros":{"default":[],"items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"}},"type":"object"},"updated_at":{"format":"int64","type":"integer"},"version":{"type":"string"}},"required":["key","name","version","description","runtime","permissions","allow","ops","events","settings","ui","enabled","token_prefix","installed_by","installed_at","updated_at"],"type":"object"},"token":{"description":"The install token (new installs and rotations only; shown once): `Authorization: Bearer kbp_…` for the\nplugin's own backend.","type":["string","null"]}},"required":["plugin"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/plugins.list":{"post":{"operationId":"plugins.list","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"allow":{"items":{"type":"string"},"type":"array"},"description":{"type":"string"},"enabled":{"type":"boolean"},"events":{"items":{"properties":{"handler":{"type":"string"},"on":{"description":"Event kinds: `issue.created`, `issue.*`, `*`.","items":{"type":"string"},"type":"array"}},"required":["on","handler"],"type":"object"},"type":"array"},"installed_at":{"format":"int64","type":"integer"},"installed_by":{"type":"string"},"key":{"type":"string"},"listing":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"ops":{"items":{"properties":{"description":{"default":"","type":"string"},"handler":{"description":"The function (Rhai) or entry (Wasm) that answers.","type":"string"},"input":{"default":null,"description":"JSON Schema of its input (shown to MCP clients)."},"name":{"description":"`[a-z0-9_]`; the tool is `plugin_<key>_<name>`.","type":"string"},"scope":{"description":"The scope a caller needs (`issues:read`, `admin`, …).","type":"string"}},"required":["name","scope","handler"],"type":"object"},"type":"array"},"permissions":{"items":{"type":"string"},"type":"array"},"publisher":{"description":"Signed bundles: the publisher's key, and the marketplace listing it came from.","type":["string","null"]},"runtime":{"description":"rhai | wasm","type":"string"},"settings":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"secret":{"type":"boolean"},"set":{"type":"boolean"},"value":{"description":"Non-secret values; secrets show only whether they're set."}},"required":["key","label","secret","set"],"type":"object"},"type":"array"},"token_prefix":{"description":"First characters of the install token.","type":"string"},"ui":{"description":"Where a plugin shows up in the app.","properties":{"actions":{"default":[],"description":"Handlers buttons in its UI trees may call (`plugins.action`).","items":{"type":"string"},"type":"array"},"card_badges":{"default":[],"description":"Batch: the handler gets `context.keys` and answers `{KEY: node}`.","items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"commands":{"default":[],"description":"The handler answers `{message?, insert? (text for the editor), open? (a link)}`.","items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"gadgets":{"default":[],"items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"issue_panels":{"default":[],"items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"page_macros":{"default":[],"items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"}},"type":"object"},"updated_at":{"format":"int64","type":"integer"},"version":{"type":"string"}},"required":["key","name","version","description","runtime","permissions","allow","ops","events","settings","ui","enabled","token_prefix","installed_by","installed_at","updated_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["plugins:read"]}},"/api/v1/plugins.render":{"post":{"operationId":"plugins.render","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"context":{"default":null,"description":"What it's shown for: issue panels `{key}`, card badges `{keys}`, page macros `{page, params}`, commands `{issue?,\npage?, path, selection?}`, gadgets `{dashboard}`."},"key":{"type":"string"},"plugin":{"type":"string"},"slot":{"description":"issue_panel | card_badge | page_macro | command | gadget","type":"string"}},"required":["plugin","slot","key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"error":{"type":["string","null"]},"logs":{"items":{"type":"string"},"type":"array"},"ok":{"type":"boolean"},"value":true},"required":["ok","value","logs"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["plugins:read"]}},"/api/v1/plugins.runs":{"post":{"operationId":"plugins.runs","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"at":{"format":"int64","type":"integer"},"by":{"type":"string"},"calls":{"items":{"type":"string"},"type":"array"},"error":{"type":["string","null"]},"fuel":{"format":"int64","type":"integer"},"handler":{"type":"string"},"id":{"format":"int64","type":"integer"},"logs":{"items":{"type":"string"},"type":"array"},"ms":{"format":"int64","type":"integer"},"ok":{"type":"boolean"},"trigger":{"type":"string"}},"required":["id","trigger","handler","ok","logs","ms","fuel","calls","by","at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/plugins.settings_save":{"post":{"operationId":"plugins.settings_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"},"settings":{"additionalProperties":true,"description":"Values by setting key; a secret left out keeps its value.","type":"object"}},"required":["key","settings"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"allow":{"items":{"type":"string"},"type":"array"},"description":{"type":"string"},"enabled":{"type":"boolean"},"events":{"items":{"properties":{"handler":{"type":"string"},"on":{"description":"Event kinds: `issue.created`, `issue.*`, `*`.","items":{"type":"string"},"type":"array"}},"required":["on","handler"],"type":"object"},"type":"array"},"installed_at":{"format":"int64","type":"integer"},"installed_by":{"type":"string"},"key":{"type":"string"},"listing":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"ops":{"items":{"properties":{"description":{"default":"","type":"string"},"handler":{"description":"The function (Rhai) or entry (Wasm) that answers.","type":"string"},"input":{"default":null,"description":"JSON Schema of its input (shown to MCP clients)."},"name":{"description":"`[a-z0-9_]`; the tool is `plugin_<key>_<name>`.","type":"string"},"scope":{"description":"The scope a caller needs (`issues:read`, `admin`, …).","type":"string"}},"required":["name","scope","handler"],"type":"object"},"type":"array"},"permissions":{"items":{"type":"string"},"type":"array"},"publisher":{"description":"Signed bundles: the publisher's key, and the marketplace listing it came from.","type":["string","null"]},"runtime":{"description":"rhai | wasm","type":"string"},"settings":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"secret":{"type":"boolean"},"set":{"type":"boolean"},"value":{"description":"Non-secret values; secrets show only whether they're set."}},"required":["key","label","secret","set"],"type":"object"},"type":"array"},"token_prefix":{"description":"First characters of the install token.","type":"string"},"ui":{"description":"Where a plugin shows up in the app.","properties":{"actions":{"default":[],"description":"Handlers buttons in its UI trees may call (`plugins.action`).","items":{"type":"string"},"type":"array"},"card_badges":{"default":[],"description":"Batch: the handler gets `context.keys` and answers `{KEY: node}`.","items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"commands":{"default":[],"description":"The handler answers `{message?, insert? (text for the editor), open? (a link)}`.","items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"gadgets":{"default":[],"items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"issue_panels":{"default":[],"items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"page_macros":{"default":[],"items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"}},"type":"object"},"updated_at":{"format":"int64","type":"integer"},"version":{"type":"string"}},"required":["key","name","version","description","runtime","permissions","allow","ops","events","settings","ui","enabled","token_prefix","installed_by","installed_at","updated_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/plugins.sign":{"post":{"operationId":"plugins.sign","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"manifest":{"description":"What a plugin is and may do.","properties":{"allow":{"default":[],"description":"Hosts it may send HTTP requests to: `api.example.com` or `*.example.com` (https only, public addresses).","items":{"type":"string"},"type":"array"},"description":{"default":"","type":"string"},"events":{"default":[],"items":{"properties":{"handler":{"type":"string"},"on":{"description":"Event kinds: `issue.created`, `issue.*`, `*`.","items":{"type":"string"},"type":"array"}},"required":["on","handler"],"type":"object"},"type":"array"},"key":{"description":"`[a-z0-9-]`, 2–40: its identity (`plugin:<key>` in the audit log).","type":"string"},"name":{"type":"string"},"ops":{"default":[],"items":{"properties":{"description":{"default":"","type":"string"},"handler":{"description":"The function (Rhai) or entry (Wasm) that answers.","type":"string"},"input":{"default":null,"description":"JSON Schema of its input (shown to MCP clients)."},"name":{"description":"`[a-z0-9_]`; the tool is `plugin_<key>_<name>`.","type":"string"},"scope":{"description":"The scope a caller needs (`issues:read`, `admin`, …).","type":"string"}},"required":["name","scope","handler"],"type":"object"},"type":"array"},"permissions":{"default":[],"description":"Op scopes it runs with: `<module>:read|write` or `admin`. `plugins:*` and `keys:*` are never granted.","items":{"type":"string"},"type":"array"},"settings":{"default":[],"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"secret":{"default":false,"description":"Stored sealed; never shown again.","type":"boolean"}},"required":["key","label"],"type":"object"},"type":"array"},"ui":{"default":{"actions":[],"card_badges":[],"commands":[],"gadgets":[],"issue_panels":[],"page_macros":[]},"description":"UI extensions (W614).","properties":{"actions":{"default":[],"description":"Handlers buttons in its UI trees may call (`plugins.action`).","items":{"type":"string"},"type":"array"},"card_badges":{"default":[],"description":"Batch: the handler gets `context.keys` and answers `{KEY: node}`.","items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"commands":{"default":[],"description":"The handler answers `{message?, insert? (text for the editor), open? (a link)}`.","items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"gadgets":{"default":[],"items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"issue_panels":{"default":[],"items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"page_macros":{"default":[],"items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"}},"type":"object"},"version":{"type":"string"}},"required":["key","name","version"],"type":"object"},"source":{"default":null,"type":["string","null"]},"wasm":{"default":null,"type":["string","null"]}},"required":["manifest"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"bundle":{"description":"The bundle text: submit it as is (`market.submit`), or install it (`plugins.install {signed}`).","type":"string"},"publisher":{"description":"This org's publisher key (hex).","type":"string"},"sha256":{"type":"string"},"signature":{"type":"string"}},"required":["bundle","publisher","signature","sha256"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/plugins.token_rotate":{"post":{"operationId":"plugins.token_rotate","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"plugin":{"properties":{"allow":{"items":{"type":"string"},"type":"array"},"description":{"type":"string"},"enabled":{"type":"boolean"},"events":{"items":{"properties":{"handler":{"type":"string"},"on":{"description":"Event kinds: `issue.created`, `issue.*`, `*`.","items":{"type":"string"},"type":"array"}},"required":["on","handler"],"type":"object"},"type":"array"},"installed_at":{"format":"int64","type":"integer"},"installed_by":{"type":"string"},"key":{"type":"string"},"listing":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"ops":{"items":{"properties":{"description":{"default":"","type":"string"},"handler":{"description":"The function (Rhai) or entry (Wasm) that answers.","type":"string"},"input":{"default":null,"description":"JSON Schema of its input (shown to MCP clients)."},"name":{"description":"`[a-z0-9_]`; the tool is `plugin_<key>_<name>`.","type":"string"},"scope":{"description":"The scope a caller needs (`issues:read`, `admin`, …).","type":"string"}},"required":["name","scope","handler"],"type":"object"},"type":"array"},"permissions":{"items":{"type":"string"},"type":"array"},"publisher":{"description":"Signed bundles: the publisher's key, and the marketplace listing it came from.","type":["string","null"]},"runtime":{"description":"rhai | wasm","type":"string"},"settings":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"secret":{"type":"boolean"},"set":{"type":"boolean"},"value":{"description":"Non-secret values; secrets show only whether they're set."}},"required":["key","label","secret","set"],"type":"object"},"type":"array"},"token_prefix":{"description":"First characters of the install token.","type":"string"},"ui":{"description":"Where a plugin shows up in the app.","properties":{"actions":{"default":[],"description":"Handlers buttons in its UI trees may call (`plugins.action`).","items":{"type":"string"},"type":"array"},"card_badges":{"default":[],"description":"Batch: the handler gets `context.keys` and answers `{KEY: node}`.","items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"commands":{"default":[],"description":"The handler answers `{message?, insert? (text for the editor), open? (a link)}`.","items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"gadgets":{"default":[],"items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"issue_panels":{"default":[],"items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"},"page_macros":{"default":[],"items":{"description":"A UI extension point (W614). Its handler answers with a UI tree (see MODULE.md), run as the viewer.","properties":{"description":{"default":"","type":"string"},"handler":{"type":"string"},"key":{"description":"`[a-z0-9_]`, unique within its kind.","type":"string"},"scope":{"description":"The scope a viewer needs (default: `issues:read` for issue panels, card badges and gadgets, `pages:read` for page\nmacros, `plugins:read` for commands).","type":["string","null"]},"title":{"type":"string"},"where":{"description":"Commands: `palette` (⌘K) and/or `slash` (the editor's / menu).","items":{"type":"string"},"type":"array"}},"required":["key","title","handler"],"type":"object"},"type":"array"}},"type":"object"},"updated_at":{"format":"int64","type":"integer"},"version":{"type":"string"}},"required":["key","name","version","description","runtime","permissions","allow","ops","events","settings","ui","enabled","token_prefix","installed_by","installed_at","updated_at"],"type":"object"},"token":{"description":"The install token (new installs and rotations only; shown once): `Authorization: Bearer kbp_…` for the\nplugin's own backend.","type":["string","null"]}},"required":["plugin"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/plugins.tools":{"post":{"operationId":"plugins.tools","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"description":{"type":"string"},"input":true,"op":{"type":"string"},"plugin":{"type":"string"},"plugin_name":{"type":"string"},"writes":{"description":"Whether it may change data (its scope is a write scope or admin).","type":"boolean"}},"required":["plugin","plugin_name","op","description","writes"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["plugins:read"]}},"/api/v1/plugins.ui":{"post":{"operationId":"plugins.ui","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"description":{"type":"string"},"key":{"type":"string"},"plugin":{"type":"string"},"plugin_name":{"type":"string"},"slot":{"description":"issue_panel | card_badge | page_macro | command | gadget","type":"string"},"title":{"type":"string"},"where":{"description":"Commands: palette and/or slash.","items":{"type":"string"},"type":"array"}},"required":["plugin","plugin_name","slot","key","title","description","where"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["plugins:read"]}},"/api/v1/plugins.uninstall":{"post":{"operationId":"plugins.uninstall","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"ok":{"type":"boolean"}},"required":["ok"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/poker.accept":{"post":{"operationId":"poker.accept","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"},"points":{"format":"double","type":"number"}},"required":["id","points"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_run":{"description":"The caller runs it (facilitator, or a project admin).","type":"boolean"},"can_vote":{"description":"The caller may vote (edits the project).","type":"boolean"},"created_at":{"format":"int64","type":"integer"},"current":{"description":"The issue being estimated.","type":["string","null"]},"current_description":{"type":["string","null"]},"facilitator":{"type":"string"},"id":{"format":"int64","type":"integer"},"items":{"items":{"properties":{"category":{"type":"string"},"estimate":{"description":"What this session settled on (null until accepted).","format":"double","type":["number","null"]},"key":{"type":"string"},"points":{"description":"Current story points of the issue.","format":"double","type":["number","null"]},"title":{"type":"string"}},"required":["key","title","category"],"type":"object"},"type":"array"},"name":{"type":"string"},"project":{"type":"string"},"revealed":{"type":"boolean"},"scale":{"items":{"type":"string"},"type":"array"},"sprint":{"format":"int64","type":["integer","null"]},"state":{"description":"open | closed","type":"string"},"stats":{"properties":{"average":{"description":"Numeric votes only.","format":"double","type":["number","null"]},"consensus":{"description":"Everyone picked the same card.","type":"boolean"},"median":{"format":"double","type":["number","null"]},"suggestion":{"description":"The scale card at or above the median.","type":["string","null"]}},"required":["consensus"],"type":["object","null"]},"votes":{"items":{"properties":{"value":{"description":"Hidden (null) until revealed, except your own.","type":["string","null"]},"who":{"type":"string"}},"required":["who"],"type":"object"},"type":"array"}},"required":["id","project","name","scale","facilitator","state","items","revealed","votes","can_run","can_vote","created_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/poker.add":{"post":{"operationId":"poker.add","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"},"keys":{"items":{"type":"string"},"type":"array"}},"required":["id","keys"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_run":{"description":"The caller runs it (facilitator, or a project admin).","type":"boolean"},"can_vote":{"description":"The caller may vote (edits the project).","type":"boolean"},"created_at":{"format":"int64","type":"integer"},"current":{"description":"The issue being estimated.","type":["string","null"]},"current_description":{"type":["string","null"]},"facilitator":{"type":"string"},"id":{"format":"int64","type":"integer"},"items":{"items":{"properties":{"category":{"type":"string"},"estimate":{"description":"What this session settled on (null until accepted).","format":"double","type":["number","null"]},"key":{"type":"string"},"points":{"description":"Current story points of the issue.","format":"double","type":["number","null"]},"title":{"type":"string"}},"required":["key","title","category"],"type":"object"},"type":"array"},"name":{"type":"string"},"project":{"type":"string"},"revealed":{"type":"boolean"},"scale":{"items":{"type":"string"},"type":"array"},"sprint":{"format":"int64","type":["integer","null"]},"state":{"description":"open | closed","type":"string"},"stats":{"properties":{"average":{"description":"Numeric votes only.","format":"double","type":["number","null"]},"consensus":{"description":"Everyone picked the same card.","type":"boolean"},"median":{"format":"double","type":["number","null"]},"suggestion":{"description":"The scale card at or above the median.","type":["string","null"]}},"required":["consensus"],"type":["object","null"]},"votes":{"items":{"properties":{"value":{"description":"Hidden (null) until revealed, except your own.","type":["string","null"]},"who":{"type":"string"}},"required":["who"],"type":"object"},"type":"array"}},"required":["id","project","name","scale","facilitator","state","items","revealed","votes","can_run","can_vote","created_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/poker.close":{"post":{"operationId":"poker.close","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_run":{"description":"The caller runs it (facilitator, or a project admin).","type":"boolean"},"can_vote":{"description":"The caller may vote (edits the project).","type":"boolean"},"created_at":{"format":"int64","type":"integer"},"current":{"description":"The issue being estimated.","type":["string","null"]},"current_description":{"type":["string","null"]},"facilitator":{"type":"string"},"id":{"format":"int64","type":"integer"},"items":{"items":{"properties":{"category":{"type":"string"},"estimate":{"description":"What this session settled on (null until accepted).","format":"double","type":["number","null"]},"key":{"type":"string"},"points":{"description":"Current story points of the issue.","format":"double","type":["number","null"]},"title":{"type":"string"}},"required":["key","title","category"],"type":"object"},"type":"array"},"name":{"type":"string"},"project":{"type":"string"},"revealed":{"type":"boolean"},"scale":{"items":{"type":"string"},"type":"array"},"sprint":{"format":"int64","type":["integer","null"]},"state":{"description":"open | closed","type":"string"},"stats":{"properties":{"average":{"description":"Numeric votes only.","format":"double","type":["number","null"]},"consensus":{"description":"Everyone picked the same card.","type":"boolean"},"median":{"format":"double","type":["number","null"]},"suggestion":{"description":"The scale card at or above the median.","type":["string","null"]}},"required":["consensus"],"type":["object","null"]},"votes":{"items":{"properties":{"value":{"description":"Hidden (null) until revealed, except your own.","type":["string","null"]},"who":{"type":"string"}},"required":["who"],"type":"object"},"type":"array"}},"required":["id","project","name","scale","facilitator","state","items","revealed","votes","can_run","can_vote","created_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/poker.create":{"post":{"operationId":"poker.create","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"keys":{"default":[],"description":"Issue keys, in order.","items":{"type":"string"},"type":"array"},"name":{"type":["string","null"]},"project":{"type":"string"},"scale":{"description":"Card values (default 0, ½, 1, 2, 3, 5, 8, 13, 20, 40, ?, ☕).","items":{"type":"string"},"type":["array","null"]},"sprint":{"description":"Estimate this sprint's issues without points (default when `keys` is empty: the backlog's top 10 without points).","format":"int64","type":["integer","null"]}},"required":["project"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_run":{"description":"The caller runs it (facilitator, or a project admin).","type":"boolean"},"can_vote":{"description":"The caller may vote (edits the project).","type":"boolean"},"created_at":{"format":"int64","type":"integer"},"current":{"description":"The issue being estimated.","type":["string","null"]},"current_description":{"type":["string","null"]},"facilitator":{"type":"string"},"id":{"format":"int64","type":"integer"},"items":{"items":{"properties":{"category":{"type":"string"},"estimate":{"description":"What this session settled on (null until accepted).","format":"double","type":["number","null"]},"key":{"type":"string"},"points":{"description":"Current story points of the issue.","format":"double","type":["number","null"]},"title":{"type":"string"}},"required":["key","title","category"],"type":"object"},"type":"array"},"name":{"type":"string"},"project":{"type":"string"},"revealed":{"type":"boolean"},"scale":{"items":{"type":"string"},"type":"array"},"sprint":{"format":"int64","type":["integer","null"]},"state":{"description":"open | closed","type":"string"},"stats":{"properties":{"average":{"description":"Numeric votes only.","format":"double","type":["number","null"]},"consensus":{"description":"Everyone picked the same card.","type":"boolean"},"median":{"format":"double","type":["number","null"]},"suggestion":{"description":"The scale card at or above the median.","type":["string","null"]}},"required":["consensus"],"type":["object","null"]},"votes":{"items":{"properties":{"value":{"description":"Hidden (null) until revealed, except your own.","type":["string","null"]},"who":{"type":"string"}},"required":["who"],"type":"object"},"type":"array"}},"required":["id","project","name","scale","facilitator","state","items","revealed","votes","can_run","can_vote","created_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/poker.delete":{"post":{"operationId":"poker.delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/poker.get":{"post":{"operationId":"poker.get","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_run":{"description":"The caller runs it (facilitator, or a project admin).","type":"boolean"},"can_vote":{"description":"The caller may vote (edits the project).","type":"boolean"},"created_at":{"format":"int64","type":"integer"},"current":{"description":"The issue being estimated.","type":["string","null"]},"current_description":{"type":["string","null"]},"facilitator":{"type":"string"},"id":{"format":"int64","type":"integer"},"items":{"items":{"properties":{"category":{"type":"string"},"estimate":{"description":"What this session settled on (null until accepted).","format":"double","type":["number","null"]},"key":{"type":"string"},"points":{"description":"Current story points of the issue.","format":"double","type":["number","null"]},"title":{"type":"string"}},"required":["key","title","category"],"type":"object"},"type":"array"},"name":{"type":"string"},"project":{"type":"string"},"revealed":{"type":"boolean"},"scale":{"items":{"type":"string"},"type":"array"},"sprint":{"format":"int64","type":["integer","null"]},"state":{"description":"open | closed","type":"string"},"stats":{"properties":{"average":{"description":"Numeric votes only.","format":"double","type":["number","null"]},"consensus":{"description":"Everyone picked the same card.","type":"boolean"},"median":{"format":"double","type":["number","null"]},"suggestion":{"description":"The scale card at or above the median.","type":["string","null"]}},"required":["consensus"],"type":["object","null"]},"votes":{"items":{"properties":{"value":{"description":"Hidden (null) until revealed, except your own.","type":["string","null"]},"who":{"type":"string"}},"required":["who"],"type":"object"},"type":"array"}},"required":["id","project","name","scale","facilitator","state","items","revealed","votes","can_run","can_vote","created_at"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/poker.go":{"post":{"operationId":"poker.go","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"},"key":{"description":"Issue key; omit for the next one without an estimate.","type":["string","null"]}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_run":{"description":"The caller runs it (facilitator, or a project admin).","type":"boolean"},"can_vote":{"description":"The caller may vote (edits the project).","type":"boolean"},"created_at":{"format":"int64","type":"integer"},"current":{"description":"The issue being estimated.","type":["string","null"]},"current_description":{"type":["string","null"]},"facilitator":{"type":"string"},"id":{"format":"int64","type":"integer"},"items":{"items":{"properties":{"category":{"type":"string"},"estimate":{"description":"What this session settled on (null until accepted).","format":"double","type":["number","null"]},"key":{"type":"string"},"points":{"description":"Current story points of the issue.","format":"double","type":["number","null"]},"title":{"type":"string"}},"required":["key","title","category"],"type":"object"},"type":"array"},"name":{"type":"string"},"project":{"type":"string"},"revealed":{"type":"boolean"},"scale":{"items":{"type":"string"},"type":"array"},"sprint":{"format":"int64","type":["integer","null"]},"state":{"description":"open | closed","type":"string"},"stats":{"properties":{"average":{"description":"Numeric votes only.","format":"double","type":["number","null"]},"consensus":{"description":"Everyone picked the same card.","type":"boolean"},"median":{"format":"double","type":["number","null"]},"suggestion":{"description":"The scale card at or above the median.","type":["string","null"]}},"required":["consensus"],"type":["object","null"]},"votes":{"items":{"properties":{"value":{"description":"Hidden (null) until revealed, except your own.","type":["string","null"]},"who":{"type":"string"}},"required":["who"],"type":"object"},"type":"array"}},"required":["id","project","name","scale","facilitator","state","items","revealed","votes","can_run","can_vote","created_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/poker.reveal":{"post":{"operationId":"poker.reveal","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_run":{"description":"The caller runs it (facilitator, or a project admin).","type":"boolean"},"can_vote":{"description":"The caller may vote (edits the project).","type":"boolean"},"created_at":{"format":"int64","type":"integer"},"current":{"description":"The issue being estimated.","type":["string","null"]},"current_description":{"type":["string","null"]},"facilitator":{"type":"string"},"id":{"format":"int64","type":"integer"},"items":{"items":{"properties":{"category":{"type":"string"},"estimate":{"description":"What this session settled on (null until accepted).","format":"double","type":["number","null"]},"key":{"type":"string"},"points":{"description":"Current story points of the issue.","format":"double","type":["number","null"]},"title":{"type":"string"}},"required":["key","title","category"],"type":"object"},"type":"array"},"name":{"type":"string"},"project":{"type":"string"},"revealed":{"type":"boolean"},"scale":{"items":{"type":"string"},"type":"array"},"sprint":{"format":"int64","type":["integer","null"]},"state":{"description":"open | closed","type":"string"},"stats":{"properties":{"average":{"description":"Numeric votes only.","format":"double","type":["number","null"]},"consensus":{"description":"Everyone picked the same card.","type":"boolean"},"median":{"format":"double","type":["number","null"]},"suggestion":{"description":"The scale card at or above the median.","type":["string","null"]}},"required":["consensus"],"type":["object","null"]},"votes":{"items":{"properties":{"value":{"description":"Hidden (null) until revealed, except your own.","type":["string","null"]},"who":{"type":"string"}},"required":["who"],"type":"object"},"type":"array"}},"required":["id","project","name","scale","facilitator","state","items","revealed","votes","can_run","can_vote","created_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/poker.revote":{"post":{"operationId":"poker.revote","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_run":{"description":"The caller runs it (facilitator, or a project admin).","type":"boolean"},"can_vote":{"description":"The caller may vote (edits the project).","type":"boolean"},"created_at":{"format":"int64","type":"integer"},"current":{"description":"The issue being estimated.","type":["string","null"]},"current_description":{"type":["string","null"]},"facilitator":{"type":"string"},"id":{"format":"int64","type":"integer"},"items":{"items":{"properties":{"category":{"type":"string"},"estimate":{"description":"What this session settled on (null until accepted).","format":"double","type":["number","null"]},"key":{"type":"string"},"points":{"description":"Current story points of the issue.","format":"double","type":["number","null"]},"title":{"type":"string"}},"required":["key","title","category"],"type":"object"},"type":"array"},"name":{"type":"string"},"project":{"type":"string"},"revealed":{"type":"boolean"},"scale":{"items":{"type":"string"},"type":"array"},"sprint":{"format":"int64","type":["integer","null"]},"state":{"description":"open | closed","type":"string"},"stats":{"properties":{"average":{"description":"Numeric votes only.","format":"double","type":["number","null"]},"consensus":{"description":"Everyone picked the same card.","type":"boolean"},"median":{"format":"double","type":["number","null"]},"suggestion":{"description":"The scale card at or above the median.","type":["string","null"]}},"required":["consensus"],"type":["object","null"]},"votes":{"items":{"properties":{"value":{"description":"Hidden (null) until revealed, except your own.","type":["string","null"]},"who":{"type":"string"}},"required":["who"],"type":"object"},"type":"array"}},"required":["id","project","name","scale","facilitator","state","items","revealed","votes","can_run","can_vote","created_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/poker.sessions":{"post":{"operationId":"poker.sessions","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"project":{"type":"string"}},"required":["project"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"created_at":{"format":"int64","type":"integer"},"estimated":{"format":"int64","type":"integer"},"facilitator":{"type":"string"},"id":{"format":"int64","type":"integer"},"items":{"format":"int64","type":"integer"},"name":{"type":"string"},"sprint":{"format":"int64","type":["integer","null"]},"state":{"type":"string"}},"required":["id","name","state","facilitator","items","estimated","created_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/poker.vote":{"post":{"operationId":"poker.vote","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"},"value":{"description":"A card of the session's scale; empty takes your vote back.","type":"string"}},"required":["id","value"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_run":{"description":"The caller runs it (facilitator, or a project admin).","type":"boolean"},"can_vote":{"description":"The caller may vote (edits the project).","type":"boolean"},"created_at":{"format":"int64","type":"integer"},"current":{"description":"The issue being estimated.","type":["string","null"]},"current_description":{"type":["string","null"]},"facilitator":{"type":"string"},"id":{"format":"int64","type":"integer"},"items":{"items":{"properties":{"category":{"type":"string"},"estimate":{"description":"What this session settled on (null until accepted).","format":"double","type":["number","null"]},"key":{"type":"string"},"points":{"description":"Current story points of the issue.","format":"double","type":["number","null"]},"title":{"type":"string"}},"required":["key","title","category"],"type":"object"},"type":"array"},"name":{"type":"string"},"project":{"type":"string"},"revealed":{"type":"boolean"},"scale":{"items":{"type":"string"},"type":"array"},"sprint":{"format":"int64","type":["integer","null"]},"state":{"description":"open | closed","type":"string"},"stats":{"properties":{"average":{"description":"Numeric votes only.","format":"double","type":["number","null"]},"consensus":{"description":"Everyone picked the same card.","type":"boolean"},"median":{"format":"double","type":["number","null"]},"suggestion":{"description":"The scale card at or above the median.","type":["string","null"]}},"required":["consensus"],"type":["object","null"]},"votes":{"items":{"properties":{"value":{"description":"Hidden (null) until revealed, except your own.","type":["string","null"]},"who":{"type":"string"}},"required":["who"],"type":"object"},"type":"array"}},"required":["id","project","name","scale","facilitator","state","items","revealed","votes","can_run","can_vote","created_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/roadmap.changelog":{"post":{"operationId":"roadmap.changelog","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"body":{"description":"Markdown.","type":"string"},"created_at":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"project":{"type":["string","null"]},"public":{"description":"Published (public).","type":"boolean"},"published_at":{"format":"int64","type":["integer","null"]},"title":{"type":"string"},"version":{"description":"The released version it was drafted from.","format":"int64","type":["integer","null"]}},"required":["id","title","body","public","created_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["roadmap:read"]}},"/api/v1/roadmap.changelog_delete":{"post":{"operationId":"roadmap.changelog_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"ok":{"type":"boolean"}},"required":["ok"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["roadmap:write"]}},"/api/v1/roadmap.changelog_save":{"post":{"operationId":"roadmap.changelog_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"body":{"default":"","type":"string"},"id":{"format":"int64","type":["integer","null"]},"public":{"default":false,"description":"Publish it (true) or keep it a draft.","type":"boolean"},"title":{"type":"string"}},"required":["title"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"body":{"description":"Markdown.","type":"string"},"created_at":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"project":{"type":["string","null"]},"public":{"description":"Published (public).","type":"boolean"},"published_at":{"format":"int64","type":["integer","null"]},"title":{"type":"string"},"version":{"description":"The released version it was drafted from.","format":"int64","type":["integer","null"]}},"required":["id","title","body","public","created_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["roadmap:write"]}},"/api/v1/roadmap.item_delete":{"post":{"operationId":"roadmap.item_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"column":{"description":"now | next | later | shipped: where it shows.","type":"string"},"column_set":{"description":"auto (from the linked issues), or the column set by hand.","type":"string"},"description":{"type":"string"},"done":{"description":"Linked issues done / all.","format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"idea":{"description":"The feedback idea it answers, and its votes.","format":"int64","type":["integer","null"]},"issues":{"description":"Linked issue keys (team view only).","items":{"type":"string"},"type":"array"},"position":{"format":"double","type":"number"},"public":{"description":"Shown on the public roadmap.","type":"boolean"},"title":{"type":"string"},"total":{"format":"int64","type":"integer"},"updated_at":{"format":"int64","type":"integer"},"votes":{"format":"int64","type":["integer","null"]}},"required":["id","title","description","column","column_set","public","done","total","issues","position","updated_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["roadmap:write"]}},"/api/v1/roadmap.item_save":{"post":{"operationId":"roadmap.item_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"column":{"default":"auto","description":"auto | now | next | later | shipped","type":"string"},"description":{"default":"","type":"string"},"id":{"format":"int64","type":["integer","null"]},"idea":{"description":"A feedback idea id.","format":"int64","type":["integer","null"]},"issues":{"description":"Issue keys that deliver it (replaces the list).","items":{"type":"string"},"type":["array","null"]},"position":{"format":"double","type":["number","null"]},"public":{"default":false,"type":"boolean"},"title":{"type":"string"}},"required":["title"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"column":{"description":"now | next | later | shipped: where it shows.","type":"string"},"column_set":{"description":"auto (from the linked issues), or the column set by hand.","type":"string"},"description":{"type":"string"},"done":{"description":"Linked issues done / all.","format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"idea":{"description":"The feedback idea it answers, and its votes.","format":"int64","type":["integer","null"]},"issues":{"description":"Linked issue keys (team view only).","items":{"type":"string"},"type":"array"},"position":{"format":"double","type":"number"},"public":{"description":"Shown on the public roadmap.","type":"boolean"},"title":{"type":"string"},"total":{"format":"int64","type":"integer"},"updated_at":{"format":"int64","type":"integer"},"votes":{"format":"int64","type":["integer","null"]}},"required":["id","title","description","column","column_set","public","done","total","issues","position","updated_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["roadmap:write"]}},"/api/v1/roadmap.items":{"post":{"operationId":"roadmap.items","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"column":{"description":"now | next | later | shipped: where it shows.","type":"string"},"column_set":{"description":"auto (from the linked issues), or the column set by hand.","type":"string"},"description":{"type":"string"},"done":{"description":"Linked issues done / all.","format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"idea":{"description":"The feedback idea it answers, and its votes.","format":"int64","type":["integer","null"]},"issues":{"description":"Linked issue keys (team view only).","items":{"type":"string"},"type":"array"},"position":{"format":"double","type":"number"},"public":{"description":"Shown on the public roadmap.","type":"boolean"},"title":{"type":"string"},"total":{"format":"int64","type":"integer"},"updated_at":{"format":"int64","type":"integer"},"votes":{"format":"int64","type":["integer","null"]}},"required":["id","title","description","column","column_set","public","done","total","issues","position","updated_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["roadmap:read"]}},"/api/v1/roadmap.public":{"post":{"operationId":"roadmap.public","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"changelog":{"description":"Published changelog entries, newest first (≤ 50).","items":{"properties":{"body":{"description":"Markdown.","type":"string"},"created_at":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"project":{"type":["string","null"]},"public":{"description":"Published (public).","type":"boolean"},"published_at":{"format":"int64","type":["integer","null"]},"title":{"type":"string"},"version":{"description":"The released version it was drafted from.","format":"int64","type":["integer","null"]}},"required":["id","title","body","public","created_at"],"type":"object"},"type":"array"},"items":{"description":"Public items by column: now, next, later, shipped.","items":{"properties":{"column":{"description":"now | next | later | shipped: where it shows.","type":"string"},"column_set":{"description":"auto (from the linked issues), or the column set by hand.","type":"string"},"description":{"type":"string"},"done":{"description":"Linked issues done / all.","format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"idea":{"description":"The feedback idea it answers, and its votes.","format":"int64","type":["integer","null"]},"issues":{"description":"Linked issue keys (team view only).","items":{"type":"string"},"type":"array"},"position":{"format":"double","type":"number"},"public":{"description":"Shown on the public roadmap.","type":"boolean"},"title":{"type":"string"},"total":{"format":"int64","type":"integer"},"updated_at":{"format":"int64","type":"integer"},"votes":{"format":"int64","type":["integer","null"]}},"required":["id","title","description","column","column_set","public","done","total","issues","position","updated_at"],"type":"object"},"type":"array"}},"required":["items","changelog"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["desk:public","roadmap:read"]}},"/api/v1/scripts.delete":{"post":{"operationId":"scripts.delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/scripts.list":{"post":{"operationId":"scripts.list","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"code":{"type":"string"},"description":{"type":"string"},"enabled":{"type":"boolean"},"events":{"description":"listener: event kinds (`issue.created`, `issue.*`, `*`).","items":{"type":"string"},"type":"array"},"field":{"description":"field: the custom field key it computes.","type":["string","null"]},"id":{"format":"int64","type":"integer"},"kind":{"description":"console | listener | field | tql","type":"string"},"name":{"type":"string"},"run_as":{"description":"Whose permissions it runs with (the admin who last saved it).","type":"string"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","name","kind","code","events","description","enabled","run_as","updated_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/scripts.run":{"post":{"operationId":"scripts.run","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"code":{"type":"string"},"input":{"default":null,"description":"Bound to `input` in the script."}},"required":["code"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"calls":{"description":"Ops it called, in order.","items":{"type":"string"},"type":"array"},"error":{"type":["string","null"]},"fuel":{"format":"int64","type":"integer"},"logs":{"items":{"type":"string"},"type":"array"},"ms":{"format":"int64","type":"integer"},"run":{"format":"int64","type":"integer"},"value":{"description":"The script's last expression."}},"required":["run","value","logs","ms","fuel","calls"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/scripts.runs":{"post":{"operationId":"scripts.runs","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"description":"A script's runs, or console runs when omitted.","format":"int64","type":["integer","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"at":{"format":"int64","type":"integer"},"by":{"type":"string"},"calls":{"items":{"type":"string"},"type":"array"},"error":{"type":["string","null"]},"fuel":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"logs":{"items":{"type":"string"},"type":"array"},"ms":{"format":"int64","type":"integer"},"ok":{"type":"boolean"},"trigger":{"type":"string"},"value":{"type":["string","null"]}},"required":["id","trigger","ok","logs","ms","fuel","calls","by","at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/scripts.save":{"post":{"operationId":"scripts.save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"code":{"type":"string"},"description":{"default":"","type":"string"},"enabled":{"default":true,"type":"boolean"},"events":{"default":[],"items":{"type":"string"},"type":"array"},"field":{"type":["string","null"]},"id":{"format":"int64","type":["integer","null"]},"kind":{"description":"console | listener | field | tql","type":"string"},"name":{"type":"string"}},"required":["name","kind","code"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"code":{"type":"string"},"description":{"type":"string"},"enabled":{"type":"boolean"},"events":{"description":"listener: event kinds (`issue.created`, `issue.*`, `*`).","items":{"type":"string"},"type":"array"},"field":{"description":"field: the custom field key it computes.","type":["string","null"]},"id":{"format":"int64","type":"integer"},"kind":{"description":"console | listener | field | tql","type":"string"},"name":{"type":"string"},"run_as":{"description":"Whose permissions it runs with (the admin who last saved it).","type":"string"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","name","kind","code","events","description","enabled","run_as","updated_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/scripts.test":{"post":{"operationId":"scripts.test","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"},"input":{"description":"Overrides the input (default: a sample for the kind — the last event / an issue key's issue / no args)."},"key":{"description":"field scripts: run against this issue.","type":["string","null"]}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"calls":{"description":"Ops it called, in order.","items":{"type":"string"},"type":"array"},"error":{"type":["string","null"]},"fuel":{"format":"int64","type":"integer"},"logs":{"items":{"type":"string"},"type":"array"},"ms":{"format":"int64","type":"integer"},"run":{"format":"int64","type":"integer"},"value":{"description":"The script's last expression."}},"required":["run","value","logs","ms","fuel","calls"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/search.query":{"post":{"operationId":"search.query","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"description":"Words to find (every word must match; the last one may be the start of a word).","properties":{"kinds":{"default":[],"description":"Only these subject kinds (`issue`, `page`).","items":{"type":"string"},"type":"array"},"limit":{"default":null,"description":"1-50, default 20.","format":"int64","type":["integer","null"]},"q":{"type":"string"}},"required":["q"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"kind":{"type":"string"},"snippet":{"description":"Text around the match; `[` `]` mark matched words.","type":"string"},"subject":{"description":"`kind:id`, e.g. `issue:12`.","type":"string"},"title":{"type":"string"},"url":{"description":"Where it lives in the app (`https://…/<org>/issues/WEB-1`), when it has a page.","type":["string","null"]}},"required":["subject","kind","title","snippet"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["search:read"]}},"/api/v1/search.reindex":{"post":{"operationId":"search.reindex","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/search.similar":{"post":{"operationId":"search.similar","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"kinds":{"default":[],"items":{"type":"string"},"type":"array"},"limit":{"description":"1-50, default 10.","format":"uint","minimum":0,"type":["integer","null"]},"min_score":{"description":"Drop matches scoring below this (cosine, default 0.6; ~0.75+ for likely duplicates).","format":"float","type":["number","null"]},"subject":{"description":"…or an existing subject (`issue:12`): what's like it (itself left out).","type":["string","null"]},"text":{"description":"Natural-language text to match by meaning…","type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"hits":{"items":{"properties":{"kind":{"type":"string"},"score":{"description":"Cosine similarity, -1..1 (bge: ~0.8+ is close, ~0.6 related).","format":"float","type":"number"},"subject":{"type":"string"},"title":{"description":"The subject's current title.","type":"string"}},"required":["subject","kind","title","score"],"type":"object"},"type":"array"},"ready":{"description":"False while the embedding model loads; `hits` is empty then (use `search.query`).","type":"boolean"}},"required":["ready","hits"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["search:read"]}},"/api/v1/search.vectors":{"post":{"operationId":"search.vectors","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"indexed":{"description":"Documents with a vector, and waiting for one.","format":"int64","type":"integer"},"model":{"type":["string","null"]},"pending":{"format":"int64","type":"integer"},"ready":{"type":"boolean"}},"required":["ready","indexed","pending"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["search:read"]}},"/api/v1/sla.calendar_delete":{"post":{"operationId":"sla.calendar_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/sla.calendar_save":{"post":{"operationId":"sla.calendar_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"holidays":{"default":[],"description":"YYYY-MM-DD days off.","items":{"type":"string"},"type":"array"},"hours":{"additionalProperties":{"maxItems":2,"minItems":2,"prefixItems":[{"type":"string"},{"type":"string"}],"type":"array"},"description":"Weekday (\"0\" Sunday … \"6\" Saturday) → [\"HH:MM\", \"HH:MM\"] working hours; missing days are off.","type":"object"},"id":{"default":0,"format":"int64","type":"integer"},"name":{"type":"string"},"tz_offset":{"description":"Minutes behind UTC (as `Date.getTimezoneOffset()` gives it): 300 for New York in winter, -60 for Paris.","format":"int64","type":"integer"}},"required":["name","tz_offset","hours"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"holidays":{"default":[],"description":"YYYY-MM-DD days off.","items":{"type":"string"},"type":"array"},"hours":{"additionalProperties":{"maxItems":2,"minItems":2,"prefixItems":[{"type":"string"},{"type":"string"}],"type":"array"},"description":"Weekday (\"0\" Sunday … \"6\" Saturday) → [\"HH:MM\", \"HH:MM\"] working hours; missing days are off.","type":"object"},"id":{"default":0,"format":"int64","type":"integer"},"name":{"type":"string"},"tz_offset":{"description":"Minutes behind UTC (as `Date.getTimezoneOffset()` gives it): 300 for New York in winter, -60 for Paris.","format":"int64","type":"integer"}},"required":["name","tz_offset","hours"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/sla.calendars":{"post":{"operationId":"sla.calendars","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"holidays":{"default":[],"description":"YYYY-MM-DD days off.","items":{"type":"string"},"type":"array"},"hours":{"additionalProperties":{"maxItems":2,"minItems":2,"prefixItems":[{"type":"string"},{"type":"string"}],"type":"array"},"description":"Weekday (\"0\" Sunday … \"6\" Saturday) → [\"HH:MM\", \"HH:MM\"] working hours; missing days are off.","type":"object"},"id":{"default":0,"format":"int64","type":"integer"},"name":{"type":"string"},"tz_offset":{"description":"Minutes behind UTC (as `Date.getTimezoneOffset()` gives it): 300 for New York in winter, -60 for Paris.","format":"int64","type":"integer"}},"required":["name","tz_offset","hours"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/sla.issue":{"post":{"operationId":"sla.issue","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"calendar":{"type":"string"},"due_at":{"description":"When it breaches (running clocks; unix seconds).","format":"int64","type":["integer","null"]},"elapsed_minutes":{"format":"int64","type":"integer"},"metric":{"type":"string"},"name":{"type":"string"},"policy":{"format":"int64","type":"integer"},"remaining_minutes":{"description":"Negative once breached.","format":"int64","type":"integer"},"started_at":{"format":"int64","type":"integer"},"state":{"description":"running | met | breached (stopped late, or still running past the target)","type":"string"},"stopped_at":{"format":"int64","type":["integer","null"]},"target_minutes":{"format":"int64","type":"integer"}},"required":["policy","name","metric","target_minutes","elapsed_minutes","remaining_minutes","state","started_at","calendar"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/sla.policies":{"post":{"operationId":"sla.policies","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"calendar":{"format":"int64","type":"integer"},"enabled":{"default":true,"type":"boolean"},"id":{"default":0,"format":"int64","type":"integer"},"kinds":{"default":[],"items":{"type":"string"},"type":"array"},"metric":{"description":"first_response (stops at the first comment by someone other than the reporter) | resolution (stops when resolved)","type":"string"},"name":{"type":"string"},"priorities":{"default":[],"items":{"type":"string"},"type":"array"},"projects":{"default":[],"description":"Empty = every project / type / priority.","items":{"type":"string"},"type":"array"},"since":{"default":0,"description":"Applies to issues created from this time (unix seconds).","format":"int64","type":"integer"},"target_minutes":{"description":"Business minutes allowed.","format":"int64","type":"integer"}},"required":["name","metric","calendar","target_minutes"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/sla.policy_delete":{"post":{"operationId":"sla.policy_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/sla.policy_save":{"post":{"operationId":"sla.policy_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"calendar":{"format":"int64","type":"integer"},"enabled":{"default":true,"type":"boolean"},"id":{"default":0,"format":"int64","type":"integer"},"kinds":{"default":[],"items":{"type":"string"},"type":"array"},"metric":{"description":"first_response (stops at the first comment by someone other than the reporter) | resolution (stops when resolved)","type":"string"},"name":{"type":"string"},"priorities":{"default":[],"items":{"type":"string"},"type":"array"},"projects":{"default":[],"description":"Empty = every project / type / priority.","items":{"type":"string"},"type":"array"},"since":{"default":0,"description":"Applies to issues created from this time (unix seconds).","format":"int64","type":"integer"},"target_minutes":{"description":"Business minutes allowed.","format":"int64","type":"integer"}},"required":["name","metric","calendar","target_minutes"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"calendar":{"format":"int64","type":"integer"},"enabled":{"default":true,"type":"boolean"},"id":{"default":0,"format":"int64","type":"integer"},"kinds":{"default":[],"items":{"type":"string"},"type":"array"},"metric":{"description":"first_response (stops at the first comment by someone other than the reporter) | resolution (stops when resolved)","type":"string"},"name":{"type":"string"},"priorities":{"default":[],"items":{"type":"string"},"type":"array"},"projects":{"default":[],"description":"Empty = every project / type / priority.","items":{"type":"string"},"type":"array"},"since":{"default":0,"description":"Applies to issues created from this time (unix seconds).","format":"int64","type":"integer"},"target_minutes":{"description":"Business minutes allowed.","format":"int64","type":"integer"}},"required":["name","metric","calendar","target_minutes"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/sla.report":{"post":{"operationId":"sla.report","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"days":{"description":"Clocks started in the last N days (default 30).","format":"int64","type":["integer","null"]},"project":{"description":"Only this project.","type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"avg_minutes":{"format":"int64","type":["integer","null"]},"breached":{"format":"int64","type":"integer"},"met":{"format":"int64","type":"integer"},"met_pct":{"description":"met / (met + breached) × 100; null with nothing finished.","format":"int64","type":["integer","null"]},"name":{"type":"string"},"policy":{"format":"int64","type":"integer"},"running":{"format":"int64","type":"integer"}},"required":["policy","name","met","breached","running"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/staging.apply":{"post":{"operationId":"staging.apply","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"changes":{"items":{"properties":{"action":{"description":"add | change | remove","type":"string"},"conflict":{"description":"Why it won't be promoted (production changed it too, or it's a container to remove by hand).","type":["string","null"]},"key":{"description":"The row's primary key as a JSON array.","type":"string"},"production":{"additionalProperties":true,"description":"The row in production now (null when it isn't there).","type":["object","null"]},"staging":{"additionalProperties":true,"description":"The row in staging (null when removed).","type":["object","null"]},"table":{"type":"string"}},"required":["table","key","action"],"type":"object"},"type":"array"},"from":{"description":"The staging org's slug (for the event).","type":"string"}},"required":["changes","from"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/staging.config":{"post":{"operationId":"staging.config","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"base":{"additionalProperties":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object"},"description":"The configuration at the copy (empty outside staging orgs).","type":"object"},"tables":{"additionalProperties":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object"},"type":"object"}},"required":["tables","base"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/staging.prepare":{"post":{"operationId":"staging.prepare","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"data":{"description":"none | anonymized","type":"string"},"owner":{"description":"Who sample issues are assigned to.","type":"string"}},"required":["data","owner"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/staging.rebase":{"post":{"operationId":"staging.rebase","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"changes":{"items":{"properties":{"action":{"description":"add | change | remove","type":"string"},"conflict":{"description":"Why it won't be promoted (production changed it too, or it's a container to remove by hand).","type":["string","null"]},"key":{"description":"The row's primary key as a JSON array.","type":"string"},"production":{"additionalProperties":true,"description":"The row in production now (null when it isn't there).","type":["object","null"]},"staging":{"additionalProperties":true,"description":"The row in staging (null when removed).","type":["object","null"]},"table":{"type":"string"}},"required":["table","key","action"],"type":"object"},"type":"array"},"from":{"description":"The staging org's slug (for the event).","type":"string"}},"required":["changes","from"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/tests.case":{"post":{"operationId":"tests.case","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"automation_id":{"description":"Matches imported results: JUnit `classname.name`, xUnit test name, Cucumber `feature;scenario` id.","type":["string","null"]},"covers":{"description":"Requirement keys it covers.","items":{"type":"string"},"type":"array"},"folder":{"description":"A path like \"Checkout/Payments\" (\"\" = top level).","type":"string"},"id":{"format":"int64","type":"integer"},"key":{"description":"`{project}-T{number}`, e.g. \"WEB-T12\".","type":"string"},"last_run_at":{"format":"int64","type":["integer","null"]},"last_status":{"description":"Its latest result anywhere: pass | fail | blocked | skip | todo (null = never run).","type":["string","null"]},"preconditions":{"type":"string"},"project":{"type":"string"},"steps":{"items":{"properties":{"action":{"type":"string"},"data":{"default":"","type":"string"},"expected":{"default":"","type":"string"}},"required":["action"],"type":"object"},"type":"array"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","key","project","title","preconditions","steps","folder","covers","updated_at"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/tests.case_delete":{"post":{"operationId":"tests.case_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/tests.case_save":{"post":{"operationId":"tests.case_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"automation_id":{"type":["string","null"]},"covers":{"description":"Requirement keys it covers (replaces).","items":{"type":"string"},"type":["array","null"]},"folder":{"default":"","type":"string"},"key":{"description":"Omit to create (then `project` is required).","type":["string","null"]},"preconditions":{"default":"","type":"string"},"project":{"type":["string","null"]},"steps":{"default":[],"items":{"properties":{"action":{"type":"string"},"data":{"default":"","type":"string"},"expected":{"default":"","type":"string"}},"required":["action"],"type":"object"},"type":"array"},"title":{"type":"string"}},"required":["title"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"automation_id":{"description":"Matches imported results: JUnit `classname.name`, xUnit test name, Cucumber `feature;scenario` id.","type":["string","null"]},"covers":{"description":"Requirement keys it covers.","items":{"type":"string"},"type":"array"},"folder":{"description":"A path like \"Checkout/Payments\" (\"\" = top level).","type":"string"},"id":{"format":"int64","type":"integer"},"key":{"description":"`{project}-T{number}`, e.g. \"WEB-T12\".","type":"string"},"last_run_at":{"format":"int64","type":["integer","null"]},"last_status":{"description":"Its latest result anywhere: pass | fail | blocked | skip | todo (null = never run).","type":["string","null"]},"preconditions":{"type":"string"},"project":{"type":"string"},"steps":{"items":{"properties":{"action":{"type":"string"},"data":{"default":"","type":"string"},"expected":{"default":"","type":"string"}},"required":["action"],"type":"object"},"type":"array"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","key","project","title","preconditions","steps","folder","covers","updated_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/tests.cases":{"post":{"operationId":"tests.cases","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"folder":{"description":"Only this folder (and below).","type":["string","null"]},"project":{"type":"string"}},"required":["project"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"automation_id":{"description":"Matches imported results: JUnit `classname.name`, xUnit test name, Cucumber `feature;scenario` id.","type":["string","null"]},"covers":{"description":"Requirement keys it covers.","items":{"type":"string"},"type":"array"},"folder":{"description":"A path like \"Checkout/Payments\" (\"\" = top level).","type":"string"},"id":{"format":"int64","type":"integer"},"key":{"description":"`{project}-T{number}`, e.g. \"WEB-T12\".","type":"string"},"last_run_at":{"format":"int64","type":["integer","null"]},"last_status":{"description":"Its latest result anywhere: pass | fail | blocked | skip | todo (null = never run).","type":["string","null"]},"preconditions":{"type":"string"},"project":{"type":"string"},"steps":{"items":{"properties":{"action":{"type":"string"},"data":{"default":"","type":"string"},"expected":{"default":"","type":"string"}},"required":["action"],"type":"object"},"type":"array"},"title":{"type":"string"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","key","project","title","preconditions","steps","folder","covers","updated_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/tests.coverage":{"post":{"operationId":"tests.coverage","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"plan":{"description":"Results within this plan only.","format":"int64","type":["integer","null"]},"project":{"type":"string"},"tql":{"description":"Requirements: issues matching this TQL (default: the project's open stories and tasks… everything not done).","type":["string","null"]}},"required":["project"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"description":"The status a requirement's covering tests give it: ok (all latest pass), nok (any failed), not_run, partial.","properties":{"key":{"type":"string"},"status":{"description":"ok | nok | not_run | partial | uncovered","type":"string"},"tests":{"items":{"properties":{"key":{"type":"string"},"status":{"description":"Latest result (in the plan when one is given).","type":["string","null"]},"title":{"type":"string"}},"required":["key","title"],"type":"object"},"type":"array"},"title":{"type":"string"}},"required":["key","title","status","tests"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/tests.execute":{"post":{"operationId":"tests.execute","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"comment":{"default":"","type":"string"},"defects":{"default":[],"items":{"type":"string"},"type":"array"},"environment":{"default":"","type":"string"},"plan":{"format":"int64","type":["integer","null"]},"status":{"type":"string"},"steps":{"default":[],"items":{"properties":{"actual":{"default":"","type":"string"},"status":{"description":"pass | fail | blocked | skip | todo","type":"string"}},"required":["status"],"type":"object"},"type":"array"},"test":{"type":"string"}},"required":["test","status"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"comment":{"type":"string"},"defects":{"description":"Issue keys of the bugs it found.","items":{"type":"string"},"type":"array"},"duration_ms":{"format":"int64","type":["integer","null"]},"environment":{"type":"string"},"executed_at":{"format":"int64","type":"integer"},"executed_by":{"type":"string"},"id":{"format":"int64","type":"integer"},"plan":{"format":"int64","type":["integer","null"]},"source":{"description":"manual | junit | xunit | cucumber","type":"string"},"status":{"type":"string"},"steps":{"items":{"properties":{"actual":{"default":"","type":"string"},"status":{"description":"pass | fail | blocked | skip | todo","type":"string"}},"required":["status"],"type":"object"},"type":"array"},"test":{"type":"string"}},"required":["id","test","status","steps","comment","defects","environment","source","executed_by","executed_at"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/tests.for_issue":{"post":{"operationId":"tests.for_issue","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The status a requirement's covering tests give it: ok (all latest pass), nok (any failed), not_run, partial.","properties":{"key":{"type":"string"},"status":{"description":"ok | nok | not_run | partial | uncovered","type":"string"},"tests":{"items":{"properties":{"key":{"type":"string"},"status":{"description":"Latest result (in the plan when one is given).","type":["string","null"]},"title":{"type":"string"}},"required":["key","title"],"type":"object"},"type":"array"},"title":{"type":"string"}},"required":["key","title","status","tests"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/tests.import":{"post":{"operationId":"tests.import","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"content":{"description":"The report file's text.","type":"string"},"create_missing":{"default":true,"description":"Create cases for results that match none (default true).","type":"boolean"},"environment":{"default":"","type":"string"},"format":{"description":"junit | xunit | cucumber","type":"string"},"plan":{"description":"Record the results in this plan (cases get added to it).","format":"int64","type":["integer","null"]},"project":{"type":"string"}},"required":["project","format","content"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"created":{"items":{"type":"string"},"type":"array"},"failed":{"format":"int64","type":"integer"},"passed":{"format":"int64","type":"integer"},"results":{"format":"int64","type":"integer"},"skipped":{"format":"int64","type":"integer"},"unmatched":{"description":"Results that matched no case (with create_missing off).","items":{"type":"string"},"type":"array"}},"required":["results","created","passed","failed","skipped","unmatched"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/tests.plan":{"post":{"operationId":"tests.plan","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"counts":{"additionalProperties":{"format":"int64","type":"integer"},"description":"Counts per status (todo includes never run).","type":"object"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"description":{"type":"string"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"project":{"type":"string"},"state":{"type":"string"},"tests":{"description":"Its cases with their latest result in this plan.","items":{"properties":{"key":{"type":"string"},"status":{"description":"Latest result (in the plan when one is given).","type":["string","null"]},"title":{"type":"string"}},"required":["key","title"],"type":"object"},"type":"array"},"version":{"type":["string","null"]}},"required":["id","project","name","description","state","created_by","created_at","tests","counts","can_edit"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/tests.plan_delete":{"post":{"operationId":"tests.plan_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/tests.plan_save":{"post":{"operationId":"tests.plan_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"default":"","type":"string"},"id":{"format":"int64","type":["integer","null"]},"name":{"type":"string"},"project":{"type":"string"},"state":{"description":"open | closed","type":["string","null"]},"tests":{"description":"Test case keys, in order (replaces).","items":{"type":"string"},"type":["array","null"]},"version":{"description":"Fix version this plan tests.","type":["string","null"]}},"required":["project","name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"counts":{"additionalProperties":{"format":"int64","type":"integer"},"description":"Counts per status (todo includes never run).","type":"object"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"description":{"type":"string"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"project":{"type":"string"},"state":{"type":"string"},"tests":{"description":"Its cases with their latest result in this plan.","items":{"properties":{"key":{"type":"string"},"status":{"description":"Latest result (in the plan when one is given).","type":["string","null"]},"title":{"type":"string"}},"required":["key","title"],"type":"object"},"type":"array"},"version":{"type":["string","null"]}},"required":["id","project","name","description","state","created_by","created_at","tests","counts","can_edit"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/tests.plans":{"post":{"operationId":"tests.plans","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"folder":{"description":"Only this folder (and below).","type":["string","null"]},"project":{"type":"string"}},"required":["project"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"can_edit":{"type":"boolean"},"counts":{"additionalProperties":{"format":"int64","type":"integer"},"description":"Counts per status (todo includes never run).","type":"object"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"description":{"type":"string"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"project":{"type":"string"},"state":{"type":"string"},"tests":{"description":"Its cases with their latest result in this plan.","items":{"properties":{"key":{"type":"string"},"status":{"description":"Latest result (in the plan when one is given).","type":["string","null"]},"title":{"type":"string"}},"required":["key","title"],"type":"object"},"type":"array"},"version":{"type":["string","null"]}},"required":["id","project","name","description","state","created_by","created_at","tests","counts","can_edit"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/tests.runs":{"post":{"operationId":"tests.runs","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"comment":{"type":"string"},"defects":{"description":"Issue keys of the bugs it found.","items":{"type":"string"},"type":"array"},"duration_ms":{"format":"int64","type":["integer","null"]},"environment":{"type":"string"},"executed_at":{"format":"int64","type":"integer"},"executed_by":{"type":"string"},"id":{"format":"int64","type":"integer"},"plan":{"format":"int64","type":["integer","null"]},"source":{"description":"manual | junit | xunit | cucumber","type":"string"},"status":{"type":"string"},"steps":{"items":{"properties":{"actual":{"default":"","type":"string"},"status":{"description":"pass | fail | blocked | skip | todo","type":"string"}},"required":["status"],"type":"object"},"type":"array"},"test":{"type":"string"}},"required":["id","test","status","steps","comment","defects","environment","source","executed_by","executed_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/time.account_delete":{"post":{"operationId":"time.account_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/time.account_save":{"post":{"operationId":"time.account_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"active":{"default":true,"type":"boolean"},"customer":{"default":"","type":"string"},"id":{"format":"int64","type":["integer","null"]},"key":{"type":"string"},"name":{"type":"string"},"rate":{"format":"double","type":["number","null"]}},"required":["key","name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"active":{"type":"boolean"},"customer":{"type":"string"},"id":{"format":"int64","type":"integer"},"key":{"type":"string"},"name":{"type":"string"},"rate":{"description":"Per hour, in the org's currency (approvers and admins only).","format":"double","type":["number","null"]}},"required":["id","key","name","customer","active"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/time.accounts":{"post":{"operationId":"time.accounts","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"active":{"type":"boolean"},"customer":{"type":"string"},"id":{"format":"int64","type":"integer"},"key":{"type":"string"},"name":{"type":"string"},"rate":{"description":"Per hour, in the org's currency (approvers and admins only).","format":"double","type":["number","null"]}},"required":["id","key","name","customer","active"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/time.estimate":{"post":{"operationId":"time.estimate","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"},"original":{"description":"Durations; \"\" clears.","type":["string","null"]},"remaining":{"type":["string","null"]}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_log":{"type":"boolean"},"key":{"type":"string"},"logs":{"items":{"properties":{"account":{"format":"int64","type":["integer","null"]},"billable":{"type":"boolean"},"created_at":{"format":"int64","type":"integer"},"day":{"description":"YYYY-MM-DD the work was done.","type":"string"},"id":{"format":"int64","type":"integer"},"key":{"type":"string"},"note":{"type":"string"},"seconds":{"format":"int64","type":"integer"},"title":{"type":"string"},"who":{"type":"string"}},"required":["id","key","title","who","day","seconds","note","billable","created_at"],"type":"object"},"type":"array"},"original":{"format":"int64","type":["integer","null"]},"remaining":{"description":"Left to do: set by hand, else original − spent (never below 0).","format":"int64","type":["integer","null"]},"spent":{"description":"Seconds logged on the issue (and, in `with_children`, on everything under it).","format":"int64","type":"integer"},"timer_started_at":{"description":"Your timer, when it's running on this issue: when it started.","format":"int64","type":["integer","null"]},"with_children":{"format":"int64","type":"integer"}},"required":["key","logs","spent","with_children","can_log"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/time.issue":{"post":{"operationId":"time.issue","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_log":{"type":"boolean"},"key":{"type":"string"},"logs":{"items":{"properties":{"account":{"format":"int64","type":["integer","null"]},"billable":{"type":"boolean"},"created_at":{"format":"int64","type":"integer"},"day":{"description":"YYYY-MM-DD the work was done.","type":"string"},"id":{"format":"int64","type":"integer"},"key":{"type":"string"},"note":{"type":"string"},"seconds":{"format":"int64","type":"integer"},"title":{"type":"string"},"who":{"type":"string"}},"required":["id","key","title","who","day","seconds","note","billable","created_at"],"type":"object"},"type":"array"},"original":{"format":"int64","type":["integer","null"]},"remaining":{"description":"Left to do: set by hand, else original − spent (never below 0).","format":"int64","type":["integer","null"]},"spent":{"description":"Seconds logged on the issue (and, in `with_children`, on everything under it).","format":"int64","type":"integer"},"timer_started_at":{"description":"Your timer, when it's running on this issue: when it started.","format":"int64","type":["integer","null"]},"with_children":{"format":"int64","type":"integer"}},"required":["key","logs","spent","with_children","can_log"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/time.log":{"post":{"operationId":"time.log","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"account":{"format":"int64","type":["integer","null"]},"billable":{"default":true,"type":"boolean"},"day":{"description":"YYYY-MM-DD; default today.","type":["string","null"]},"duration":{"description":"\"1h 30m\", \"45m\", \"1.5h\", \"2d\", \"1w\" (a bare number = hours).","type":"string"},"key":{"type":"string"},"note":{"default":"","type":"string"},"who":{"description":"Member id (approvers and admins only); default you.","type":["string","null"]}},"required":["key","duration"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_log":{"type":"boolean"},"key":{"type":"string"},"logs":{"items":{"properties":{"account":{"format":"int64","type":["integer","null"]},"billable":{"type":"boolean"},"created_at":{"format":"int64","type":"integer"},"day":{"description":"YYYY-MM-DD the work was done.","type":"string"},"id":{"format":"int64","type":"integer"},"key":{"type":"string"},"note":{"type":"string"},"seconds":{"format":"int64","type":"integer"},"title":{"type":"string"},"who":{"type":"string"}},"required":["id","key","title","who","day","seconds","note","billable","created_at"],"type":"object"},"type":"array"},"original":{"format":"int64","type":["integer","null"]},"remaining":{"description":"Left to do: set by hand, else original − spent (never below 0).","format":"int64","type":["integer","null"]},"spent":{"description":"Seconds logged on the issue (and, in `with_children`, on everything under it).","format":"int64","type":"integer"},"timer_started_at":{"description":"Your timer, when it's running on this issue: when it started.","format":"int64","type":["integer","null"]},"with_children":{"format":"int64","type":"integer"}},"required":["key","logs","spent","with_children","can_log"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/time.log_delete":{"post":{"operationId":"time.log_delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"description":"Rows removed or moved (a project counts itself plus its issues; an option counts the issues it moved).","format":"int64","type":"integer"}},"required":["deleted"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/time.log_update":{"post":{"operationId":"time.log_update","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"account":{"description":"0 clears.","format":"int64","type":["integer","null"]},"billable":{"type":["boolean","null"]},"day":{"type":["string","null"]},"duration":{"type":["string","null"]},"id":{"format":"int64","type":"integer"},"note":{"type":["string","null"]}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_log":{"type":"boolean"},"key":{"type":"string"},"logs":{"items":{"properties":{"account":{"format":"int64","type":["integer","null"]},"billable":{"type":"boolean"},"created_at":{"format":"int64","type":"integer"},"day":{"description":"YYYY-MM-DD the work was done.","type":"string"},"id":{"format":"int64","type":"integer"},"key":{"type":"string"},"note":{"type":"string"},"seconds":{"format":"int64","type":"integer"},"title":{"type":"string"},"who":{"type":"string"}},"required":["id","key","title","who","day","seconds","note","billable","created_at"],"type":"object"},"type":"array"},"original":{"format":"int64","type":["integer","null"]},"remaining":{"description":"Left to do: set by hand, else original − spent (never below 0).","format":"int64","type":["integer","null"]},"spent":{"description":"Seconds logged on the issue (and, in `with_children`, on everything under it).","format":"int64","type":"integer"},"timer_started_at":{"description":"Your timer, when it's running on this issue: when it started.","format":"int64","type":["integer","null"]},"with_children":{"format":"int64","type":"integer"}},"required":["key","logs","spent","with_children","can_log"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/time.pending":{"post":{"operationId":"time.pending","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"seconds":{"format":"int64","type":"integer"},"updated_at":{"format":"int64","type":"integer"},"week":{"type":"string"},"who":{"type":"string"}},"required":["who","week","seconds","updated_at"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/time.report":{"post":{"operationId":"time.report","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"from":{"description":"YYYY-MM-DD, inclusive.","type":"string"},"group_by":{"description":"who | issue | project | epic | account | day","type":"string"},"to":{"type":"string"},"tql":{"description":"Only work on issues matching this TQL.","type":["string","null"]},"who":{"description":"Only this person.","type":["string","null"]}},"required":["from","to","group_by"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"amount":{"format":"double","type":["number","null"]},"billable_seconds":{"format":"int64","type":"integer"},"currency":{"type":"string"},"rows":{"items":{"properties":{"amount":{"description":"billable hours × rate (approvers and admins only; null otherwise or without a rate).","format":"double","type":["number","null"]},"billable_seconds":{"format":"int64","type":"integer"},"key":{"type":"string"},"label":{"type":"string"},"seconds":{"format":"int64","type":"integer"}},"required":["key","label","seconds","billable_seconds"],"type":"object"},"type":"array"},"seconds":{"format":"int64","type":"integer"}},"required":["rows","seconds","billable_seconds","currency"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/time.review":{"post":{"operationId":"time.review","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"approve | reject | reopen","type":"string"},"note":{"default":"","type":"string"},"week":{"type":"string"},"who":{"type":"string"}},"required":["who","week","action"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"can_review":{"type":"boolean"},"days":{"items":{"type":"string"},"type":"array"},"hours_per_day":{"description":"Hours a working day (setting).","format":"double","type":"number"},"note":{"type":"string"},"reviewer":{"type":["string","null"]},"rows":{"items":{"properties":{"days":{"description":"Seconds per day, Monday first.","items":{"format":"int64","type":"integer"},"type":"array"},"key":{"type":"string"},"title":{"type":"string"},"total":{"format":"int64","type":"integer"}},"required":["key","title","days","total"],"type":"object"},"type":"array"},"status":{"description":"open | submitted | approved | rejected","type":"string"},"total":{"format":"int64","type":"integer"},"totals":{"description":"Per day, and the week.","items":{"format":"int64","type":"integer"},"type":"array"},"week":{"description":"Monday.","type":"string"},"who":{"type":"string"}},"required":["who","week","days","rows","totals","total","status","note","hours_per_day","can_edit","can_review"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/time.settings":{"post":{"operationId":"time.settings","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"approver":{"description":"The caller approves timesheets.","type":"boolean"},"approvers":{"description":"Who approves timesheets and sees rates: `everyone`, `admins`, `team:<id>`, member ids.","items":{"type":"string"},"type":"array"},"can_admin":{"type":"boolean"},"currency":{"type":"string"},"hours_per_day":{"format":"double","type":"number"},"rates":{"description":"Per-person rates (override the account's).","items":{"properties":{"account":{"default":0,"description":"0 = the person's default for any account.","format":"int64","type":"integer"},"rate":{"format":"double","type":"number"},"who":{"type":"string"}},"required":["who","rate"],"type":"object"},"type":"array"}},"required":["approvers","currency","hours_per_day","rates","can_admin","approver"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/time.settings_save":{"post":{"operationId":"time.settings_save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"approvers":{"description":"Who approves timesheets and sees rates: `everyone`, `admins`, `team:<id>`, member ids.","items":{"type":"string"},"type":"array"},"currency":{"type":"string"},"hours_per_day":{"format":"double","type":"number"},"rates":{"description":"Per-person rates (override the account's).","items":{"properties":{"account":{"default":0,"description":"0 = the person's default for any account.","format":"int64","type":"integer"},"rate":{"format":"double","type":"number"},"who":{"type":"string"}},"required":["who","rate"],"type":"object"},"type":"array"}},"required":["approvers","currency","hours_per_day","rates"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"approver":{"description":"The caller approves timesheets.","type":"boolean"},"approvers":{"description":"Who approves timesheets and sees rates: `everyone`, `admins`, `team:<id>`, member ids.","items":{"type":"string"},"type":"array"},"can_admin":{"type":"boolean"},"currency":{"type":"string"},"hours_per_day":{"format":"double","type":"number"},"rates":{"description":"Per-person rates (override the account's).","items":{"properties":{"account":{"default":0,"description":"0 = the person's default for any account.","format":"int64","type":"integer"},"rate":{"format":"double","type":"number"},"who":{"type":"string"}},"required":["who","rate"],"type":"object"},"type":"array"}},"required":["approvers","currency","hours_per_day","rates","can_admin","approver"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/time.submit":{"post":{"operationId":"time.submit","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"week":{"description":"Any day in the week.","type":"string"}},"required":["week"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"can_review":{"type":"boolean"},"days":{"items":{"type":"string"},"type":"array"},"hours_per_day":{"description":"Hours a working day (setting).","format":"double","type":"number"},"note":{"type":"string"},"reviewer":{"type":["string","null"]},"rows":{"items":{"properties":{"days":{"description":"Seconds per day, Monday first.","items":{"format":"int64","type":"integer"},"type":"array"},"key":{"type":"string"},"title":{"type":"string"},"total":{"format":"int64","type":"integer"}},"required":["key","title","days","total"],"type":"object"},"type":"array"},"status":{"description":"open | submitted | approved | rejected","type":"string"},"total":{"format":"int64","type":"integer"},"totals":{"description":"Per day, and the week.","items":{"format":"int64","type":"integer"},"type":"array"},"week":{"description":"Monday.","type":"string"},"who":{"type":"string"}},"required":["who","week","days","rows","totals","total","status","note","hours_per_day","can_edit","can_review"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/time.timer":{"post":{"operationId":"time.timer","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"},"note":{"type":"string"},"started_at":{"format":"int64","type":"integer"},"title":{"type":"string"}},"required":["key","title","started_at","note"],"type":["object","null"]}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/time.timer_start":{"post":{"operationId":"time.timer_start","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"},"note":{"default":"","type":"string"}},"required":["key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"},"note":{"type":"string"},"started_at":{"format":"int64","type":"integer"},"title":{"type":"string"}},"required":["key","title","started_at","note"],"type":["object","null"]}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/time.timer_stop":{"post":{"operationId":"time.timer_stop","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"discard":{"default":false,"description":"Throw the timer away instead of logging it.","type":"boolean"},"note":{"description":"Replaces the note given at start.","type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"key":{"type":"string"},"note":{"type":"string"},"started_at":{"format":"int64","type":"integer"},"title":{"type":"string"}},"required":["key","title","started_at","note"],"type":["object","null"]}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:write"]}},"/api/v1/time.timesheet":{"post":{"operationId":"time.timesheet","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"week":{"description":"Any day in the week; default this week.","type":["string","null"]},"who":{"description":"Member id; default you (approvers can see anyone's).","type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"can_edit":{"type":"boolean"},"can_review":{"type":"boolean"},"days":{"items":{"type":"string"},"type":"array"},"hours_per_day":{"description":"Hours a working day (setting).","format":"double","type":"number"},"note":{"type":"string"},"reviewer":{"type":["string","null"]},"rows":{"items":{"properties":{"days":{"description":"Seconds per day, Monday first.","items":{"format":"int64","type":"integer"},"type":"array"},"key":{"type":"string"},"title":{"type":"string"},"total":{"format":"int64","type":"integer"}},"required":["key","title","days","total"],"type":"object"},"type":"array"},"status":{"description":"open | submitted | approved | rejected","type":"string"},"total":{"format":"int64","type":"integer"},"totals":{"description":"Per day, and the week.","items":{"format":"int64","type":"integer"},"type":"array"},"week":{"description":"Monday.","type":"string"},"who":{"type":"string"}},"required":["who","week","days","rows","totals","total","status","note","hours_per_day","can_edit","can_review"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["issues:read"]}},"/api/v1/usage.get":{"post":{"operationId":"usage.get","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"current":{"description":"Every metric this month, with the plan's limit (null = none).","items":{"properties":{"label":{"type":"string"},"limit":{"description":"Null when the plan has no limit.","format":"int64","type":["integer","null"]},"metric":{"type":"string"},"used":{"format":"int64","type":"integer"},"window":{"description":"`YYYY-MM` (UTC).","type":"string"}},"required":["metric","label","window","used"],"type":"object"},"type":"array"},"history":{"description":"The last six months, newest first.","items":{"properties":{"label":{"type":"string"},"limit":{"description":"Null when the plan has no limit.","format":"int64","type":["integer","null"]},"metric":{"type":"string"},"used":{"format":"int64","type":"integer"},"window":{"description":"`YYYY-MM` (UTC).","type":"string"}},"required":["metric","label","window","used"],"type":"object"},"type":"array"},"plan":{"description":"free | paid.","type":"string"}},"required":["plan","current","history"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["usage:read"]}},"/api/v1/usage.record_hour":{"post":{"operationId":"usage.record_hour","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"cpu_ms":{"format":"int64","type":"integer"},"hour":{"description":"Unix time / 3600.","format":"int64","type":"integer"},"messages":{"format":"int64","type":"integer"},"sockets_peak":{"format":"int64","type":"integer"},"storage_bytes":{"format":"int64","type":"integer"}},"required":["hour","cpu_ms","messages","sockets_peak","storage_bytes"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["system"]}},"/api/v1/usage.resources":{"post":{"operationId":"usage.resources","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"day":{"description":"The last 24 hours.","properties":{"cpu_ms":{"description":"CPU time of the org's database work (every op, query and job), ms.","format":"int64","type":"integer"},"hours":{"description":"Hours recorded.","format":"int64","type":"integer"},"messages":{"description":"Realtime messages delivered to its open apps (live updates, presence).","format":"int64","type":"integer"},"sockets_peak":{"description":"Most live connections (app streams and sockets) open at once.","format":"int64","type":"integer"},"storage_bytes":{"description":"Database plus stored files, bytes (latest).","format":"int64","type":"integer"},"storage_gb_hours":{"description":"Storage over time, GB-hours (storage billing: GB-month = GB-hours / hours in the month).","format":"double","type":"number"}},"required":["cpu_ms","messages","sockets_peak","storage_bytes","storage_gb_hours","hours"],"type":"object"},"last_month":{"description":"Last month (UTC), for invoices.","properties":{"cpu_ms":{"description":"CPU time of the org's database work (every op, query and job), ms.","format":"int64","type":"integer"},"hours":{"description":"Hours recorded.","format":"int64","type":"integer"},"messages":{"description":"Realtime messages delivered to its open apps (live updates, presence).","format":"int64","type":"integer"},"sockets_peak":{"description":"Most live connections (app streams and sockets) open at once.","format":"int64","type":"integer"},"storage_bytes":{"description":"Database plus stored files, bytes (latest).","format":"int64","type":"integer"},"storage_gb_hours":{"description":"Storage over time, GB-hours (storage billing: GB-month = GB-hours / hours in the month).","format":"double","type":"number"}},"required":["cpu_ms","messages","sockets_peak","storage_bytes","storage_gb_hours","hours"],"type":"object"},"month":{"description":"This month (UTC).","properties":{"cpu_ms":{"description":"CPU time of the org's database work (every op, query and job), ms.","format":"int64","type":"integer"},"hours":{"description":"Hours recorded.","format":"int64","type":"integer"},"messages":{"description":"Realtime messages delivered to its open apps (live updates, presence).","format":"int64","type":"integer"},"sockets_peak":{"description":"Most live connections (app streams and sockets) open at once.","format":"int64","type":"integer"},"storage_bytes":{"description":"Database plus stored files, bytes (latest).","format":"int64","type":"integer"},"storage_gb_hours":{"description":"Storage over time, GB-hours (storage billing: GB-month = GB-hours / hours in the month).","format":"double","type":"number"}},"required":["cpu_ms","messages","sockets_peak","storage_bytes","storage_gb_hours","hours"],"type":"object"}},"required":["day","month","last_month"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["usage:read"]}},"/api/v1/webhooks.attempt":{"post":{"operationId":"webhooks.attempt","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A delivery the cell should send now (`issues.claim`), with what it needs to sign it.","properties":{"body":{"type":"string"},"event":{"type":"string"},"id":{"format":"int64","type":"integer"},"owner":{"description":"A member's subscription: send only if they can see `subject` (checked by the cell as them).","type":["string","null"]},"secret":{"type":"string"},"subject":{"type":["string","null"]},"url":{"type":"string"}},"required":["id","url","secret","event","body"],"type":["object","null"]}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/webhooks.delete":{"post":{"operationId":"webhooks.delete","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/webhooks.deliveries":{"post":{"operationId":"webhooks.deliveries","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"hook":{"description":"One webhook's deliveries; omit for all (including automation web requests).","format":"int64","type":["integer","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"attempts":{"format":"int64","type":"integer"},"body":{"description":"The JSON sent (CloudEvents 1.0).","type":"string"},"created_at":{"format":"int64","type":"integer"},"done_at":{"format":"int64","type":["integer","null"]},"event":{"type":"string"},"hook":{"format":"int64","type":["integer","null"]},"id":{"format":"int64","type":"integer"},"last_code":{"format":"int64","type":["integer","null"]},"last_error":{"type":["string","null"]},"next_at":{"format":"int64","type":"integer"},"state":{"description":"pending | ok | failed","type":"string"},"url":{"type":"string"}},"required":["id","url","event","state","attempts","next_at","created_at","body"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/webhooks.events":{"post":{"operationId":"webhooks.events","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"kind":{"description":"e.g. issue.created","type":"string"},"label":{"type":"string"},"subject":{"description":"What it is about: issue, page, …","type":"string"}},"required":["kind","label","subject"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["webhooks:read"]}},"/api/v1/webhooks.list":{"post":{"operationId":"webhooks.list","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"active":{"type":"boolean"},"app":{"description":"What made it: zapier | n8n | make | other (\"\" for admin webhooks).","type":"string"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"events":{"description":"Event kinds, e.g. \"issue.created\", \"issue.*\", or \"*\" for everything.","items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"owner":{"description":"The member whose subscription this is (it sends only what they can see); null = an org-wide admin webhook.","type":["string","null"]},"recent_failures":{"description":"Deliveries that ended in failure in the last 7 days.","format":"int64","type":"integer"},"secret":{"description":"Shared secret: each request carries `X-Work-Signature: sha256=<hex HMAC-SHA256(secret, body)>`.","type":"string"},"url":{"type":"string"}},"required":["id","name","url","secret","events","active","created_by","created_at","recent_failures","app"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/webhooks.redeliver":{"post":{"operationId":"webhooks.redeliver","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/webhooks.result":{"post":{"operationId":"webhooks.result","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"code":{"description":"HTTP status, if a response came back.","format":"int64","type":["integer","null"]},"error":{"description":"Transport error, if any.","type":["string","null"]},"id":{"format":"int64","type":"integer"},"last":{"default":false,"description":"No more attempts follow: a failure is final.","type":"boolean"},"owner_gone":{"default":false,"description":"The subscriber left the org: the subscription is switched off too.","type":"boolean"},"skipped":{"default":false,"description":"Not sent: the subscriber can't see the event (the delivery is dropped).","type":"boolean"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"ok":{"description":"2xx came back.","type":"boolean"}},"required":["ok"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/webhooks.save":{"post":{"operationId":"webhooks.save","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"active":{"type":["boolean","null"]},"events":{"description":"Event kinds (\"issue.created\", \"issue.*\", \"*\").","items":{"type":"string"},"type":["array","null"]},"id":{"description":"Omit to create.","format":"int64","type":["integer","null"]},"name":{"type":["string","null"]},"rotate_secret":{"description":"true makes a new secret.","type":["boolean","null"]},"url":{"type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"active":{"type":"boolean"},"app":{"description":"What made it: zapier | n8n | make | other (\"\" for admin webhooks).","type":"string"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"events":{"description":"Event kinds, e.g. \"issue.created\", \"issue.*\", or \"*\" for everything.","items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"owner":{"description":"The member whose subscription this is (it sends only what they can see); null = an org-wide admin webhook.","type":["string","null"]},"recent_failures":{"description":"Deliveries that ended in failure in the last 7 days.","format":"int64","type":"integer"},"secret":{"description":"Shared secret: each request carries `X-Work-Signature: sha256=<hex HMAC-SHA256(secret, body)>`.","type":"string"},"url":{"type":"string"}},"required":["id","name","url","secret","events","active","created_by","created_at","recent_failures","app"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/webhooks.send":{"post":{"operationId":"webhooks.send","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"body":{"description":"JSON body to POST."},"event":{"description":"Event name for the X-Work-Event header and the log.","type":["string","null"]},"url":{"type":"string"}},"required":["url","body"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["webhooks:write"]}},"/api/v1/webhooks.subscribe":{"post":{"operationId":"webhooks.subscribe","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"app":{"description":"zapier | n8n | make | other","type":["string","null"]},"events":{"description":"Event kinds (\"issue.created\", \"issue.*\", \"*\"); see `webhooks.events`.","items":{"type":"string"},"type":"array"},"name":{"type":["string","null"]},"url":{"description":"Where to POST events (Zapier's targetUrl, an n8n or Make webhook URL).","type":"string"}},"required":["url","events"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"active":{"type":"boolean"},"app":{"description":"What made it: zapier | n8n | make | other (\"\" for admin webhooks).","type":"string"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"events":{"description":"Event kinds, e.g. \"issue.created\", \"issue.*\", or \"*\" for everything.","items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"owner":{"description":"The member whose subscription this is (it sends only what they can see); null = an org-wide admin webhook.","type":["string","null"]},"recent_failures":{"description":"Deliveries that ended in failure in the last 7 days.","format":"int64","type":"integer"},"secret":{"description":"Shared secret: each request carries `X-Work-Signature: sha256=<hex HMAC-SHA256(secret, body)>`.","type":"string"},"url":{"type":"string"}},"required":["id","name","url","secret","events","active","created_by","created_at","recent_failures","app"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["webhooks:write"]}},"/api/v1/webhooks.subscriptions":{"post":{"operationId":"webhooks.subscriptions","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"active":{"type":"boolean"},"app":{"description":"What made it: zapier | n8n | make | other (\"\" for admin webhooks).","type":"string"},"created_at":{"format":"int64","type":"integer"},"created_by":{"type":"string"},"events":{"description":"Event kinds, e.g. \"issue.created\", \"issue.*\", or \"*\" for everything.","items":{"type":"string"},"type":"array"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"owner":{"description":"The member whose subscription this is (it sends only what they can see); null = an org-wide admin webhook.","type":["string","null"]},"recent_failures":{"description":"Deliveries that ended in failure in the last 7 days.","format":"int64","type":"integer"},"secret":{"description":"Shared secret: each request carries `X-Work-Signature: sha256=<hex HMAC-SHA256(secret, body)>`.","type":"string"},"url":{"type":"string"}},"required":["id","name","url","secret","events","active","created_by","created_at","recent_failures","app"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["webhooks:read"]}},"/api/v1/webhooks.test":{"post":{"operationId":"webhooks.test","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["admin"]}},"/api/v1/webhooks.unsubscribe":{"post":{"operationId":"webhooks.unsubscribe","parameters":[{"description":"Retries with the same key within 24 h replay the first answer (Idempotent-Replayed: true) instead of running again","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"}}},"description":"OK","headers":{"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["webhooks:write"]}},"/api/v1/webhooks.visible":{"post":{"operationId":"webhooks.visible","parameters":[{"description":"An ETag from an earlier answer: 304 if unchanged","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"subject":{"type":"string"}},"required":["subject"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"visible":{"type":"boolean"}},"required":["visible"],"type":"object"}}},"description":"OK","headers":{"ETag":{"schema":{"type":"string"}},"x-kb-seq":{"description":"The org's sequence number after this call (`since` for api.changes)","schema":{"type":"integer"}}}},"304":{"description":"Not modified (If-None-Match matched)"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Error"}},"x-scopes":["webhooks:read"]}}},"security":[{"bearer":[]}]}