Hintora API

v1Operational

The boundary between Hintora clients and model providers. Every model call is authenticated, metered against a plan, and proxied, so no client ever holds a provider key.

https://api.hintora.ai/v1

Endpoints

GET/v1/health

Liveness and configuration

GET/v1/maintenance

Maintenance now or soon

POST/v1/auth/anonymous

Create an anonymous device session

GET/v1/capabilities

What works right now

GET/v1/app/requirement

Which app versions are still served

GET/v1/auth/options

Sign-in options

POST/v1/auth/app/sign-in

Start an app sign-in

GET/v1/auth/app/sign-in/{attemptId}

Continue to WorkOS AuthKit

GET/v1/auth/workos/callback

Finish WorkOS AuthKit

POST/v1/auth/app/sign-in/{attemptId}/codeSESSION

Issue the one-time app code

GET/v1/auth/app/sign-in/{attemptId}/confirmationSESSION

Read a browser sign-in’s confirmation

POST/v1/auth/app/sign-in/{attemptId}/confirmationSESSION

Answer a browser sign-in’s confirmation

POST/v1/auth/app/token

Exchange the app code for device tokens

POST/v1/auth/app/sign-in/{attemptId}/status

Check a browser sign-in

POST/v1/auth/app/email/verify

Sign in with the emailed code

POST/v1/auth/app/password

Sign in or sign up with a password

POST/v1/auth/token

Refresh an access token

POST/v1/auth/sign-outBEARER

Sign this device out

POST/v1/auth/web/handoffBEARER

Open the account area from the app

GET/v1/auth/web/handoff/{token}

Spend an account handoff

POST/v1/auth/web/sign-outSESSION

Sign this browser out

GET/v1/accountBEARER · SESSION

The account

PATCH/v1/accountBEARER · SESSION

Change the name or Help improve Hintora

PUT/v1/account/planBEARER · SESSION

Choose a plan

GET/v1/account/usageBEARER · SESSION

Usage this session and this week

GET/v1/account/devicesBEARER · SESSION

Signed-in devices

DELETE/v1/account/devices/{deviceId}BEARER · SESSION

Sign a device out

POST/v1/account/sign-out-everywhereBEARER · SESSION

Sign out everywhere

GET/v1/account/sign-in-methodsBEARER · SESSION

Ways to sign in

POST/v1/account/two-factor/setupBEARER · SESSION

Start setting up two-factor authentication

POST/v1/account/two-factor/confirmBEARER · SESSION

Turn on two-factor authentication

POST/v1/account/two-factor/disableBEARER · SESSION

Turn off two-factor authentication

POST/v1/account/two-factor/recovery-codesBEARER · SESSION

New recovery codes

POST/v1/auth/two-factor/verify

Finish a sign-in with the second step

GET/v1/home/slidesBEARER · SESSION

Home carousel slides

GET/v1/blog/posts

Published blog articles

GET/v1/blog/posts/{slug}

A published blog article

GET/v1/blog/images/{id}

A picture in a blog article

GET/v1/blog/studio/postsSESSION

Every blog article, for the editor

POST/v1/blog/studio/postsSESSION

Start a blog draft

GET/v1/blog/studio/posts/{id}SESSION

One blog article, for the editor

PATCH/v1/blog/studio/posts/{id}SESSION

Save or publish a blog article

DELETE/v1/blog/studio/posts/{id}SESSION

Delete a blog article

POST/v1/blog/studio/imagesSESSION

Upload a picture for a blog article

GET/v1/notificationsBEARER · SESSION

Notifications

POST/v1/notifications/readBEARER · SESSION

Mark notifications read

POST/v1/telemetry/eventsBEARER · SESSION

Send diagnostic events

POST/v1/ai/transformBEARER

Rewrite selected text

PUT/v1/account/avatarBEARER · SESSION

Set the profile photo

DELETE/v1/account/avatarBEARER · SESSION

Remove the profile photo

GET/v1/account/avatar/{userId}

A profile photo

GET/v1/account/activityBEARER · SESSION

Recent account activity

POST/v1/account/deleteBEARER · SESSION

Delete the account

GET/v1/account/restore

Restore it? (a page)

POST/v1/account/restore

Restore the account (the page’s answer)

GET/v1/support/ticketsBEARER · SESSION

Your conversations with the Hintora team

POST/v1/support/ticketsBEARER · SESSION

Write to the Hintora team

GET/v1/support/tickets/{id}BEARER · SESSION

One conversation

POST/v1/support/tickets/{id}/messagesBEARER · SESSION

Reply in a conversation

