Skip to Content
APIEndpointsOverride claim status

Override alignment claim status

Overrides one alignment claim’s effective status, or clears a previous override by sending status: null. Use List alignment claims or Get alignment claim to find a claim_id first.

Requires the write:alignment scope, and the workspace must be enabled for API writes.

PATCH /v1/brands/{brand_id}/alignment/claims/{claim_id}/status

Authorization

HeaderTypeRequired
AuthorizationBearer asky_sk_…required
Idempotency-Keystringrequired

Path parameters

ParameterTypeRequiredDescription
brand_iduuidrequiredFrom List brands
claim_iduuidrequiredFrom List alignment claims

Query parameters

None.

Body

application/json

FieldTypeRequiredDescription
statusenum | nullrequiredOne of aligned, misaligned, partially_aligned, unverifiable, different_brand. null clears a previous override

Request

curl --request PATCH \ --url 'https://api.askylabs.com/v1/brands/242546de-4cee-4a7d-952e-f6aa60c63ef8/alignment/claims/9f3a1c2b-7e40-4b17-8e6a-3c05b91e7d22/status' \ --header 'Authorization: Bearer <api-key>' \ --header 'Idempotency-Key: <unique-per-attempt>' \ --header 'Content-Type: application/json' \ --data '{"status":"aligned"}'

Response

{ "data": { "claim_id": "9f3a1c2b-7e40-4b17-8e6a-3c05b91e7d22", "status": "aligned" }, "request_id": "req_7d21b0af59c34e18b6ac" }

Response fields

FieldTypeDescription
data.claim_iduuidrequired
data.statusenum | nullrequired. One of aligned, misaligned, partially_aligned, unverifiable, different_brand, or null when the override was just cleared
request_idstringrequired

Errors

StatusCodeWhen
400invalid_requeststatus is missing, or is not one of the five valid values or null
401invalid_tokenThe key is missing, malformed, or does not exist
401token_expiredThe key passed its expiry date
401token_revokedThe key was revoked
403insufficient_scopeThe key does not carry write:alignment
403plan_requiredThis workspace is not enabled for API writes
404not_foundThe claim does not exist for this brand, or this key is not allowed to reach it
429rate_limitedOver 60 requests per minute

Notes

A human override always wins over the AI-graded status. Every read endpoint on this surface computes the effective status as COALESCE(user_status_override, alignment_status), so this call changes what List alignment claims and Get alignment claim report immediately, and changes any totals computed from claim status too.

The override is sticky. It survives future alignment runs — the next run re-grades alignment_status, but the override still wins until you clear it. Send status: null to clear it, rather than waiting for it to expire; nothing expires it automatically.

Single-claim only. There is no bulk version of this endpoint.

The override is not attributed to a caller through this API. The app records who made an override, but calls through this endpoint go through an RPC that has no way to attach the API key’s identity, so user_status_override_by comes back null for overrides set this way.

This endpoint is brand-scoped in the path, unlike Get alignment claim, which is workspace-scoped with no brand_id in its URL.

Idempotency-Key is required. See Idempotency.

Last updated on