API reference / Computer
Connect the AI plan
Signs one of the organization's AI plans in on the workspace's computer. Plans with method api_key take apiKey, which Troopy checks with the provider and stores only on the computer. Plans with method device_code take nothing and answer with a userCode to approve at verificationUrl; poll GET /ai-plans until the plan is connected. Plans with method paste_code take nothing and answer with a verificationUrl to sign in at; call again with the code the provider shows there. Needs a launched computer and an owner or admin.
/api/v1/computer/connectionOther ways to call it
troopy ai connecttroopy_connect_aiBody
application/jsonapiKeystringThe plan's API key, for plans whose method is api_key
codestringThe code the provider showed after signing in at verificationUrl, for plans whose method is paste_code
planstringWhich of the organization's AI plans to connect, by id. The default plan when left out
Response
200 · application/jsondata*object11 properties
provider*enum<string> | nullclaudechatgptgeminigrokcopilotopenrouterzaikimiminimaxqwenanthropicopenaicursor
method*enum<string> | nullHow the plan signs in: an API key; a code to approve on the provider's site (device_code); or signing in at the provider's site and pasting back the code it shows (paste_code). Null when Troopy can't connect the plan yet
api_keydevice_codepaste_code
status*enum<string>pending: waiting for someone to approve userCode at verificationUrl (device_code), or to sign in at verificationUrl and send the code back (paste_code)
nonependingconnectedfailed
userCode*string | nullThe code to enter at verificationUrl. Shown to owners and admins only
verificationUrl*string | nullexpiresAt*string | nullWhen userCode stops working
keyHint*string | nullThe last four characters of the API key in use
connectedAt*string | nullerror*string | nullWhy the last attempt failed, in words to show people
limitedUntil*string | nullOut of usage until then: teammates use the next plan down the list meanwhile
lapsedAt*string | nullSince when the sign-in lapsed and the plan's CLI couldn't renew it. Sign the plan in again (POST /computer/connection). Null while the sign-in is fresh