Skip to guide

Reference

REST API reference

Escanor REST endpoints grouped by area, with links to the OpenAPI schemas for exact request and response fields.

Last updated

On this page

Base address: https://api.escanor.in/api/v1. Paths below are relative to it (a few, such as /integrations/... sign-in callbacks, live at the root). Send Authorization: Bearer <session access token> on authenticated dashboard requests. MCP keys and log-ingest tokens have separate endpoints and do not grant general REST access. See API and keys for how to get one.

Sign-in and sessions

22 endpoints.

MethodPathWhat it does
GET/auth/google/callbackGoogle OAuth callback (legacy path).
GET/auth/google/loginStart Google login (legacy shape: returns auth_url instead of authorization_url).
POST/auth/handoffA link that opens the website already signed in as the caller, for the phone app's "manage billing on the web".
DELETE/auth/integrations/{provider_id}Disconnect an integration.
POST/auth/integrations/{provider_id}/connectConnect a provider with a pasted token or credential set.
GET/auth/integrations/{provider_id}/statusConnection status for one provider, plus everything needed to connect it.
GET/auth/integrations/{provider}/authorizeStart OAuth flow for integration connection (GitHub, Vercel, etc.).
POST/auth/integrations/{provider}/exchangeExchange OAuth code for integration connection.
POST/auth/logoutLogout and invalidate current session.
GET/auth/meGet current authenticated user info.
GET/auth/oauth/{provider}/authorizeStart OAuth login (Google, GitHub).
GET/auth/oauth/{provider}/callbackSecond landing pad for connect callbacks.
POST/auth/oauth/exchangeTrade a one-time login code for escanor access/refresh tokens.
GET/auth/oauth/github/callbackGitHub OAuth callback — sign-in, or connecting the GitHub integration.
GET/auth/oauth/google/callbackGoogle OAuth callback — sign-in, or connecting Google Cloud.
POST/auth/refreshExchange refresh token for new access token.
GET/auth/sessionGet current user session info.
PATCH/auth/session/contextUpdate active organization/workspace context.
PATCH/auth/session/onboardingUpdate user onboarding status.
GET/auth/sessionsEvery place this account is signed in, newest first, with the one making this request marked.
DELETE/auth/sessions/{session_id}Sign one place out. Its tokens stop working on their next use.
POST/auth/sessions/revoke-othersSign out everywhere except here.

Your user

10 endpoints.

MethodPathWhat it does
GET/account/deletionDeletion Status
POST/account/deletionRequest Deletion
POST/account/deletion/cancelCancel Deletion
PATCH/users/meUpdate Profile
GET/users/me/notification-preferencesGet Preferences
PATCH/users/me/notification-preferencesUpdate Preferences
GET/users/me/push-statusPush Status
POST/users/me/push-testPush Test
DELETE/users/me/push-tokenA phone forgets itself (on sign-out), so the next person to use it does not get this person's alerts. Only your own.
POST/users/me/push-tokenRegister Push Token

MCP keys

3 endpoints.

MethodPathWhat it does
GET/tokensList MCP tokens.
DELETE/tokens/{token_id}Revoke MCP token.
POST/tokens/createGenerate MCP bearer token.

Integrations

39 endpoints.