GET/v1/support/tickets/{id}/attachments/{attachmentId}BEARER · SESSION

A file in a conversation

GET/v1/staff/support/ticketsSIGNED

Every conversation, for Ops

GET/v1/staff/maintenanceSIGNED

Maintenance windows, for Ops

POST/v1/staff/maintenanceSIGNED

Schedule maintenance, or start it now, from Ops

PATCH/v1/staff/maintenance/{id}SIGNED

Change a maintenance window, from Ops

POST/v1/staff/maintenance/{id}/liftSIGNED

Lift a maintenance window now, from Ops

POST/v1/staff/maintenance/{id}/cancelSIGNED

Cancel a scheduled maintenance window, from Ops

GET/v1/staff/switchesSIGNED

Feature switches, for Ops

POST/v1/staff/switchesSIGNED

Switch a feature off, or back to as deployed, from Ops

GET/v1/staff/app-versionsSIGNED

App version requirements, for Ops

POST/v1/staff/app-versionsSIGNED

Set or clear a channel’s app version requirement, from Ops

POST/v1/staff/launch/invitesSIGNED

Invite people to the soft launch, from Ops

POST/v1/staff/launch/invites/{id}SIGNED

Steer one invitee’s follow-ups, from Ops

GET/v1/staff/launch/previewSIGNED

A follow-up email as it would go, for Ops

POST/v1/staff/launch/previewSIGNED

A follow-up email with unsaved words, for Ops

GET/v1/staff/launch/settingsSIGNED

The follow-up schedule as Ops edits it

PUT/v1/staff/launch/settingsSIGNED

Save the follow-up schedule

POST/v1/staff/launch/testSIGNED

Send a follow-up to yourself

POST/v1/staff/account-deletions/restoreSIGNED

Restore an account on its owner’s request, from Ops

GET/v1/staff/support/tickets/{id}SIGNED

One conversation, for Ops

POST/v1/staff/support/tickets/{id}/messagesSIGNED

Answer a conversation, from Ops

PUT/v1/staff/support/tickets/{id}/statusSIGNED

Set a conversation’s status, from Ops

GET/v1/staff/support/tickets/{id}/student-discountSIGNED

The student discount of a conversation’s account, for Ops

POST/v1/staff/support/tickets/{id}/student-discountSIGNED

Approve or decline a student discount request, from Ops

POST/v1/staff/support/tickets/{id}/attachments/{attachmentId}/linkSIGNED

A short-lived link to a file, for Ops

GET/v1/staff/support/files/{attachmentId}SIGNED

A file, through a staff link

GET/v1/referralsBEARER · SESSION

Referral link and referrals

GET/v1/referrals/codes/{code}

Who an invite link is from

POST/v1/referrals/invitesBEARER · SESSION

Invite people by email

POST/v1/referrals/redeemBEARER · SESSION

Use a friend’s code

GET/v1/pointer-stylesBEARER · SESSION

Pointer style in use, and the ones kept

PUT/v1/pointer-styles/choiceBEARER · SESSION

Use a pointer style

POST/v1/pointer-styles/generateBEARER · SESSION

Draw pointers from a description

POST/v1/pointer-styles/{id}/regenerateBEARER · SESSION

Redraw a kept pointer

POST/v1/pointer-styles/{id}/saveBEARER · SESSION

Keep a pointer and use it

DELETE/v1/pointer-styles/{id}BEARER · SESSION

Delete a pointer

GET/v1/libraryBEARER · SESSION

What the account library keeps

DELETE/v1/libraryBEARER · SESSION

Delete the server copy of the library

GET/v1/library/changesBEARER · SESSION

Library changes since a cursor

POST/v1/library/changesBEARER · SESSION

Push library changes

GET/v1/teamBEARER · SESSION

Your team

POST/v1/teamBEARER · SESSION

Start a team

PATCH/v1/teamBEARER · SESSION

Rename a team or change domain joining

POST/v1/team/invitesBEARER · SESSION

Invite people to your team

DELETE/v1/team/invites/{id}BEARER · SESSION

Withdraw an invitation

POST/v1/team/linkBEARER · SESSION

Replace the join link

POST/v1/team/joinBEARER · SESSION

Join a team

GET/v1/team/links/{token}

What a join link opens

PATCH/v1/team/members/{id}BEARER · SESSION

Change a member’s role

DELETE/v1/team/members/{id}BEARER · SESSION

Remove a member

POST/v1/team/leaveBEARER · SESSION

Leave your team

GET/v1/team/libraryBEARER · SESSION

Shared words and snippets

POST/v1/team/libraryBEARER · SESSION

Share a word or snippet

