LiquetDocsDashboard ↗
Docs/API Reference
API Reference

API Reference

Generated endpoint reference from the FastAPI OpenAPI schema.

Base URL in local development: http://localhost:8000. Production writes use Authorization: Bearer il_...; read routes also accept signed dashboard cookie where noted.

#Gate

#POST /v1/gate

Gate

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

JSON body

FieldTypeRequired
requeststring (min length 1, max length 20000)yes
session_idstring (min length 1, max length 120)yes
contextobject or nullno
historyarray of string (max length 20000) or nullno
clarification_responsestring (max length 20000) or nullno
action_risklowmediumhighirreversible or nullno
action_costnumber (min 0.0) or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

Example

result = intentlayer.gate("cancel it", "session-42")

#Events

#POST /v1/events

Ingest Event

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

JSON body

FieldTypeRequired
session_idstring (min length 1, max length 120)yes
eventrephraseacceptregenerateabandoncorrectionself_reportyes
detailstring (max length 20000)no
categorymissing_contextbroken_toolcapability_gaptask_failurespec_conflict or nullno
spec_fieldgoaloutput_formatscopeconstraints or nullno
created_atstring or nullno
gate_caughtbooleanno
signalobject or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

Example

intentlayer.record_outcome("session-42", "correction", detail="I meant order A1002")

#Playground

#POST /v1/playground

Playground

JSON body

FieldTypeRequired
requeststring (min length 1, max length 500)yes

Responses

StatusMeaning
200Successful Response
422Validation Error

#Failures

#GET /v1/failures

Failures

Parameters

NameInTypeRequired
pagequeryinteger (min 1)no
page_sizequeryinteger (min 1, max 100)no
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#Report

#GET /v1/report

Report

Parameters

NameInTypeRequired
daysqueryinteger (min 1, max 365)no
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#GET /v1/report.html

Report Html

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#Overview

#GET /v1/overview

Overview

Parameters

NameInTypeRequired
daysqueryinteger (min 1, max 365)no
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#Evals

#GET /v1/evals

Export Evals

Parameters

NameInTypeRequired
sincequerystring or nullno
clusterquerystring or nullno
dimensionquerygoaloutput_formatscopeconstraints or nullno
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#POST /v1/evals/{eval_id}/status

Set Eval Status

Parameters

NameInTypeRequired
eval_idpathstringyes
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

JSON body

FieldTypeRequired
statusacceptmuteyes

Responses

StatusMeaning
200Successful Response
422Validation Error

#Reviews

#GET /v1/reviews/queue

Review Queue

Parameters

NameInTypeRequired
pagequeryinteger (min 1)no
page_sizequeryinteger (min 1, max 100)no
cluster_idquerystring (max length 80) or nullno
missing_dimensionquerygoaloutput_formatscopeconstraints or nullno
date_fromquerystring or nullno
date_toquerystring or nullno
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#POST /v1/reviews

Submit Review

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

JSON body

FieldTypeRequired
event_idinteger (min 1.0)yes
correlation_idstring (min length 1, max length 120) or nullno
verdicttrue_misunderstandingfalse_alarmcorrect_understandingunclearyes
actual_intentstring (max length 20000)no
corrected_dimensiongoaloutput_formatscopeconstraints or nullno
corrected_cluster_idstring (min length 1, max length 80) or nullno
notestring (max length 20000)no
model_versionstring (max length 64)no

Responses

StatusMeaning
200Successful Response
422Validation Error

#GET /v1/reviews/stats

Review Stats

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#Experiment

#GET /v1/experiment

Get Experiment

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#Pilot

#GET /v1/pilot/metrics

Pilot Metrics

Parameters

NameInTypeRequired
window_daysqueryinteger (min 1, max 365)no
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#Interventions

#GET /v1/interventions/stats

Get Intervention Stats

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#Config

#GET /v1/config

Get Config

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#PUT /v1/config

Put Config

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

JSON body

FieldTypeRequired
ambiguity_thresholdnumber (min 0.0, max 1.0) or nullno
dimension_thresholdnumber (min 0.0, max 1.0) or nullno
failure_costnumber or nullno
misunderstanding_costnumber or nullno
ask_frictionnumber (min 0.0) or nullno
answered_fatigue_multipliernumber (min 1.0) or nullno
high_fatigue_multipliernumber (min 1.0) or nullno
request_length_frictionnumber (min 0.0) or nullno
request_length_referenceinteger or nullno
mode_defaultobservesuggestauto or nullno
intervention_modeoffsuggestenforce or nullno
low_risk_costnumber (min 0.0) or nullno
medium_risk_costnumber (min 0.0) or nullno
high_risk_costnumber (min 0.0) or nullno
irreversible_risk_costnumber (min 0.0) or nullno
issue_promotion_event_thresholdinteger (min 1.0) or nullno
issue_promotion_session_thresholdinteger (min 1.0) or nullno
issue_promotion_window_daysinteger (min 1.0) or nullno
experimentobject or nullno
cluster_rulesarray of object or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#Auth

#POST /v1/dashboard/login

