> ## Documentation Index
> Fetch the complete documentation index at: https://docs.itoflow.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# API troubleshooting

> Fix authentication, permission, input, rate-limit and browser errors from the HTTP API.

For problems connecting an AI assistant, see [MCP troubleshooting](https://docs.itoflow.ai/mcp/troubleshooting.md).

## Status codes

| Status | Usual cause | What to do |
| - | - | - |
| `400` | A missing or invalid field, such as a malformed symbol | Read the error body and fix the request. |
| `401` | The token is missing, expired or not an Itoflow access token | [Refresh the token](https://docs.itoflow.ai/authentication.md#refresh-an-expired-token) or sign in again. |
| `403` with `error code: 1010` | The request uses Python's default `User-Agent` (`Python-urllib`), which the API rejects | Set your own `User-Agent` header, such as `my-app/1.0`. |
| `403` | Your account can't use this resource, your plan doesn't cover it, or the request's `Origin` header names a site the API doesn't accept | Check the account you signed in with and your plan or credits. If you call from a server, don't forward the browser's `Origin` header. |
| `404` | The resource doesn't exist, or isn't yours | Check the ID and the account. |
| `409` | The request conflicts with the current state: a newer version, a duplicate name, a pending deletion, a monitor moving to its new runtime, changed plan terms or a changed trade proposal | Read the error `code` and the current state. If a person approved the old state, show them the new one before you retry. |
| `422` | Identifiers that disagree or aren't supported | Read the reason and the supported values it returns. |
| `429` | Rate limited | Wait for `Retry-After` seconds, then retry. |
| `5xx` | A temporary problem at Itoflow or a data provider | Retry reads a few times, waiting longer each time. Check the state before retrying a write. |

## Errors in the browser

If your web page calls the API and the browser reports a network or CORS error, but the same request works from cURL, the browser blocked it. The API accepts browser requests only from Itoflow's own websites, so requests from your site's front end will fail. Call the API from your server instead and keep the token there.

Your code must send an access token in the `Authorization` header. The Itoflow app's sign-in cookie isn't available to other sites, and these docs never send it.

## Feature-specific problems

* **Chat:** a dropped connection doesn't stop a research turn. Check the turn's status before you send the message again.
* **Strategies:** a `409` on an edit means someone saved a newer version. Reload it. After a `202` from a run, follow that run instead of starting another.
* **Monitors:** check `report_scheduling` after you enable a schedule. Follow the `execution_id` you got back; an older completed report doesn't mean the new one finished.
* **Billing:** a positive spending cap needs a paid plan. After a plan change, follow the payment status.
* **Portfolios and brokers:** approval, sending to the broker, and the fill are separate steps. Check the trade's attempts.

## Asking for help

Email [support@itoflow.ai](mailto:support@itoflow.ai), or see the [help center](https://itoflow.ai/help). Include the method and path, the status code, the time, and the error body. Remove the `Authorization` header, cookies and personal details first.

See [API conventions](https://docs.itoflow.ai/guides/api-conventions.md) for retries and units.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.