intentic
Create your workspace
Models and accounts

Cursor accounts

Connecting a Cursor subscription, and the accounts already connected

On this page(5 sections)

Begin a sign-in, abandon one nobody finished, see what is connected, rename one, disconnect one. A sandbox can hold several side by side. Nothing is pasted back and there is no code to type: the page that opens is already addressed to the attempt, and the sandbox completes the exchange itself, so the way to learn it worked is to watch the account list.

POST/cursor/login/startBegin connecting a Cursor account

Hands back the page to sign in on. The sandbox finishes the handshake itself and stores the credential, so nothing has to be pasted back: watch the account list instead.

What you send

Nothing. Call it as it is.

What comes back

FieldType
urlThe page to open and sign…string
handshakeThis attempt's id, for abandoning itstring
expiresAtWhen this attempt stops being answerable,…number
Try itanswered in this tab
curl
curl -X POST "$SANDBOX/cursor/login/start" \
  -H "x-intentic-control: $INTENTIC_TOKEN"
TypeScript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.cursor.start();
POST/cursor/login/cancelAbandon a Cursor sign-in

Stops waiting on a sign-in nobody completed. An abandoned attempt also expires on its own.

What you send

FieldTypeWhere
handshakerequiredWhich attempt to stop waiting onstringbody

What comes back

FieldType
okAlways truetrue
Try itanswered in this tab
curl
curl -X POST "$SANDBOX/cursor/login/cancel" \
  -H "x-intentic-control: $INTENTIC_TOKEN" \
  -H "content-type: application/json" \
  -d '{"handshake":"…"}'
TypeScript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.cursor.cancel({
  "handshake": ""
});
GET/cursor/accountsConnected Cursor accounts

Each connected account, and whether its stored key is still good. Cursor publishes no plan-wide allowance, so these rows carry no usage reading.

What you send

FieldTypeWhere
forceMeasure the plan limits again before…stringquery

What comes back

FieldType
accountsThe connected accountsobject[]
idThe account's id, which is what…string
labelWhat it is called here, which…string
emailWho it signs in as, in…string
organizationWhich organisation it belongs to, where…string
scopeWhat the credential is permitted to…string
connectedAtWhen it was connected, in millisecondsnumber
needsReauthIts stored credential can no longer…boolean
detailWhy, in words a person can…string
usageHow full its plan limits were…object
windowsobject[]
kindstring
labelstring
utilizationnumber
resetsAtnumber
measuredAtnumber
Try itanswered in this tab
curl
curl "$SANDBOX/cursor/accounts" \
  -H "x-intentic-control: $INTENTIC_TOKEN"
TypeScript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.cursor.accounts();
POST/cursor/account/renameRename a Cursor account

Changes the label one account shows under, so several are tellable apart.

What you send

FieldTypeWhere
idrequiredWhich accountstringbody
labelrequiredThe new namestringbody

What comes back

FieldType
idThe account's id, which is what…string
labelWhat it is called here, which…string
emailWho it signs in as, in…string
organizationWhich organisation it belongs to, where…string
scopeWhat the credential is permitted to…string
connectedAtWhen it was connected, in millisecondsnumber
needsReauthIts stored credential can no longer…boolean
detailWhy, in words a person can…string
usageHow full its plan limits were…object
windowsobject[]
kindstring
labelstring
utilizationnumber
resetsAtnumber
measuredAtnumber
Try itanswered in this tab
curl
curl -X POST "$SANDBOX/cursor/account/rename" \
  -H "x-intentic-control: $INTENTIC_TOKEN" \
  -H "content-type: application/json" \
  -d '{"id":"a1b2c3d4","label":"Nightly changelog"}'
TypeScript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.cursor.rename({
  "id": "a1b2c3d4",
  "label": "Nightly changelog"
});
POST/cursor/account/disconnectDisconnect a Cursor account

Clears the stored key for one account. The others stay connected.

What you send

FieldTypeWhere
idrequiredWhich accountstringbody

What comes back

FieldType
okAlways truetrue
Try itanswered in this tab
curl
curl -X POST "$SANDBOX/cursor/account/disconnect" \
  -H "x-intentic-control: $INTENTIC_TOKEN" \
  -H "content-type: application/json" \
  -d '{"id":"a1b2c3d4"}'
TypeScript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.cursor.disconnect({
  "id": "a1b2c3d4"
});

Type to search every page, in the docs and the API reference.