For AI agents: the docs index is at https://docs.usecanopy.com/llms.txt. Append .md to any documentation page URL to get its markdown version.
| field | type | description | properties |
|---|
| policy_stream_id | string(uuid) | ID of the Policy Stream | |
| insurance_provider_name | string | Carrier ID of the agent portal the stream watches | enum: libertymutual_agent, travelers_agent |
| status | string | ACTIVE: the stream runs daily. NEEDS_REAUTH: the portal rejected the login, so the stream is stopped until the part named in needs_reauth_reason is replaced in the dashboard. PAUSED: the stream was paused and does not run. | enum: ACTIVE, NEEDS_REAUTH, PAUSED |
| needs_reauth_reason | string | null | Which part of the login the portal rejected, or null when the login works. Replace that part in the dashboard to resume the stream. A paused stream keeps PAUSED as its status but still reports this. | enum: CREDENTIALS_REJECTED, TOTP_SECRET_REJECTED, LOGIN_CODE_NOT_RECEIVED, null |
| is_sandbox | boolean | Whether this is a sandbox stream. Sandbox streams run on a fake book that changes every day, and are only visible to sandbox API keys. | |
| checking_sign_in | boolean | True while a sign-in check on an active stream is queued or running, such as right after the stream is connected, resumed, or its login is replaced | |
| next_run_at | string(date-time) | null | When the stream's next daily run is due | |
| created_at | string(date-time) | When the stream was connected | |
| mfa_method | string | How the login gets its second-step code. TOTP: generated from the portal's authenticator secret. EMAIL: emailed by the carrier to the Canopy login-code inbox in mfa_email. | enum: TOTP, EMAIL |
| mfa_email | string(email) | null | The Canopy login-code inbox the carrier sends codes to, for EMAIL sign-in | |
| field_values | object | The login's readable fields, such as username. Secrets like the password and authenticator secret are never returned. | additionalProperties: [object Object] |