Docs
Approvals

Decide several items

POSThttps://api.norreach.app/v1/approvals/decide

Approves or skips up to 50 keys in one request, in order, one result each (ok, the status, or the code it would have answered alone). Each key goes through the same checks as deciding it alone; an approval of an ad launch, page or plan card without its own scope is refused for that key only.

⚠ approvals:decideRole must allow: approvals.decideIdempotency-Key requiredSupports dry_runOperation id: decide_approvals
POST/approvals/decide
curl -X POST "https://api.norreach.app/v1/approvals/decide" \
  -H "Authorization: Bearer $NORREACH_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "keys": [
    "plan_card:5b6c7d8e-9f0a-4b1c-8d2e-3f4a5b6c7d8e",
    "meeting:1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d"
  ],
  "decision": "approve"
}'
Decide several items
{
  "object": "list",
  "data": [
    {
      "key": "plan_card:5b6c7d8e-9f0a-4b1c-8d2e-3f4a5b6c7d8e",
      "ok": true,
      "status": "approved",
      "count": 1,
      "note": "Approved.",
      "code": null
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Authorizations

Authorizationstringheaderrequired

Bearer authentication: send Authorization: Bearer <key>, with an API key or an OAuth access token. The key needs the scope approvals:decide. API keys and scopes

Query parameters

dry_runbooleanquery

Run every check and return what would happen, changing nothing.

Headers

Idempotency-Keystringheaderrequired

Any unique string (≤ 255). The same key with the same request returns the first answer for 24 hours.

Body

application/json

keysstring[]required
decisionenumrequired
One of:approveskip

Response

200application/json— Decide several items

object"list"required
dataobject[]required
Show child attributes
data[].keystringrequired

An approval key, e.g. plan_card:<uuid>, meeting:<uuid>, rule_send:<uuid> (URL-encode the colon in paths).

data[].okbooleanrequired
data[].statusstring | nullrequired
data[].countintegerrequired
data[].notestring | nullrequired
data[].codestring | nullrequired

When not ok: the problem code it would have answered alone.

has_morefalserequired
next_cursornullrequired

Errors

Errors are application/problem+json with a stable code.

StatusCodeMeaning
400bad_requestThe request couldn't be read.
400unknown_fieldThe request has a field this operation doesn't know.
400idempotency_key_requiredThis operation needs an Idempotency-Key header.
401unauthorizedA valid API key is required.
403insufficient_scopeThis API key doesn't have the scope this operation needs.
403feature_not_enabledThe API isn't switched on for this workspace.
403role_forbiddenThe key's creator's role can't do this.
409idempotency_in_progressA request with this Idempotency-Key is still running.
413too_largeThe request body is too large.
422validation_failedThe request has invalid fields.
422idempotency_mismatchThis Idempotency-Key was used with a different request.
429rate_limitedToo many requests. Slow down and try again.
500server_errorSomething went wrong on our side.
503unavailableThe API isn't available right now. Try again shortly.