Skip to main content
Glama

Server Details

Hundreds of scraping & data APIs through one key. USD pay-per-request, normalized schemas, failover.

Ownership verified
Status
Healthy
Uptime
83.1% over 58 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
getanyapi-com/mcp
GitHub Stars
1
Server Listing
anyapi-mcp

TDQS

A4.4/5.0

Scored across 10 tools

Disambiguation4/5

Most tools target clearly distinct operations (search vs list vs get, quote vs run, balance, feedback vs bug). The only fuzzy boundary is get_request (poll/resume a queued durable request) versus read_result (re-shape a completed cached result), which both deal with retrieving run output and require reading the descriptions to separate.

Naming Consistency5/5

Every tool follows a consistent snake_case verb_noun pattern: get_api, get_balance, get_request, list_apis, quote_api, read_result, report_bug, run_api, search_apis, send_feedback. No style mixing or vague verbs.

Tool Count5/5

Ten tools is well-scoped for an API-gateway surface covering discovery, pricing, execution, and result retrieval. Each tool earns its place with no redundant entries.

Completeness5/5

The full lifecycle is covered: discovery (search_apis/list_apis/get_api), pre-flight pricing and validation (quote_api), execution (run_api), result retrieval and polling (get_request/read_result), account state (get_balance), and feedback channels (report_bug/send_feedback). No obvious gaps or dead ends for this domain.

Available Tools

10 tools
get_apiGet API details
Read-only
Inspect

Get the full definition of one API by API slug, including its normalized input/output JSON schemas, per-request and per-1,000-request USD pricing on every source, and nullable trailing-30-day latency p50/p95/p99 with the successful sample count. Latency percentiles describe observed successful requests; p99 is an observation, not a maximum or a client timeout guarantee. Entries with heavy:true produce large API responses.

ParametersJSON Schema
NameRequiredDescriptionDefault
sku_idYesthe API SKU slug to describe
contextYesBrief purpose of this tool call within the requested task, used for analytics and user-intent tracking.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scraperYesthe API definition with input/output schemas
get_balanceCheck wallet balance
Read-only
Inspect

Get the remaining wallet balance (in USD) for the AnyAPI key supplied as a Bearer token. Requires a valid AnyAPI key.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYesBrief purpose of this tool call within the requested task, used for analytics and user-intent tracking.

Output Schema

ParametersJSON Schema
NameRequiredDescription
balanceUsdYesremaining wallet balance for this API key, in USD
get_requestCheck a request
Read-only
Inspect

Inspect or resume a durable AnyAPI request by request_id. This reads AnyAPI's stored state and never repeats the paid provider dispatch. While status is queued or running, retryAfterSeconds gives the minimum interval between status checks.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYesBrief purpose of this tool call within the requested task, used for analytics and user-intent tracking.
request_idYesdurable request identifier returned by run_api

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNooptional result caveat. 'large_result:' identifies a large response; fields/max_items/summary reduce response size without changing cost. 'paging_unavailable:' means the source cannot return a nextCursor, so the result may be incomplete and cannot be paged further; requireFields ["nextCursor"] restricts execution to sources that support pagination and may cost more per request. 'malformed_query:' means X interpreted adjacent bare words as ANDed and OR as having higher precedence, so a multi-word alternative is not a phrase; the result reflects that interpretation, and the hint includes a corrected query. 'date_adjusted:' means an input date was outside the platform's accepted range, so execution used the nearest accepted date named in the hint
errorNosafe AnyAPI failure code when durable work failed
itemsYesnumber of result rows returned; an API that returns one record counts it as one row. For per-result APIs the per-item cost is charged against this; for input-priced APIs (perItemUnit != result) the charge is per submitted input, independent of this count
outputYesnormalized output payload
sourceNothe source that served this request; its id is accepted by 'source' for preference or 'ignoreSources' for exclusion. Absent when no source identity applies
statusNodurable request status: queued, running, succeeded, failed, or expired
costUsdYesamount charged to the wallet in USD
jqErrorNopresent only when a jq expression failed; output then holds the full unshaped result and this explains why the reshape did not apply
providerYesthe provider serving the request (AnyAPI)
replayedYestrue when this response replays an identical earlier call (same API, same input) from the last few minutes instead of running again: nothing new was executed and costUsd restates the original charge, it was NOT charged a second time
resultIdNoopaque handle to the full result, cached ~15 min; identifies the paid result available for free reshaping without another execution or charge. Absent when the result was too large to cache
requestIdNodurable request identifier for stored status and result retrieval without repeating the paid provider dispatch
nextActionNostored-request retrieval coordinates and polling interval present while durable work is pending
serviceOutcomeNoend-to-end AnyAPI service outcome when known
settlementStateNopayment settlement state when known; independent of durable request status
list_apisBrowse APIs
Read-only
Inspect

Browse available AnyAPI APIs as lightweight summaries (id, name, category, USD pricing), optionally filtered by category. Descriptions and schemas are omitted to keep catalog responses small. Each pricing offer carries both maxUsd (billed per request) and maxPer1kUsd (the same price per 1,000 requests).

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYesBrief purpose of this tool call within the requested task, used for analytics and user-intent tracking.
categoryNooptional category slug to filter by

Output Schema

ParametersJSON Schema
NameRequiredDescription
scrapersYesmatching APIs (lightweight summaries: no description or schemas)
quote_apiQuote a price
Read-only
Inspect

Get the exact input-aware execution price for an API, free and without a key. Nothing is charged or executed. sku_id and input identify the proposed execution; pricing resolves exactly as it does for execution, and input validation can return invalid_input without a charge. Returns maxCostUsd (the ceiling reserved), minCostUsd (the likely charge), and the base/per-item breakdown explaining why they differ. These are USD amounts for this one call, not per-1,000-request catalog comparison rates.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYesthe exact normalized input payload being priced; the quote resolves pricing the same way execution does
sku_idYesthe API SKU slug to price
contextYesBrief purpose of this tool call within the requested task, used for analytics and user-intent tracking.

Output Schema

ParametersJSON Schema
NameRequiredDescription
exactYestrue when the price is exact (minCostUsd == maxCostUsd): a flat SKU or a sealed page
baseUsdYesfixed cost per call in USD, charged regardless of count
pricingYesa one-line human explanation of how this call is priced
maxCostUsdYesthe most this call can charge - the reserve held before running
minCostUsdYesthe likely charge - the cheapest route serves first
perItemUsdYesmarginal cost in USD per billable unit (see perItemUnit); 0 for a flat SKU
perItemUnitNothe unit perItemUsd is charged per: 'result' (default) or an input unit like 'username' for input-priced SKUs
read_resultRead a saved result
Read-only
Inspect

Read or reshape a previously paid API result without executing or paying again. result_id identifies the full cached result; fields/max_items/summary/jq control its presentation, including row selection and slicing large fields. Results are cached ~15 min and are private to the authenticated account; an expired id returns result_expired.

ParametersJSON Schema
NameRequiredDescriptionDefault
jqNooptional: a jq expression to reshape the result; its output replaces 'output'. Example: '.data | {title, description, md: .markdown[:3500]}'. Sandboxed 250ms/2MB budget
fieldsNooptional: keep only these keys on each result item - each row of the result list, or the data object itself for an API that returns one record (dotted paths like 'author.name' descend into nested objects)
contextYesBrief purpose of this tool call within the requested task, used for analytics and user-intent tracking.
summaryNooptional: return only a structural outline (top-level keys, item counts, per-field byte sizes) instead of the full data
max_itemsNooptional: cap the number of result items returned; a _truncated note reports how many were withheld. An API that returns one record is not trimmed
result_idYesthe resultId returned by a prior run_api call (cached ~15 min)

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNooptional result caveat. 'large_result:' identifies a large response; fields/max_items/summary reduce response size without changing cost. 'paging_unavailable:' means the source cannot return a nextCursor, so the result may be incomplete and cannot be paged further; requireFields ["nextCursor"] restricts execution to sources that support pagination and may cost more per request. 'malformed_query:' means X interpreted adjacent bare words as ANDed and OR as having higher precedence, so a multi-word alternative is not a phrase; the result reflects that interpretation, and the hint includes a corrected query. 'date_adjusted:' means an input date was outside the platform's accepted range, so execution used the nearest accepted date named in the hint
errorNosafe AnyAPI failure code when durable work failed
itemsYesnumber of result rows returned; an API that returns one record counts it as one row. For per-result APIs the per-item cost is charged against this; for input-priced APIs (perItemUnit != result) the charge is per submitted input, independent of this count
outputYesnormalized output payload
sourceNothe source that served this request; its id is accepted by 'source' for preference or 'ignoreSources' for exclusion. Absent when no source identity applies
statusNodurable request status: queued, running, succeeded, failed, or expired
costUsdYesamount charged to the wallet in USD
jqErrorNopresent only when a jq expression failed; output then holds the full unshaped result and this explains why the reshape did not apply
providerYesthe provider serving the request (AnyAPI)
replayedYestrue when this response replays an identical earlier call (same API, same input) from the last few minutes instead of running again: nothing new was executed and costUsd restates the original charge, it was NOT charged a second time
resultIdNoopaque handle to the full result, cached ~15 min; identifies the paid result available for free reshaping without another execution or charge. Absent when the result was too large to cache
requestIdNodurable request identifier for stored status and result retrieval without repeating the paid provider dispatch
nextActionNostored-request retrieval coordinates and polling interval present while durable work is pending
serviceOutcomeNoend-to-end AnyAPI service outcome when known
settlementStateNopayment settlement state when known; independent of durable request status
report_bugReport a bugInspect

