permission_denied
HTTP 403Forbidden
The caller authenticated successfully but is not allowed to perform this operation.
Authentication and authorisation are separate. A valid key that lacks the necessary grant — or an org that lacks the API entitlement — produces this error rather than a 401.
Response shape
Section titled “Response shape”{ "type": "https://api-docs.ahoy.ai/rest/v1/errors/permission_denied", "title": "Forbidden", "status": 403, "detail": "This credential has no write grant on 'ahoy_deal'.", "code": "permission_denied", "request_id": "req_01J8Z2K9QW3X4Y5Z6A7B8C9D"}reason sub-codes
Section titled “reason sub-codes”A reason narrows permission_denied to a specific cause. New values are additive and never require a version bump, so treat an unrecognised reason as the bare permission_denied.
reason | Meaning |
|---|---|
entitlement_missing | The org does not have the public API entitlement enabled. Contact Ahoy support. |
write_forbidden | The key has read access to this object type but not write access. |
type_read_only | This object type cannot be written over the API by any credential — see Writable object types. |
How to resolve it
Section titled “How to resolve it”- Check the key’s grants under Settings → API & Service Accounts.
GET /rest/v1/objects/lists exactly what this key can reach, withwritable_operationson each type.- A key reaches only as far as the user who minted it. Private records belonging to other users are never visible to it.