MethodPathWhat it does
GET/integrationsList connected integrations for workspace.
DELETE/integrations/{provider_id}Disconnect an integration.
GET/integrations/{provider_id}/analyticsLive resources and health for one connected integration.
GET/integrations/{provider_id}/capabilitiesGet integration capabilities.
POST/integrations/{provider_id}/connectConnect a provider with a pasted token or credential set.
POST/integrations/{provider_id}/connect/local-agentConnect
GET/integrations/{provider_id}/detailGet detailed integration information.
GET/integrations/{provider_id}/local-agentStatus
GET/integrations/{provider_id}/oauth/authorizeStart OAuth flow for integration.
POST/integrations/{provider_id}/oauth/exchangeExchange OAuth code for integration tokens.
GET/integrations/{provider_id}/oauth/setupGet OAuth setup for specific provider.
GET/integrations/{provider_id}/projectsList integration projects (e.g., GCP projects).
POST/integrations/{provider_id}/projects/selectSelect integration projects.
GET/integrations/{provider_id}/resources/{resource_id}One resource of a connected integration, read live from the provider.
POST/integrations/{provider_id}/resources/{resource_id}/actionsRun one action against a resource -- the buttons on the resource page.
GET/integrations/{provider_id}/runtimeRuntime
POST/integrations/{provider_id}/runtime/actionsRuntime Action
GET/integrations/{provider_id}/statusConnection status for one provider, plus everything needed to connect it.
POST/integrations/{provider_id}/syncSync a specific integration.
GET/integrations/{provider}/callbackOAuth callback for integration connections.
GET/integrations/{provider}/connectStart OAuth flow for an integration.
GET/integrations/availableList available integrations.
GET/integrations/catalogIntegration catalog: categories, each with its provider list.
GET/integrations/connectedConnected integrations for the caller's workspace.
GET/integrations/healthFor each connected tool: can it still be used, and if not, why. Lets the apps say "reconnect GitLab" instead of showing nothing.
GET/integrations/oauth/setupGet OAuth setup information for all providers.
GET/integrations/onboarding-statusWhat this workspace has connected, and what it can still connect.
GET/integrations/providersList all available integration provider IDs.
POST/integrations/sync-allSync all connected integrations.
GET/integrations/vaultGet integration vault with all connected credentials.
POST/integrations/vault/initializeInitialize integration vault (load credentials, sync integrations).
GET/integrations/availableList all available integrations.
GET/integrations/catalog/{provider_id}Get detailed info about a specific provider.
POST/integrations/connect/api-keyConnect integration using API key or credentials.
POST/integrations/disconnectDisconnect an integration.
POST/integrations/syncSync resources from an integration.
GET/integrations/workspace/{workspace_id}List all connected integrations for a workspace.
GET/integrations/workspace/{workspace_id}/analyticsGet analytics for workspace integrations.
GET/integrations/workspace/{workspace_id}/status/{provider_id}Get connection status for a specific provider.

Projects and resources

40 endpoints.

MethodPathWhat it does
GET/infrastructure/resourcesInfrastructure
GET/infrastructure/resources/{slug}Infrastructure One
GET/projectsList Projects
GET/projects/{project_id}Project
GET/projects/{project_id}/analyticsAnalytics
GET/projects/{project_id}/cronCron
GET/projects/{project_id}/cron/executionsCron Executions
GET/projects/{project_id}/deploymentsDeployments
DELETE/projects/{project_id}/deployments/{deployment_id}Delete Deployment
GET/projects/{project_id}/deployments/{deployment_id}Deployment
GET/projects/{project_id}/deployments/{deployment_id}/build-logsBuild Logs
POST/projects/{project_id}/deployments/{deployment_id}/cancelCancel
GET/projects/{project_id}/deployments/{deployment_id}/functionsDeployment Functions List
GET/projects/{project_id}/deployments/{deployment_id}/logsDeployment Logs
POST/projects/{project_id}/deployments/{deployment_id}/redeployRedeploy
GET/projects/{project_id}/domainsDomains
POST/projects/{project_id}/domainsDomain Add
DELETE/projects/{project_id}/domains/{domain}Domain Remove
POST/projects/{project_id}/domains/{domain}/verifyDomain Verify
GET/projects/{project_id}/envEnv List
POST/projects/{project_id}/envEnv Create
DELETE/projects/{project_id}/env/{env_id}Env Delete
PATCH/projects/{project_id}/env/{env_id}Env Update
GET/projects/{project_id}/firewall/eventsFirewall Events
GET/projects/{project_id}/firewall/overviewFirewall Overview
GET/projects/{project_id}/functionsFunctions
GET/projects/{project_id}/functions/invocationsInvocations
GET/projects/{project_id}/logsProject Logs
GET/projects/{project_id}/observabilityRequests, errors and functions, derived from the runtime logs of the live deployment.
GET/projects/{project_id}/overviewOverview
GET/projects/{project_id}/settingsSettings
PATCH/projects/{project_id}/settingsUpdate Settings
GET/projects/{project_id}/speed-insightsSpeed Insights
GET/repositoriesRepositories
GET/runtimesList Runtimes
GET/runtimes/preferencesGet Prefs
PUT/runtimes/preferencesPut Prefs
POST/runtimes/provisionProvision Runtime
GET/servicesServices
GET/services/{slug}Service

Deployments, incidents and timeline

16 endpoints.

MethodPathWhat it does
POST/actions/k8s/restartRestart Pod
POST/actions/rollbackRollback
GET/alertsAlerts
GET/deploymentsDeployments
GET/deployments/{deployment_id}Deployment
POST/deployments/{deployment_id}/approveApprove
POST/deployments/{deployment_id}/rejectReject
GET/incidentsIncidents
GET/incidents/{incident_id}Incident
POST/incidents/{incident_id}/summaryIncident Summary
POST/repair/missionsCreate Repair
POST/repair/missions/{mission_id}/approveApprove Repair
GET/repair/platform-statusRepair Platform Status
GET/runbooksRunbooks
GET/timeline/activityTimeline
GET/timeline/eventsEvery recent event as one flat, newest-first list with its own detail, for a filterable, paged activity table.

