Skip to content

Revoke an entitlement override

DELETE
/entitlements/admin/orgs/{orgId}/overrides/{id}
curl --request DELETE \
--url https://api.sloose.com/entitlements/admin/orgs/org_9f3c/overrides/ovr_1a2b \
--header 'Authorization: Bearer <token>'

Backoffice route: a staff session, or ADMIN_TOKEN; never a customer’s session. Marks it revoked rather than deleting it, so the grant stays auditable. Written down as org.override.revoke.

orgId
required

The organisation id.

string
Example
org_9f3c

The organisation id.

id
required

The override id.

string
Example
ovr_1a2b

The override id.

Revoked, with the organisation’s entitlements as they now resolve.

Media typeapplication/json
object
override
required
object
id
required
string
key
required
string
value
required
Any of:
number
reason
required
string
grantedBy
required
string
expiresAt
required
string | null
key
additional properties
entitlements
required

Everything the widget needs to know about what this organisation may do.

object
orgId
required
string
plan
required
object
id
required
string
key
required
string | null
Allowed values: free team business enterprise
name
required
string
version
required
number
rank
required
number
status
required
string | null
Allowed values: free trialing active past_due suspended cancelled
period
required
object
start
required
string
end
required
string
limits
required
object
crm_users_max
required

CRM users allowed to use the widget; null = unlimited.

number | null
connections_max
required

Connections the organisation may hold — a sandbox is a connection like any other; null = unlimited. A file is not one.

number | null
runs_per_month
required

Import runs per period, each counted once at the first row it sends to be written, whether or not the CRM takes that row; null = unlimited (fair use). Dry runs never count, and neither does a free retry (Retry failed of a run with failed rows, at most three in a row, each spent at its first admitted row: one that ends having admitted none is given back) while the rows it writes are its chain’s: one that writes a row new to its chain past the rows the chain was counted for is counted at that row. This is judged by key only while the chain’s keys are kept: a day after the chain last ran, or for a chain begun before keys were kept, a link’s rows are judged by the count it declared instead, as they were before, and no run is counted at a later row.

number | null
runs_concurrent

Imports that may be running in the organisation at once, dry runs aside; null or absent = no limit. A run past it is refused at authorise with LIMIT_RUNS_CONCURRENT.

number | null
rows_per_run
required

The most rows one import set may declare. Checked before anything is written.

number
rows_per_month
required

Server-side runs only. Browser runs are never refused on it.

number
row_overage_per_1000
required

USD per 1,000 rows beyond rows_per_month, server-side runs only; null = not offered.

number | null
schedules_max
required
number
history_days
required
number
ai_credits_monthly
required
number
files_bytes

Bytes of uploaded files the organisation may hold at once; null = no limit, absent = the plan offers no files. Checked when an upload is reserved: past it, only NEW uploads are refused, with LIMIT_FILES_BYTES; nothing stored is deleted early.

number | null
files_keep_days

Days a stored file is kept after its last use (a run that used it, naming it in a sheet, or its upload); absent = the longest any plan keeps one.

number
features
required
object
shared_templates
required
boolean
helper_libraries
required
boolean
server_run
required
boolean
mcp
required
boolean
rollback
required
boolean
scheduled_imports
required
boolean
crmUsers
required
object
active
required
number | null
max
required
number | null
overrides
required
Array<object>
object
id
required
string
key
required
string
value
required
Any of:
number
reason
required
string
grantedBy
required
string
expiresAt
required
string | null
overageAllowed
required
boolean
overageEnabled
required
boolean
graceEndsAt
required
string | null
trialEndsAt
required
string | null
cancelAtPeriodEnd
required
boolean
subscriptionVersion
required
string
resolvedAt
required
string
usage
required
object
periodStart
required
string
periodEnd
required
string
rowsWritten
required
number
rowsOverage
required
number
creditsUsed
required
number
runs
required

Runs counted this period, through any of the organisation’s connections: each once, at the first row it sent to be written, whether or not the CRM took that row.

number
balance
required

AI credits. Included credits reset each period; purchased ones do not.

object
included
required
number
purchased
required
number
reserved
required
number
available
required

Included + purchased − reserved

number
periodStart
required
string
periodEnd
required
string
warnings
required

Applies right now regardless of the action.

Array<string>
Allowed values: LIMIT_ROWS LIMIT_RUNS LIMIT_RUNS_CONCURRENT LIMIT_ROWS_PER_RUN LIMIT_CONNECTORS LIMIT_SCHEDULES LIMIT_CRM_USERS LIMIT_FILES_BYTES LIMIT_FILE_SIZE FEATURE_SHARED_TEMPLATES FEATURE_HELPER_LIBRARIES FEATURE_SERVER_RUN FEATURE_MCP FEATURE_ROLLBACK FEATURE_SCHEDULED_IMPORTS CREDITS_EXHAUSTED STATUS_SUSPENDED STATUS_PAST_DUE
cached
required
boolean
Example
{
"entitlements": {
"plan": {
"key": "free"
},
"status": "free",
"warnings": [
"LIMIT_ROWS"
]
}
}

A bearer that is neither the token nor a live session (code: AUTH_REQUIRED).

Media typeapplication/json

The error envelope every non-2xx answer uses.

object
error
required

Human-readable explanation.

string
code

Machine-readable reason. Absent on a few legacy 400s.

string
key
additional properties
Examplegenerated
{
"error": "example",
"code": "example"
}

A customer’s session, an API token, or no bearer at all — not staff, and not the ADMIN_TOKEN (code: ADMIN_REQUIRED).

Media typeapplication/json

The error envelope every non-2xx answer uses.

object
error
required

Human-readable explanation.

string
code

Machine-readable reason. Absent on a few legacy 400s.

string
key
additional properties
Examplegenerated
{
"error": "example",
"code": "example"
}

No such override on that organisation.

Media typeapplication/json
object
error
required
string
key
additional properties
Examplegenerated
{
"error": "example"
}

The restore switch is on (code: MAINTENANCE): every route but /health and /robots.txt is refused before anything is read, except the operator’s own POST /staff/people/{id}/delete with the ADMIN_TOKEN. Sloose is down for maintenance. Please try again in a few minutes.

Media typeapplication/json
object
error
required
string
code
required
string
Allowed value: MAINTENANCE
Example
{
"code": "MAINTENANCE"
}
Retry-After
integer

Seconds until asking again is worth it (300 while the switch is on).

Report a problem with this page

sloose.com