DELETE/v1/team/library/{id}BEARER · SESSION

Stop sharing a word or snippet

GET/v1/mcp/connectionsBEARER · SESSION

MCP server, tools and connected apps

DELETE/v1/mcp/connections/{id}BEARER · SESSION

Disconnect an MCP app

GET/v1/appsBEARER · SESSION

Apps to connect

GET/v1/apps/connectionsBEARER · SESSION

Connected apps

POST/v1/apps/{slug}/connectBEARER · SESSION

Start connecting an app

GET/v1/apps/{slug}/logoBEARER · SESSION

An app’s logo

GET/v1/sites/{host}/iconBEARER · SESSION

A website’s icon

POST/v1/actions/planBEARER · SESSION

Plan an order in a connected app

POST/v1/actions/confirmBEARER · SESSION

Carry out a confirmed order

POST/v1/actions/cancelBEARER · SESSION

Cancel an order

POST/v1/actions/optionsBEARER · SESSION

List where an order can go

POST/v1/actions/doBEARER

Do what the person told Hintora to do

POST/v1/agents/runsBEARER

Start an agent run

GET/v1/agentsBEARER

List the person’s saved agents and routines

POST/v1/agentsBEARER

Save an agent or a routine

GET/v1/agents/{agentId}BEARER

One saved agent or routine

PATCH/v1/agents/{agentId}BEARER

Change a saved agent or routine

DELETE/v1/agents/{agentId}BEARER

Delete a saved agent or routine

POST/v1/agents/draftBEARER

Draft a routine from words

POST/v1/agents/schedule/parseBEARER

Read timing words as a schedule

POST/v1/agents/whichBEARER

Read the answer to “Which one?”

GET/v1/agents/runsBEARER

List the person’s agent runs

DELETE/v1/agents/runsBEARER

Clear the person’s run history

GET/v1/agents/settingsBEARER

Read Settings › Agents

PATCH/v1/agents/settingsBEARER

Change Settings › Agents

GET/v1/agents/runs/{runId}BEARER

An agent run with its timeline

GET/v1/agents/runs/{runId}/eventsBEARER

Follow an agent run live

POST/v1/agents/runs/{runId}/controlBEARER

Pause, resume, stop, steer or background a run

POST/v1/agents/runs/{runId}/undoBEARER

Undo what an ended run made, or restore it

POST/v1/agents/runs/{runId}/local/{callId}BEARER

The Mac’s answer to a local tool call

POST/v1/agents/runs/{runId}/checkpoints/{checkpointId}/answerBEARER

Answer a run’s checkpoint

POST/v1/agents/runs/{runId}/checkpoints/{checkpointId}/cardBEARER

The card for a run’s checkpoint

DELETE/v1/apps/connections/{id}BEARER · SESSION

Disconnect an app

GET/v1/calendar/upcomingBEARER · SESSION

Upcoming events

GET/v1/meetingsBEARER

Meetings

POST/v1/meetingsBEARER

Start taking notes

POST/v1/meetings/{id}/chunksBEARER

Send a chunk of audio

POST/v1/meetings/{id}/finishBEARER

Finish a meeting

POST/v1/meetings/{id}/askBEARER

Ask about a meeting so far

GET/v1/meetings/{id}BEARER

A meeting

DELETE/v1/meetings/{id}BEARER

Delete a meeting

GET/v1/meBEARER

Identity, plan and usage

GET/v1/ai/modelsBEARER

Available assistant models

POST/v1/ai/messagesBEARER

Metered model call

POST/v1/ai/messages/{requestId}/recallBEARER

Reply to an answer's recall of the person's memories

POST/v1/ai/click-riskBEARER

Whether a control is safe to press for the person

POST/v1/drive/runsBEARER

Start a Drive run in the app in front

POST/v1/drive/stepBEARER

One step of a Drive run

POST/v1/drive/runs/{runId}/consentBEARER

Go ahead on a Drive run’s card

POST/v1/drive/runs/{runId}/finishBEARER

End a Drive run

POST/v1/ai/board3dBEARER

Build a small 3D model floating over the screen while the voice explains it

POST/v1/ai/progressBEARER

A progress acknowledgement to speak while an answer takes long

POST/v1/ai/narrateBEARER

One spoken sentence saying what Hintora is about to do while an answer is slow

POST/v1/ai/ack-lineBEARER

One short spoken line naming the task a slow route is about

POST/v1/ai/interceptBEARER

Route a question before answering it

POST/v1/ai/liveBEARER

Start a live answer

GET/v1/ai/live/{sessionId}/eventsBEARER

Follow a live answer