Dashboard Login

JSON body

FieldTypeRequired
api_keystring (min length 4, max length 200)yes

Responses

StatusMeaning
200Successful Response
422Validation Error

#POST /v1/dashboard/logout

Dashboard Logout

Responses

StatusMeaning
200Successful Response

#Operations

#POST /v1/hooks/retell/{connector_id}

Retell Hook

Parameters

NameInTypeRequired
connector_idpathstringyes

Responses

StatusMeaning
200Successful Response
422Validation Error

#GET /v1/connectors

List Connectors

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#POST /v1/connectors

Create Connector

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

JSON body

FieldTypeRequired
providerstringyes
namestring (min length 1, max length 120)yes
api_keystring (min length 1, max length 500)yes
backfill_daysinteger (min 0.0, max 3650.0)no
agent_idsarray of string or nullno

Responses

StatusMeaning
201Successful Response
422Validation Error

#GET /v1/health/sync

Sync Health

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#GET /v1/connectors/{connector_id}

Get Connector

Parameters

NameInTypeRequired
connector_idpathstringyes
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#DELETE /v1/connectors/{connector_id}

Delete Connector

Parameters

NameInTypeRequired
connector_idpathstringyes
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
204Successful Response
422Validation Error

#POST /v1/connectors/{connector_id}/pause

Pause Connector

Parameters

NameInTypeRequired
connector_idpathstringyes
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#POST /v1/connectors/{connector_id}/resync

Resync Connector

Parameters

NameInTypeRequired
connector_idpathstringyes
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

JSON body

FieldTypeRequired
start_datestringyes
end_datestringyes

Responses

StatusMeaning
202Successful Response
422Validation Error

#POST /v1/connectors/{connector_id}/resume

Resume Connector

Parameters

NameInTypeRequired
connector_idpathstringyes
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#GET /v1/notifications/settings

Get Notification Settings

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#PUT /v1/notifications/settings

Put Notification Settings

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

JSON body

FieldTypeRequired
slack_webhook_urlstring (max length 1000) or nullno
digest_enabledboolean or nullno
digest_dayMondayTuesdayWednesdayThursdayFridaySaturdaySunday or nullno
alerts_enabledboolean or nullno
alert_growth_threshold_pctnumber (min 0.0) or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#GET /v1/notifications/rules

List Alert Rules

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#POST /v1/notifications/rules

Create Alert Rule

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

JSON body

FieldTypeRequired
namestring (min length 1, max length 120)yes
conditionobjectyes
channelslackemailwebhookno
enabledbooleanno

Responses

StatusMeaning
201Successful Response
422Validation Error

#PUT /v1/notifications/rules/{rule_id}

Update Alert Rule

Parameters

NameInTypeRequired
rule_idpathintegeryes
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

JSON body

FieldTypeRequired
namestring (min length 1, max length 120)yes
conditionobjectyes
channelslackemailwebhookno
enabledbooleanno

Responses

StatusMeaning
200Successful Response
422Validation Error

#DELETE /v1/notifications/rules/{rule_id}

Delete Alert Rule

Parameters

NameInTypeRequired
rule_idpathintegeryes
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
204Successful Response
422Validation Error

#POST /v1/notifications/test

Test Notification

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#POST /v1/notifications/digest/run

Run Digest

Parameters

NameInTypeRequired
x-cron-keyheaderstring or nullno
authorizationheaderstring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#POST /v1/notifications/alerts/run

Run Alerts

Parameters

NameInTypeRequired
x-cron-keyheaderstring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#POST /v1/ingest/sessions

Ingest Sessions

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#POST /v1/otel/v1/traces

Ingest Otlp Traces

Responses

StatusMeaning
200Successful Response

#GET /v1/signals

List Signals

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#POST /v1/signals

Create Signal

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

JSON body

FieldTypeRequired
namestring (min length 1, max length 120)yes
descriptionstring (max length 2000)no
typeregexinstrumentedyes
patternstring (max length 2000) or nullno
polaritypositivenegativeneutralno
enabledbooleanno

Responses

StatusMeaning
201Successful Response
422Validation Error

#GET /v1/signals/{signal_id}

Get Signal

Parameters

NameInTypeRequired
signal_idpathintegeryes
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#PUT /v1/signals/{signal_id}

Update Signal

Parameters

NameInTypeRequired
signal_idpathintegeryes
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

JSON body

FieldTypeRequired
namestring (min length 1, max length 120)yes
descriptionstring (max length 2000)no
typeregexinstrumentedyes
patternstring (max length 2000) or nullno
polaritypositivenegativeneutralno
enabledbooleanno

Responses

StatusMeaning
200Successful Response
422Validation Error

#DELETE /v1/signals/{signal_id}

Delete Signal

Parameters

NameInTypeRequired
signal_idpathintegeryes
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
204Successful Response
422Validation Error

#POST /v1/signals/{signal_id}/backfill

Backfill Signal

Parameters

NameInTypeRequired
signal_idpathintegeryes
daysqueryinteger (min 1, max 30) or nullno
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
202Successful Response
422Validation Error

