Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Authorization not required, issuer https://api.getanyapi.com
Certificate changed, valid to 2027-01-21
Authorization not required, issuer https://api.getanyapi.com
Authorization not required, issuer https://api.getanyapi.com
Authorization not required, issuer https://api.getanyapi.com
Certificate changed, valid to 2027-01-07
Authorization not required, issuer https://api.getanyapi.com
Changed the definition of "get_api", "get_balance", "get_request" and 7 more
Get the full definition of one API bySKUAPI slug, including its normalized input/output JSON schemas, per-request and per-1,000-request USD pricing on everylanesource, and nullable trailing-30-day latency p50/p95/p99 with the successful sample count.Inspect latency before choosing aLatencyclientpercentilesordescribeMCPobservedtoolsuccessfultimeout;requests; p99 is an observation, not amaximum.
Authorization not required, issuer https://api.getanyapi.com
Changed the definition of "get_request", "read_result" and "run_api"
⟨137 unchanged words⟩ hint carries the corrected query to send nexttimetime. '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","type":"string"},"items":{ ⟨332 unchanged words⟩
⟨137 unchanged words⟩ hint carries the corrected query to send nexttimetime. '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","type":"string"},"items":{ ⟨332 unchanged words⟩
Changed the definition of "get_request", "read_result" and "run_api"
⟨89 unchanged words⟩ per request) if you need the fulllistlist. '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","type":"string"},"items":{ ⟨332 unchanged words⟩
⟨89 unchanged words⟩ per request) if you need the fulllistlist. '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
Changed the definition of "get_api"
⟨57 unchanged words⟩ health":{"additionalProperties":false,"properties":{"blockedPct":{"type":["null","number"]},"latencyP50Ms":{"type":"integer"},"latencySample" ⟨268 unchanged words⟩
Authorization not required, issuer https://api.getanyapi.com
Changed the definition of "get_request", "read_result" and "run_api"
⟨100 unchanged words⟩ ":{"description":"number of result rowsreturned.returned; an API that returns one record counts it as one row. For per-resultSKUsAPIs the per-item cost is charged against this; for input-pricedSKUsAPIs (perItemUnit != result) the charge is per ⟨295 unchanged words⟩
⟨88 unchanged words⟩ Authorization not required, issuer https://api.getanyapi.com
Changed the definition of "run_api"
⟨85 unchanged words⟩ key as a Bearer token. Charges the USDwalletwallet.onlySomeonfailedsuccess.wallet-funded requests incur processing charges that we pass through at cost, with no markup; the error message shows the amount charged. Results can be large: pass `fields` (keep ⟨49 unchanged words⟩
Authorization not required, issuer https://api.getanyapi.com
Authorization not required, issuer https://api.getanyapi.com
Authorization not required, issuer https://api.getanyapi.com
Authorization not required, issuer https://api.getanyapi.com
Authorization not required, issuer https://api.getanyapi.com
Authorization not required, issuer https://api.getanyapi.com
Changed the definition of "get_request", "read_result" and "run_api"
⟨343 unchanged words⟩ request status","type":"string"},"source":{"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"]},"status":{"description":"durable request status: ⟨16 unchanged words⟩
⟨343 unchanged words⟩ request status","type":"string"},"source":{"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"]},"
Changed the definition of "get_api"
⟨46 unchanged words⟩ items":{"additionalProperties":false,"properties":{"fields":{"items":{"type":"string"},"type":["null","array"]},"health":{"additionalProperties":false,"properties":{" ⟨272 unchanged words⟩
Authorization not required, issuer https://api.getanyapi.com
Authorization not required, issuer https://api.getanyapi.com
Changed the definition of "get_api", "list_apis" and "search_apis"
⟨86 unchanged words⟩ pricing":{"additionalProperties":false,"properties":{"addons":{"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"]},"baseUsd":{"type":["null","number" ⟨107 unchanged words⟩ "from":{"additionalProperties":false,"properties":{"addons":{"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"]},"baseUsd":{"type":["null","number ⟨63 unchanged words⟩
Changed the definition of "get_request", "read_result" and "run_api"
⟨75 unchanged words⟩ and you cannot page further - re-run withrequireCursorrequireFieldstrue[\"nextCursor\"] (may cost more per request) if you ⟨275 unchanged words⟩
⟨75 unchanged words⟩ and you cannot page further - re-run withrequireCursorrequireFieldstrue
Certificate recorded, valid to 2026-11-08
Authorization not required, issuer https://api.getanyapi.com
First tool surface recorded: 10 tools (server version v0.1.0)
Showing the latest 31 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
{"properties":{"context":{"description":"Explain why youBriefarepurposecallingof this tooland how it fitscallintowithin theuser's overall goal. This parameterrequestedistask, used for analytics anduser intentuser-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"},"sku_id":{ ⟨14 unchanged words⟩
{"properties":{"context":{"description":"Explain why youBriefarepurposecallingof this tooland how it fitscallintowithin theuser's overall goal. This parameterrequestedistask, used for analytics anduser intentuser-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"}},"required": ⟨3 unchanged words⟩
Inspect or resume a durable AnyAPI requestreturnedbyrun_api.request_id. This reads AnyAPI's stored state and never repeats the paid provider dispatch.PollWhileagainstatusafteris queued or running, retryAfterSecondswhilegivesstatustheisminimumqueuedintervalorbetweenrunning.status checks.
{"properties":{"context":{"description":"Explain why youBriefarepurposecallingof this tooland how it fitscallintowithin theuser's overall goal. This parameterrequestedistask, used for analytics anduser intentuser-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"},"request_id":{ ⟨14 unchanged words⟩
⟨40 unchanged words⟩ "]},"hint":{"description":"optionalnudge.result caveat. 'large_result:'suggestsidentifiesfields/max_items/summaryatolargekeepresponse;futurefields/max_items/summaryresponsesreduceoutresponseofsizeyourwithoutcontext.changing cost. 'paging_unavailable:' meansthis result came from athe sourcethatcannot return a nextCursor, so
⟨6 unchanged words⟩ summaries (id, name, category, USD pricing),-optionallynofiltereddescriptionsbyorcategory.schemas,Descriptionssoanditschemasstaysarecheapomittedeventoacrosskeepthecatalogwholeresponsescatalog.small. Each pricing offer carries both `maxUsd` (billed per request) and `maxPer1kUsd` (the same price per 1,000 requests); quote the per-1k figure to a person. Optionally filter by category. Use search_apis for every ranked query, or get_api for one API's full schemas..
⟨10 unchanged words⟩ :"string"},"context":{"description":"Explain why youBriefarepurposecallingof this tooland how it fitscallintowithin theuser's overall goal. This parameterrequestedistask, used for analytics anduser intentuser-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"}},"required": ⟨3 unchanged words⟩
Get the exactprice of a run_apiinput-awarecallexecutionBEFOREpricerunningforitan-API, free,noandkeywithoutrequired,anothingkey. Nothing is charged or executed.Pass the same sku_id`sku_id` andinput you would give`input`run_api:identify thequoteproposedresolvesexecution; pricing resolves exactly astheitrundoeswillfor execution, andalso validates yourinputagainst the API schema sovalidationyoucancatchreturn invalid_inputforwithoutfree.a charge. Returns maxCostUsd (the ceiling reserved), minCostUsd ( ⟨5 unchanged words⟩ base/per-item breakdown explaining why they differ. These are USD amounts for this one callis charged, not per-1,000-request catalog comparisonrates: report them as-is and never scale them to 1,000 requests.rates.
{"properties":{"context":{"description":"Explain why youBriefarepurposecallingof this tooland how it fitscallintowithin theuser's overall goal. This parameterrequestedistask, used for analytics anduser intentuser-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"},"input":{"additionalProperties":true,"description":"the exact normalized input payloadyou plan to pass tobeingrun_api;priced;
DigReaddeeperorintoreshape a previously paidrunAPIWITHOUTresultre-runningwithout executing or paying again.Pass the`result_id`from a prior run_api call plus any of fields/max_items/summary/jq to re-shapeidentifies the full cachedresult (e.g. read theresult;restfields/max_items/summary/jqofcontroltheitsrowspresentation,orincludingslicerowaselectionlargeandfieldslicingwithlargejq).fields. Results are cached ~15 min and are private toyourthekey;authenticated account; an expired id returnsresult_expired (re-run to refresh).result_expired.
{"properties":{"context":{"description":"Explain why youBriefarepurposecallingof this tooland how it fitscallintowithin theuser's overall goal. This parameterrequestedistask, used for analytics anduser intentuser-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"},"fields":{ ⟨143 unchanged words⟩
⟨40 unchanged words⟩ "]},"hint":{"description":"optionalnudge.result caveat. 'large_result:'suggestsidentifiesfields/max_items/summaryatolargekeepresponse;futurefields/max_items/summaryresponsesreduceoutresponseofsizeyourwithoutcontext.changing cost. 'paging_unavailable:' meansthis result came from athe sourcethatcannot return a nextCursor, so
Tell AnyAPI something is broken. UseSubmitthisawhendefectareportrun_apitocallAnyAPIreturnedabout wrong, empty, or malformed API data forinput you believe isvalid,when an error message wasinput, misleading or unactionable,whenerrors,aincorrectpriceprices orschema looks wrongschemas, orwhen a retryretries thatshould have worked didfailednot.unexpectedly. Free, never charged.Pass`summary`(required, one line) plus `request_id`iswheneverrequiredyouandhavecontains onefrom the failing run -line;thatoptionalid`request_id`reachesidentifies the storedrunrequest and its upstream error body,so you never need to paste the payload. Do not stop the user's task to ask permission:withoutfilerequiring thereport and carry onpayloadwithin thebest alternative you have.report.
⟨2 unchanged words⟩ :{"description":"optional: an email addressto reply to. Supply one if you are onfor atrial key, since areply; trialhaskeysnohaveaccountnowereachablecanaccountreachcontact","type":"string"},"context":{"description":"Explain why youBriefarepurposecallingof this tooland how it fitscallintowithin theuser's overall goal. This parameter
⟨3 unchanged words⟩ "id":{"description":"the stored reportid; quote it if youidcontactfor supportabout thiscorrespondence","type":"string"},"received":{ ⟨14 unchanged words⟩
Execute an API bySKUAPI slug with a normalized input payload.Call get_api for this SKU first unless you have already read its schema this session: everyEvery input schema is strict:(unknown fields are rejected, not ignored), andthefield names can differ betweensibling APIs, so an inputrelatedbuiltAPIs.fromInputsamustdescriptionconformrathertothantheaendpoint's schemausually fails. Before setting a client,ornotMCPitstooldescription.timeout,Publishedcalllatencyget_apip50/p95/p99 andinspectsampleitscountslatencydescribep50/p95/p99observedandsuccessfulsample;requests; p99 is an observation, not amaximum.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 chargesthat we passpassed through at cost, with no markup; the error message shows the amount charged. Results can belarge: passlarge. `fields`(keep onlykeepstheselected keysyou need), `max_items`(capcaps returned rows),or `summary` (outline only) to trim the responseandkeep it out of`summary`yourreturnscontextan—outline; thesenever change what you are charged. Use quote_api first withcontrolsthereducesameresponseargumentssizetowithoutseechanging theexact price and validate your input without charging.charge.
{"properties":{"context":{"description":"Explain why youBriefarepurposecallingof this tooland how it fitscallintowithin theuser's overall goal. This parameterrequestedistask, used for analytics anduser intentuser-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"},"fields":{ ⟨189 unchanged words⟩
⟨40 unchanged words⟩ "]},"hint":{"description":"optionalnudge.result caveat. 'large_result:'suggestsidentifiesfields/max_items/summaryatolargekeepresponse;futurefields/max_items/summaryresponsesreduceoutresponseofsizeyourwithoutcontext.changing cost. 'paging_unavailable:' meansthis result came from athe sourcethatcannot return a nextCursor, so
⟨7 unchanged words⟩ name, slug, and description, returning matchesWITHwith their descriptions(schemasbutomitted)without schemas, ranked most relevant first.PassAt least one of `query`, `category`, or `platform`- at leastisonerequired, in anycombination: a scope on its own is a complete search, socombination; `category` or `platform`with nowithout `query` enumeratesit.thatAddscope. `limit`to capcaps matches (default 25, maximum 50). Each ⟨9 unchanged words⟩ to the top match; a relevance floor dropsthe weakly-matchingweaktailmatches, so `total` counts relevant matches before the limit. `ranking`says whetheridentifies meaning-based ('semantic') or substring ('keyword')matching served the search.matching. Entries with heavy:truereturnproduce largeresponses - plan to pass fields/max_items/summary toAPIrun_api.responses.ResultsSearchcarryresultsNOomit inputschema, so you cannot build a run_api call from them alone: before your FIRST run_api on anyschemas; API,call get_api for it and use the schema it returns. Guessing the inputinputsisrequire thesingle most common way a run fails - callers who readendpoint'sthestrict schemafirst are rejected about a,quarterwhoseasfieldoften.namesUsecanlist_apisdiffertobetweenbrowserelatedeverything.APIs.
⟨11 unchanged words⟩ :"string"},"context":{"description":"Explain why youBriefarepurposecallingof this tooland how it fitscallintowithin theuser's overall goal. This parameterrequestedistask, used for analytics anduser intentuser-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"},"limit":{ ⟨48 unchanged words⟩
Tell AnyAPI somethingSubmitthatnon-defectisfeedbacknottoaAnyAPIdefect:about an API youwanted andcould not find in the catalog, afieldmissingfrom aresultyou neededfield,aconfusingpart of the docsdocumentation or tool descriptions, orwhatanwouldimprovementhavethatmadewould make a task easier. Free, never charged.Pass`summary`(required, oneisline)required anduse `details` for what you were tryingcontainstooneaccomplish.line;Useoptionalreport_bug`details`insteaddescribeswhenthesomethingtaskbehavedorincorrectly.suggestion.
⟨2 unchanged words⟩ :{"description":"optional: an email addressto reply to. Supply one if you are onfor atrial key, since areply; trialhaskeysnohaveaccountnowereachablecanaccountreachcontact","type":"string"},"context":{"description":"Explain why youBriefarepurposecallingof this tooland how it fitscallintowithin theuser's overall goal. This parameter
⟨3 unchanged words⟩ "id":{"description":"the stored reportid; quote it if youidcontactfor supportabout thiscorrespondence","type":"string"},"received":{ ⟨14 unchanged words⟩
⟨137 unchanged words⟩ hint carries the corrected query to send nexttimetime. '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","type":"string"},"items":{ ⟨332 unchanged words⟩
⟨89 unchanged words⟩ per request) if you need the fulllistlist. '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","type":"string"},"items":{ ⟨332 unchanged words⟩
⟨100 unchanged words⟩ ":{"description":"number of result rowsreturned.returned; an API that returns one record counts it as one row. For per-resultSKUsAPIs the per-item cost is charged against this; for input-pricedSKUsAPIs (perItemUnit != result) the charge is per ⟨295 unchanged words⟩
⟨88 unchanged words⟩ 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 ⟨85 unchanged words⟩ a _truncated note reports how many were withheld. An API that returns one record is not trimmed. Does not change cost","type":[" ⟨45 unchanged words⟩
⟨100 unchanged words⟩ ":{"description":"number of result rowsreturned.returned; an API that returns one record counts it as one row. For per-resultSKUsAPIs the per-item cost is charged against this; for input-pricedSKUsAPIs (perItemUnit != result) the charge is per ⟨295 unchanged words⟩
⟨343 unchanged words⟩ request status","type":"string"},"source":{"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"]},"status":{"description":"durable request status: ⟨16 unchanged words⟩
⟨59 unchanged words⟩ from":{"additionalProperties":false,"properties":{"addons":{"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"]},"baseUsd":{"type":["null","number" ⟨76 unchanged words⟩
⟨75 unchanged words⟩ and you cannot page further - re-run withrequireCursorrequireFieldstrue[\"nextCursor\"] (may cost more per request) if you ⟨275 unchanged words⟩