Returns when the permit ends, the wallets the user picked with their holdings, and their running agents. Pass chat to get a chat with Ask’s replies and proposals, and include=agents to get the agents the user can start. While retry_after_ms is set, read again after that many milliseconds. Safe to repeat.
With include=agents: the agents the user can start. Circuit's agents, popular community agents and the user's own; the agents most people started in the last 30 days come first, and Circuit's agents come first among equals. Null otherwise.
While Ask is answering in that chat or one of its proposals is being carried out, how many milliseconds to wait before reading again. Null when nothing is in progress.
Required range: x >= 0
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Circuit","colors":{"primary":"#6366F1","light":"#818CF8","dark":"#4F46E5"},"logo":{"light":"https://mintcdn.com/selvlabs/8ou4mGHUR7le0P64/images/logo-full-light.svg?fit=max\u0026auto=format\u0026n=8ou4mGHUR7le0P64\u0026q=85\u0026s=2c1db84c637da4973b7f09e617d72421","dark":"https://mintcdn.com/selvlabs/8ou4mGHUR7le0P64/images/logo-full.svg?fit=max\u0026auto=format\u0026n=8ou4mGHUR7le0P64\u0026q=85\u0026s=abff83e9e17fc30cf3885c82a5b28e09"},"favicon":"https://mintcdn.com/selvlabs/8ou4mGHUR7le0P64/images/logo.svg?fit=max\u0026auto=format\u0026n=8ou4mGHUR7le0P64\u0026q=85\u0026s=8be38c888893f7488644fd21ce3c0cc9","api":{"playground":{"proxy":false},"examples":{"prefill":true}},"navbar":{"links":[{"href":"https://circuit.org/articles","label":"Guides"},{"href":"https://circuit.org/strategies","label":"Strategies"}],"primary":{"type":"button","label":"Get Started","href":"https://app.circuit.org"}},"footer":{"socials":{"website":"https://circuit.org","x":"https://x.com/CircuitAI","telegram":"https://t.me/circuitorg"}},"styling":{"codeblocks":{"theme":{"light":"nord","dark":"nord"}},"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"selvlabs","hasAudioNarration":false,"actualSubdomain":"selvlabs","customDomains":["docs.circuit.org"],"gitSource":{"type":"github","owner":"circuitorg","repo":"monorepo","deployBranch":"production","contentDirectory":"docs/public","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af54df154881783984a9cf0","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"Agent Developers","count":32},{"language":"default","tag":"SDK Reference","count":21},{"language":"default","tag":"User Guide","count":21},{"language":"default","tag":"Apps","count":16},{"language":"default","tag":"API Reference","count":10},{"language":"default","tag":"CLI Reference","count":6},{"language":"default","tag":"Getting Started","count":5},{"language":"default","tag":"Using Circuit","count":3},{"language":"default","tag":"Overview","count":1},{"language":"default","tag":"Help","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"[data-component-part=\"field-required-pill\"]{display:none}"}],"page":{"pagePath":"api-reference/read-the-users-link","slug":"/api-reference/read-the-users-link","pageMetadata":{"title":"Read the user's link","description":"Returns when the permit ends, the wallets the user picked with their holdings, and their running agents. Pass `chat` to get a chat with Ask's replies and proposals, and `include=agents` to get the agents the user can start. While `retry_after_ms` is set, read again after that many milliseconds. Safe to repeat.","deprecated":null,"version":null,"openapi":"/partner-openapi.gen.json get /partner/v0.1","href":"/api-reference/read-the-users-link","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Returns when the permit ends, the wallets the user picked with their holdings, and their running agents. Pass \", _jsx(_components.code, {\n children: \"chat\"\n }), \" to get a chat with Ask’s replies and proposals, and \", _jsx(_components.code, {\n children: \"include=agents\"\n }), \" to get the agents the user can start. While \", _jsx(_components.code, {\n children: \"retry_after_ms\"\n }), \" is set, read again after that many milliseconds. Safe to repeat.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"codeStyling":{"theme":{"light":"nord","dark":"nord"}},"config":{},"pageMetadata":{"title":"Read the user's link","description":"Returns when the permit ends, the wallets the user picked with their holdings, and their running agents. Pass `chat` to get a chat with Ask's replies and proposals, and `include=agents` to get the agents the user can start. While `retry_after_ms` is set, read again after that many milliseconds. Safe to repeat.","deprecated":null,"version":null,"openapi":"/partner-openapi.gen.json get /partner/v0.1","href":"/api-reference/read-the-users-link","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"read","summary":"Read the user's link","description":"Returns when the permit ends, the wallets the user picked with their holdings, and their running agents. Pass `chat` to get a chat with Ask's replies and proposals, and `include=agents` to get the agents the user can start. While `retry_after_ms` is set, read again after that many milliseconds. Safe to repeat.","parameters":["de389139-7a15-4240-bf07-07e51ed10df9","275afc33-e367-406d-87c4-bbb4b87357ae"],"responses":{"200":"707c1e2a-39a4-47cd-b6fa-c7de6e72a870","default":"808ea307-4f44-4ba0-af9a-11befa175f5a"},"security":["52851858-5f62-4035-9bc7-72bcda3abce6"],"method":"get","type":"path","servers":["6ca4e187-e426-4a5d-bc45-9e4e65f2a302"],"path":"/partner/v0.1","baseUrlOptions":["https://api.circuit.org"],"title":"Read the user's link","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[],"disableProxy":true},"dependencies":{"parameters":{"de389139-7a15-4240-bf07-07e51ed10df9":{"name":"chat","in":"query","required":false,"schema":{"oneOf":[{"description":"A chat to return, starting with `chat_`.","type":"string","examples":["chat_7d3e1a90-4b2c-4e5f-8a6b-1c2d3e4f5a6b"],"example":"chat_7d3e1a90-4b2c-4e5f-8a6b-1c2d3e4f5a6b","uniqueKey":"oneOf.0","typeLabel":"string"},{"description":"A chat to return, starting with `chat_`.","type":"null","examples":["chat_7d3e1a90-4b2c-4e5f-8a6b-1c2d3e4f5a6b"],"example":"chat_7d3e1a90-4b2c-4e5f-8a6b-1c2d3e4f5a6b","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"string | null"}},"275afc33-e367-406d-87c4-bbb4b87357ae":{"name":"include","in":"query","required":false,"schema":{"oneOf":[{"type":"string","description":"Send `agents` to also return the agents the user can start.","const":"agents","example":"agents","uniqueKey":"oneOf.0","typeLabel":"string"},{"type":"null","description":"Send `agents` to also return the agents the user can start.","example":"agents","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"string | null"}}},"responses":{"707c1e2a-39a4-47cd-b6fa-c7de6e72a870":{"description":"OK","content":{"application/json":{"schema":{"description":"The user's link to your app: their wallets, running agents and, when asked for, a chat and the agents they can start.","type":"object","properties":{"permit_expires_at":{"type":"string","format":"date-time","description":"When the permit ends. Send the user a new link before then to keep their agents running.","isRequired":true,"uniqueKey":"permit_expires_at","typeLabel":"string\u003cdate-time>"},"wallets":{"description":"The wallets the user picked for your app. Empty when they picked none and use paper money only.","type":"array","items":{"description":"A wallet the user picked for your app.","type":"object","properties":{"id":{"description":"The wallet's id, starting with `wal_`.","type":"string","isRequired":true,"uniqueKey":"wallets.items.[INDEX].id","typeLabel":"string"},"name":{"description":"The name the user gave the wallet.","type":"string","isRequired":true,"uniqueKey":"wallets.items.[INDEX].name","typeLabel":"string"},"address":{"description":"The wallet's onchain address.","type":"string","isRequired":true,"uniqueKey":"wallets.items.[INDEX].address","typeLabel":"string"},"holdings":{"description":"Everything the wallet holds: tokens, perps, prediction shares and lending positions.","type":"array","items":{"description":"One asset or position in a wallet.","type":"object","properties":{"symbol":{"description":"The asset, such as `BTC` or `USDC`.","type":"string","isRequired":true,"uniqueKey":"wallets.items.[INDEX].holdings.items.[INDEX].symbol","typeLabel":"string"},"network":{"description":"Where it is held, such as `ethereum:8453`, `solana`, `hypercore` or `lighter`.","type":"string","isRequired":true,"uniqueKey":"wallets.items.[INDEX].holdings.items.[INDEX].network","typeLabel":"string"},"kind":{"description":"What it is: `token`, `perp`, `prediction`, `supplied` or `borrowed`. New kinds can appear.","type":"string","isRequired":true,"uniqueKey":"wallets.items.[INDEX].holdings.items.[INDEX].kind","typeLabel":"string"},"amount":{"description":"The amount as a decimal string. Negative for a short or a debt.","type":"string","isRequired":true,"uniqueKey":"wallets.items.[INDEX].holdings.items.[INDEX].amount","typeLabel":"string"},"value_usd":{"oneOf":[{"description":"Value in USD as a decimal string. Null when Circuit cannot price it.","type":"string","uniqueKey":"wallets.items.[INDEX].holdings.items.[INDEX].value_usd.oneOf.0","typeLabel":"string"},{"description":"Value in USD as a decimal string. Null when Circuit cannot price it.","type":"null","uniqueKey":"wallets.items.[INDEX].holdings.items.[INDEX].value_usd.oneOf.1","typeLabel":"null"}],"uniqueKey":"wallets.items.[INDEX].holdings.items.[INDEX].value_usd","typeLabel":"string | null"}},"required":["symbol","network","kind","amount"],"uniqueKey":"wallets.items.[INDEX].holdings.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"wallets.items.[INDEX].holdings","typeLabel":"object[]"},"value_usd":{"oneOf":[{"description":"Total value in USD as a decimal string. Null when a holding could not be priced.","type":"string","uniqueKey":"wallets.items.[INDEX].value_usd.oneOf.0","typeLabel":"string"},{"description":"Total value in USD as a decimal string. Null when a holding could not be priced.","type":"null","uniqueKey":"wallets.items.[INDEX].value_usd.oneOf.1","typeLabel":"null"}],"uniqueKey":"wallets.items.[INDEX].value_usd","typeLabel":"string | null"}},"required":["id","name","address","holdings"],"uniqueKey":"wallets.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"wallets","typeLabel":"object[]"},"sessions":{"description":"The user's running agents on those wallets and on paper money, newest first.","type":"array","items":{"description":"An agent running for the user on one wallet or on paper money.","type":"object","properties":{"id":{"description":"The session's id, starting with `ses_`.","type":"string","isRequired":true,"uniqueKey":"sessions.items.[INDEX].id","typeLabel":"string"},"agent":{"description":"The agent it runs, starting with `agt_`.","type":"string","isRequired":true,"uniqueKey":"sessions.items.[INDEX].agent","typeLabel":"string"},"name":{"description":"The agent's name.","type":"string","isRequired":true,"uniqueKey":"sessions.items.[INDEX].name","typeLabel":"string"},"status":{"oneOf":[{"type":"string","description":"The agent is running on its own schedule.","const":"running","isRequired":true,"uniqueKey":"sessions.items.[INDEX].status.oneOf.0","typeLabel":"string"},{"type":"string","description":"The agent is running but the user needs to do something. `error` says what, for example that the permit ends soon.","const":"needs_user","isRequired":true,"uniqueKey":"sessions.items.[INDEX].status.oneOf.1","typeLabel":"string"},{"type":"string","description":"The agent was stopped. Its positions stay open.","const":"stopped","isRequired":true,"uniqueKey":"sessions.items.[INDEX].status.oneOf.2","typeLabel":"string"}],"isRequired":true,"uniqueKey":"sessions.items.[INDEX].status","typeLabel":"string"},"started_at":{"type":"string","format":"date-time","description":"When the session started.","isRequired":true,"uniqueKey":"sessions.items.[INDEX].started_at","typeLabel":"string\u003cdate-time>"},"wallet":{"oneOf":[{"description":"The wallet it trades, starting with `wal_`. Null when it runs on paper money.","type":"string","uniqueKey":"sessions.items.[INDEX].wallet.oneOf.0","typeLabel":"string"},{"description":"The wallet it trades, starting with `wal_`. Null when it runs on paper money.","type":"null","uniqueKey":"sessions.items.[INDEX].wallet.oneOf.1","typeLabel":"null"}],"uniqueKey":"sessions.items.[INDEX].wallet","typeLabel":"string | null"},"value_usd":{"oneOf":[{"description":"The current value of what the session holds, in USD as a decimal string. Null until Circuit first values a new session, about a minute after it starts, or when a holding can't be priced.","type":"string","uniqueKey":"sessions.items.[INDEX].value_usd.oneOf.0","typeLabel":"string"},{"description":"The current value of what the session holds, in USD as a decimal string. Null until Circuit first values a new session, about a minute after it starts, or when a holding can't be priced.","type":"null","uniqueKey":"sessions.items.[INDEX].value_usd.oneOf.1","typeLabel":"null"}],"uniqueKey":"sessions.items.[INDEX].value_usd","typeLabel":"string | null"},"pnl_usd":{"oneOf":[{"description":"Profit or loss since the session started, in USD as a decimal string. Null when unknown.","type":"string","uniqueKey":"sessions.items.[INDEX].pnl_usd.oneOf.0","typeLabel":"string"},{"description":"Profit or loss since the session started, in USD as a decimal string. Null when unknown.","type":"null","uniqueKey":"sessions.items.[INDEX].pnl_usd.oneOf.1","typeLabel":"null"}],"uniqueKey":"sessions.items.[INDEX].pnl_usd","typeLabel":"string | null"},"error":{"oneOf":[{"description":"What the user needs to do when `status` is `needs_user`. Null otherwise.","type":"string","uniqueKey":"sessions.items.[INDEX].error.oneOf.0","typeLabel":"string"},{"description":"What the user needs to do when `status` is `needs_user`. Null otherwise.","type":"null","uniqueKey":"sessions.items.[INDEX].error.oneOf.1","typeLabel":"null"}],"uniqueKey":"sessions.items.[INDEX].error","typeLabel":"string | null"}},"required":["id","agent","name","status","started_at"],"uniqueKey":"sessions.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"sessions","typeLabel":"object[]"},"chat":{"oneOf":[{"type":"object","description":"The chat you asked for with `chat`, oldest message first. Null when you asked for none.","required":["id","messages"],"properties":{"id":{"description":"The chat's id, starting with `chat_`.","type":"string","isRequired":true,"uniqueKey":"chat.oneOf.0.id","typeLabel":"string"},"messages":{"description":"Every message in the chat, oldest first.","type":"array","items":{"description":"One message in a chat and Ask's reply to it.","type":"object","properties":{"id":{"description":"The message's id, starting with `msg_`.","type":"string","isRequired":true,"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].id","typeLabel":"string"},"chat":{"description":"The chat it belongs to, starting with `chat_`.","type":"string","isRequired":true,"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].chat","typeLabel":"string"},"status":{"oneOf":[{"type":"string","description":"Ask is still writing its reply.","const":"working","isRequired":true,"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].status.oneOf.0","typeLabel":"string"},{"type":"string","description":"The reply is complete.","const":"done","isRequired":true,"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].status.oneOf.1","typeLabel":"string"},{"type":"string","description":"Ask could not answer. `reply` says why.","const":"failed","isRequired":true,"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].status.oneOf.2","typeLabel":"string"}],"isRequired":true,"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].status","typeLabel":"string"},"proposals":{"description":"Trades, agent starts and top-ups that Ask proposed in this reply. Each needs your approval.","type":"array","items":{"description":"Something to carry out: a trade or agent change Ask proposed, or a start, top-up or stop you sent.","type":"object","properties":{"id":{"description":"The proposal's id, starting with `prop_`.","type":"string","isRequired":true,"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].id","typeLabel":"string"},"chat":{"description":"The chat it belongs to, starting with `chat_`. Read the link with it to follow the proposal.","type":"string","isRequired":true,"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].chat","typeLabel":"string"},"title":{"description":"What it does, starting with a verb, such as \"Buy 0.04 ETH on Lighter\" or \"Start Macro Trend\".","type":"string","isRequired":true,"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].title","typeLabel":"string"},"status":{"oneOf":[{"type":"string","description":"Waiting for you to approve or decline it.","const":"review","isRequired":true,"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].status.oneOf.0","typeLabel":"string"},{"type":"string","description":"Approved, and Circuit is carrying it out.","const":"processing","isRequired":true,"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].status.oneOf.1","typeLabel":"string"},{"type":"string","description":"Carried out.","const":"done","isRequired":true,"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].status.oneOf.2","typeLabel":"string"},{"type":"string","description":"Declined, or it expired before anyone approved it.","const":"declined","isRequired":true,"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].status.oneOf.3","typeLabel":"string"},{"type":"string","description":"It could not be carried out. `error` says why.","const":"failed","isRequired":true,"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].status.oneOf.4","typeLabel":"string"}],"isRequired":true,"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].status","typeLabel":"string"},"amounts":{"description":"The amounts it shows the user on Circuit: what it moves, or for `USD` what it spends or its notional. Empty when it shows none.","type":"array","items":{"description":"One amount a proposal moves.","type":"object","properties":{"amount":{"description":"The amount as a decimal string. Negative when it leaves the wallet in a swap.","type":"string","isRequired":true,"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].amounts.items.[INDEX].amount","typeLabel":"string"},"symbol":{"oneOf":[{"description":"The asset, such as `ETH` or `USDC`, or `USD` for a dollar amount. Null when unknown.","type":"string","uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].amounts.items.[INDEX].symbol.oneOf.0","typeLabel":"string"},{"description":"The asset, such as `ETH` or `USDC`, or `USD` for a dollar amount. Null when unknown.","type":"null","uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].amounts.items.[INDEX].symbol.oneOf.1","typeLabel":"null"}],"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].amounts.items.[INDEX].symbol","typeLabel":"string | null"},"network":{"oneOf":[{"description":"Where it is, such as `ethereum:8453`, `solana` or `lighter`. Null when unknown.","type":"string","uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].amounts.items.[INDEX].network.oneOf.0","typeLabel":"string"},{"description":"Where it is, such as `ethereum:8453`, `solana` or `lighter`. Null when unknown.","type":"null","uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].amounts.items.[INDEX].network.oneOf.1","typeLabel":"null"}],"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].amounts.items.[INDEX].network","typeLabel":"string | null"},"value_usd":{"oneOf":[{"description":"Value in USD as a decimal string. Null when Circuit has no value for it.","type":"string","uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].amounts.items.[INDEX].value_usd.oneOf.0","typeLabel":"string"},{"description":"Value in USD as a decimal string. Null when Circuit has no value for it.","type":"null","uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].amounts.items.[INDEX].value_usd.oneOf.1","typeLabel":"null"}],"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].amounts.items.[INDEX].value_usd","typeLabel":"string | null"}},"required":["amount"],"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].amounts.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].amounts","typeLabel":"object[]"},"error":{"oneOf":[{"description":"Why it failed when `status` is `failed`. Null otherwise.","type":"string","uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].error.oneOf.0","typeLabel":"string"},{"description":"Why it failed when `status` is `failed`. Null otherwise.","type":"null","uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].error.oneOf.1","typeLabel":"null"}],"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].error","typeLabel":"string | null"},"session":{"oneOf":[{"description":"The session it started or changed, starting with `ses_`. Null for trades.","type":"string","uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].session.oneOf.0","typeLabel":"string"},{"description":"The session it started or changed, starting with `ses_`. Null for trades.","type":"null","uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].session.oneOf.1","typeLabel":"null"}],"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX].session","typeLabel":"string | null"}},"required":["id","chat","title","status","amounts"],"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].proposals","typeLabel":"object[]"},"text":{"oneOf":[{"description":"What the user wrote. Null when Circuit followed up on its own.","type":"string","uniqueKey":"chat.oneOf.0.messages.items.[INDEX].text.oneOf.0","typeLabel":"string"},{"description":"What the user wrote. Null when Circuit followed up on its own.","type":"null","uniqueKey":"chat.oneOf.0.messages.items.[INDEX].text.oneOf.1","typeLabel":"null"}],"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].text","typeLabel":"string | null"},"reply":{"oneOf":[{"description":"Ask's reply in Markdown. Null while Ask is still working.","type":"string","uniqueKey":"chat.oneOf.0.messages.items.[INDEX].reply.oneOf.0","typeLabel":"string"},{"description":"Ask's reply in Markdown. Null while Ask is still working.","type":"null","uniqueKey":"chat.oneOf.0.messages.items.[INDEX].reply.oneOf.1","typeLabel":"null"}],"uniqueKey":"chat.oneOf.0.messages.items.[INDEX].reply","typeLabel":"string | null"}},"required":["id","chat","status","proposals"],"uniqueKey":"chat.oneOf.0.messages.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"chat.oneOf.0.messages","typeLabel":"object[]"}},"uniqueKey":"chat.oneOf.0","typeLabel":"object"},{"type":"null","description":"The chat you asked for with `chat`, oldest message first. Null when you asked for none.","uniqueKey":"chat.oneOf.1","typeLabel":"null"}],"uniqueKey":"chat","typeLabel":"object | null"},"agents":{"oneOf":[{"description":"With `include=agents`: the agents the user can start. Circuit's agents, popular community agents and the user's own; the agents most people started in the last 30 days come first, and Circuit's agents come first among equals. Null otherwise.","type":"array","items":{"description":"An agent the user can start: a published program that trades on its own schedule.","type":"object","properties":{"id":{"description":"The agent's id, starting with `agt_`. Pass it to start a session.","type":"string","isRequired":true,"uniqueKey":"agents.oneOf.0.items.[INDEX].id","typeLabel":"string"},"name":{"description":"The agent's name.","type":"string","isRequired":true,"uniqueKey":"agents.oneOf.0.items.[INDEX].name","typeLabel":"string"},"official":{"description":"True when Circuit made the agent.","type":"boolean","isRequired":true,"uniqueKey":"agents.oneOf.0.items.[INDEX].official","typeLabel":"boolean"},"yours":{"description":"True when the user made the agent.","type":"boolean","isRequired":true,"uniqueKey":"agents.oneOf.0.items.[INDEX].yours","typeLabel":"boolean"},"people":{"description":"How many people started this agent in the last 30 days.","type":"integer","format":"int32","isRequired":true,"uniqueKey":"agents.oneOf.0.items.[INDEX].people","typeLabel":"integer\u003cint32>"},"description":{"oneOf":[{"description":"One line on what the agent does. Null when its creator wrote none.","type":"string","uniqueKey":"agents.oneOf.0.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"One line on what the agent does. Null when its creator wrote none.","type":"null","uniqueKey":"agents.oneOf.0.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.oneOf.0.items.[INDEX].description","typeLabel":"string | null"},"return_percent":{"oneOf":[{"description":"How much its sessions have returned since they started, as a decimal percent. Null when unknown.","type":"string","uniqueKey":"agents.oneOf.0.items.[INDEX].return_percent.oneOf.0","typeLabel":"string"},{"description":"How much its sessions have returned since they started, as a decimal percent. Null when unknown.","type":"null","uniqueKey":"agents.oneOf.0.items.[INDEX].return_percent.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.oneOf.0.items.[INDEX].return_percent","typeLabel":"string | null"},"paper":{"oneOf":[{"description":"True when the agent can run on paper money, false when it needs real money. Null for a few seconds after its creator publishes a new version, while Circuit checks it.","type":"boolean","uniqueKey":"agents.oneOf.0.items.[INDEX].paper.oneOf.0","typeLabel":"boolean"},{"description":"True when the agent can run on paper money, false when it needs real money. Null for a few seconds after its creator publishes a new version, while Circuit checks it.","type":"null","uniqueKey":"agents.oneOf.0.items.[INDEX].paper.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.oneOf.0.items.[INDEX].paper","typeLabel":"boolean | null"},"start":{"oneOf":[{"type":"object","description":"What a start gives the agent. Null when it declares no starting asset.","required":["network","minimum"],"properties":{"network":{"description":"Where it is held, such as `ethereum:8453`, `solana` or `hypercore`, as in a holding.","type":"string","isRequired":true,"uniqueKey":"agents.oneOf.0.items.[INDEX].start.oneOf.0.network","typeLabel":"string"},"minimum":{"description":"The least a start takes, as a decimal string.","type":"string","isRequired":true,"uniqueKey":"agents.oneOf.0.items.[INDEX].start.oneOf.0.minimum","typeLabel":"string"},"symbol":{"oneOf":[{"description":"The asset, such as `USDC`. Null when Circuit has no symbol for it.","type":"string","uniqueKey":"agents.oneOf.0.items.[INDEX].start.oneOf.0.symbol.oneOf.0","typeLabel":"string"},{"description":"The asset, such as `USDC`. Null when Circuit has no symbol for it.","type":"null","uniqueKey":"agents.oneOf.0.items.[INDEX].start.oneOf.0.symbol.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.oneOf.0.items.[INDEX].start.oneOf.0.symbol","typeLabel":"string | null"}},"uniqueKey":"agents.oneOf.0.items.[INDEX].start.oneOf.0","typeLabel":"object"},{"type":"null","description":"What a start gives the agent. Null when it declares no starting asset.","uniqueKey":"agents.oneOf.0.items.[INDEX].start.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.oneOf.0.items.[INDEX].start","typeLabel":"object | null"}},"required":["id","name","official","yours","people"],"uniqueKey":"agents.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"agents.oneOf.0","typeLabel":"object[]"},{"description":"With `include=agents`: the agents the user can start. Circuit's agents, popular community agents and the user's own; the agents most people started in the last 30 days come first, and Circuit's agents come first among equals. Null otherwise.","type":"null","items":{"description":"An agent the user can start: a published program that trades on its own schedule.","type":"object","properties":{"id":{"description":"The agent's id, starting with `agt_`. Pass it to start a session.","type":"string"},"name":{"description":"The agent's name.","type":"string"},"description":{"oneOf":[{"description":"One line on what the agent does. Null when its creator wrote none.","type":"string"},{"description":"One line on what the agent does. Null when its creator wrote none.","type":"null"}]},"official":{"description":"True when Circuit made the agent.","type":"boolean"},"yours":{"description":"True when the user made the agent.","type":"boolean"},"return_percent":{"oneOf":[{"description":"How much its sessions have returned since they started, as a decimal percent. Null when unknown.","type":"string"},{"description":"How much its sessions have returned since they started, as a decimal percent. Null when unknown.","type":"null"}]},"paper":{"oneOf":[{"description":"True when the agent can run on paper money, false when it needs real money. Null for a few seconds after its creator publishes a new version, while Circuit checks it.","type":"boolean"},{"description":"True when the agent can run on paper money, false when it needs real money. Null for a few seconds after its creator publishes a new version, while Circuit checks it.","type":"null"}]},"people":{"description":"How many people started this agent in the last 30 days.","type":"integer","format":"int32"},"start":{"oneOf":[{"type":"object","description":"What a start gives the agent. Null when it declares no starting asset.","required":["network","minimum"],"properties":{"symbol":{"oneOf":[{"description":"The asset, such as `USDC`. Null when Circuit has no symbol for it.","type":"string"},{"description":"The asset, such as `USDC`. Null when Circuit has no symbol for it.","type":"null"}]},"network":{"description":"Where it is held, such as `ethereum:8453`, `solana` or `hypercore`, as in a holding.","type":"string"},"minimum":{"description":"The least a start takes, as a decimal string.","type":"string"}}},{"type":"null","description":"What a start gives the agent. Null when it declares no starting asset."}]}},"required":["id","name","official","yours","people"]},"uniqueKey":"agents.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents","typeLabel":"object[] | null"},"retry_after_ms":{"oneOf":[{"description":"While Ask is answering in that chat or one of its proposals is being carried out, how many milliseconds to wait before reading again. Null when nothing is in progress.","type":"integer","format":"uint64","minimum":0,"uniqueKey":"retry_after_ms.oneOf.0","typeLabel":"integer\u003cuint64>"},{"description":"While Ask is answering in that chat or one of its proposals is being carried out, how many milliseconds to wait before reading again. Null when nothing is in progress.","type":"null","format":"uint64","minimum":0,"uniqueKey":"retry_after_ms.oneOf.1","typeLabel":"null"}],"uniqueKey":"retry_after_ms","typeLabel":"integer\u003cuint64> | null"}},"required":["permit_expires_at","wallets","sessions"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"permit_expires_at":"2023-11-07T05:31:56Z","wallets":[{"id":"\u003cstring>","name":"\u003cstring>","address":"\u003cstring>","holdings":[{"symbol":"\u003cstring>","network":"\u003cstring>","kind":"\u003cstring>","amount":"\u003cstring>","value_usd":"\u003cstring>"}],"value_usd":"\u003cstring>"}],"sessions":[{"id":"\u003cstring>","agent":"\u003cstring>","name":"\u003cstring>","status":"running","started_at":"2023-11-07T05:31:56Z","wallet":"\u003cstring>","value_usd":"\u003cstring>","pnl_usd":"\u003cstring>","error":"\u003cstring>"}],"chat":{"id":"\u003cstring>","messages":[{"id":"\u003cstring>","chat":"\u003cstring>","status":"working","proposals":[{"id":"\u003cstring>","chat":"\u003cstring>","title":"\u003cstring>","status":"review","amounts":[{"amount":"\u003cstring>","symbol":"\u003cstring>","network":"\u003cstring>","value_usd":"\u003cstring>"}],"error":"\u003cstring>","session":"\u003cstring>"}],"text":"\u003cstring>","reply":"\u003cstring>"}]},"agents":[{"id":"\u003cstring>","name":"\u003cstring>","official":true,"yours":true,"people":123,"description":"\u003cstring>","return_percent":"\u003cstring>","paper":true,"start":{"network":"\u003cstring>","minimum":"\u003cstring>","symbol":"\u003cstring>"}}],"retry_after_ms":1}}},"exampleType":"generated"}},"exampleType":"generated"},"808ea307-4f44-4ba0-af9a-11befa175f5a":{"description":"Failed","content":{"application/json":{"schema":{"description":"A failed call. Handle it by HTTP status and `code`, and show `error` to the user.","type":"object","properties":{"error":{"description":"A message you can show the user.","type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"description":"A stable code such as `BAD_REQUEST`, `INSUFFICIENT_BALANCE`, `NOT_FOUND`, `CONFLICT` or `UNAUTHORIZED`. New codes can appear.","type":"string","isRequired":true,"uniqueKey":"code","typeLabel":"string"}},"required":["error","code"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"52851858-5f62-4035-9bc7-72bcda3abce6":{"permit":{"type":"http","scheme":"bearer","description":"The permit the user approved for your app.","scopes":[],"schemeName":"permit"}}},"servers":{"6ca4e187-e426-4a5d-bc45-9e4e65f2a302":{"url":"https://api.circuit.org"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"The permit the user approved for your app.","scopes":[],"schemeName":"permit"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"The permit the user approved for your app.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"permit","name":"Authorization"}],"title":"permit"}]},"originalFileLocation":"partner-openapi.gen.json"},"subdomain":"selvlabs","siteName":"Circuit","title":"Read the user's link - Circuit","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T05:26:13.563Z","originalFileLocation":"api-reference/read-the-users-link.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Returns when the permit ends, the wallets the user picked with their holdings, and their running agents. Pass chat to get a chat with Ask\u0026#x27;s replies and proposals, and include=agents to get the agents the user can start. While retry_after_ms is set, read again after that many milliseconds. Safe to repeat.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Circuit\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/selvlabs/XJvZEiKL87V3Fa_3/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/selvlabs/XJvZEiKL87V3Fa_3/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/selvlabs/XJvZEiKL87V3Fa_3/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/selvlabs/XJvZEiKL87V3Fa_3/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/selvlabs/XJvZEiKL87V3Fa_3/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/selvlabs/XJvZEiKL87V3Fa_3/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/selvlabs/XJvZEiKL87V3Fa_3/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/selvlabs/XJvZEiKL87V3Fa_3/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/selvlabs/XJvZEiKL87V3Fa_3/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Read the user\u0026#x27;s link - Circuit\">\u003cmeta data-mint-head property=\"og:description\" content=\"Returns when the permit ends, the wallets the user picked with their holdings, and their running agents. Pass chat to get a chat with Ask\u0026#x27;s replies and proposals, and include=agents to get the agents the user can start. While retry_after_ms is set, read again after that many milliseconds. Safe to repeat.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Circuit\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.circuit.org/api-reference/read-the-users-link\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://selvlabs.mintlify.site/_mintlify/api/og/v2?division=API+Reference\u0026amp;title=Read+the+user%27s+link\u0026amp;description=Returns+when+the+permit+ends%2C+the+wallets+the+user+picked+with+their+holdings%2C+and+their+running+agents.+Pass+%60chat%60+to+get+a+chat+with+Ask%27s+replies+and+propos\u0026amp;theme=24f98e456ba48ac2f3578124\u0026amp;signature=05378a512bd7c6119cf3afb39ef0ef87cfd6d278850e5f631941f7be7d2c6860\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Read the user\u0026#x27;s link - Circuit\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Returns when the permit ends, the wallets the user picked with their holdings, and their running agents. Pass chat to get a chat with Ask\u0026#x27;s replies and proposals, and include=agents to get the agents the user can start. While retry_after_ms is set, read again after that many milliseconds. Safe to repeat.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://selvlabs.mintlify.site/_mintlify/api/og/v2?division=API+Reference\u0026amp;title=Read+the+user%27s+link\u0026amp;description=Returns+when+the+permit+ends%2C+the+wallets+the+user+picked+with+their+holdings%2C+and+their+running+agents.+Pass+%60chat%60+to+get+a+chat+with+Ask%27s+replies+and+propos\u0026amp;theme=24f98e456ba48ac2f3578124\u0026amp;signature=05378a512bd7c6119cf3afb39ef0ef87cfd6d278850e5f631941f7be7d2c6860\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/selvlabs/XJvZEiKL87V3Fa_3/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Circuit\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6366F1\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.circuit.org/api-reference/read-the-users-link\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/read-the-users-link.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.circuit.org/#organization\",\"name\":\"Circuit\",\"url\":\"https://docs.circuit.org\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/selvlabs/8ou4mGHUR7le0P64/images/logo-full-light.svg?fit=max\u0026auto=format\u0026n=8ou4mGHUR7le0P64\u0026q=85\u0026s=2c1db84c637da4973b7f09e617d72421\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.circuit.org#website\",\"name\":\"Circuit\",\"url\":\"https://docs.circuit.org\",\"publisher\":{\"@id\":\"https://docs.circuit.org/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.circuit.org/api-reference/read-the-users-link#webpage\",\"url\":\"https://docs.circuit.org/api-reference/read-the-users-link\",\"name\":\"Read the user's link\",\"description\":\"Returns when the permit ends, the wallets the user picked with their holdings, and their running agents. Pass chat to get a chat with Ask's replies and proposals, and include=agents to get the agents the user can start. While retry_after_ms is set, read again after that many milliseconds. Safe to repeat.\",\"dateModified\":\"2026-11-12T05:26:13.563Z\",\"isPartOf\":{\"@id\":\"https://docs.circuit.org#website\"},\"breadcrumb\":{\"@id\":\"https://docs.circuit.org/api-reference/read-the-users-link#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.circuit.org/api-reference/read-the-users-link#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Apps\",\"item\":\"https://docs.circuit.org/apps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Read the user's link\",\"item\":\"https://docs.circuit.org/api-reference/read-the-users-link\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.circuit.org/api-reference/read-the-users-link#apireference\",\"headline\":\"Read the user's link\",\"name\":\"Read the user's link\",\"description\":\"Returns when the permit ends, the wallets the user picked with their holdings, and their running agents. Pass chat to get a chat with Ask's replies and proposals, and include=agents to get the agents the user can start. While retry_after_ms is set, read again after that many milliseconds. Safe to repeat.\",\"url\":\"https://docs.circuit.org/api-reference/read-the-users-link\",\"mainEntityOfPage\":{\"@id\":\"https://docs.circuit.org/api-reference/read-the-users-link#webpage\"},\"dateModified\":\"2026-11-12T05:26:13.563Z\",\"publisher\":{\"@id\":\"https://docs.circuit.org/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.circuit.org#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Circuit\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Circuit\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/read-the-users-link.md","siteName":"Circuit","nav":{"global":null,"tabs":[{"tab":"User Guide","groups":[{"group":"Overview","pages":[{"title":"Agentic Trading","href":"/introduction"}]},{"group":"Using Circuit","pages":[{"title":"Get Started","href":"/agent-users/get-started"},{"title":"Running Agents","href":"/agent-users/running-agents"},{"title":"Wallets \u0026 Security","href":"/agent-users/wallets-and-security"}]},{"group":"Apps","pages":[{"title":"Build Circuit into your app","href":"/apps"},{"title":"Quickstart","href":"/apps-quickstart"},{"title":"Test with Paper trading","href":"/apps-testing"},{"title":"Concepts","href":"/apps-concepts"},{"title":"Reference client","href":"/apps-client"},{"title":"Webhook providers","description":"How a trusted provider pushes events to Circuit, so agents with a webhook trigger run on each one.","href":"/webhooks"},{"group":"API Reference","pages":[{"title":"Read the user's link","deprecated":null,"version":null,"openapi":"/partner-openapi.gen.json get /partner/v0.1","href":"/api-reference/read-the-users-link"},{"title":"Act for the user","description":"Does one thing for the user: sends what they wrote to Ask Circuit, starts, tops up or stops an agent, or approves or declines a proposal. Returns the message or proposal it created or changed. Starts, top-ups, stops and approvals take effect immediately, so send them only after the user confirms in your app. Send an `Idempotency-Key` and resend with the same key if the network fails; Circuit then acts once. Approving or declining again returns the proposal unchanged, and the opposite decision on a decided proposal returns 409.","deprecated":null,"version":null,"openapi":"/partner-openapi.gen.json post /partner/v0.1","href":"/api-reference/act-for-the-user"}]}]},{"group":"Help","pages":[{"title":"Support","href":"/support"}]}]},{"tab":"Agent Developers","pages":[{"title":"Agent Developers","href":"/agent-developers/overview"}]}]},"basePath":"","title":"Read the user's link - Circuit","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CybtLBIt.js","utils-BMLj2fvV.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-B6In562Y.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dr8Mfhp9.js","snippetPresets-2rmQvMVl.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-WMqJYdZj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CJ-MlPHu.js","shallow-dY3TMRCk.js","getApiPlaygroundDisplay-v-1B2bKm.js","CodeSnippet-BDhiTB7U.js","CodeSnippets-D9hnzQcS.js","Page-C4GwDT3_.js","getPastedJson-Th2V45jI.js","icon-BQXch1W9.js","MethodPill-BCqUneP3.js","DuplicateIcon-Q_-bhurZ.js","createIcon-DUjLHRqp.js","DynamicMarkdown-B-f2cqXQ.js","SectionHeading-Da5NsV4v.js","axios-vUo_bRtp.js","Markdown-D13FWkIM.js","clsx-D3Isdib3.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-C-XZBk9h.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink--qIqmmVG.js"]}