Skip to content

Lift an abuse suspension

The organizations.reinstate operation: POST /api/v1/platform/organizations/{orgId}/reinstate in the REST API and the organizations_reinstate tool in the MCP server.

POST/api/v1/platform/organizations/{orgId}/reinstate

Platform admins: lifts a suspension made for abuse or an AUP violation (organizations.suspend). The organization's status is then what its Ownrecord subscription says: active when it is paid (also when it was paid during the suspension), otherwise the stage that is due for how long it has been unpaid (restricted after 14 days, suspended after 30, by default). A suspension for non-payment isn't lifted here: it ends when the open invoices are paid.

Security tier; audited.

At a glance

  • REST: POST /api/v1/platform/organizations/{orgId}/reinstate
  • MCP tool: organizations_reinstate
  • Operation ID: organizations.reinstate
  • Scope: Platform
  • Permission: platform:admin
  • Risk tier: security
  • Dry run: Supported (send Ownrecord-Dry-Run: true)
  • Idempotency: Idempotency-Key required
  • Modes: Test and live
  • Authentication: API key with the platform:admin scope
  • Fresh sign-in: In the console, a sign-in within the last 15 minutes
  • Since: M12

Request

Path parameters

FieldTypeDescription
orgIdorg_… ID

Body

This operation takes no body.

Response

200 OK with a JSON object:

FieldTypeDescription
idorg_… ID
object"organization"
slugstring
namestring
countrystring
statusone of active, restricted, suspended, closing, closed
isPlatformboolean
supportAccessone of off, on_request, always_read
requireMfaboolean
entitlementsobject
planobject
plan.statusone of trialing, active, past_due, unpaid, canceled, none
plan.overrideobject or null
createdByusr_… ID
createdAtdate-time
updatedAtdate-time

Examples

Reinstate

HTTP
POST /api/v1/platform/organizations/org_01m4tx5nj7ekd958x53w4bntcg/reinstate
Authorization: Bearer or_test_…
Idempotency-Key: 3f1c9a52-7d0e-4b8f-9a61-0c2d5e8b7f14

Response (200):

JSON
{
  "id": "org_01m4tx5nj7ekd958x53w4bntcg",
  "object": "organization",
  "slug": "acme",
  "name": "Acme",
  "country": "HR",
  "status": "active",
  "isPlatform": false,
  "supportAccess": "on_request",
  "requireMfa": false,
  "entitlements": {
    "livemode": true,
    "entities.max": 2,
    "brands.max": 3,
    "members.max": 10,
    "jurisdictions.registered.max": 10,
    "subscriptions.enabled": true,
    "usage_billing.enabled": true,
    "einvoicing.enabled": true,
    "processors.secondary": false,
    "custom_domains.max": 2,
    "api.rate_limit_rps": 100,
    "audit.retention_days": 90,
    "support.level": "email",
    "filing.reports": "full",
    "sso.enabled": false,
    "assistant.enabled": true,
    "assistant.messages_per_month": 1000
  },
  "plan": {
    "status": "none",
    "override": {
      "reason": "Temporary Growth entitlements until platform billing (M12)",
      "expiresAt": null
    }
  },
  "createdBy": "usr_01m4tx5nj8emwbyf7y9vcf47xa",
  "createdAt": "2026-10-13T12:00:00.000Z",
  "updatedAt": "2026-10-13T12:00:00.000Z"
}

Errors

CodeHTTP statusWhenWhat to do
fresh_auth_required403Your last sign-in is older than 15 minutes: sign in again first.Sign in again, then repeat the action within 15 minutes.
organization_not_suspended409The organization has no abuse suspension.Only an abuse suspension is reinstated here; a suspension for non-payment ends when the invoices are paid.
resource_not_found404No such organization.Check the ID and that your credentials are scoped to the right organization, entity, brand and mode.
version_conflict409The organization changed at the same time; retry.Fetch the object again and retry the change.
permission_denied403You aren't a platform admin.Ask an organization owner or admin for a role or scope that allows this action.

It can also return these common errors: validation_failed, api_version_unsupported, invalid_json, unsupported_media_type, authentication_required, api_key_invalid, idempotency_key_required, idempotency_key_reused, idempotency_in_progress, rate_limited, internal_error.