Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.ivory.finance/llms.txt

Use this file to discover all available pages before exploring further.

Overview

GET /v1/admin/tenants/{slug}/status returns the current provisioning state plus a log of completed and failed steps. Poll this endpoint after calling POST /v1/admin/tenants to track the 9-step pipeline.
This endpoint is restricted to the admin Kong consumer via ACL.

Path parameters

slug
string
required
The tenant slug (e.g. acme-bank).

Response

tenant_id
string
UUID of the tenant.
slug
string
The tenant slug.
provisioning_state
string
Current pipeline state:
ValueMeaning
provisioningPipeline is actively running
activeAll 9 steps completed — tenant is live
failedA step failed — see last_error and failed_steps
deprovisionedTenant has been soft-deactivated
completed_steps
string[]
List of step identifiers that succeeded (e.g. ["step_1", "step_2", "step_3"]).
failed_steps
string[]
List of step identifiers that failed. Typically has one entry before the pipeline halts.
last_error
string
Error message from the most recent failure, if any.
updated_at
string
ISO 8601 timestamp of the last state change.

Examples

curl https://api.ivory.finance/v1/admin/tenants/acme-bank/status \
  -H "X-API-Key: YOUR_ADMIN_KEY"
In-progress response:
{
  "tenant_id":          "a1b2c3d4-5e6f-7890-abcd-ef1234567890",
  "slug":               "acme-bank",
  "provisioning_state": "provisioning",
  "completed_steps":    ["step_1", "step_2", "step_3", "step_4"],
  "failed_steps":       [],
  "last_error":         null,
  "updated_at":         "2026-03-24T10:02:15+00:00"
}
Active response:
{
  "tenant_id":          "a1b2c3d4-5e6f-7890-abcd-ef1234567890",
  "slug":               "acme-bank",
  "provisioning_state": "active",
  "completed_steps":    ["step_1", "step_2", "step_3", "step_4", "step_5", "step_6", "step_7", "step_8", "step_9"],
  "failed_steps":       [],
  "last_error":         null,
  "updated_at":         "2026-03-24T10:06:42+00:00"
}
Failed response:
{
  "tenant_id":          "a1b2c3d4-5e6f-7890-abcd-ef1234567890",
  "slug":               "acme-bank",
  "provisioning_state": "failed",
  "completed_steps":    ["step_1", "step_2"],
  "failed_steps":       ["step_3"],
  "last_error":         "step_3: Migration 027b failed (400): syntax error at or near...",
  "updated_at":         "2026-03-24T10:03:01+00:00"
}
On failure, re-posting to POST /v1/admin/tenants with the same slug will automatically resume from the last completed step.

Error responses

CodeReason
404No tenant found with that slug