Monitoring and analytics

29 endpoints.

MethodPathWhat it does
GET/analytics/export.csvExport
GET/analytics/overviewOverview
GET/healthHealth check.
GET/monitoring/overviewMonitoring
GET/observability/analysisAnalysis View
POST/observability/clientClient Logs
GET/observability/client-configWhat the browser or app should send, so it never collects what the workspace turned off.
GET/observability/clustersClusters
POST/observability/collectCollect Now
DELETE/observability/dataPurge
GET/observability/export.ndjsonExport
GET/observability/histogramVolume per bucket for exactly what the log explorer is showing, so the chart above the table always agrees with it.
POST/observability/ingestLogs from anything that can send them. Authenticated by an ingest token, not a session.
GET/observability/ingest-tokensList Tokens
POST/observability/ingest-tokensCreate Token
DELETE/observability/ingest-tokens/{token_id}Delete Token
GET/observability/logsLogs
GET/observability/logs/{entry_id}One
GET/observability/logs/streamServer-sent events: new entries as they are stored. Ends after a few minutes; the client reconnects from the last cursor.
GET/observability/logs/tailTail
GET/observability/overviewOverview
GET/observability/preferencesGet Prefs
PUT/observability/preferencesPut Prefs
GET/observability/sectionsSections
GET/observability/sections/{section}Section Detail
GET/observability/sourcesSources
GET/observability/sources/{source}Source Detail
GET/status/overviewStatus
GET/uptime/configWhere the website finds Enterprise Uptime (incidents, sources, settings), or that it is not set up.

The assistant and AI

39 endpoints.

MethodPathWhat it does
GET/ai-activityEverything the assistant did, from every place it acts: its runs and tasks, the chats you had with it, and every tool
POST/ai-activity/commandAi Command
POST/ai/autonomous/runAutonomous
GET/ai/capabilitiesCapabilities
POST/ai/chatChat
GET/ai/conversationsConversations
POST/ai/conversationsCreate Thread
DELETE/ai/conversations/{conversation_id}Delete
GET/ai/conversations/{conversation_id}/messagesMessages
POST/ai/conversations/{conversation_id}/permissions/{request_id}Answer
POST/ai/conversations/{conversation_id}/stopStop
POST/ai/conversations/{thread_id}/messagesThread Message
GET/ai/employeesEmployees
GET/ai/investigations/{investigation_id}Investigation
POST/ai/investigations/{investigation_id}/approveApprove Investigation
POST/ai/jarvis/commandJarvis Command
POST/ai/jarvis/runJarvis Run
GET/ai/jarvis/runsJarvis Runs
GET/ai/jarvis/runs/{run_id}Jarvis Run Detail
POST/ai/jarvis/runs/{run_id}/cancelCancel Jarvis Run
GET/ai/machineThe assistant's machine: state, what happened on it, and (on request) its recent output.
GET/ai/missionsList Missions
POST/ai/missionsCreate Mission
GET/ai/missions/{mission_id}Get Mission
POST/ai/missions/{mission_id}/cancelCancel Mission
POST/ai/missions/{mission_id}/retryRetry Mission
GET/ai/missions/templatesMission Templates
GET/ai/modelsEvery model, each marked available or not (and why), with the default: the first that can answer.
GET/ai/providers/healthProviders Health
POST/ai/providers/health/{provider_id}/testProvider Test
GET/ai/recommendationsAi Recommendations
GET/ai/statusWhere the assistant is. Also what gets it started and keeps it healthy: poll this.
GET/ai/toolsAi Tools
GET/ai/usageWhat this workspace's assistant has used. Real numbers from the model gateway when there is one.
POST/ai/voice/resolveVoice Resolve
POST/ai/voice/stepVoice Step
GET/ai/workspaceAi Workspace
GET/llm/{path}Proxy
POST/llm/{path}Proxy

Automations

14 endpoints.

MethodPathWhat it does
GET/autopilotOverview
POST/autopilot/pauseThe kill switch: nothing new starts, nothing is answered, every run stops now.
PUT/autopilot/policySet Policy
POST/autopilot/resumeResume
GET/autopilot/runsRuns
POST/autopilot/runsStart
GET/autopilot/runs/{run_id}Run Detail
POST/autopilot/runs/{run_id}/approveApprove
POST/autopilot/runs/{run_id}/denyDeny
POST/autopilot/runs/{run_id}/stopStop
POST/autopilot/triggersAdd Trigger
DELETE/autopilot/triggers/{trigger_id}Remove Trigger
PATCH/autopilot/triggers/{trigger_id}Edit Trigger
POST/autopilot/triggers/{trigger_id}/runRun Trigger Now

