# XFiltered > Evaluate a post you submit now. User-submitted evaluation is available now. Automatic X watching needs an approved credential. This is not a live pre-publication gate. Pro is $49 / month. Power is $149 / month. ## Pay - [POST /v1/keys](https://xfiltered.com/v1/keys): Agent key mint. Returns 402 with pay_url and claim_url, 502 with error message when Stripe did not return a checkout URL, or 503 with error message when card checkout is not configured. Stripe Checkout uses published Pro price_data. No Price IDs are required. POST /v1/keys 402 human_checkout_url is https://app.xfiltered.com/checkout?tier=pro. POST /v1/keys 402 price.amountCents is 4900. POST /v1/keys 402 price.name is Pro. POST /v1/keys 402 error.message is Pro is $49 / month. Pay to mint an API key. POST /v1/keys 502 error.message is Stripe did not return a checkout URL. POST /v1/keys 503 error.message is Card checkout is not configured. - [Human Pro checkout](https://app.xfiltered.com/checkout?tier=pro): Secondary human card path. /checkout redirects to signup. ## Claim - [GET /v1/keys/claims/:id](https://xfiltered.com/v1/keys/claims/{id}): 402 unpaid with pay_url and claim_url, 202 minting with status and claim_url, 200 once with key, prefix, and tier, 409 already claimed with error already_claimed, 410 gone with error gone. GET /v1/keys/claims/:id 402 human_checkout_url is https://app.xfiltered.com/checkout?tier=pro. GET /v1/keys/claims/:id 402 price.amountCents is 4900. GET /v1/keys/claims/:id 402 price.name is Pro. GET /v1/keys/claims/:id 402 error.message is Pro is $49 / month. Pay to mint an API key. GET /v1/keys/claims/:id 409 error.message is This key was already claimed. GET /v1/keys/claims/:id 410 error.message is This claim is expired or was not found. ## Auth - 401 with error invalid_key means a bad API key. 402 means unpaid. - After a 200 claim, send `Authorization: Bearer ` to GET /v1/keys. 200 is prefix, tier, and createdAt. Never the secret. ## Evaluate - [POST /v1/evaluate](https://xfiltered.com/v1/evaluate): Submit `workspaceId`, `pipelineId`, `sourceText`, and `sourceUrl` with `Authorization: Bearer `. The key is bound to the Stripe checkout email and may evaluate only workspaces that email belongs to. 200 is execution with id, pipelineId, status, and sourceMode. 200 sourceMode is user_submitted. 200 status is evaluating, filtered, matched, extracting, extraction_failed, dispatch_pending, delivered, retry_scheduled, dead_lettered, or cancelled. 400 is error invalid_request. 401 is error invalid_key. 403 with error forbidden. 404 with error not_found. POST /v1/evaluate 404 error.message is The requested pipeline was not found. 409 is error pipeline_not_ready. POST /v1/evaluate 409 error.message is This pipeline is not ready to evaluate. 502 is error message. - Signed-in workspace path remains `POST /api/workspaces/{workspaceId}/pipelines/{pipelineId}/evaluate`. ## MCP - [GET /mcp](https://xfiltered.com/mcp): 200 is name, title, remotes, human_checkout_url, and pro_price. GET /mcp version is 1.0.0. GET /mcp description is Evaluate a post you submit now. GET /mcp human_checkout_url is https://app.xfiltered.com/checkout?tier=pro. GET /mcp pro_price is $49 / month. GET /mcp name is io.xfiltered/agent. GET /mcp title is XFiltered. GET /mcp remotes type is streamable-http. GET /mcp remotes url is https://xfiltered.com/mcp. - [POST /mcp](https://xfiltered.com/mcp): JSON-RPC tools create_agent_key, claim_agent_key, get_catalog, and evaluate_post. Request is jsonrpc, method, and params. Request method is initialize, notifications/initialized, notifications/cancelled, ping, server/discover, tools/list, or tools/call. Request params name is create_agent_key, claim_agent_key, get_catalog, or evaluate_post. Request params arguments is an object. 200 is jsonrpc, id, and result. initialize result is protocolVersion, capabilities, serverInfo, and instructions. initialize result required is protocolVersion, capabilities, serverInfo, and instructions. initialize result additionalProperties is false. initialize protocolVersion is 2025-11-25. initialize instructions is Evaluate a post you submit now. initialize serverInfo.name is xfiltered. initialize serverInfo.version is 1.0.0. initialize capabilities.tools is an empty object. ping result is an empty object. tools/list result is tools, ttlMs, and cacheScope. tools/list result required is tools, ttlMs, and cacheScope. tools/list result additionalProperties is false. tools/list tools name is create_agent_key, claim_agent_key, get_catalog, or evaluate_post. tools/list tools description is the live create_agent_key, claim_agent_key, get_catalog, or evaluate_post description. tools/list tools inputSchema type is object. tools/list tools inputSchema required is an array of strings. tools/list tools inputSchema additionalProperties is false. tools/list ttlMs is 60000. tools/list cacheScope is public. server/discover result is protocolVersion, capabilities, serverInfo, and tools. server/discover result required is protocolVersion, capabilities, serverInfo, and tools. server/discover result additionalProperties is false. server/discover protocolVersion is 2026-07-28. server/discover serverInfo.name is xfiltered. server/discover serverInfo.version is 1.0.0. server/discover capabilities.tools is an empty object. server/discover tools name is create_agent_key, claim_agent_key, get_catalog, or evaluate_post. server/discover tools description is the live create_agent_key, claim_agent_key, get_catalog, or evaluate_post description. server/discover tools inputSchema type is object. server/discover tools inputSchema properties is an object. server/discover tools inputSchema required is an array of strings. server/discover tools additionalProperties is false. tools/call result is content, structuredContent, and isError. tools/call result required is content. tools/call content type is text. tools/call content text is a string. tools/call isError is true. JSON-RPC error is jsonrpc, id, and error with code and message. JSON-RPC error code is -32600, -32601, or -32020. 202 is an empty body for notifications/initialized and notifications/cancelled. - [server.json](https://xfiltered.com/server.json): 200 is name, title, remotes, human_checkout_url, and pro_price. server.json version is 1.0.0. server.json description is Evaluate a post you submit now. server.json human_checkout_url is https://app.xfiltered.com/checkout?tier=pro. server.json pro_price is $49 / month. server.json name is io.xfiltered/agent. server.json title is XFiltered. server.json remotes type is streamable-http. server.json remotes url is https://xfiltered.com/mcp. - [MCP well-known](https://xfiltered.com/.well-known/mcp.json): 200 is name, title, remotes, human_checkout_url, and pro_price. MCP well-known version is 1.0.0. MCP well-known description is Evaluate a post you submit now. MCP well-known human_checkout_url is https://app.xfiltered.com/checkout?tier=pro. MCP well-known pro_price is $49 / month. MCP well-known name is io.xfiltered/agent. MCP well-known title is XFiltered. MCP well-known remotes type is streamable-http. MCP well-known remotes url is https://xfiltered.com/mcp. - [ChatGPT plugin](https://xfiltered.com/.well-known/ai-plugin.json): 200 is schema_version, name_for_human, api, and human_checkout_url. ChatGPT plugin api.url is https://xfiltered.com/openapi.json. ChatGPT plugin human_checkout_url is https://app.xfiltered.com/checkout?tier=pro. ChatGPT plugin description_for_human is Evaluate a post you submit now. ChatGPT plugin description_for_model is XFiltered evaluates a post you submit now. ChatGPT plugin logo_url is https://xfiltered.com/icon-192.png. ChatGPT plugin contact_email is hello@xfiltered.com. ChatGPT plugin legal_info_url is https://xfiltered.com/terms. - [Claude plugin](https://xfiltered.com/.well-known/claude-plugin.json): 200 is name, description, mcpServers, and human_checkout_url. Claude plugin description is Evaluate a post you submit now. Claude plugin mcpServers url is https://xfiltered.com/mcp. Claude plugin human_checkout_url is https://app.xfiltered.com/checkout?tier=pro. Claude plugin homepage is https://xfiltered.com. Claude plugin docs is https://xfiltered.com/agents.md. Claude plugin llms is https://xfiltered.com/llms.txt. ## Docs - [llms.txt](https://xfiltered.com/llms.txt): 200 is text/plain agent index. - [agents.md](https://xfiltered.com/agents.md): 200 is text/markdown agent instructions. - [OpenAPI](https://xfiltered.com/openapi.json): 200 is openapi, info, and paths. OpenAPI info.version is 1.0.0. OpenAPI info.description is Evaluate a post you submit now. - [Pro](https://xfiltered.com/pro) - [Power](https://xfiltered.com/power)