Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,521Letters: 13Defects: 1,321counted just now
teppi

Server definition

Hash
sha256:d5bd15e6c308708a5232f3b00c702470db814103630ce6cd8c8b7685a78124f5
What it is
What a remote MCP server returned when asked what it offers: 5 tools

The blob, as servednamed by its sha256

{ "instructions": "\nApify is the world's largest marketplace of tools for web scraping, data extraction, and web automation.\nThese tools are called **Actors**. They enable you to extract structured data from social media, e-commerce, search engines, maps, travel sites, and many other sources.\n\n## Actor\n- An Actor is a serverless cloud application running on the Apify platform.\n- Use the Actor's **README** to understand its capabilities.\n- Before running an Actor, always check its **input schema** to understand the required parameters.\n\n## Actor discovery and selection\n- Choose the most appropriate Actor based on the conversation context.\n- Search the Apify Store first; a relevant Actor likely already exists.\n- When multiple options exist, prefer Actors with higher usage, ratings, or popularity.\n- Assume scraping requests within this context are appropriate for Actor use.\n- Actors in the Apify Store are published by independent developers and are intended for legitimate and compliant use.\n\n## Actor execution workflow\n- Actors take input and produce output.\n- Every Actor run generates **dataset** and **key-value store** outputs (even if empty).\n- Actor execution may take time, and outputs can be large.\n- Large datasets can be paginated to retrieve results efficiently.\n\n## Actor tasks\n- An Actor task is a saved, reusable configuration of an Actor. It stores the Actor input and run options such as the build, memory, and timeout.\n- Tasks are useful for repeated or scheduled jobs, because the user does not have to configure the Actor again for every run.\n- Creating or updating a task does not make it public.\n- Publishing a task creates a public landing page for one specific use case. The page shows what the task does, the selected input values, and the expected output. Published tasks appear in the Actor's Examples tab, where users, search engines, and AI agents can discover them, which can help people understand the Actor and increase its runs.\n- Publish only tasks that represent a useful, reliable, and specific use case. Not every saved task needs to be public.\n\n## Schedules\n- A schedule runs Actors and/or saved tasks automatically on a cron expression, evaluated in the schedule's time zone (default UTC).\n- A cron expression has 5 fields (minute hour day-of-month month day-of-week), with an optional leading seconds field. The shortcuts @hourly, @daily, @weekly, @monthly and @yearly fire at a random offset inside their period, so use an explicit expression when the user names a time.\n- The platform creates schedules disabled by default, but the create tool here enables them unless told otherwise. Disabling a schedule pauses it without losing its configuration.\n- With isExclusive (the default), a run is skipped while the previous run from the same action is still running.\n- Updating a schedule's actions replaces the whole list, so send every action to keep.\n- A schedule holds at most 10 Actor actions and 10 task actions.\n\n## Storage types\n- **Dataset:** Structured, append-only storage ideal for tabular or list data (e.g., scraped items).\n- **Key-value store:** Flexible storage for unstructured data or auxiliary files.\n\n## Apify API resources\n- Any Apify API GET endpoint can be read as an MCP resource. Pass the full `http://api.apify.internal:3333/v2/...` URL to `resources/read`; the server injects the session's Apify token and returns the response body. Reads require an Apify token — a session without one (e.g. payment-only x402/Skyfire) fails with a JSON-RPC error.\n- Actor and tool results return storage IDs, not resource URLs — build the URL from the ID (e.g. a `datasetId` becomes `http://api.apify.internal:3333/v2/datasets/{datasetId}/items`) and read it via `resources/read`.\n- Reads inline up to ~256 KB; a larger response is not downloaded — it returns a short notice with a download URL instead of the body, so page large datasets/lists with `limit` and `offset` to stay under the cap.\n- Examples: `http://api.apify.internal:3333/v2/datasets/{datasetId}/items?clean=true&format=json&limit=100`, `http://api.apify.internal:3333/v2/key-value-stores/{storeId}/records/{recordKey}`. `resources/templates/list` enumerates the common shapes with their paging parameters.\n", "tools": [ { "description": "Abort an Actor run that is currently starting or running.\nFor runs with status SUCCEEDED, FAILED, ABORTING, ABORTED, or TIMED-OUT, this call has no effect.\nThe results will include the updated run details after the abort request.\n\nUSAGE:\n- Use when you need to stop a run that is taking too long or misconfigured.\n\nUSAGE EXAMPLES:\n- user_input: Abort run y2h7sK3Wc\n- user_input: Gracefully abort run y2h7sK3Wc\n\nThis tool requires an x402 payment. Include a valid x402 payment signature in the request metadata (_meta[\"x402/payment\"]). Your MCP client must support the x402 payment protocol.", "inputSchema": { "additionalProperties": false, "properties": { "gracefully": { "description": "If true, the Actor run will abort gracefully with a 30-second timeout.", "type": "boolean" }, "runId": { "description": "The ID of the Actor run to abort.", "minLength": 1, "type": "string" } }, "required": [ "runId" ], "type": "object" }, "name": "abort-actor-run", "outputSchema": { "anyOf": [ { "properties": { "actorId": { "description": "Stable Apify Actor ID from the run record", "type": "string" }, "actorName": { "description": "\"username/actor-name\"", "type": "string" }, "apifyConsoleUrl": { "description": "Personalized Apify Console link to the run; present only for Console sessions", "type": "string" }, "exitCode": { "description": "Actor process exit code; populated for terminal states (especially FAILED)", "type": "number" }, "finishedAt": { "description": "ISO timestamp when the run finished (terminal states only)", "type": "string" }, "nextStep": { "description": "One primary follow-up action with identifiers interpolated", "type": "string" }, "runId": { "description": "Actor run ID", "type": "string" }, "startedAt": { "description": "ISO timestamp when the run started", "type": "string" }, "stats": { "description": "Run statistics", "properties": { "computeUnits": { "type": "number" }, "memMaxBytes": { "type": "number" }, "runTimeSecs": { "type": "number" } }, "type": "object" }, "status": { "description": "Run status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED", "type": "string" }, "statusMessage": { "description": "Pass-through from Apify run.statusMessage", "type": "string" }, "storages": { "description": "Dataset and key-value store metadata, keyed by alias. \"default\" is always the primary entry.", "properties": { "datasets": { "additionalProperties": { "properties": { "apifyConsoleUrl": { "description": "Personalized Apify Console link to the dataset; present only for Console sessions", "type": "string" }, "fields": { "description": "Dataset field paths in dot notation (e.g. [\"metadata.url\"])", "items": { "type": "string" }, "type": "array" }, "id": { "description": "Dataset ID", "type": "string" }, "inflatedBytes": { "description": "Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching.", "type": "number" }, "itemCount": { "type": "number" }, "name": { "type": "string" }, "title": { "type": "string" } }, "required": [ "id" ], "type": "object" }, "description": "Map of dataset alias → metadata. Key \"default\" is always the run's primary dataset.", "properties": { "default": { "properties": { "apifyConsoleUrl": { "description": "Personalized Apify Console link to the dataset; present only for Console sessions", "type": "string" }, "fields": { "description": "Dataset field paths in dot notation (e.g. [\"metadata.url\"])", "items": { "type": "string" }, "type": "array" }, "id": { "description": "Dataset ID", "type": "string" }, "inflatedBytes": { "description": "Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching.", "type": "number" }, "itemCount": { "type": "number" }, "name": { "type": "string" }, "title": { "type": "string" } }, "required": [ "id" ], "type": "object" } }, "required": [ "default" ], "type": "object" }, "keyValueStores": { "additionalProperties": { "properties": { "apifyConsoleUrl": { "description": "Personalized Apify Console link to the store; present only for Console sessions", "type": "string" }, "id": { "description": "Key-value store ID", "type": "string" }, "keyCount": { "description": "Total number of keys (omitted when truncated)", "type": "number" }, "keys": { "description": "Up to 50 key names", "items": { "type": "string" }, "type": "array" }, "name": { "type": "string" }, "title": { "type": "string" } }, "required": [ "id" ], "type": "object" }, "description": "Map of key-value store alias → metadata. Key \"default\" is always the run's primary store.", "properties": { "default": { "properties": { "apifyConsoleUrl": { "description": "Personalized Apify Console link to the store; present only for Console sessions", "type": "string" }, "id": { "description": "Key-value store ID", "type": "string" }, "keyCount": { "description": "Total number of keys (omitted when truncated)", "type": "number" }, "keys": { "description": "Up to 50 key names", "items": { "type": "string" }, "type": "array" }, "name": { "type": "string" }, "title": { "type": "string" } }, "required": [ "id" ], "type": "object" } }, "required": [ "default" ], "type": "object" } }, "type": "object" }, "summary": { "description": "Past-tense summary of the run state", "type": "string" } }, "required": [ "runId", "actorId", "status", "storages", "summary", "nextStep" ], "type": "object" }, { "properties": { "accepts": { "items": { "type": "object" }, "type": "array" }, "error": { "type": "string" }, "resource": { "type": "object" }, "x402Version": { "type": "number" } }, "required": [ "x402Version", "accepts" ], "type": "object" } ], "type": "object" } }, { "description": "Get detailed information about a specific Actor run.\n\nReturns run result: status, storages (datasets/keyValueStores alias map), stats, summary, nextStep.\n- summary describes the past (e.g. \"SUCCEEDED in 22s. 47 items; 3 fields available.\").\n- nextStep prescribes one primary follow-up action with identifiers interpolated (e.g. \"Use get-dataset-items with datasetId=...\").\n- waitSecs (0–45, default 30) waits up to that many seconds for terminal status before returning.\n\nUSAGE:\n- Use to check the status of a run started by any Actor-running tool.\n- Pass waitSecs > 0 to block until terminal (or until the cap elapses).\n\nUSAGE EXAMPLES:\n- user_input: Show details of run y2h7sK3Wc\n- user_input: Wait for run y2h7sK3Wc to finish\n\nThis tool requires an x402 payment. Include a valid x402 payment signature in the request metadata (_meta[\"x402/payment\"]). Your MCP client must support the x402 payment protocol.", "inputSchema": { "additionalProperties": false, "properties": { "runId": { "description": "The ID of the Actor run.", "minLength": 1, "type": "string" }, "waitSecs": { "default": 30, "description": "Maximum seconds to wait for the run to reach a terminal state (SUCCEEDED, FAILED, ABORTED, TIMED-OUT).\n0 returns immediately with the current status. Cap: 45. Default: 30.", "maximum": 45, "minimum": 0, "type": "integer" } }, "required": [ "runId" ], "type": "object" }, "name": "get-actor-run", "outputSchema": { "anyOf": [ { "properties": { "actorId": { "description": "Stable Apify Actor ID from the run record", "type": "string" }, "actorName": { "description": "\"username/actor-name\"", "type": "string" }, "apifyConsoleUrl": { "description": "Personalized Apify Console link to the run; present only for Console sessions", "type": "string" }, "exitCode": { "description": "Actor process exit code; populated for terminal states (especially FAILED)", "type": "number" }, "finishedAt": { "description": "ISO timestamp when the run finished (terminal states only)", "type": "string" }, "nextStep": { "description": "One primary follow-up action with identifiers interpolated", "type": "string" }, "runId": { "description": "Actor run ID", "type": "string" }, "startedAt": { "description": "ISO timestamp when the run started", "type": "string" }, "stats": { "description": "Run statistics", "properties": { "computeUnits": { "type": "number" }, "memMaxBytes": { "type": "number" }, "runTimeSecs": { "type": "number" } }, "type": "object" }, "status": { "description": "Run status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED", "type": "string" }, "statusMessage": { "description": "Pass-through from Apify run.statusMessage", "type": "string" }, "storages": { "description": "Dataset and key-value store metadata, keyed by alias. \"default\" is always the primary entry.", "properties": { "datasets": { "additionalProperties": { "properties": { "apifyConsoleUrl": { "description": "Personalized Apify Console link to the dataset; present only for Console sessions", "type": "string" }, "fields": { "description": "Dataset field paths in dot notation (e.g. [\"metadata.url\"])", "items": { "type": "string" }, "type": "array" }, "id": { "description": "Dataset ID", "type": "string" }, "inflatedBytes": { "description": "Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching.", "type": "number" }, "itemCount": { "type": "number" }, "name": { "type": "string" }, "title": { "type": "string" } }, "required": [ "id" ], "type": "object" }, "description": "Map of dataset alias → metadata. Key \"default\" is always the run's primary dataset.", "properties": { "default": { "properties": { "apifyConsoleUrl": { "description": "Personalized Apify Console link to the dataset; present only for Console sessions", "type": "string" }, "fields": { "description": "Dataset field paths in dot notation (e.g. [\"metadata.url\"])", "items": { "type": "string" }, "type": "array" }, "id": { "description": "Dataset ID", "type": "string" }, "inflatedBytes": { "description": "Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching.", "type": "number" }, "itemCount": { "type": "number" }, "name": { "type": "string" }, "title": { "type": "string" } }, "required": [ "id" ], "type": "object" } }, "required": [ "default" ], "type": "object" }, "keyValueStores": { "additionalProperties": { "properties": { "apifyConsoleUrl": { "description": "Personalized Apify Console link to the store; present only for Console sessions", "type": "string" }, "id": { "description": "Key-value store ID", "type": "string" }, "keyCount": { "description": "Total number of keys (omitted when truncated)", "type": "number" }, "keys": { "description": "Up to 50 key names", "items": { "type": "string" }, "type": "array" }, "name": { "type": "string" }, "title": { "type": "string" } }, "required": [ "id" ], "type": "object" }, "description": "Map of key-value store alias → metadata. Key \"default\" is always the run's primary store.", "properties": { "default": { "properties": { "apifyConsoleUrl": { "description": "Personalized Apify Console link to the store; present only for Console sessions", "type": "string" }, "id": { "description": "Key-value store ID", "type": "string" }, "keyCount": { "description": "Total number of keys (omitted when truncated)", "type": "number" }, "keys": { "description": "Up to 50 key names", "items": { "type": "string" }, "type": "array" }, "name": { "type": "string" }, "title": { "type": "string" } }, "required": [ "id" ], "type": "object" } }, "required": [ "default" ], "type": "object" } }, "type": "object" }, "summary": { "description": "Past-tense summary of the run state", "type": "string" } }, "required": [ "runId", "actorId", "status", "storages", "summary", "nextStep" ], "type": "object" }, { "properties": { "accepts": { "items": { "type": "object" }, "type": "array" }, "error": { "type": "string" }, "resource": { "type": "object" }, "x402Version": { "type": "number" } }, "required": [ "x402Version", "accepts" ], "type": "object" } ], "type": "object" } }, { "description": "Get items (rows) from a dataset — the output/results produced by an Actor run.\nReturns the rows themselves, not dataset metadata, counts, or a schema.\nWhen the user provides a datasetId and asks to retrieve results, output, data, or rows, call this tool directly.\nDefault limit is 20. Use clean=true to skip empty items and hidden fields.\n\nUSAGE:\n- Use when you need to read data from a dataset (all items or only selected fields).\n\nUSAGE EXAMPLES:\n- user_input: Retrieve results from dataset abc123\n- user_input: Get only metadata.url and title from dataset username~my-dataset\n\nThis tool requires an x402 payment. Include a valid x402 payment signature in the request metadata (_meta[\"x402/payment\"]). Your MCP client must support the x402 payment protocol.", "inputSchema": { "additionalProperties": false, "properties": { "clean": { "description": "If true, returns only non-empty items and skips hidden fields (starting with #). Shortcut for skipHidden=true and skipEmpty=true.", "type": "boolean" }, "datasetId": { "description": "Dataset ID or username~dataset-name.", "minLength": 1, "type": "string" }, "desc": { "description": "If true, results are returned in reverse order (newest to oldest).", "type": "boolean" }, "fields": { "description": "Comma-separated list of fields to include in results. Fields in output are sorted as specified. Use dot notation for nested objects (e.g. \"metadata.url\"); the server auto-flattens parent prefixes.", "type": "string" }, "flatten": { "description": "Comma-separated list of fields to flatten (e.g. flatten=\"metadata\" turns {\"metadata\":{\"url\":\"x\"}} into {\"metadata.url\":\"x\"}). Normally derived automatically from dot-notation in `fields`; specify only as a diagnostic override.", "type": "string" }, "limit": { "description": "Maximum number of items to return. Default is 20.", "maximum": 9007199254740991, "minimum": 1, "type": "integer" }, "offset": { "description": "Number of items to skip at the start. Default is 0.", "type": "number" }, "omit": { "description": "Comma-separated list of fields to exclude from results.", "type": "string" } }, "required": [ "datasetId" ], "type": "object" }, "name": "get-dataset-items", "outputSchema": { "anyOf": [ { "properties": { "apifyConsoleUrl": { "description": "Personalized Apify Console link to the dataset; present only for Console sessions", "type": "string" }, "datasetId": { "description": "Dataset ID", "type": "string" }, "itemCount": { "description": "Number of items returned", "type": "number" }, "items": { "description": "Dataset items", "items": { "type": "object" }, "type": "array" }, "limit": { "description": "Limit used for pagination", "type": "number" }, "nextStep": { "description": "One follow-up action with tool name", "type": "string" }, "offset": { "description": "Offset used for pagination", "type": "number" }, "summary": { "description": "Summary of the result", "type": "string" }, "totalItemCount": { "description": "Total items in dataset", "type": "number" } }, "required": [ "datasetId", "items", "itemCount", "totalItemCount", "offset", "limit", "summary", "nextStep" ], "type": "object" }, { "properties": { "accepts": { "items": { "type": "object" }, "type": "array" }, "error": { "type": "string" }, "resource": { "type": "object" }, "x402Version": { "type": "number" } }, "required": [ "x402Version", "accepts" ], "type": "object" } ], "type": "object" } }, { "description": "Get the value stored under a specific key in a key-value store — a single record, not a listing of all keys.\nRequires the exact key name.\nThe response preserves the original Content-Encoding; most clients handle decompression automatically.\n\nUSAGE:\n- Use when you need to retrieve a specific record (JSON, text, or binary) from a store.\n\nUSAGE EXAMPLES:\n- user_input: Get record INPUT from store abc123\n- user_input: Get record data.json from store username~my-store\n\nThis tool requires an x402 payment. Include a valid x402 payment signature in the request metadata (_meta[\"x402/payment\"]). Your MCP client must support the x402 payment protocol.", "inputSchema": { "additionalProperties": false, "properties": { "keyValueStoreId": { "description": "Key-value store ID or username~store-name.", "minLength": 1, "type": "string" }, "recordKey": { "description": "Key of the record to retrieve.", "minLength": 1, "type": "string" } }, "required": [ "keyValueStoreId", "recordKey" ], "type": "object" }, "name": "get-key-value-store-record", "outputSchema": { "anyOf": [ { "properties": { "contentType": { "description": "MIME type of the stored value", "type": "string" }, "key": { "description": "Record key", "type": "string" }, "keyValueStoreId": { "description": "Key-value store ID", "type": "string" }, "summary": { "description": "Summary of the result", "type": "string" }, "value": { "description": "The stored value (JSON, text, or binary)" } }, "required": [ "keyValueStoreId", "key", "value", "summary" ], "type": "object" }, { "properties": { "accepts": { "items": { "type": "object" }, "type": "array" }, "error": { "type": "string" }, "resource": { "type": "object" }, "x402Version": { "type": "number" } }, "required": [ "x402Version", "accepts" ], "type": "object" } ], "type": "object" } }, { "description": "This tool calls the Actor \"industrial_platform/research-brief-agent\" and retrieves its output results.\nActor description: Use for current cited multi-source research, comparisons, and fact verification. Returns a synthesized brief with citations. $1.99 per completed brief; failed runs are not billed.\n\nThis tool requires an x402 payment. Include a valid x402 payment signature in the request metadata (_meta[\"x402/payment\"]). Your MCP client must support the x402 payment protocol.", "inputSchema": { "$id": "https://apify.com/mcp/industrial_platform--research-brief-agent/schema.json", "additionalProperties": false, "description": "Generate a current, source-backed research brief from a question, optional context, and custom requirements.", "properties": { "context": { "description": "Optional decision context, constraints, audience, or background that should shape the research.", "title": "Context", "type": "string" }, "requirements": { "description": "Optional output and evidence requirements such as comparison criteria, source preferences, tables, calculations, citations, or unresolved-fact handling.", "title": "Additional requirements", "type": "string" }, "research_question": { "description": "**REQUIRED** REQUIRED. The current multi-source research question to investigate. Use a specific question that needs web research, comparison, verification, citations, or synthesis.\nExample values: \"What are the current official Model Context Protocol transport options in the latest specification?\"", "examples": [ "What are the current official Model Context Protocol transport options in the latest specification?" ], "prefill": "What are the current official Model Context Protocol transport options in the latest specification?", "title": "Research question", "type": "string" }, "waitSecs": { "default": 30, "description": "Max seconds (0–45, default 30) to cap the wait for the Actor run to reach terminal state. For long-running Actors the response returns at the cap with the current run status; follow `nextStep` to poll via get-actor-run. Set to 0 to fire-and-forget.", "maximum": 45, "minimum": 0, "type": "integer" } }, "required": [ "research_question" ], "title": "Research Brief Agent", "type": "object" }, "name": "industrial_platform--research-brief-agent", "outputSchema": { "anyOf": [ { "properties": { "actorId": { "description": "Stable Apify Actor ID from the run record", "type": "string" }, "actorName": { "description": "\"username/actor-name\"", "type": "string" }, "apifyConsoleUrl": { "description": "Personalized Apify Console link to the run; present only for Console sessions", "type": "string" }, "exitCode": { "description": "Actor process exit code; populated for terminal states (especially FAILED)", "type": "number" }, "finishedAt": { "description": "ISO timestamp when the run finished (terminal states only)", "type": "string" }, "nextStep": { "description": "One primary follow-up action with identifiers interpolated", "type": "string" }, "runId": { "description": "Actor run ID", "type": "string" }, "startedAt": { "description": "ISO timestamp when the run started", "type": "string" }, "stats": { "description": "Run statistics", "properties": { "computeUnits": { "type": "number" }, "memMaxBytes": { "type": "number" }, "runTimeSecs": { "type": "number" } }, "type": "object" }, "status": { "description": "Run status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED", "type": "string" }, "statusMessage": { "description": "Pass-through from Apify run.statusMessage", "type": "string" }, "storages": { "description": "Dataset and key-value store metadata, keyed by alias. \"default\" is always the primary entry.", "properties": { "datasets": { "additionalProperties": { "properties": { "apifyConsoleUrl": { "description": "Personalized Apify Console link to the dataset; present only for Console sessions", "type": "string" }, "fields": { "description": "Dataset field paths in dot notation (e.g. [\"metadata.url\"])", "items": { "type": "string" }, "type": "array" }, "id": { "description": "Dataset ID", "type": "string" }, "inflatedBytes": { "description": "Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching.", "type": "number" }, "itemCount": { "type": "number" }, "name": { "type": "string" }, "title": { "type": "string" } }, "required": [ "id" ], "type": "object" }, "description": "Map of dataset alias → metadata. Key \"default\" is always the run's primary dataset.", "properties": { "default": { "properties": { "apifyConsoleUrl": { "description": "Personalized Apify Console link to the dataset; present only for Console sessions", "type": "string" }, "fields": { "description": "Dataset field paths in dot notation (e.g. [\"metadata.url\"])", "items": { "type": "string" }, "type": "array" }, "id": { "description": "Dataset ID", "type": "string" }, "inflatedBytes": { "description": "Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching.", "type": "number" }, "itemCount": { "type": "number" }, "itemsSchema": { "description": "JSON Schema for rows in the dataset at `storages.datasets.default.id` — describes row shape only; the rows themselves are NOT returned inline in this response. Inferred from this Actor's historical successful runs. To fetch actual rows, call `get-dataset-items` with the dataset id and a `fields` projection drawn from this schema.", "properties": { "brief": { "type": "string" }, "qa": { "properties": { "issues": { "items": {}, "type": "array" }, "revised": { "type": "boolean" }, "score": { "type": "number" }, "summary": { "type": "string" }, "verdict": { "type": "string" } }, "type": "object" }, "research": { "properties": { "evidence_count": { "type": "number" }, "unresolved_questions": { "items": {}, "type": "array" } }, "type": "object" }, "research_date": { "type": "string" }, "research_question": { "type": "string" }, "status": { "type": "string" }, "usage": { "properties": { "input_tokens": { "type": "number" }, "output_tokens": { "type": "number" }, "requests": { "type": "number" }, "total_tokens": { "type": "number" } }, "type": "object" } }, "type": "object" }, "name": { "type": "string" }, "title": { "type": "string" } }, "required": [ "id" ], "type": "object" } }, "required": [ "default" ], "type": "object" }, "keyValueStores": { "additionalProperties": { "properties": { "apifyConsoleUrl": { "description": "Personalized Apify Console link to the store; present only for Console sessions", "type": "string" }, "id": { "description": "Key-value store ID", "type": "string" }, "keyCount": { "description": "Total number of keys (omitted when truncated)", "type": "number" }, "keys": { "description": "Up to 50 key names", "items": { "type": "string" }, "type": "array" }, "name": { "type": "string" }, "title": { "type": "string" } }, "required": [ "id" ], "type": "object" }, "description": "Map of key-value store alias → metadata. Key \"default\" is always the run's primary store.", "properties": { "default": { "properties": { "apifyConsoleUrl": { "description": "Personalized Apify Console link to the store; present only for Console sessions", "type": "string" }, "id": { "description": "Key-value store ID", "type": "string" }, "keyCount": { "description": "Total number of keys (omitted when truncated)", "type": "number" }, "keys": { "description": "Up to 50 key names", "items": { "type": "string" }, "type": "array" }, "name": { "type": "string" }, "title": { "type": "string" } }, "required": [ "id" ], "type": "object" } }, "required": [ "default" ], "type": "object" } }, "type": "object" }, "summary": { "description": "Past-tense summary of the run state", "type": "string" } }, "required": [ "runId", "actorId", "status", "storages", "summary", "nextStep" ], "type": "object" }, { "properties": { "accepts": { "items": { "type": "object" }, "type": "array" }, "error": { "type": "string" }, "resource": { "type": "object" }, "x402Version": { "type": "number" } }, "required": [ "x402Version", "accepts" ], "type": "object" } ], "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:d5bd15e6c308708a5232f3b00c702470db814103630ce6cd8c8b7685a78124f5 | sha256sum