REST API

The dashboard is a client of this API. Anything you can do by clicking, you can do from a pipeline with an API key.

Base URL and format

HTTP
https://api.meetext.xyz/v1
authorization: Bearer $MEETEXT_API_KEY
content-type: application/json

JSON in, JSON out. Timestamps are ISO 8601 with an offset. Identifiers are UUIDs. The complete generated specification is served at /openapi.json, which is the authority when this page and the API disagree.

API keys

Method and pathDoes
GET /v1/auth/api-keysList keys, by prefix and label.
POST /v1/auth/api-keysCreate a key. The plaintext value is returned once and never again.
DELETE /v1/auth/api-keys/{key_id}Revoke a key immediately.
GET /v1/auth/meThe principal and organization a key resolves to.

Products and sources

Method and pathDoes
GET /v1/productsList products.
POST /v1/productsCreate a product with a name and slug.
GET /v1/products/{product_id}One product with its sources and targets.
PATCH /v1/products/{product_id}Rename or update metadata.
POST /v1/products/{product_id}/sourcesConnect an MCP server, OpenAPI document or repository. Pass discover_now to run discovery inline.
POST /v1/products/{product_id}/sources/{source_id}/rediscoverRe-introspect and compare the fingerprint against the stored one.
POST /v1/products/{product_id}/sources/{source_id}/candidatesPromote repository scan candidates into capabilities.
POST /v1/products/{product_id}/sources/{source_id}/adapterGenerate an adapter pull request for the source.
DELETE /v1/products/{product_id}/sources/{source_id}Disconnect a source.
PUT /v1/products/{product_id}/targetsConfigure a destination and its app credentials.
GET /v1/products/{product_id}/preflightEverything that would make an installation fail, before you send a link.
POST /v1/products/{product_id}/publishFreeze the approved capability set into a versioned deployment package.
GET /v1/products/meta/source-typesThe source types this deployment supports.

Capabilities

Enabling a capability that no longer exists in the source returns 409.
Method and pathDoes
GET /v1/products/{product_id}/capabilitiesEvery discovered capability with its risk level, selection and approval state.
POST /v1/products/{product_id}/capabilities/{capability_id}/selectionEnable or disable. Enabling a read capability approves it.
POST /v1/products/{product_id}/capabilities/{capability_id}/approvalThe second approval, required for write and destructive capabilities.

The rules behind the risk levels are on the Capabilities page.

Customers and environments

Method and pathDoes
GET /v1/customersList customers.
POST /v1/customersCreate a customer with a name and slug.
GET /v1/customers/{customer_id}One customer and its environments.
POST /v1/customers/{customer_id}/environmentsCreate a customer environment for one product and one destination. Returns the installation link.
GET /v1/environmentsList environments across customers.
GET /v1/environments/{environment_id}One environment with its health layers and current deployment.
GET /v1/environments/{environment_id}/mcp-tokenThe bearer token for this environment's MCP access.
POST /v1/environments/{environment_id}/mcp-token/rotateIssue a new token and invalidate the old one.
POST /v1/environments/{environment_id}/deploymentsRedeploy the current published package into this environment.

Deployments

Method and pathDoes
GET /v1/deploymentsList deployments, filterable by state.
GET /v1/deployments/{deployment_id}One deployment with its state, checks and evidence.
POST /v1/deployments/{deployment_id}/validateRun the validation suite now and return the report.
DELETE /v1/deployments/{deployment_id}Remove the installation from the customer's workspace.
GET /v1/meta/deployment-statesThe state vocabulary, so a client never hardcodes it.
Shell
curl -X POST "$MEETEXT_API/v1/deployments/$DEPLOYMENT_ID/validate" \
  -H "authorization: Bearer $MEETEXT_API_KEY"
Returns the target state and every check outcome, each with its detail and remediation.

Fleet, incidents and audit

Method and pathDoes
GET /v1/fleetEvery environment with its health layers, in one call.
GET /v1/fleet/metricsAggregate counts by state and health.
GET /v1/fleet/credentialsCredential expiry and rotation risk across the fleet.
GET /v1/incidentsOpen and resolved incidents with detection and resolution method.
GET /v1/environments/{environment_id}/timelineMilestones, phase, elapsed time and attribution.
GET /v1/environments/{environment_id}/changesWhat changed on this environment and when.
GET /v1/logsExecution and deployment log entries.
GET /v1/auditThe immutable audit history.
GET /v1/dashboardThe summary the dashboard home renders.

Security reviews and credentials

Method and pathDoes
POST /v1/environments/{environment_id}/security-reviewOpen a review case for one customer environment.
GET /v1/environments/{environment_id}/security-reviewThe current review document.
POST /v1/security-reviews/{case_id}/snapshotsCapture a snapshot of what the deployment accesses right now.
POST /v1/security-reviews/{case_id}/sharesIssue a shareable link for one snapshot.
DELETE /v1/security-reviews/{case_id}/shares/{share_id}Revoke a share.
GET /v1/security-reviews/renewalsReviews whose snapshot no longer matches the deployment.
GET /v1/credentialsCredential families and their expiry.
POST /v1/credentials/{family_id}/rotationsStart a rotation, optionally validated by a canary before activation.
POST /v1/rotations/{rotation_id}/activatePromote the new credential.

Errors and idempotency

StatusMeans
400The request body could not be read.
401Missing or invalid API key.
403Authenticated, but not permitted.
404Not found, including anything belonging to another organization. Cross tenant reads never return 403.
409A conflict with current state: enabling a removed capability, or an invalid deployment transition.
422The body was valid JSON but the wrong shape.
429Rate limited.

Installation and webhook handling are idempotent. A retried delivery or a repeated callback never creates a second installation, which is what makes it safe to run this API from a pipeline that retries on failure.

Errors carry a detail string written to be shown to a person. Where a failure has a remediation, the remediation is part of the payload rather than something to look up.