Submit a defect report to AnyAPI about wrong, empty, or malformed API data for valid input, misleading or unactionable errors, incorrect prices or schemas, or retries that failed unexpectedly. Free, never charged. summary is required and contains one line; optional request_id identifies the stored request and its upstream error body without requiring the payload in the report.

ParametersJSON Schema
NameRequiredDescriptionDefault
skuNooptional: the sku_id this is about, e.g. 'instagram.reels_search'
contactNooptional: an email address for a reply; trial keys have no reachable account contact
contextYesBrief purpose of this tool call within the requested task, used for analytics and user-intent tracking.
detailsNooptional: what you expected, what you got, and anything you already tried
summaryYesone line saying what went wrong or what you want to tell us
request_idNooptional: the requestId or resultId from the run that went wrong. This is the single most useful field: it reaches the stored run, its attempts, and any upstream error body, so you do not need to paste the payload

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesthe stored report id for support correspondence
receivedYestrue when the report is stored
run_apiRun an API
Destructive
Inspect

Execute an API by API slug with a normalized input payload. Every input schema is strict: unknown fields are rejected, not ignored, and field names can differ between related APIs. Inputs must conform to the endpoint's schema, not its description. Published latency p50/p95/p99 and sample counts describe observed successful requests; p99 is an observation, not a maximum or a client timeout guarantee. Requires a valid AnyAPI key as a Bearer token. Charges the USD wallet. Some failed wallet-funded requests incur processing charges passed through at cost, with no markup; the error message shows the amount charged. Results can be large. fields keeps selected keys, max_items caps returned rows, and summary returns an outline; these controls reduce response size without changing the charge.

ParametersJSON Schema
NameRequiredDescriptionDefault
jqNooptional: a jq expression to reshape the result; its output replaces 'output' (multiple outputs collect into an array). Example: '.data | {title, description, md: .markdown[:3500]}'. Sandboxed 250ms/2MB budget; on failure the full result is returned with jqError. Does not change cost
inputYesnormalized input payload matching the API input schema
fieldsNooptional: keep only these keys on each result item - each row of the result list, or the data object itself for an API that returns one record (dotted paths like 'author.name' descend into nested objects). Shrinks the response without changing cost
sku_idYesthe API SKU slug to execute
contextYesBrief purpose of this tool call within the requested task, used for analytics and user-intent tracking.
summaryNooptional: return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost
max_itemsNooptional: cap the number of result items returned; a _truncated note reports how many were withheld. An API that returns one record is not trimmed. Does not change cost

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNooptional result caveat. 'large_result:' identifies a large response; fields/max_items/summary reduce response size without changing cost. 'paging_unavailable:' means the source cannot return a nextCursor, so the result may be incomplete and cannot be paged further; requireFields ["nextCursor"] restricts execution to sources that support pagination and may cost more per request. 'malformed_query:' means X interpreted adjacent bare words as ANDed and OR as having higher precedence, so a multi-word alternative is not a phrase; the result reflects that interpretation, and the hint includes a corrected query. 'date_adjusted:' means an input date was outside the platform's accepted range, so execution used the nearest accepted date named in the hint
errorNosafe AnyAPI failure code when durable work failed
itemsYesnumber of result rows returned; an API that returns one record counts it as one row. For per-result APIs the per-item cost is charged against this; for input-priced APIs (perItemUnit != result) the charge is per submitted input, independent of this count
outputYesnormalized output payload
sourceNothe source that served this request; its id is accepted by 'source' for preference or 'ignoreSources' for exclusion. Absent when no source identity applies
statusNodurable request status: queued, running, succeeded, failed, or expired
costUsdYesamount charged to the wallet in USD
jqErrorNopresent only when a jq expression failed; output then holds the full unshaped result and this explains why the reshape did not apply
providerYesthe provider serving the request (AnyAPI)
replayedYestrue when this response replays an identical earlier call (same API, same input) from the last few minutes instead of running again: nothing new was executed and costUsd restates the original charge, it was NOT charged a second time
resultIdNoopaque handle to the full result, cached ~15 min; identifies the paid result available for free reshaping without another execution or charge. Absent when the result was too large to cache
requestIdNodurable request identifier for stored status and result retrieval without repeating the paid provider dispatch
nextActionNostored-request retrieval coordinates and polling interval present while durable work is pending
serviceOutcomeNoend-to-end AnyAPI service outcome when known
settlementStateNopayment settlement state when known; independent of durable request status
search_apisSearch APIs
Read-only
Inspect

Search APIs by meaning and keyword across name, slug, and description, returning matches with their descriptions but without schemas, ranked most relevant first. At least one of query, category, or platform is required, in any combination; category or platform without query enumerates that scope. limit caps matches (default 25, maximum 50). Each result carries a relevance score in (0,1] relative to the top match; a relevance floor drops weak matches, so total counts relevant matches before the limit. ranking identifies meaning-based ('semantic') or substring ('keyword') matching. Entries with heavy:true produce large API responses. Search results omit input schemas; API inputs require the endpoint's strict schema, whose field names can differ between related APIs.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNooptional cap on matches returned (default 25, maximum 50)
queryNofree-text search over API name, slug, and description; optional when category or platform is given
contextYesBrief purpose of this tool call within the requested task, used for analytics and user-intent tracking.
categoryNooptional category slug to narrow the search
platformNooptional API slug prefix to narrow the search

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYes
rankingYes
resultsYes
send_feedbackSend feedbackInspect

Submit non-defect feedback to AnyAPI about an API you could not find in the catalog, a missing result field, confusing documentation or tool descriptions, or an improvement that would make a task easier. Free, never charged. summary is required and contains one line; optional details describes the task or suggestion.