Get Search

Parameters

NameInTypeRequired
queryquerystring (min length 1, max length 20000)yes
modequerykeywordsemanticno
date_fromquerystring or nullno
date_toquerystring or nullno
session_idquerystring (max length 120) or nullno
outcome_typequerystring or nullno
cluster_idquerystring (max length 80) or nullno
pagequeryinteger (min 1)no
page_sizequeryinteger (min 1, max 100)no
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#POST /v1/search

Post Search

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

JSON body

FieldTypeRequired
querystring (min length 1, max length 20000)yes
modekeywordsemanticno
date_fromstring or nullno
date_tostring or nullno
session_idstring (max length 120) or nullno
outcome_typestring or nullno
cluster_idstring (max length 80) or nullno
pageinteger (min 1.0)no
page_sizeinteger (min 1.0, max 100.0)no

Responses

StatusMeaning
200Successful Response
422Validation Error

#GET /v1/issues

List Issues

Parameters

NameInTypeRequired
statusqueryopenacknowledgedresolvedregressed or nullno
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#GET /v1/issues/{issue_id}

Get Issue

Parameters

NameInTypeRequired
issue_idpathintegeryes
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#PATCH /v1/issues/{issue_id}/status

Update Issue Status

Parameters

NameInTypeRequired
issue_idpathintegeryes
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

JSON body

FieldTypeRequired
statusopenacknowledgedresolvedregressedyes
resolved_notestring (max length 10000) or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#POST /v1/episodes/steps

Append Episode Steps

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#GET /v1/episodes/{session_id}

Get Episode

Parameters

NameInTypeRequired
session_idpathstringyes
correlation_idquerystring (max length 120) or nullno
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#POST /v1/outcomes

Post Business Outcome

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

JSON body

FieldTypeRequired
session_idstring (min length 1, max length 120)yes
correlation_idstring (min length 1, max length 120) or nullno
typeticket_reopenedrefund_reversedbooking_canceledhuman_transferaction_retriedtask_completedtask_failedcustomyes
valuenumber or nullno
currencystring (min length 1, max length 16) or nullno
detailstring (max length 20000)yes
external_refstring (min length 1, max length 500) or nullno
occurred_atstring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

Example

curl
curl "$INTENTLAYER_URL/v1/outcomes" \
  -u ":$INTENTLAYER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"session_id":"session-42","type":"task_completed","detail":"Task completed","external_ref":"job-42"}'

#GET /v1/usage

Get Usage

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#GET /v1/admin/usage

Get All Usage

Parameters

NameInTypeRequired
x-cron-keyheaderstring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#DELETE /v1/tenant/data

Delete Tenant Data

Parameters

NameInTypeRequired
x-confirm-tenantheaderstring or nullno
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#GET /v1/sessions/{session_id}

Get Session

Parameters

NameInTypeRequired
session_idpathstringyes
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#DELETE /v1/sessions/{session_id}

Delete Session

Parameters

NameInTypeRequired
session_idpathstringyes
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#POST /v1/maintenance/retention/run

Retention Run

Parameters

NameInTypeRequired
x-cron-keyheaderstring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#GET /health

Health

Responses

StatusMeaning
200Successful Response

#GET /v1/clusters/{cluster_id}

Get Cluster

Parameters

NameInTypeRequired
cluster_idpathstringyes
pagequeryinteger (min 1)no
page_sizequeryinteger (min 1, max 100)no
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#GET /v1/sessions

List Sessions

Parameters

NameInTypeRequired
limitqueryinteger (min 1, max 100)no
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#POST /v1/rules/draft

Create Draft Rule

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

JSON body

FieldTypeRequired
cluster_idstring (min length 1, max length 80)yes
question_templatestring (min length 1, max length 500)yes

Responses

StatusMeaning
200Successful Response
422Validation Error

#GET /v1/onboarding/status

Onboarding Status

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#POST /v1/api-keys

Create Api Key

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#POST /v1/clusters/run

Run Clusters

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#GET /v1/questions/stats

Get Question Stats

Parameters

NameInTypeRequired
authorizationheaderstring or nullno
intentlayer_sessioncookiestring or nullno

Responses

StatusMeaning
200Successful Response
422Validation Error

#Authentication

Writable production routes require bearer keys beginning with il_. Read routes accept same bearer key or signed intentlayer_session cookie. POST /v1/outcomes also accepts OTLP-compatible Basic authentication containing an il_ key. Local development can disable auth. Hosted demo rejects write routes with 403 except public playground.

#Rate limits

  • POST /v1/playground: 10 requests/minute/IP.
  • POST /v1/gate: 120 requests/minute/key when auth is enabled.
  • Limits use in-memory sliding windows per backend process. 429 includes Retry-After.

#Error codes

StatusMeaning
401Missing, invalid, or expired API credential/session.
403Write rejected in hosted demo mode.
404Eval ID not found for tenant.
422FastAPI request validation failed.
429In-process rate limit exceeded.
Source truthbackend/app/main.pybackend/app/evals.pybackend/app/reviews.pybackend/app/schemas.py