Decide several items
https://api.norreach.app/v1/approvals/decideApproves 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.
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"
}'{
"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
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
Run every check and return what would happen, changing nothing.
Headers
Any unique string (≤ 255). The same key with the same request returns the first answer for 24 hours.
Body
application/json
approveskipResponse
200application/json— Decide several items
Show child attributesHide child attributes
An approval key, e.g. plan_card:<uuid>, meeting:<uuid>, rule_send:<uuid> (URL-encode the colon in paths).
When not ok: the problem code it would have answered alone.
Errors
Errors are application/problem+json with a stable code.
| Status | Code | Meaning |
|---|---|---|
| 400 | bad_request | The request couldn't be read. |
| 400 | unknown_field | The request has a field this operation doesn't know. |
| 400 | idempotency_key_required | This operation needs an Idempotency-Key header. |
| 401 | unauthorized | A valid API key is required. |
| 403 | insufficient_scope | This API key doesn't have the scope this operation needs. |
| 403 | feature_not_enabled | The API isn't switched on for this workspace. |
| 403 | role_forbidden | The key's creator's role can't do this. |
| 409 | idempotency_in_progress | A request with this Idempotency-Key is still running. |
| 413 | too_large | The request body is too large. |
| 422 | validation_failed | The request has invalid fields. |
| 422 | idempotency_mismatch | This Idempotency-Key was used with a different request. |
| 429 | rate_limited | Too many requests. Slow down and try again. |
| 500 | server_error | Something went wrong on our side. |
| 503 | unavailable | The API isn't available right now. Try again shortly. |