Profiles
A Profile stores reusable browser identity and login state. Pass profile_id to a DoAnything run to reuse it.
Current API
The backend does not expose POST /profiles creation or PATCH /profiles/{id}. Profiles are created or refreshed through interactive login:
POST /api/v1/projects/{pid}/profiles/login
GET /api/v1/projects/{pid}/profiles
GET /api/v1/projects/{pid}/profiles/{profile_id}
GET /api/v1/projects/{pid}/profiles/{profile_id}/login_state
POST /api/v1/projects/{pid}/profiles/{profile_id}/confirm
DELETE /api/v1/projects/{pid}/profiles/{profile_id}Start login with site_id and optional profile_id; the response includes profile_id, session_id, and live_url. The user completes login in the controlled browser, then the client calls confirm. site_id must be registered by the backend.
Use a Profile in a task
const run = await qoni.doAnything.run({
token,
prompt: "Open the internal system and read today's tasks.",
profileId: "prof_alice",
});Profile responses expose metadata such as state, last_alive_at, last_used_at, and last_failure_reason; cookie contents are not returned.
Current /track/tracks has no profile_id field; the unpublished SDK repair candidate also rejects profileId. Do not copy the DoAnything Profile option into Track; see Track for the compatibility boundary.