Workspaces and teams

23 endpoints.

MethodPathWhat it does
GET/audit-logsAudit Logs
GET/connectionsList all user connections (OAuth integrations, not MCP tokens).
GET/inboxInbox
GET/organizationsList user's organizations (workspace mapped as org for compatibility).
GET/organizations/{organization_id}/workspacesList workspaces in an organization.
GET/searchSearch
GET/teamTeam
POST/team/notifyTeam Notify
GET/workspace/ai-context/connectorsContext Connectors
POST/workspace/ai-context/connectorsCreate Connector
DELETE/workspace/ai-context/connectors/{connector_id}Disconnect Connector
PATCH/workspace/ai-context/connectors/{connector_id}Update Connector
DELETE/workspace/ai-context/connectors/{connector_id}/contextDelete Context
POST/workspace/ai-context/importsImport Context
POST/workspace/ai-context/imports/previewPreview Import
GET/workspace/ai-context/providersContext Providers
GET/workspace/graphGraph
GET/workspace/graph/nodes/{node_id}/neighborhoodGraph Neighborhood
GET/workspace/projectsEvery project, site, service and pipeline from every connected platform, in one list.
GET/workspace/settingsWorkspace Settings
PATCH/workspace/settingsRename the workspace or change its defaults. Owners and admins only; every change is audited.
GET/workspace/sourcesWorkspace Sources
PUT/workspaces/{workspace_id}/runtime-preferencesPut Workspace Prefs

Plans and billing

8 endpoints.

MethodPathWhat it does
POST/billing/cancelCancel
POST/billing/change-planSwitch between paid plans. Up is immediate (the difference is charged by Razorpay); down waits for the period to end.
POST/billing/checkoutCheckout
GET/billing/entitlementsEntitlements
GET/billing/invoicesInvoices
GET/billing/plansPlans
GET/billing/subscriptionSubscription
POST/billing/verifyVerify

Security and privacy

11 endpoints.

MethodPathWhat it does
GET/compliance/consentsGet Consents
POST/compliance/consentsRecord Consent
GET/compliance/me/exportExport My Data
GET/compliance/requestsList Requests
POST/compliance/requestsOpen Request
GET/compliance/requests/{request_id}Get Request
GET/security/2faTwo Factor Status
POST/security/2fa/backup-codesTwo Factor Backup Codes
POST/security/2fa/disableTwo Factor Disable
POST/security/2fa/enableTwo Factor Enable
POST/security/2fa/setupTwo Factor Setup

Everything else

MethodPathWhat it does
GET/API info.
GET/.well-known/oauth-authorization-serverRFC 8414. Plain OAuth clients -- MCP among them -- look here, not at the OIDC path.
GET/.well-known/openid-configurationOpenID Connect Discovery 1.0 §4.
GET/oidc/consent/{request_id}What the consent screen needs to render: who is asking, and for what.
POST/oidc/consent/{request_id}Record the user's decision and return where the browser should go next.
GET/oidc/grantsApplications this user has connected, for a "connected apps" screen.
DELETE/oidc/grants/{client_id}Disconnect an application: forget the consent and kill its tokens.
GET/healthHealth check.
GET/oidc/authorizeStart an authorization code flow.
POST/oidc/introspectRFC 7662. Lets a resource server ask what a token is.
GET/oidc/jwks.jsonPublic keys for verifying tokens this provider signed.
GET/oidc/logoutOpenID Connect RP-Initiated Logout 1.0.
POST/oidc/logoutOpenID Connect RP-Initiated Logout 1.0.
POST/oidc/registerRFC 7591 §3.1.
DELETE/oidc/register/{client_id}RFC 7592 §2.3 -- deregister, taking the client's live tokens with it.
GET/oidc/register/{client_id}RFC 7592 §2.1 -- read the current registration.
PUT/oidc/register/{client_id}RFC 7592 §2.2 -- update the descriptive fields and redirect URIs.
POST/oidc/revokeRFC 7009. Always answers 200, even for an unknown token.
POST/oidc/tokenExchange a grant for tokens (RFC 6749 §3.2).
GET/oidc/userinfoClaims about the authenticated user (OIDC Core §5.3).
POST/oidc/userinfoClaims about the authenticated user (OIDC Core §5.3).

Need help? Contact support with a redacted error and the affected version.