Skip to main content

Making requests

The services behind the API​

Wiselook is a set of independent services behind a single API gateway. Each owns one domain and exposes an HTTP surface:

ServiceOwns
CatalogMethodologies and competencies: the assessment IP.
AssessmentAn assessment run (an evaluation) and its scores.
AI ServiceClaire, the AI agent: conducts the conversation (text + voice), owns transcripts.
TenancyOrganisations (tenants), members, tags, invite codes, widgets, federations.
IdentityCanonical user accounts; the OIDC callback target.

Everything is reached through the gateway. There are two API surfaces:

  • Public (/v1/{resource}): what external callers reach (integrator backends, with an OAuth2 client-credentials token, and the widget in a visitor's browser, with a short-lived visitor JWT minted by the integrator's backend).
  • Internal (/internal/v1/{resource}): service-to-service only; not issuable to customer credentials.

This documentation covers the public surface. See the API Reference for the per-service endpoint detail.

Base URL and versioning​

All public endpoints live under /v1/:

https://<WISELOOK_HOST>/v1/{resource}

The version is at the path root. A breaking change to a resource's contract ships under /v2/; additive changes (new optional fields, new endpoints) stay on /v1/.

Resources​

ResourceServiceExample
/v1/methodologiesCatalogList / read methodologies
/v1/competenciesCatalogList competencies
/v1/evaluationsAssessmentCreate / read assessment runs
/v1/members/{tenant_user_id}/evaluationsAssessmentStart an assessment for a member
/v1/chat/messagesAI ServiceStream a turn from Claire, the AI agent (SSE)
/v1/transcripts/{id}AI ServiceRead a completed transcript
/v1/tenant-usersTenancyList / read members and their tags
/v1/access-codesTenancyCreate / list / revoke invite codes
/v1/tagsTenancyList your tags
/v1/adopted-methodologiesTenancyList your adopted methodologies
/v1/widgets/{id}TenancyWidget bootstrap (visitor JWT)
/v1/widgets/{id}/sessionsTenancyMint a visitor JWT for the widget

The API Reference has the full request/response shape for every endpoint.

Error responses​

Every error has the same shape:

{
"code": "snake_case_machine_readable",
"detail": "Human-readable explanation.",
"extra": { "any": "structured context" }
}

Branch on code; it's stable across versions. detail is for humans and may change wording. extra carries optional structured context (failing field, conflicting key, current state).

Common codes:

HTTPcodeMeaning
401http_401Missing or invalid bearer token.
403invalid_scopeToken lacks the scope this endpoint requires.
404http_404Resource not found (or not visible to your scope).
422http_422Request body failed validation.

Idempotency​

Write endpoints accept an Idempotency-Key header. Reusing the same key with the same body returns the original result instead of creating a duplicate.