POST/v1/ai/live/{sessionId}/controlBEARER

Stop a live answer, or dig deeper

GET/v1/ai/live/picture/{token}BEARER

A live answer’s picture

POST/v1/ai/sketchBEARER

Explain what is on the screen by drawing on it while the voice explains

POST/v1/ai/sketch-steerBEARER

Say what words said over a drawing ask of it

POST/v1/ai/aboutBEARER

Answer a question typed in the Hub’s search about Hintora itself

POST/v1/ai/welcome-matchBEARER

Is this the welcome’s suggested question?

POST/v1/ai/display-scopeBEARER

Is this an order about which displays Hintora uses?

POST/v1/ai/openBEARER

Which page does "open that article" mean?

POST/v1/ai/nextBEARER

What might the person ask next?

POST/v1/ai/guide-driftBEARER

Read what the person did during a guide

POST/v1/ai/cardBEARER

Answer a question with a card of real data

POST/v1/voice/speechBEARER

Speak an answer

POST/v1/voice/transcriptionBEARER

Transcribe a recording

GET/v1/download-requests/sign-up

Sign up before the Mac download

POST/v1/start/visits

Count a start-page visit

POST/v1/start/sign-up

Start the start page’s sign-up

POST/v1/start/download-linkSESSION

The start page’s download link

GET/v1/start/download

Download the Mac app from the start page

GET/v1/email/unsubscribe

The follow-ups’ unsubscribe page

POST/v1/email/unsubscribe

Unsubscribe from the follow-ups

GET/v1/email/review

The follow-ups’ Trustpilot link

POST/v1/email/review

Open Trustpilot’s review page

GET/v1/launch/call

The onboarding call’s link

POST/v1/launch/call

Open the onboarding call’s booking page

POST/v1/releases/mac/ticketBEARER

Get a build ticket for dev and stage updates

GET/v1/releases/mac/{channel}/appcast.xml

Read the dev or stage update feed

GET/v1/releases/mac/{channel}/download/{tag}/{asset}

Download a dev or stage archive

POST/v1/download-requests

Email before the Mac download

POST/v1/waitlist

Record an access request

PATCH/v1/waitlist

Qualify an access request

GET/v1/billing/plans

Paid plans

POST/v1/billing/checkoutBEARER · SESSION

Start a checkout

GET/v1/billing/invoicesBEARER · SESSION

Invoices

POST/v1/billing/manageBEARER · SESSION

Manage the subscription

GET/v1/billing/summaryBEARER · SESSION

Plans and Billing: the account’s billing

POST/v1/billing/previewBEARER · SESSION

Price a plan change

POST/v1/billing/changeBEARER · SESSION

Apply a quoted change

POST/v1/billing/resumeBEARER · SESSION

Keep the plan

GET/v1/billing/cancelBEARER · SESSION

Cancel plan: what ends, and when

POST/v1/billing/cancelBEARER · SESSION

Cancel the plan

POST/v1/billing/cancel/offerBEARER · SESSION

Take the retention offer

POST/v1/billing/payment-methodBEARER · SESSION

Change the card

GET/v1/jobs/account-deletionsSIGNED

Finish held-up account deletions

POST/v1/jobs/account-deletionsSIGNED

Finish one older closure by hand

GET/v1/jobs/agentsSIGNED

Run the routines that are due

GET/v1/jobs/lifecycleSIGNED

Soft-launch follow-ups

GET/v1/jobs/upkeepSIGNED

Daily upkeep

POST/v1/webhooks/workosSIGNED

WorkOS events

POST/v1/webhooks/resendSIGNED

Resend delivery reports

POST/v1/webhooks/stripeSIGNED

Stripe events

POST/v1/webhooks/notify/{source}SIGNED

Operational notices

POST/v1/webhooks/whopSIGNED

Whop events

POST/v1/ai/boardBEARER

Draw a picture from scratch on a board beside the content while the voice explains

Machine-readable

/v1/openapi.json is generated from the same schemas the routes validate against, so it cannot drift from what the API actually accepts.

Authentication

Native clients sign in through WorkOS with PKCE: the app posts a challenge to /v1/auth/app/sign-in, the person signs in in their browser, and the app trades the code and its verifier at /v1/auth/app/token for device tokens. Access tokens are fifteen-minute JWTs sent as Authorization: Bearer. Refresh tokens are opaque and rotate on every use; presenting a rotated one revokes the device.

Errors

Every non-2xx response is application/problem+json per RFC 9457, with a stable type URI to branch on and an X-Request-Id matching the server log line. A 503 of type not-configured means this deployment is missing a setting that route needs, not that the request was wrong.