When the agent cannot reach the data

Most failures are one of four things: the client is not signed in to Apify (401, Needs authentication), the run takes longer than the synchronous endpoint's 300 seconds (408), the client times out first (Codex waits 60 seconds by default), or the config points at the retired SSE endpoint. The fixes below say which one you have and what to change. Every answer links the documentation it comes from, checked 2026-11-11.

Apify MCP server

Why does the client say Unauthorized or invalid token?

Every Apify Actor tool needs a signed-in Apify account. Reconnect the server so the OAuth sign-in runs again, or switch to the token variant: an Authorization: Bearer header with an API token from Apify Console, Settings, API and integrations. For a local server the token must be in the server's own env block, not only in your shell.

Source: Apify MCP server README

Why did my agent's tool list change after an update?

Without a tools parameter Apify's server loads its default tool set, which changes between releases. The URLs on this site pin the tools with ?tools=, so the agent always gets the same Actor tool plus fetch-actor-details. Apify's README gives the same advice for production.

Source: Apify MCP server README

What happens when the agent sends input the Actor rejects?

The server answers with the Actor's input schema, so the agent can fix the arguments and call again. The fetch-actor-details tool in every scoped URL lets it read that schema before the first call.

Source: Apify MCP server README

My old config uses mcp.apify.com/sse and stopped working. Why?

Apify retired the SSE transport on 1 April 2026. Use https://mcp.apify.com with the streamable HTTP transport, as every config on this site does.

Source: Apify changelog: MCP improvements

Claude Code

Claude Code shows Needs authentication. Why?

The server is added but not signed in. Type /mcp in an interactive session and authenticate, or run claude mcp login with the server name. Headless runs with claude -p cannot complete OAuth, so sign in once interactively or use the --header token variant.

Source: Claude Code MCP documentation

Claude Code warns that a tool result is too large. What can I change?

Claude Code warns above 10,000 tokens of tool output and caps it at 25,000 by default (MAX_MCP_OUTPUT_TOKENS raises it). Ask the agent for fewer results per call, for example a lower result limit for the Actor.

Source: Claude Code MCP documentation

Claude Desktop and claude.ai

Claude Desktop cannot start the local server. How do I fix it?

The local package needs Node.js 22 or newer. If it still fails with a connection error, clear the npx cache (rm -rf ~/.npm/_npx on macOS and Linux, the _npx folder under %LOCALAPPDATA%\npm-cache on Windows) or use the custom connector instead, which needs no local install.

Source: Apify documentation: Claude Desktop

The Claude connector worked yesterday and now fails. What helps?

Remove the custom connector and add it again so the OAuth sign-in starts fresh. Connectors are reached from Anthropic's cloud, not from your computer, and the Free plan allows one custom connector.

Source: Claude help: custom connectors

Cursor

Cursor does not show the server's tools. What should I check?

Open the Output panel and pick MCP Logs to see the connection error. A deeplink install that does nothing usually means an older Cursor build; update it or paste the JSON into mcp.json by hand.

Source: Cursor MCP documentation

VS Code

VS Code says the OAuth app is not registered. What now?

Run the command Authentication: Remove Dynamic Authentication Providers, pick Apify, then start the server again and sign in.

Source: Apify MCP server README

Why does VS Code block my Apify MCP server in Restricted Mode?

Workspace MCP configurations inherit Workspace Trust, and Restricted Mode prevents those servers from starting. Review the repository and its MCP configuration, then trust the workspace if appropriate; MCP: Reset Trust does not reset Workspace Trust.

Source: VS Code MCP troubleshooting

ChatGPT

ChatGPT does not see a new Actor I added to the URL. Why?

ChatGPT reads the tool list when the plugin is created. Open the plugin and use Refresh after you change the tools parameter, or create it again with the new URL.

Source: Apify MCP server README

Codex CLI

Codex gives up on a long Actor run. Why?