ParametersJSON Schema
NameRequiredDescriptionDefault
skuNooptional: the sku_id this is about, e.g. 'instagram.reels_search'
contactNooptional: an email address for a reply; trial keys have no reachable account contact
contextYesBrief purpose of this tool call within the requested task, used for analytics and user-intent tracking.
detailsNooptional: what you expected, what you got, and anything you already tried
summaryYesone line saying what went wrong or what you want to tell us
request_idNooptional: the requestId or resultId from the run that went wrong. This is the single most useful field: it reaches the stored run, its attempts, and any upstream error body, so you do not need to paste the payload

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesthe stored report id for support correspondence
receivedYestrue when the report is stored

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updates
    • Changedget_api1 field changed
      • changedInput schema / properties / context / description
        Previous value: -"Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""New value: +"Brief purpose of this tool call within the requested task, used for analytics and user-intent tracking."
    • Changedget_balance1 field changed
      • changedInput schema / properties / context / description
        Previous value: -"Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""New value: +"Brief purpose of this tool call within the requested task, used for analytics and user-intent tracking."
    • Changedget_request1 field changed
      • changedInput schema / properties / context / description
        Previous value: -"Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""New value: +"Brief purpose of this tool call within the requested task, used for analytics and user-intent tracking."
    • Changedlist_apis1 field changed
      • changedInput schema / properties / context / description
        Previous value: -"Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""New value: +"Brief purpose of this tool call within the requested task, used for analytics and user-intent tracking."
    • Changedquote_api1 field changed
      • changedInput schema / properties / context / description
        Previous value: -"Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""New value: +"Brief purpose of this tool call within the requested task, used for analytics and user-intent tracking."
    • Changedread_result1 field changed
      • changedInput schema / properties / context / description
        Previous value: -"Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""New value: +"Brief purpose of this tool call within the requested task, used for analytics and user-intent tracking."
    • Changedreport_bug1 field changed
      • changedInput schema / properties / context / description
        Previous value: -"Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""New value: +"Brief purpose of this tool call within the requested task, used for analytics and user-intent tracking."
    • Changedrun_api1 field changed
      • changedInput schema / properties / context / description
        Previous value: -"Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""New value: +"Brief purpose of this tool call within the requested task, used for analytics and user-intent tracking."
    • Changedsearch_apis1 field changed
      • changedInput schema / properties / context / description
        Previous value: -"Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""New value: +"Brief purpose of this tool call within the requested task, used for analytics and user-intent tracking."
    • Changedsend_feedback1 field changed
      • changedInput schema / properties / context / description
        Previous value: -"Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""New value: +"Brief purpose of this tool call within the requested task, used for analytics and user-intent tracking."
  2. 6 tool updates
    • Changedget_request7 fields changed
      • changedOutput schema / properties / hint / description
        Previous value: -"optional nudge. 'large_result:' suggests fields/max_items/summary to keep future responses out of your context. 'paging_unavailable:' means this result came from a source that cannot return a nextCursor, so it may be INCOMPLETE and you cannot page further - re-run with requireFields [\"nextCursor\"] (may cost more per request) if you need the full list. 'malformed_query:' means X read your search query differently than it looks (adjacent bare words are ANDed and OR binds tighter, so a multi-word alternative is not a phrase); this result is what X returned for it, and the hint carries the corrected query to send next time. 'date_adjusted:' means a date you sent was outside the range the platform accepts, so the run used the nearest accepted date the hint names"New value: +"optional result caveat. 'large_result:' identifies a large response; fields/max_items/summary reduce response size without changing cost. 'paging_unavailable:' means the source cannot return a nextCursor, so the result may be incomplete and cannot be paged further; requireFields [\"nextCursor\"] restricts execution to sources that support pagination and may cost more per request. 'malformed_query:' means X interpreted adjacent bare words as ANDed and OR as having higher precedence, so a multi-word alternative is not a phrase; the result reflects that interpretation, and the hint includes a corrected query. 'date_adjusted:' means an input date was outside the platform's accepted range, so execution used the nearest accepted date named in the hint"
      • changedOutput schema / properties / nextAction / description
        Previous value: -"machine-actionable resume instruction present while durable work is pending"New value: +"stored-request retrieval coordinates and polling interval present while durable work is pending"
      • changedOutput schema / properties / nextAction / properties / requestId / description
        Previous value: -"request_id argument for the next tool call"New value: +"durable request identifier for stored-request retrieval"
      • changedOutput schema / properties / nextAction / properties / tool / description
        Previous value: -"MCP tool to call next"New value: +"MCP tool name for stored-request retrieval"
      • changedOutput schema / properties / requestId / description
        Previous value: -"durable request identifier; pass it to get_request to resume without repeating the paid POST"New value: +"durable request identifier for stored status and result retrieval without repeating the paid provider dispatch"
      • changedOutput schema / properties / resultId / description
        Previous value: -"opaque handle to the full result, cached ~15 min; pass it to read_result to dig deeper for free (no re-run, no charge). Absent when the result was too large to cache"New value: +"opaque handle to the full result, cached ~15 min; identifies the paid result available for free reshaping without another execution or charge. Absent when the result was too large to cache"
      • changedOutput schema / properties / source / description
        Previous value: -"the source that served this run: pass its id back in 'source' to prefer it again, or in 'ignoreSources' to avoid it. Absent when no source identity applies"New value: +"the source that served this request; its id is accepted by 'source' for preference or 'ignoreSources' for exclusion. Absent when no source identity applies"
    • Changedquote_api1 field changed
      • changedInput schema / properties / input / description
        Previous value: -"the exact input payload you plan to pass to run_api; the quote resolves pricing the same way the run will"New value: +"the exact normalized input payload being priced; the quote resolves pricing the same way execution does"
    • Changedread_result7 fields changed
      • changedOutput schema / properties / hint / description
        Previous value: -"optional nudge. 'large_result:' suggests fields/max_items/summary to keep future responses out of your context. 'paging_unavailable:' means this result came from a source that cannot return a nextCursor, so it may be INCOMPLETE and you cannot page further - re-run with requireFields [\"nextCursor\"] (may cost more per request) if you need the full list. 'malformed_query:' means X read your search query differently than it looks (adjacent bare words are ANDed and OR binds tighter, so a multi-word alternative is not a phrase); this result is what X returned for it, and the hint carries the corrected query to send next time. 'date_adjusted:' means a date you sent was outside the range the platform accepts, so the run used the nearest accepted date the hint names"New value: +"optional result caveat. 'large_result:' identifies a large response; fields/max_items/summary reduce response size without changing cost. 'paging_unavailable:' means the source cannot return a nextCursor, so the result may be incomplete and cannot be paged further; requireFields [\"nextCursor\"] restricts execution to sources that support pagination and may cost more per request. 'malformed_query:' means X interpreted adjacent bare words as ANDed and OR as having higher precedence, so a multi-word alternative is not a phrase; the result reflects that interpretation, and the hint includes a corrected query. 'date_adjusted:' means an input date was outside the platform's accepted range, so execution used the nearest accepted date named in the hint"
      • changedOutput schema / properties / nextAction / description
        Previous value: -"machine-actionable resume instruction present while durable work is pending"New value: +"stored-request retrieval coordinates and polling interval present while durable work is pending"
      • changedOutput schema / properties / nextAction / properties / requestId / description
        Previous value: -"request_id argument for the next tool call"New value: +"durable request identifier for stored-request retrieval"
      • changedOutput schema / properties / nextAction / properties / tool / description
        Previous value: -"MCP tool to call next"New value: +"MCP tool name for stored-request retrieval"
      • changedOutput schema / properties / requestId / description
        Previous value: -"durable request identifier; pass it to get_request to resume without repeating the paid POST"New value: +"durable request identifier for stored status and result retrieval without repeating the paid provider dispatch"
      • changedOutput schema / properties / resultId / description
        Previous value: -"opaque handle to the full result, cached ~15 min; pass it to read_result to dig deeper for free (no re-run, no charge). Absent when the result was too large to cache"New value: +"opaque handle to the full result, cached ~15 min; identifies the paid result available for free reshaping without another execution or charge. Absent when the result was too large to cache"
      • changedOutput schema / properties / source / description
        Previous value: -"the source that served this run: pass its id back in 'source' to prefer it again, or in 'ignoreSources' to avoid it. Absent when no source identity applies"New value: +"the source that served this request; its id is accepted by 'source' for preference or 'ignoreSources' for exclusion. Absent when no source identity applies"
    • Changedreport_bug2 fields changed
      • changedInput schema / properties / contact / description
        Previous value: -"optional: an email address to reply to. Supply one if you are on a trial key, since a trial has no account we can reach"New value: +"optional: an email address for a reply; trial keys have no reachable account contact"
      • changedOutput schema / properties / id / description
        Previous value: -"the stored report id; quote it if you contact support about this"New value: +"the stored report id for support correspondence"
    • Changedrun_api7 fields changed
      • changedOutput schema / properties / hint / description
        Previous value: -"optional nudge. 'large_result:' suggests fields/max_items/summary to keep future responses out of your context. 'paging_unavailable:' means this result came from a source that cannot return a nextCursor, so it may be INCOMPLETE and you cannot page further - re-run with requireFields [\"nextCursor\"] (may cost more per request) if you need the full list. 'malformed_query:' means X read your search query differently than it looks (adjacent bare words are ANDed and OR binds tighter, so a multi-word alternative is not a phrase); this result is what X returned for it, and the hint carries the corrected query to send next time. 'date_adjusted:' means a date you sent was outside the range the platform accepts, so the run used the nearest accepted date the hint names"New value: +"optional result caveat. 'large_result:' identifies a large response; fields/max_items/summary reduce response size without changing cost. 'paging_unavailable:' means the source cannot return a nextCursor, so the result may be incomplete and cannot be paged further; requireFields [\"nextCursor\"] restricts execution to sources that support pagination and may cost more per request. 'malformed_query:' means X interpreted adjacent bare words as ANDed and OR as having higher precedence, so a multi-word alternative is not a phrase; the result reflects that interpretation, and the hint includes a corrected query. 'date_adjusted:' means an input date was outside the platform's accepted range, so execution used the nearest accepted date named in the hint"
      • changedOutput schema / properties / nextAction / description
        Previous value: -"machine-actionable resume instruction present while durable work is pending"New value: +"stored-request retrieval coordinates and polling interval present while durable work is pending"
      • changedOutput schema / properties / nextAction / properties / requestId / description
        Previous value: -"request_id argument for the next tool call"New value: +"durable request identifier for stored-request retrieval"
      • changedOutput schema / properties / nextAction / properties / tool / description
        Previous value: -"MCP tool to call next"New value: +"MCP tool name for stored-request retrieval"
      • changedOutput schema / properties / requestId / description
        Previous value: -"durable request identifier; pass it to get_request to resume without repeating the paid POST"New value: +"durable request identifier for stored status and result retrieval without repeating the paid provider dispatch"
      • changedOutput schema / properties / resultId / description
        Previous value: -"opaque handle to the full result, cached ~15 min; pass it to read_result to dig deeper for free (no re-run, no charge). Absent when the result was too large to cache"New value: +"opaque handle to the full result, cached ~15 min; identifies the paid result available for free reshaping without another execution or charge. Absent when the result was too large to cache"
      • changedOutput schema / properties / source / description
        Previous value: -"the source that served this run: pass its id back in 'source' to prefer it again, or in 'ignoreSources' to avoid it. Absent when no source identity applies"New value: +"the source that served this request; its id is accepted by 'source' for preference or 'ignoreSources' for exclusion. Absent when no source identity applies"
    • Changedsend_feedback2 fields changed
      • changedInput schema / properties / contact / description
        Previous value: -"optional: an email address to reply to. Supply one if you are on a trial key, since a trial has no account we can reach"New value: +"optional: an email address for a reply; trial keys have no reachable account contact"
      • changedOutput schema / properties / id / description
        Previous value: -"the stored report id; quote it if you contact support about this"New value: +"the stored report id for support correspondence"
  3. 3 tool updates
    • Changedget_request1 field changed
      • changedOutput schema / properties / hint / description
        Previous value: -"optional nudge. 'large_result:' suggests fields/max_items/summary to keep future responses out of your context. 'paging_unavailable:' means this result came from a source that cannot return a nextCursor, so it may be INCOMPLETE and you cannot page further - re-run with requireFields [\"nextCursor\"] (may cost more per request) if you need the full list. 'malformed_query:' means X read your search query differently than it looks (adjacent bare words are ANDed and OR binds tighter, so a multi-word alternative is not a phrase); this result is what X returned for it, and the hint carries the corrected query to send next time"New value: +"optional nudge. 'large_result:' suggests fields/max_items/summary to keep future responses out of your context. 'paging_unavailable:' means this result came from a source that cannot return a nextCursor, so it may be INCOMPLETE and you cannot page further - re-run with requireFields [\"nextCursor\"] (may cost more per request) if you need the full list. 'malformed_query:' means X read your search query differently than it looks (adjacent bare words are ANDed and OR binds tighter, so a multi-word alternative is not a phrase); this result is what X returned for it, and the hint carries the corrected query to send next time. 'date_adjusted:' means a date you sent was outside the range the platform accepts, so the run used the nearest accepted date the hint names"
    • Changedread_result1 field changed
      • changedOutput schema / properties / hint / description
        Previous value: -"optional nudge. 'large_result:' suggests fields/max_items/summary to keep future responses out of your context. 'paging_unavailable:' means this result came from a source that cannot return a nextCursor, so it may be INCOMPLETE and you cannot page further - re-run with requireFields [\"nextCursor\"] (may cost more per request) if you need the full list. 'malformed_query:' means X read your search query differently than it looks (adjacent bare words are ANDed and OR binds tighter, so a multi-word alternative is not a phrase); this result is what X returned for it, and the hint carries the corrected query to send next time"New value: +"optional nudge. 'large_result:' suggests fields/max_items/summary to keep future responses out of your context. 'paging_unavailable:' means this result came from a source that cannot return a nextCursor, so it may be INCOMPLETE and you cannot page further - re-run with requireFields [\"nextCursor\"] (may cost more per request) if you need the full list. 'malformed_query:' means X read your search query differently than it looks (adjacent bare words are ANDed and OR binds tighter, so a multi-word alternative is not a phrase); this result is what X returned for it, and the hint carries the corrected query to send next time. 'date_adjusted:' means a date you sent was outside the range the platform accepts, so the run used the nearest accepted date the hint names"
    • Changedrun_api1 field changed
      • changedOutput schema / properties / hint / description
        Previous value: -"optional nudge. 'large_result:' suggests fields/max_items/summary to keep future responses out of your context. 'paging_unavailable:' means this result came from a source that cannot return a nextCursor, so it may be INCOMPLETE and you cannot page further - re-run with requireFields [\"nextCursor\"] (may cost more per request) if you need the full list. 'malformed_query:' means X read your search query differently than it looks (adjacent bare words are ANDed and OR binds tighter, so a multi-word alternative is not a phrase); this result is what X returned for it, and the hint carries the corrected query to send next time"New value: +"optional nudge. 'large_result:' suggests fields/max_items/summary to keep future responses out of your context. 'paging_unavailable:' means this result came from a source that cannot return a nextCursor, so it may be INCOMPLETE and you cannot page further - re-run with requireFields [\"nextCursor\"] (may cost more per request) if you need the full list. 'malformed_query:' means X read your search query differently than it looks (adjacent bare words are ANDed and OR binds tighter, so a multi-word alternative is not a phrase); this result is what X returned for it, and the hint carries the corrected query to send next time. 'date_adjusted:' means a date you sent was outside the range the platform accepts, so the run used the nearest accepted date the hint names"
  4. 3 tool updates
    • Changedget_request1 field changed
      • changedOutput schema / properties / hint / description
        Previous value: -"optional nudge. 'large_result:' suggests fields/max_items/summary to keep future responses out of your context. 'paging_unavailable:' means this result came from a source that cannot return a nextCursor, so it may be INCOMPLETE and you cannot page further - re-run with requireFields [\"nextCursor\"] (may cost more per request) if you need the full list"New value: +"optional nudge. 'large_result:' suggests fields/max_items/summary to keep future responses out of your context. 'paging_unavailable:' means this result came from a source that cannot return a nextCursor, so it may be INCOMPLETE and you cannot page further - re-run with requireFields [\"nextCursor\"] (may cost more per request) if you need the full list. 'malformed_query:' means X read your search query differently than it looks (adjacent bare words are ANDed and OR binds tighter, so a multi-word alternative is not a phrase); this result is what X returned for it, and the hint carries the corrected query to send next time"
    • Changedread_result1 field changed
      • changedOutput schema / properties / hint / description
        Previous value: -"optional nudge. 'large_result:' suggests fields/max_items/summary to keep future responses out of your context. 'paging_unavailable:' means this result came from a source that cannot return a nextCursor, so it may be INCOMPLETE and you cannot page further - re-run with requireFields [\"nextCursor\"] (may cost more per request) if you need the full list"New value: +"optional nudge. 'large_result:' suggests fields/max_items/summary to keep future responses out of your context. 'paging_unavailable:' means this result came from a source that cannot return a nextCursor, so it may be INCOMPLETE and you cannot page further - re-run with requireFields [\"nextCursor\"] (may cost more per request) if you need the full list. 'malformed_query:' means X read your search query differently than it looks (adjacent bare words are ANDed and OR binds tighter, so a multi-word alternative is not a phrase); this result is what X returned for it, and the hint carries the corrected query to send next time"
    • Changedrun_api1 field changed
      • changedOutput schema / properties / hint / description
        Previous value: -"optional nudge. 'large_result:' suggests fields/max_items/summary to keep future responses out of your context. 'paging_unavailable:' means this result came from a source that cannot return a nextCursor, so it may be INCOMPLETE and you cannot page further - re-run with requireFields [\"nextCursor\"] (may cost more per request) if you need the full list"New value: +"optional nudge. 'large_result:' suggests fields/max_items/summary to keep future responses out of your context. 'paging_unavailable:' means this result came from a source that cannot return a nextCursor, so it may be INCOMPLETE and you cannot page further - re-run with requireFields [\"nextCursor\"] (may cost more per request) if you need the full list. 'malformed_query:' means X read your search query differently than it looks (adjacent bare words are ANDed and OR binds tighter, so a multi-word alternative is not a phrase); this result is what X returned for it, and the hint carries the corrected query to send next time"
  5. 1 tool update
    • Changedget_api1 field changed
      • addedOutput schema / properties / scraper / properties / lanes / items / properties / health / properties / blockedPct
        Added value: +{
        +  "type": [
        +    "null",
        +    "number"
        +  ]
        +}
  6. 3 tool updates
    • Changedget_request1 field changed
      • changedOutput schema / properties / items / description
        Previous value: -"number of result rows returned. For per-result SKUs the per-item cost is charged against this; for input-priced SKUs (perItemUnit != result) the charge is per submitted input, independent of this count"New value: +"number of result rows returned; an API that returns one record counts it as one row. For per-result APIs the per-item cost is charged against this; for input-priced APIs (perItemUnit != result) the charge is per submitted input, independent of this count"
    • Changedread_result3 fields changed
      • changedInput schema / properties / fields / description
        Previous value: -"optional: keep only these keys on each result item (dotted paths like 'author.name' descend into nested objects)"New value: +"optional: keep only these keys on each result item - each row of the result list, or the data object itself for an API that returns one record (dotted paths like 'author.name' descend into nested objects)"
      • changedInput schema / properties / max_items / description
        Previous value: -"optional: cap the number of result items returned; a _truncated note reports how many were withheld"New value: +"optional: cap the number of result items returned; a _truncated note reports how many were withheld. An API that returns one record is not trimmed"
      • changedOutput schema / properties / items / description
        Previous value: -"number of result rows returned. For per-result SKUs the per-item cost is charged against this; for input-priced SKUs (perItemUnit != result) the charge is per submitted input, independent of this count"New value: +"number of result rows returned; an API that returns one record counts it as one row. For per-result APIs the per-item cost is charged against this; for input-priced APIs (perItemUnit != result) the charge is per submitted input, independent of this count"
    • Changedrun_api3 fields changed
      • changedInput schema / properties / fields / description
        Previous value: -"optional: keep only these keys on each result item (dotted paths like 'author.name' descend into nested objects). Shrinks the response without changing cost"New value: +"optional: keep only these keys on each result item - each row of the result list, or the data object itself for an API that returns one record (dotted paths like 'author.name' descend into nested objects). Shrinks the response without changing cost"
      • changedInput schema / properties / max_items / description
        Previous value: -"optional: cap the number of result items returned; a _truncated note reports how many were withheld. Does not change cost"New value: +"optional: cap the number of result items returned; a _truncated note reports how many were withheld. An API that returns one record is not trimmed. Does not change cost"
      • changedOutput schema / properties / items / description
        Previous value: -"number of result rows returned. For per-result SKUs the per-item cost is charged against this; for input-priced SKUs (perItemUnit != result) the charge is per submitted input, independent of this count"New value: +"number of result rows returned; an API that returns one record counts it as one row. For per-result APIs the per-item cost is charged against this; for input-priced APIs (perItemUnit != result) the charge is per submitted input, independent of this count"
  7. 3 tool updates
    • Changedget_request1 field changed
      • addedOutput schema / properties / source
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "the source that served this run: pass its id back in 'source' to prefer it again, or in 'ignoreSources' to avoid it. Absent when no source identity applies",
        +  "properties": {
        +    "artworkKey": {
        +      "type": "string"
        +    },
        +    "id": {
        +      "type": "string"
        +    },
        +    "kind": {
        +      "type": "string"
        +    },
        +    "name": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "id",
        +    "name",
        +    "kind",
        +    "artworkKey"
        +  ],
        +  "type": [
        +    "null",
        +    "object"
        +  ]
        +}
    • Changedread_result1 field changed
      • addedOutput schema / properties / source
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "the source that served this run: pass its id back in 'source' to prefer it again, or in 'ignoreSources' to avoid it. Absent when no source identity applies",
        +  "properties": {
        +    "artworkKey": {
        +      "type": "string"
        +    },
        +    "id": {
        +      "type": "string"
        +    },
        +    "kind": {
        +      "type": "string"
        +    },
        +    "name": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "id",
        +    "name",
        +    "kind",
        +    "artworkKey"
        +  ],
        +  "type": [
        +    "null",
        +    "object"
        +  ]
        +}
    • Changedrun_api1 field changed
      • addedOutput schema / properties / source
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "the source that served this run: pass its id back in 'source' to prefer it again, or in 'ignoreSources' to avoid it. Absent when no source identity applies",
        +  "properties": {
        +    "artworkKey": {
        +      "type": "string"
        +    },
        +    "id": {
        +      "type": "string"
        +    },
        +    "kind": {
        +      "type": "string"
        +    },
        +    "name": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "id",
        +    "name",
        +    "kind",
        +    "artworkKey"
        +  ],
        +  "type": [
        +    "null",
        +    "object"
        +  ]
        +}
  8. 1 tool update
    • Changedget_api1 field changed
      • addedOutput schema / properties / scraper / properties / lanes / items / properties / fields
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": [
        +    "null",
        +    "array"
        +  ]
        +}
  9. 3 tool updates
    • Changedget_api2 fields changed
      • addedOutput schema / properties / scraper / properties / lanes / items / properties / pricing / properties / addons
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "field": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "label": {
        +        "type": "string"
        +      },
        +      "usd": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "id",
        +      "label",
        +      "field",
        +      "usd"
        +    ],
        +    "type": "object"
        +  },
        +  "type": [
        +    "null",
        +    "array"
        +  ]
        +}
      • addedOutput schema / properties / scraper / properties / pricing / properties / from / properties / addons
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "field": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "label": {
        +        "type": "string"
        +      },
        +      "usd": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "id",
        +      "label",
        +      "field",
        +      "usd"
        +    ],
        +    "type": "object"
        +  },
        +  "type": [
        +    "null",
        +    "array"
        +  ]
        +}
    • Changedlist_apis1 field changed
      • addedOutput schema / properties / scrapers / items / properties / pricing / properties / from / properties / addons
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "field": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "label": {
        +        "type": "string"
        +      },
        +      "usd": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "id",
        +      "label",
        +      "field",
        +      "usd"
        +    ],
        +    "type": "object"
        +  },
        +  "type": [
        +    "null",
        +    "array"
        +  ]
        +}
    • Changedsearch_apis1 field changed
      • addedOutput schema / properties / results / items / properties / pricing / properties / from / properties / addons
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "field": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "label": {
        +        "type": "string"
        +      },
        +      "usd": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "id",
        +      "label",
        +      "field",
        +      "usd"
        +    ],
        +    "type": "object"
        +  },
        +  "type": [
        +    "null",
        +    "array"
        +  ]
        +}
  10. 3 tool updates
    • Changedget_request1 field changed
      • changedOutput schema / properties / hint / description
        Previous value: -"optional nudge. 'large_result:' suggests fields/max_items/summary to keep future responses out of your context. 'paging_unavailable:' means this result came from a source that cannot return a nextCursor, so it may be INCOMPLETE and you cannot page further - re-run with requireCursor true (may cost more per request) if you need the full list"New value: +"optional nudge. 'large_result:' suggests fields/max_items/summary to keep future responses out of your context. 'paging_unavailable:' means this result came from a source that cannot return a nextCursor, so it may be INCOMPLETE and you cannot page further - re-run with requireFields [\"nextCursor\"] (may cost more per request) if you need the full list"
    • Changedread_result1 field changed
      • changedOutput schema / properties / hint / description
        Previous value: -"optional nudge. 'large_result:' suggests fields/max_items/summary to keep future responses out of your context. 'paging_unavailable:' means this result came from a source that cannot return a nextCursor, so it may be INCOMPLETE and you cannot page further - re-run with requireCursor true (may cost more per request) if you need the full list"New value: +"optional nudge. 'large_result:' suggests fields/max_items/summary to keep future responses out of your context. 'paging_unavailable:' means this result came from a source that cannot return a nextCursor, so it may be INCOMPLETE and you cannot page further - re-run with requireFields [\"nextCursor\"] (may cost more per request) if you need the full list"
    • Changedrun_api1 field changed
      • changedOutput schema / properties / hint / description
        Previous value: -"optional nudge. 'large_result:' suggests fields/max_items/summary to keep future responses out of your context. 'paging_unavailable:' means this result came from a source that cannot return a nextCursor, so it may be INCOMPLETE and you cannot page further - re-run with requireCursor true (may cost more per request) if you need the full list"New value: +"optional nudge. 'large_result:' suggests fields/max_items/summary to keep future responses out of your context. 'paging_unavailable:' means this result came from a source that cannot return a nextCursor, so it may be INCOMPLETE and you cannot page further - re-run with requireFields [\"nextCursor\"] (may cost more per request) if you need the full list"
  11. 1 tool update
    • Changedsearch_apis2 fields changed
      • changedInput schema / properties / query / description
        Previous value: -"free-text search over API name, slug, and description"New value: +"free-text search over API name, slug, and description; optional when category or platform is given"
      • changedInput schema / required
        Previous value: -[
        -  "query",
        -  "context"
        -]New value: +[
        +  "context"
        +]
  12. 10 tool updates
    • Changedget_api22 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "sku_id"
        -]New value: +[
        +  "sku_id",
        +  "context"
        +]
      • removedOutput schema / properties / scraper / properties / baseUsd
        Removed value: -{
        -  "description": "fixed cost per request in USD, charged regardless of count",
        -  "type": "number"
        -}
      • addedOutput schema / properties / scraper / properties / excludesCallerDelay
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / scraper / properties / execution
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "mode": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "mode"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / scraper / properties / failover
        Added value: +{
        +  "type": "boolean"
        +}
      • removedOutput schema / properties / scraper / properties / heavy / description
        Removed value: -"true when this API's responses are typically large; pass fields, max_items, or summary to run_api (and a small limit in the input) to keep the result out of your context"
      • changedOutput schema / properties / scraper / properties / inputSchema
        Previous value: -{
        -  "description": "normalized input JSON Schema"
        -}New value: +true
      • addedOutput schema / properties / scraper / properties / lanes
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "health": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "latencyP50Ms": {
        +            "type": "integer"
        +          },
        +          "latencySample": {
        +            "type": "integer"
        +          },
        +          "requests": {
        +            "type": "integer"
        +          },
        +          "servedRequests": {
        +            "type": "integer"
        +          },
        +          "uptimePct": {
        +            "type": "number"
        +          },
        +          "uptimeSample": {
        +            "type": "integer"
        +          },
        +          "window": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "window",
        +          "uptimePct",
        +          "latencyP50Ms",
        +          "uptimeSample",
        +          "latencySample",
        +          "requests",
        +          "servedRequests"
        +        ],
        +        "type": [
        +          "null",
        +          "object"
        +        ]
        +      },
        +      "pricing": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "baseUsd": {
        +            "type": [
        +              "null",
        +              "number"
        +            ]
        +          },
        +          "maxPer1kUsd": {
        +            "type": "number"
        +          },
        +          "maxUsd": {
        +            "type": "number"
        +          },
        +          "model": {
        +            "type": "string"
        +          },
        +          "perUnitUsd": {
        +            "type": [
        +              "null",
        +              "number"
        +            ]
        +          },
        +          "unit": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "model",
        +          "unit",
        +          "maxUsd",
        +          "maxPer1kUsd"
        +        ],
        +        "type": "object"
        +      },
        +      "source": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "artworkKey": {
        +            "type": "string"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "kind": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "name",
        +          "kind",
        +          "artworkKey"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "pricing",
        +      "source"
        +    ],
        +    "type": "object"
        +  },
        +  "type": [
        +    "null",
        +    "array"
        +  ]
        +}
      • addedOutput schema / properties / scraper / properties / latency
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "basis": {
        +      "type": "string"
        +    },
        +    "p50Ms": {
        +      "type": "integer"
        +    },
        +    "p95Ms": {
        +      "type": "integer"
        +    },
        +    "p99Ms": {
        +      "type": "integer"
        +    },
        +    "sample": {
        +      "type": "integer"
        +    },
        +    "window": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "window",
        +    "p50Ms",
        +    "p95Ms",
        +    "p99Ms",
        +    "sample",
        +    "basis"
        +  ],
        +  "type": [
        +    "null",
        +    "object"
        +  ]
        +}
      • addedOutput schema / properties / scraper / properties / method
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / scraper / properties / outputSchema
        Previous value: -{
        -  "description": "normalized output JSON Schema"
        -}New value: +true
      • addedOutput schema / properties / scraper / properties / path
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / scraper / properties / perItemUnit
        Removed value: -{
        -  "description": "the unit perItemUsd is charged per: 'result' (default) or an input unit like 'username' for input-priced SKUs",
        -  "type": "string"
        -}
      • removedOutput schema / properties / scraper / properties / perItemUsd
        Removed value: -{
        -  "description": "marginal cost in USD per billable unit (see perItemUnit); total = baseUsd + perItemUsd × unitCount, capped at priceUsd",
        -  "type": "number"
        -}
      • removedOutput schema / properties / scraper / properties / priceUsd
        Removed value: -{
        -  "description": "maximum price per request in USD (the reserved ceiling at the default limit)",
        -  "type": "number"
        -}
      • addedOutput schema / properties / scraper / properties / pricing
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "failoverMaxPer1kUsd": {
        +      "type": "number"
        +    },
        +    "failoverMaxUsd": {
        +      "type": "number"
        +    },
        +    "from": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "baseUsd": {
        +          "type": [
        +            "null",
        +            "number"
        +          ]
        +        },
        +        "maxPer1kUsd": {
        +          "type": "number"
        +        },
        +        "maxUsd": {
        +          "type": "number"
        +        },
        +        "model": {
        +          "type": "string"
        +        },
        +        "perUnitUsd": {
        +          "type": [
        +            "null",
        +            "number"
        +          ]
        +        },
        +        "unit": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "model",
        +        "unit",
        +        "maxUsd",
        +        "maxPer1kUsd"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "from",
        +    "failoverMaxUsd",
        +    "failoverMaxPer1kUsd"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / scraper / properties / provider
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / scraper / properties / tryEligible
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / scraper / properties / tryMaxItems
        Added value: +{
        +  "type": [
        +    "null",
        +    "integer"
        +  ]
        +}
      • changedOutput schema / properties / scraper / required
        Previous value: -[
        -  "id",
        -  "slug",
        -  "category",
        -  "name",
        -  "description",
        -  "priceUsd",
        -  "baseUsd",
        -  "perItemUsd"
        -]New value: +[
        +  "id",
        +  "slug",
        +  "category",
        +  "name",
        +  "method",
        +  "path",
        +  "provider",
        +  "execution",
        +  "pricing",
        +  "failover",
        +  "description",
        +  "lanes",
        +  "latency",
        +  "tryEligible"
        +]
    • Changedget_balance3 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties
        Added value: +{
        +  "context": {
        +    "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        +    "type": "string"
        +  }
        +}
      • addedInput schema / required
        Added value: +[
        +  "context"
        +]
    • Addedget_request
    • Changedlist_apis17 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        +  "type": "string"
        +}
      • removedInput schema / properties / query
        Removed value: -{
        -  "description": "optional free-text filter over API name and description",
        -  "type": "string"
        -}
      • addedInput schema / required
        Added value: +[
        +  "context"
        +]
      • removedOutput schema / properties / scrapers / items / properties / baseUsd
        Removed value: -{
        -  "description": "fixed cost per request in USD, charged regardless of count",
        -  "type": "number"
        -}
      • addedOutput schema / properties / scrapers / items / properties / excludesCallerDelay
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / scrapers / items / properties / execution
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "mode": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "mode"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / scrapers / items / properties / failover
        Added value: +{
        +  "type": "boolean"
        +}
      • removedOutput schema / properties / scrapers / items / properties / heavy / description
        Removed value: -"true when this API's responses are typically large; pass fields, max_items, or summary to run_api (and a small limit in the input) to keep the result out of your context"
      • addedOutput schema / properties / scrapers / items / properties / method
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / scrapers / items / properties / path
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / scrapers / items / properties / perItemUnit
        Removed value: -{
        -  "description": "the unit perItemUsd is charged per: 'result' (default) or an input unit like 'username' for input-priced SKUs",
        -  "type": "string"
        -}
      • removedOutput schema / properties / scrapers / items / properties / perItemUsd
        Removed value: -{
        -  "description": "marginal cost in USD per billable unit (see perItemUnit); total = baseUsd + perItemUsd × unitCount, capped at priceUsd",
        -  "type": "number"
        -}
      • removedOutput schema / properties / scrapers / items / properties / priceUsd
        Removed value: -{
        -  "description": "maximum price per request in USD (the reserved ceiling at the default limit)",
        -  "type": "number"
        -}
      • addedOutput schema / properties / scrapers / items / properties / pricing
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "failoverMaxPer1kUsd": {
        +      "type": "number"
        +    },
        +    "failoverMaxUsd": {
        +      "type": "number"
        +    },
        +    "from": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "baseUsd": {
        +          "type": [
        +            "null",
        +            "number"
        +          ]
        +        },
        +        "maxPer1kUsd": {
        +          "type": "number"
        +        },
        +        "maxUsd": {
        +          "type": "number"
        +        },
        +        "model": {
        +          "type": "string"
        +        },
        +        "perUnitUsd": {
        +          "type": [
        +            "null",
        +            "number"
        +          ]
        +        },
        +        "unit": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "model",
        +        "unit",
        +        "maxUsd",
        +        "maxPer1kUsd"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "from",
        +    "failoverMaxUsd",
        +    "failoverMaxPer1kUsd"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / scrapers / items / properties / provider
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / scrapers / items / required
        Previous value: -[
        -  "id",
        -  "slug",
        -  "category",
        -  "name",
        -  "priceUsd",
        -  "baseUsd",
        -  "perItemUsd"
        -]New value: +[
        +  "id",
        +  "slug",
        +  "category",
        +  "name",
        +  "method",
        +  "path",
        +  "provider",
        +  "execution",
        +  "pricing",
        +  "failover"
        +]
    • Changedquote_api3 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "sku_id",
        -  "input"
        -]New value: +[
        +  "sku_id",
        +  "input",
        +  "context"
        +]
    • Changedread_result12 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "result_id"
        -]New value: +[
        +  "result_id",
        +  "context"
        +]
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "safe AnyAPI failure code when durable work failed",
        +  "properties": {
        +    "code": {
        +      "description": "safe AnyAPI error code",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code"
        +  ],
        +  "type": [
        +    "null",
        +    "object"
        +  ]
        +}
      • changedOutput schema / properties / hint / description
        Previous value: -"optional nudge, present only on large untrimmed results, suggesting fields/max_items/summary to keep future responses out of your context"New value: +"optional nudge. 'large_result:' suggests fields/max_items/summary to keep future responses out of your context. 'paging_unavailable:' means this result came from a source that cannot return a nextCursor, so it may be INCOMPLETE and you cannot page further - re-run with requireCursor true (may cost more per request) if you need the full list"
      • addedOutput schema / properties / nextAction
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "machine-actionable resume instruction present while durable work is pending",
        +  "properties": {
        +    "requestId": {
        +      "description": "request_id argument for the next tool call",
        +      "type": "string"
        +    },
        +    "retryAfterSeconds": {
        +      "description": "minimum delay before polling again",
        +      "type": "integer"
        +    },
        +    "tool": {
        +      "description": "MCP tool to call next",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "tool",
        +    "requestId",
        +    "retryAfterSeconds"
        +  ],
        +  "type": [
        +    "null",
        +    "object"
        +  ]
        +}
      • addedOutput schema / properties / replayed
        Added value: +{
        +  "description": "true when this response replays an identical earlier call (same API, same input) from the last few minutes instead of running again: nothing new was executed and costUsd restates the original charge, it was NOT charged a second time",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / requestId
        Added value: +{
        +  "description": "durable request identifier; pass it to get_request to resume without repeating the paid POST",
        +  "type": "string"
        +}
      • addedOutput schema / properties / serviceOutcome
        Added value: +{
        +  "description": "end-to-end AnyAPI service outcome when known",
        +  "type": "string"
        +}
      • addedOutput schema / properties / settlementState
        Added value: +{
        +  "description": "payment settlement state when known; independent of durable request status",
        +  "type": "string"
        +}
      • addedOutput schema / properties / status
        Added value: +{
        +  "description": "durable request status: queued, running, succeeded, failed, or expired",
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "output",
        -  "provider",
        -  "costUsd",
        -  "items"
        -]New value: +[
        +  "output",
        +  "provider",
        +  "costUsd",
        +  "items",
        +  "replayed"
        +]
    • Addedreport_bug
    • Changedrun_api12 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "sku_id",
        -  "input"
        -]New value: +[
        +  "sku_id",
        +  "input",
        +  "context"
        +]
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "safe AnyAPI failure code when durable work failed",
        +  "properties": {
        +    "code": {
        +      "description": "safe AnyAPI error code",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code"
        +  ],
        +  "type": [
        +    "null",
        +    "object"
        +  ]
        +}
      • changedOutput schema / properties / hint / description
        Previous value: -"optional nudge, present only on large untrimmed results, suggesting fields/max_items/summary to keep future responses out of your context"New value: +"optional nudge. 'large_result:' suggests fields/max_items/summary to keep future responses out of your context. 'paging_unavailable:' means this result came from a source that cannot return a nextCursor, so it may be INCOMPLETE and you cannot page further - re-run with requireCursor true (may cost more per request) if you need the full list"
      • addedOutput schema / properties / nextAction
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "machine-actionable resume instruction present while durable work is pending",
        +  "properties": {
        +    "requestId": {
        +      "description": "request_id argument for the next tool call",
        +      "type": "string"
        +    },
        +    "retryAfterSeconds": {
        +      "description": "minimum delay before polling again",
        +      "type": "integer"
        +    },
        +    "tool": {
        +      "description": "MCP tool to call next",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "tool",
        +    "requestId",
        +    "retryAfterSeconds"
        +  ],
        +  "type": [
        +    "null",
        +    "object"
        +  ]
        +}
      • addedOutput schema / properties / replayed
        Added value: +{
        +  "description": "true when this response replays an identical earlier call (same API, same input) from the last few minutes instead of running again: nothing new was executed and costUsd restates the original charge, it was NOT charged a second time",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / requestId
        Added value: +{
        +  "description": "durable request identifier; pass it to get_request to resume without repeating the paid POST",
        +  "type": "string"
        +}
      • addedOutput schema / properties / serviceOutcome
        Added value: +{
        +  "description": "end-to-end AnyAPI service outcome when known",
        +  "type": "string"
        +}
      • addedOutput schema / properties / settlementState
        Added value: +{
        +  "description": "payment settlement state when known; independent of durable request status",
        +  "type": "string"
        +}
      • addedOutput schema / properties / status
        Added value: +{
        +  "description": "durable request status: queued, running, succeeded, failed, or expired",
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "output",
        -  "provider",
        -  "costUsd",
        -  "items"
        -]New value: +[
        +  "output",
        +  "provider",
        +  "costUsd",
        +  "items",
        +  "replayed"
        +]
    • Changedsearch_apis24 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        +  "type": "string"
        +}
      • changedInput schema / properties / limit / description
        Previous value: -"optional cap on matches returned (default 25); 'total' reports how many relevant matches there were before the cap"New value: +"optional cap on matches returned (default 25, maximum 50)"
      • addedInput schema / properties / platform
        Added value: +{
        +  "description": "optional API slug prefix to narrow the search",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "query"
        -]New value: +[
        +  "query",
        +  "context"
        +]
      • removedOutput schema / properties / ranking / description
        Removed value: -"'semantic' when meaning-based ranking served this search, 'keyword' when it fell back to substring matching (relevance is coarser)"
      • removedOutput schema / properties / results / description
        Removed value: -"matching APIs with descriptions (schemas omitted), most relevant first"
      • removedOutput schema / properties / results / items / properties / baseUsd
        Removed value: -{
        -  "description": "fixed cost per request in USD, charged regardless of count",
        -  "type": "number"
        -}
      • addedOutput schema / properties / results / items / properties / excludesCallerDelay
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / results / items / properties / execution
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "mode": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "mode"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / results / items / properties / failover
        Added value: +{
        +  "type": "boolean"
        +}
      • removedOutput schema / properties / results / items / properties / heavy / description
        Removed value: -"true when this API's responses are typically large; pass fields, max_items, or summary to run_api (and a small limit in the input) to keep the result out of your context"
      • removedOutput schema / properties / results / items / properties / inputSchema
        Removed value: -{
        -  "description": "normalized input JSON Schema"
        -}
      • addedOutput schema / properties / results / items / properties / method
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / results / items / properties / outputSchema
        Removed value: -{
        -  "description": "normalized output JSON Schema"
        -}
      • addedOutput schema / properties / results / items / properties / path
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / results / items / properties / perItemUnit
        Removed value: -{
        -  "description": "the unit perItemUsd is charged per: 'result' (default) or an input unit like 'username' for input-priced SKUs",
        -  "type": "string"
        -}
      • removedOutput schema / properties / results / items / properties / perItemUsd
        Removed value: -{
        -  "description": "marginal cost in USD per billable unit (see perItemUnit); total = baseUsd + perItemUsd × unitCount, capped at priceUsd",
        -  "type": "number"
        -}
      • removedOutput schema / properties / results / items / properties / priceUsd
        Removed value: -{
        -  "description": "maximum price per request in USD (the reserved ceiling at the default limit)",
        -  "type": "number"
        -}
      • addedOutput schema / properties / results / items / properties / pricing
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "failoverMaxPer1kUsd": {
        +      "type": "number"
        +    },
        +    "failoverMaxUsd": {
        +      "type": "number"
        +    },
        +    "from": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "baseUsd": {
        +          "type": [
        +            "null",
        +            "number"
        +          ]
        +        },
        +        "maxPer1kUsd": {
        +          "type": "number"
        +        },
        +        "maxUsd": {
        +          "type": "number"
        +        },
        +        "model": {
        +          "type": "string"
        +        },
        +        "perUnitUsd": {
        +          "type": [
        +            "null",
        +            "number"
        +          ]
        +        },
        +        "unit": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "model",
        +        "unit",
        +        "maxUsd",
        +        "maxPer1kUsd"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "from",
        +    "failoverMaxUsd",
        +    "failoverMaxPer1kUsd"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / results / items / properties / provider
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / results / items / properties / relevance / description
        Previous value: -"relative relevance in (0,1], 1.0 = the best match in this response; comparable only within this response"New value: +"relative relevance in (0,1], 1.0 = the best match"
      • changedOutput schema / properties / results / items / required
        Previous value: -[
        -  "id",
        -  "slug",
        -  "category",
        -  "name",
        -  "description",
        -  "priceUsd",
        -  "baseUsd",
        -  "perItemUsd",
        -  "relevance"
        -]New value: +[
        +  "id",
        +  "slug",
        +  "category",
        +  "name",
        +  "description",
        +  "method",
        +  "path",
        +  "provider",
        +  "execution",
        +  "pricing",
        +  "failover",
        +  "relevance"
        +]
      • removedOutput schema / properties / total / description
        Removed value: -"number of relevant matches (after the relevance floor), before the limit cap - if this is large, narrow your query"
    • Addedsend_feedback
  13. 4 tool updates
    • Changedget_api1 field changed
      • addedOutput schema / properties / scraper / properties / heavy
        Added value: +{
        +  "description": "true when this API's responses are typically large; pass fields, max_items, or summary to run_api (and a small limit in the input) to keep the result out of your context",
        +  "type": "boolean"
        +}
    • Changedlist_apis1 field changed
      • addedOutput schema / properties / scrapers / items / properties / heavy
        Added value: +{
        +  "description": "true when this API's responses are typically large; pass fields, max_items, or summary to run_api (and a small limit in the input) to keep the result out of your context",
        +  "type": "boolean"
        +}
    • Addedquote_api
    • Changedsearch_apis8 fields changed
      • changedInput schema / properties / limit / description
        Previous value: -"optional cap on matches returned (default 25); 'total' reports how many matched before the cap"New value: +"optional cap on matches returned (default 25); 'total' reports how many relevant matches there were before the cap"
      • addedOutput schema / properties / ranking
        Added value: +{
        +  "description": "'semantic' when meaning-based ranking served this search, 'keyword' when it fell back to substring matching (relevance is coarser)",
        +  "type": "string"
        +}
      • changedOutput schema / properties / results / description
        Previous value: -"matching APIs with descriptions (schemas omitted)"New value: +"matching APIs with descriptions (schemas omitted), most relevant first"
      • addedOutput schema / properties / results / items / properties / heavy
        Added value: +{
        +  "description": "true when this API's responses are typically large; pass fields, max_items, or summary to run_api (and a small limit in the input) to keep the result out of your context",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / results / items / properties / relevance
        Added value: +{
        +  "description": "relative relevance in (0,1], 1.0 = the best match in this response; comparable only within this response",
        +  "type": "number"
        +}
      • changedOutput schema / properties / results / items / required
        Previous value: -[
        -  "id",
        -  "slug",
        -  "category",
        -  "name",
        -  "description",
        -  "priceUsd",
        -  "baseUsd",
        -  "perItemUsd"
        -]New value: +[
        +  "id",
        +  "slug",
        +  "category",
        +  "name",
        +  "description",
        +  "priceUsd",
        +  "baseUsd",
        +  "perItemUsd",
        +  "relevance"
        +]
      • changedOutput schema / properties / total / description
        Previous value: -"number of APIs that matched before the limit was applied"New value: +"number of relevant matches (after the relevance floor), before the limit cap - if this is large, narrow your query"
      • changedOutput schema / required
        Previous value: -[
        -  "results",
        -  "total"
        -]New value: +[
        +  "results",
        +  "total",
        +  "ranking"
        +]
  14. 2 tool updates
    • Addedread_result
    • Changedrun_api4 fields changed
      • addedInput schema / properties / jq
        Added value: +{
        +  "description": "optional: a jq expression to reshape the result; its output replaces 'output' (multiple outputs collect into an array). Example: '.data | {title, description, md: .markdown[:3500]}'. Sandboxed 250ms/2MB budget; on failure the full result is returned with jqError. Does not change cost",
        +  "type": "string"
        +}
      • changedInput schema / properties / summary / description
        Previous value: -"optional: return only a structural outline (top-level keys and item counts) instead of the full data. Does not change cost"New value: +"optional: return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost"
      • addedOutput schema / properties / jqError
        Added value: +{
        +  "description": "present only when a jq expression failed; output then holds the full unshaped result and this explains why the reshape did not apply",
        +  "type": "string"
        +}
      • addedOutput schema / properties / resultId
        Added value: +{
        +  "description": "opaque handle to the full result, cached ~15 min; pass it to read_result to dig deeper for free (no re-run, no charge). Absent when the result was too large to cache",
        +  "type": "string"
        +}
  15. 2 tool updates
    • Changedlist_apis5 fields changed
      • changedOutput schema / properties / scrapers / description
        Previous value: -"matching APIs"New value: +"matching APIs (lightweight summaries: no description or schemas)"
      • removedOutput schema / properties / scrapers / items / properties / description
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / scrapers / items / properties / inputSchema
        Removed value: -{
        -  "description": "normalized input JSON Schema"
        -}
      • removedOutput schema / properties / scrapers / items / properties / outputSchema
        Removed value: -{
        -  "description": "normalized output JSON Schema"
        -}
      • changedOutput schema / properties / scrapers / items / required
        Previous value: -[
        -  "id",
        -  "slug",
        -  "category",
        -  "name",
        -  "description",
        -  "priceUsd",
        -  "baseUsd",
        -  "perItemUsd"
        -]New value: +[
        +  "id",
        +  "slug",
        +  "category",
        +  "name",
        +  "priceUsd",
        +  "baseUsd",
        +  "perItemUsd"
        +]
    • Addedsearch_apis
  16. 4 tool updates
    • First observedget_api
    • First observedget_balance
    • First observedlist_apis
    • First observedrun_api

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.