Skip to content

Endpoints

Base URL: https://api.kingminos.com. Try any of these live in the API console — the health check needs no key.

/health is unversioned. Capability routes live under /v1. The public host is https://api.kingminos.com. The live OpenAPI document is the same file at /openapi.json, /openapi.yaml, /v1/openapi.json, and /v1/openapi.yaml.

Business misses stay HTTP 200. Auth failures, validation, routing, and store problems use the status codes below.

Method Path Purpose
GET /health Liveness. KingMinos is up.
GET /openapi.json OpenAPI 3.1 document (JSON).
GET /openapi.yaml OpenAPI 3.1 document (YAML).
GET /v1/openapi.json Same JSON document under /v1.
GET /v1/openapi.yaml Same YAML document under /v1.
GET /v1/recipes/guidance How to use a KingMinos answer. Public, no key.
Method Path Purpose
GET /v1/providers Provider registry, billing mode, credit estimates.
GET /v1/capabilities Catalog for the live capabilities and default routing.
GET /v1/recipes Agent chaining recipes.
POST /v1/company/resolve Resolve a company. See Company resolve.
POST /v1/company/b2b-social Decide the company’s LinkedIn company page. See Company B2B social.
POST /v1/company/x-account Decide the company’s X (formerly Twitter) account.
POST /v1/company/icon Decide a hosted 256×256 PNG on logos.kingminos.com. See Company icon.
POST /v1/company/description Decide a stampable company description paragraph. See Company description.
POST /v1/company/domain Decide a write-safe company domain.
POST /v1/company/hierarchy Immediate and ultimate parent, plus a capped subsidiary list.
POST /v1/person/verify-employment Pre-flight whether to send to this person.
POST /v1/person/language Can we engage this person in English, and if not, in what language. API-tenant key. See Person language.
POST /v1/person/phone One verified dialable number for a person, in the format you pick. API-tenant key. See Person phone.
POST /v1/person/title Current job title, seniority and function. See Person title.
POST /v1/person/name Proper-cased first, last and full name from an email or LinkedIn URL. API-tenant key. See Person name.
POST /v1/person/b2b-social The person’s LinkedIn profile URL from an email. API-tenant key. See Person B2B social.
GET /v1/runs/{id} Fetch a recorded run in the same envelope as the POST.
GET /v1/webhooks Workspace webhook endpoints. See Webhooks.
POST /v1/webhooks Register a webhook endpoint (secret shown once). See Setting up webhooks.
GET /v1/webhooks/{id} One webhook endpoint. No secret. See Setting up webhooks.
PATCH /v1/webhooks/{id} Update url, description, enabled_events, or is_active. See Delivery and retries.
DELETE /v1/webhooks/{id} Soft-delete a webhook endpoint. See Setting up webhooks.
POST /v1/webhooks/{id}/rotate-secret New signing secret (shown once); the previous one stops working immediately. See Payloads and signatures.
POST /v1/webhooks/{id}/test Queue a signed test.ping delivery. See Testing and troubleshooting.
GET /v1/webhooks/{id}/deliveries Delivery log for one endpoint. See Testing and troubleshooting.
POST /v1/webhooks/{id}/deliveries/{delivery_id}/replay Re-send one delivery’s event. See Testing and troubleshooting.
GET /v1/events Emitted platform events — the reconciliation log. See Delivery and retries.
GET /v1/credentials List Your Keys status. Never the secret. See Vendor keys.
PUT /v1/credentials/{provider} Store vendor keys. See Vendor keys.
DELETE /v1/credentials/{provider} Revoke vendor keys.
GET /v1/balance Workspace credit snapshot. Requires billing:read. See Balance and usage.
GET /v1/balance/ledger Credit ledger. Requires billing:read. See Balance and usage.
GET /v1/balance/history Balance history (owner or session). Requires billing:read. See Balance and usage.
GET /v1/balance/forecast Runout forecast. Requires billing:read. See Balance and usage.
GET /v1/balance/health Balance health. Requires billing:read. See Balance and usage.
GET /v1/usage Charged vs no-charge usage. Requires billing:read. See Balance and usage.
POST /v1/feedback File product feedback. Free, never billed. See Feedback.
DELETE /v1/subjects/{subject_key} Tenant-scoped erasure. Requires the erase key scope.

The catalog (GET /v1/capabilities) lists the live capabilities:

  • company.resolve
  • company.b2b_social
  • company.x_account
  • company.icon
  • company.description
  • company.domain
  • company.hierarchy
  • person.verify_employment
  • person.language
  • person.phone
  • person.title
  • person.name
  • person.b2b_social

Each POST takes the identifiers you have, optional routing, optional external_ref, and optional schema_version. Omit schema_version to use envelope 2, or pin 2 on X-Router-Schema, ?schema=, and the body — they must agree.

X-Router-Explain / ?explain= is default (clean envelope) or full (adds trace). minimal is accepted as an alias of default so existing SFDC Flow headers keep working.

Status When
200 A decision, including a business miss.
201 Webhook endpoint created (POST /v1/webhooks).
202 Webhook test.ping queued (POST /v1/webhooks/{id}/test).
400 Validation, invalid routing, unsupported schema, or a required vendor credential is missing.
401 Missing, malformed, or mismatched Bearer token. See Authentication.
403 The key lacks the required scope (erase on subject delete). Webhooks: webhooks_not_enabled (workspace gate off) webhook_scope_required (token lacks the webhooks scope), or webhook_owner_required (mutation by a non-owner).
409 Idempotency conflict, in-flight, spent, or replay unavailable. Webhooks: webhook_endpoint_inactive (test on a paused endpoint).
429 Ingress rate limit, tenant budget, or per-key budget. The run was not started.
503 Store or credential broker unavailable. Retryable. Same Idempotency-Key.

Error bodies are { ok: false, schema_version, error, retryable, request_id } plus optional detail / hint. They never echo the API key.