Codex waits 60 seconds for a tool call by default. Raise tool_timeout_sec in the server's [mcp_servers.<name>] table, or keep test runs small.

Source: Codex MCP documentation

Gemini CLI

Gemini CLI connects but finds no tools. What is wrong?

In settings.json a remote server needs httpUrl for streamable HTTP; url means the older SSE transport, which Apify's server no longer offers. Adding it with gemini mcp add -t http writes the right key.

Source: Gemini CLI MCP documentation

n8n workflows

Why does the workflow or script stop with HTTP 408?

The synchronous endpoint waits at most 300 seconds. After that it answers 408 while the run keeps going in Apify. Lower the result limit, or start the run asynchronously, wait for it to finish and then read its dataset.

Source: Apify API: run Actor synchronously and get dataset items

What do 400, 401, 402 and 403 from the Apify API mean?

Read error.type in the response body. 400 is invalid Actor input. 401 (user-or-token-not-found) means a token reached Apify but it is wrong or revoked. 402 with x402-payment-required means no token reached Apify at all: the n8n credential or the Authorization: Bearer header is missing, and Apify is offering its pay-per-run x402 route for agents instead; any other 402 is an exhausted usage limit on the account that pays for the run. 403 is a token without permission for that Actor or storage.

Source: Apify API: authentication; Apify documentation: agentic payments with x402; Apify API: run Actor synchronously and get dataset items

n8n says Install this node to use it after import. Why?

The workflow names a node or node version your instance does not have, usually a community node. The workflows here use only built-in nodes at versions n8n has shipped since 1.80, so they import on n8n Cloud and older self-hosted instances without community nodes.

Source: n8n issue: unrecognized node type after import

Why does the HTTP Request node time out before Apify answers?

Set the node's Timeout option to at least 300000 ms so n8n waits as long as Apify's synchronous endpoint. The workflows here already set 310000. A failure at exactly 30 seconds points to a proxy in front of n8n.

Source: n8n HTTP Request node documentation

Apify API from code

Why does starting an Actor through the API return run information instead of scraped results?

The Run Actor endpoint starts the Actor and immediately returns a Run object without waiting for completion. For results stored in the default dataset, pass the response's defaultDatasetId to Get dataset items; to wait and receive output directly, use the synchronous endpoint for dataset items or a key-value store record.

Source: Apify Run Actor API

Why are rows and hidden fields missing from my Apify dataset export?

The clean parameter enables both skipEmpty and skipHidden, removing empty items and fields whose names begin with #. This can produce fewer items than the requested limit; to retain those rows and fields, disable clean and ensure skipEmpty and skipHidden are also disabled.

Source: Apify Get dataset items API

Why does adding a request through the Apify API return an existing request ID?

The request queue deduplicates requests by uniqueKey, so adding a request with an existing key returns the existing request's ID. Check whether the response reports that the request was already present or handled, and use distinct uniqueKey values for requests that should be treated as different.

Source: Apify Add request API

Server mode (one request, one answer)

Why does a server-mode request answer 429?

If no Actor run can take the request within 2 minutes, Apify answers 429; the first response must also arrive within 5 minutes. Retry after a short pause, and send one request at a time while you test.

Source: Apify documentation: Standby mode

How do I authenticate server-mode requests?

Send Authorization: Bearer with your Apify API token. A token query parameter also works and is stripped before the request reaches the Actor, but a header keeps the token out of logs and browser history.

Source: Apify documentation: Standby mode

Why does my agent get a request tool instead of a run tool for this Actor?

Since version 0.21.0 Apify's MCP server serves an Actor that has a server interface through that interface: one tool call sends one HTTP request. Add call-actor to the tools parameter when the agent should also start full batch runs.

Source: Apify MCP server releases

Still stuck?

Start again from a config that is known to parse: every Actor page has one for each client, checked against the client's documented format. The n8n workflow checker finds unknown node versions and missing credentials before you import, and the client table shows which clients need a token header instead of OAuth.