Skip to main content
Glama

AIsa Sales

Server Details

Your agent needs a pipeline, not a list — the companies worth calling, the people who decide inside them, a way to reach those people, and the market evidence that the account is worth the call.

What you can ask for • "Find Series-B fintech companies in Germany and the heads of marketing there, with emails." • "Enrich these 200 domains with headcount, funding and tech stack." • "Which of these accounts is hiring for roles that imply they need us?" • "How much traffic does this prospect get, and where does it come from?" • "Create the account and contact records and move this opportunity to the next stage."

How to use it Point any MCP client at https://mcp.aisa.one/sales/mcp and sign in with OAuth — there is no key to create or paste. 79 tools: Apollo people and company search, enrichment, accounts, contacts, opportunities and stages, job postings, sequences and call activity; Similarweb traffic, audience, referrals, ad spend and competitors; plus creator discovery.

Why this rather than the source Prospecting, enrichment, market sizing and the CRM writes behind one login instead of three.

It is also a door to the rest The same login reaches 26 sources and 580+ operations. Build the list here, then ask the same agent what those companies rank for or what is being said about them — without adding a second server.

What it costs Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident.

Where else it reaches https://mcp.aisa.one/apollo/mcp or https://mcp.aisa.one/similarweb/mcp for one of them alone; https://mcp.aisa.one/gtm/mcp adds the social side.

Ownership verified
Status
Healthy
Uptime
93.8% over 42 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

C2.2/5.0

Scored across 93 tools

Disambiguation2/5

Many tools are raw HTTP endpoint wrappers with overlapping Apollo CRUD operations, and the Similarweb tools include opaque hashed names such as get_similarweb_apis_v1_similarweb_keyword_analysi_490801 that an agent cannot reliably distinguish. The deprecated `use` tool also coexists with `batch_use`, and some descriptions are misleading, e.g. patch_apollo_contacts_contact_id is described as viewing a contact.

Naming Consistency2/5

Names mix provider prefixes, HTTP-method verbs, and inconsistent noun phrasing (get_apollo_accounts_id, post_apollo_contacts_search, patch_apollo_accounts_account_id), alongside generic meta-tools like account, search, use, and list_categories. The long hashed Similarweb suffixes are not predictable or readable, making the overall naming convention weak.

Tool Count1/5

93 tools is far beyond a well-scoped set and appears to expose many low-level API endpoints directly rather than a curated sales workflow surface. This volume creates discovery and selection burden, especially with numerous Similarweb analytics endpoints and Apollo CRUD variants.

Completeness4/5

The surface is broad for a sales data and outbound platform, covering Apollo CRM records, enrichment, sequences, tasks, calls, reports, Similarweb analytics, and WaveInflu creator search. However, lifecycle coverage is uneven: there are no delete tools for core CRM records, and task/sequence operations lack full create/update/delete symmetry.

Available Tools

93 tools
accountShow account and usageA
Read-only
Inspect

Who am I, what can I use, how much can I spend: the key, the account balance, the Go-to-Market wallet when one is active, and usage for today, 7 days and 30 days. Free; needs the Authorization header. Call it to verify a new connection or to explain a 402. ok is true only when the balance was read; otherwise each entry of errors says what to do in next_step.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the readOnlyHint/openWorldHint/destructiveHint annotations: the call is free, it requires the Authorization header, and it discloses result semantics ('ok is true only when the balance was read; otherwise each entry of errors says what to do in next_step'). That tells an agent how to interpret partial failure, which annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with what the agent gets, followed by cost/auth, then call triggers, then result interpretation. No sentence is redundant and none could be dropped without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read tool with an output schema already present, the description covers the remaining gaps: cost, auth requirement, invocation triggers, and the ok/errors/next_step contract. Nothing an agent needs to call or interpret it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the description has nothing parameter-level to compensate for, and the schema is fully covered. A 4 rather than 5 reflects that it adds no input-syntax detail, though none is possible here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete resource set (identity/key, account balance, Go-to-Market wallet, usage over 1/7/30 days) rather than restating the name. It is clearly distinguishable from every sibling, which are all Reddit, batch, or search tools. An agent knows exactly what it will learn by calling it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit triggering conditions are given: 'Call it to verify a new connection or to explain a 402.' That is a strong when-to-use statement. It stops short of 5 because it names no alternative tool or a when-not condition, though the sibling list offers no obvious competing diagnostic.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

batch_get_schemaGet AIsa tool schemas in one batchA
Read-onlyIdempotent
Inspect

Retrieve schemas for 1 to 20 exact tool names from search. Build arguments from successful schemas, then call batch_quote. Do not call batch_use yet. Use tool names exactly as search returns them, without a client prefix such as mcp__aisa__. Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.

NameRequiredDescriptionDefault
toolsYesExact tool names returned by search whose complete contracts are needed. Never invent tool names.
session_idNoReuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.
include_documentationNoReturn the complete immutable public OpenAPI operation, referenced declarations, provenance and scoped completeness. Documentation does not change execution support.
include_response_schemaNoReturn the complete response_schema. Defaults to false.
include_arguments_schemaNoReturn the complete arguments_schema. Defaults to true.

Output Schema

NameRequiredDescription
toolsYes
session_idYesReuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.
error_countYes
total_countYes
success_countYes
next_steps_guidanceYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description is not required to restate it. It adds genuine operational context: the batch_use prohibition, exact-name/prefix requirements, and session reuse semantics. It does not cover failure handling when names are invalid, keeping it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and size limit, and every sentence carries workflow value. The session_id sentence duplicates the schema's own parameter description, which is minor redundancy rather than bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only batch retrieval tool with an output schema, the description supplies the orchestration context an agent needs (source of names, next steps, session handling) without needing to explain return values. Nothing essential to correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds real meaning beyond the schema by constraining names to those returned by search and warning against a client prefix such as mcp__aisa__, which is not encoded in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Retrieve schemas for 1 to 20 exact tool names') and pins the source of those names to search. This clearly separates it from siblings like search (finds tools), batch_quote, and batch_use.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly sequences the workflow: build arguments from successful schemas, then call batch_quote, and 'Do not call batch_use yet.' This is an explicit when-to-use and when-not-to-use instruction naming the alternative siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

batch_quoteQuote published AIsa tools without executing themA
Read-onlyIdempotent
Inspect

Obtain AIsaServices cost quotes for 1 to 20 published tools without executing them. Same input as batch_use: exact tool names and schema-valid arguments. Never falls back to execution. The response reports auto_execute_eligible and auto_execute_threshold_micros_usd. auto_execute_eligible waives only the extra cost-confirmation step and does not override a user prohibition on execution, a narrower scope, or a tighter budget limit. Quotes are price observations, not authorization grants. Use tool names exactly as search returns them, without a client prefix such as mcp__aisa__. Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.

NameRequiredDescriptionDefault
callsYes
search_idNoOptional search correlation identifier returned by search.
session_idNoReuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.

Output Schema

NameRequiredDescription
resultsYes
batch_idYes
session_idYesReuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.
error_countYes
total_countYes
success_countYes
next_steps_guidanceYesDeterministic next-step instructions derived from this result. Not an authorization grant.
auto_execute_eligibleNoTrue when the worst-known total of successful USD quotes is at or below auto_execute_threshold_micros_usd. A non-USD successful quote makes the batch ineligible. Present on quote responses.
auto_execute_threshold_micros_usdNoConfigured auto-execute threshold in micro-USD. 0 disables automatic execution. Present on quote responses.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the readOnly/idempotent annotations by explaining that quotes are price observations rather than authorization grants, and precisely delimiting what auto_execute_eligible does and does not waive (user prohibition, narrower scope, tighter budget). It also guarantees no execution fallback, which is the key behavioral risk for this tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded and most sentences carry distinct rules (no fallback, eligibility limits, naming, session reuse). It is on the long side and the argument-shape constraint is stated twice in spirit, but little is truly wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value documentation isn't required, yet the description still flags the two response fields that matter for a downstream decision. Combined with session and naming guidance, an agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

At 67% schema coverage the schema already documents each parameter, so the description earns credit only for added meaning: exact-name rules for 'tool', session_id reuse semantics, and the 1-to-20 argument-shape parallel with batch_use. It doesn't clarify search_id beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Obtain AIsaServices cost quotes for 1 to 20 published tools') plus the crucial scope qualifier 'without executing them.' It is immediately distinguishable from the sibling batch_use, which executes rather than quotes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the parallel sibling ('Same input as batch_use') and draws the boundary ('Never falls back to execution'). It also gives operational conditions: use names exactly as search returns them, strip any mcp__aisa__ prefix, and reuse session_id from Search for the task.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

batch_useExecute published AIsa toolsA
Destructive
Inspect

Billable API calls can incur substantial charges. Never call before a successful batch_quote for the same tools and arguments. Execute only when that quote response reports auto_execute_eligible=true for these calls, or when explicit user authorization covers that cost and risk. auto_execute_eligible waives only the extra cost-confirmation step; it does not override a user prohibition on execution, a narrower scope, or a tighter budget limit. Re-quote if tools, arguments, or scope change. Execute 1 to 20 independent published-tool calls; never silently retry. A missing or failed quote is not free. Use tool names exactly as search returns them, without a client prefix such as mcp__aisa__. Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.

NameRequiredDescriptionDefault
callsYes
search_idNoOptional search correlation identifier returned by search.
session_idNoReuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.

Output Schema

NameRequiredDescription
resultsYes
batch_idYes
session_idYesReuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.
error_countYes
total_countYes
success_countYes
next_steps_guidanceYesDeterministic next-step instructions derived from this result. Not an authorization grant.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover mutability, destructiveness, and open-world behavior. The description adds critical business logic: billable calls, quote dependency, the meaning of auto_execute_eligible (waives only cost confirmation, not user prohibitions), and no silent retry. It doesn't detail rate limits or return format, but with an output schema present, that's acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loads the cost warning, but it packs many separate instructions into one block, making it less scannable. Some sentences like 'A missing or failed quote is not free' add value, but the overall flow could be better structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the destructive, open-world annotations and the presence of an output schema, the description covers the essential preconditions and behavioral constraints. It could mention error handling or partial failure behavior, but the core guidance is sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%, and the description adds important semantics: tool names must be exact without client prefix, session_id reuse guidance, and 1-20 call limit. It doesn't explain search_id, but the schema description for search_id is already clear enough.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource: 'Execute 1 to 20 independent published-tool calls', and the title matches. It distinguishes itself from batch_quote by requiring a quote first, but doesn't explicitly contrast with the singular 'use' sibling, though that's implied by 'batch'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use and when-not-to-use conditions: only after a successful batch_quote with auto_execute_eligible=true or explicit user authorization. It also states re-quote conditions and prohibits silent retries, leaving little ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_apollo_accounts_idView an AccountA
Read-onlyIdempotent
Inspect

View an account by ID. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
idYesAccount ID

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly, idempotent, openWorld and non-destructive, so the bar is lower; the description still adds two genuinely useful facts not in annotations: the master API key requirement and the per-request price. It stops short of 5 because it says nothing about rate limits or failure modes for a privileged read.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The operative text is two front-loaded sentences with zero waste. The embedded pricing HTML block is boilerplate rather than explanatory content, which slightly dilutes an otherwise tight definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be described, and the description covers auth and cost. What is missing is routing context against the many sibling account tools, which is the main gap for an agent deciding whether to call this one.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with a single documented 'Account ID' parameter, so the schema already carries the semantics. The description only restates 'by ID' and adds no format, source, or lookup guidance beyond it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('View an account by ID'), which clearly separates it from the write siblings like patch_apollo_accounts_account_id and post_apollo_accounts_search. It does not explicitly name an alternative, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is the prerequisite 'Requires a master API key'. There is no indication of when to use this versus post_apollo_accounts_search or the other account-related siblings, and no exclusions or conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_apollo_account_stagesList Account StagesA
Read-onlyIdempotent
Inspect

List account stages. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds the non-obvious 'Requires a master API key' constraint, which is genuinely useful behavioral context beyond the annotations, though it omits any rate-limit or pagination notes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The functional content is front-loaded in one short sentence. The mandated pricing block inflates the text but is boilerplate inject rather than author prose, so it does not materially hurt structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema carrying return-value detail and no input parameters, the description only needs to cover purpose, auth, and scope. Purpose and auth are present; the one real gap is sibling differentiation, which is minor for such a simple read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline for a parameterless schema is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('List account stages'), so the operation is unambiguous. However, it does not distinguish itself from close siblings like get_apollo_contact_stages and get_apollo_opportunity_stages, leaving the agent to infer scope from the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance and no mention of alternatives, even though three near-identical stage-listing siblings exist. The agent must infer selection criteria from tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_apollo_contacts_contact_idUpdate or View ContactA
Read-onlyIdempotent
Inspect

View a contact by ID. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
contact_idYesContact ID

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds genuinely new operational context the annotations do not: the master API key authorization requirement and the per-request cost of $0.012 for successful calls, both of which affect whether an agent should call it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The operative content is front-loaded in two short sentences with zero waste. The embedded pricing comment block is boilerplate policy noise rather than tool guidance, but it is clearly delimited and does not obscure the primary instruction.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and annotations cover the safety profile; the description supplies the missing auth and cost context. For a one-parameter lookup tool this is close to complete, with only the sibling-routing guidance absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single required parameter (contact_id) documented at 100% schema coverage, so the schema carries the semantics. "by ID" merely restates the parameter in prose and adds no format, sourcing, or validation detail beyond the schema's "Contact ID" description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"View a contact by ID" states a specific verb and resource, and the identifier-based lookup is unambiguous. However, the title ("Update or View Contact") contradicts the read-only framing and the description never distinguishes this tool from the sibling patch_apollo_contacts_contact_id, which is the write path for the same resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the natural usage (direct lookup by a known ID) and states the master API key prerequisite, which is a real gate. But it gives no when-to-use/when-not guidance versus siblings such as post_apollo_contacts_search (find by criteria) or patch_apollo_contacts_contact_id (modify), so routing relies on inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_apollo_contact_stagesList Contact StagesA
Read-onlyIdempotent
Inspect

List contact stages. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds one useful non-annotation fact (master API key requirement) and a pricing note, but nothing about rate limits, pagination, or scope of the returned stages.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The functional sentence is short and front-loaded, with the auth requirement immediately following. The injected pricing block adds bulk but is required boilerplate rather than author bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and there are no parameters to document. The auth requirement is stated; the only real omission is disambiguation from the sibling stage-listing tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so per the rubric the baseline is 4. The description adds nothing parameter-related, but none is needed since the schema is empty.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb+resource (list contact stages), so an agent knows what it retrieves. However, it does nothing to distinguish itself from the near-identical siblings get_apollo_account_stages and get_apollo_opportunity_stages, which is exactly the ambiguity that matters for selection here.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Requires a master API key" is a genuine precondition, which is more than many definitions offer. But there is no guidance on when to choose this over the account/opportunity stage siblings, nor any exclusion or context for use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_apollo_email_accountsGet a List of Email AccountsA
Read-onlyIdempotent
Inspect

Get a list of email accounts. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered. The description adds one piece of non-annotation context, the master API key requirement, but says nothing about pagination, filtering, or result scope. Modest added value beyond the structured hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The operative description is a single efficient sentence with the purpose front-loaded. The appended pricing comment block is injected boilerplate that adds length without aiding tool selection, which slightly dilutes the otherwise tight structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and rich annotations cover the behavioral profile. For a zero-parameter read tool, stating purpose plus the auth requirement is sufficient, though a hint about result scope (e.g., all accounts vs. paged) would round it out.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters and the schema is an empty object, so there is nothing for the description to disambiguate. Baseline 4 applies; no parameter syntax or defaults are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Get a list of email accounts.' An agent can immediately tell this is a read that lists email accounts. However, there are no sibling tools with overlapping naming (no other 'email_accounts' tool), so no explicit differentiation is offered or needed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description supplies a prerequisite ('Requires a master API key') but gives no when-to-use/when-not guidance and names no alternatives. Usage is only implied by the tool's name and the plural 'list' framing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_apollo_emailer_messages_id_activitiesCheck Email StatsB
Read-onlyIdempotent
Inspect

Check email stats for a specific outreach email. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
idYesEmailer message ID.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false. The description still adds two pieces of non-annotation context an agent needs: it requires a master API key, and it costs $0.012 per successful request, which affects invocation decisions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The functional sentence is short and front-loaded, with the auth requirement following immediately. The embedded pricing comment block is boilerplate that consumes roughly half the text but is at least clearly demarcated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the single-parameter read operation is otherwise straightforward. Still, the description never characterizes the scope of 'stats' or positions the tool against its emailer siblings, leaving a gap for an agent choosing among many get_/post_ apollo tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with a single, fully-documented 'id' parameter, so the baseline is 3. The phrase 'specific outreach email' adds only light framing and no format, source, or ID-resolution guidance beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Check email stats for a specific outreach email'), which is clear enough to act on. It does not, however, differentiate itself from the sibling get_apollo_emailer_messages_search or explain what 'stats' actually covers, and the tool name's 'activities' is not reflected in the description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance is given, and no alternative is named despite several emailer-related siblings. The only conditional information is the auth prerequisite ('Requires a master API key').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_apollo_fieldsGet a List of Fields + Create a Custom FieldB
Read-onlyIdempotent
Inspect

Get a list of fields. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds the master API key requirement, which is useful context, but it does not describe field scope, listing behavior, or how it differs from the sibling create/typed-field tools.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The useful content is front-loaded in two short sentences, and the pricing block is boilerplate rather than explanation. It is appropriately sized overall, though the HTML pricing comment is noise for tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, has an output schema, and is covered by annotations, so the description is close to sufficient. However, it omits sibling routing and leaves the title's 'Create a Custom Field' claim unresolved, which could confuse an agent choosing between get_apollo_fields and post_apollo_fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the schema already fully defines the call shape and no parameter semantics are needed. The baseline for a zero-parameter tool is 4; the description adds no parameter detail but does not need to compensate for any schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Get a list of fields.' It does not, however, distinguish this tool from siblings such as post_apollo_fields or get_apollo_typed_custom_fields. The title's '+ Create a Custom Field' also introduces ambiguity that the description itself does not resolve.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is the prerequisite 'Requires a master API key.' There is no explanation of when to use this tool versus siblings like post_apollo_fields for creation or get_apollo_typed_custom_fields for typed custom fields.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_apollo_labelsGet a List of All ListsA
Read-onlyIdempotent
Inspect

Get a list of all lists (labels). Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly, idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description adds a genuinely useful operational constraint not present in structured data: a master API key is required. It stops short of noting rate limits or result-size behavior, but for a read-only lookup this is solid added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The functional content is a single front-loaded sentence with the auth caveat immediately after, which is efficient. The injected pricing block adds length that does not help tool selection, though it is an appended artifact rather than authored prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described, and with zero parameters the schema burden is nil. Purpose plus the master-key requirement covers what an agent needs to invoke this correctly; only when-to-use routing to siblings is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline of 4 applies; there is nothing for the description to clarify beyond confirming the call is unfiltered. No syntax or format detail is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete verb and resource ("Get a list of all lists (labels)") and the parenthetical disambiguates that 'labels' and 'lists' are the same object. It is clear enough to act on, though the phrasing is slightly circular and it never contrasts itself with any sibling tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this versus alternatives; the only conditional statement is an auth prerequisite ("Requires a master API key"). The agent must infer the use case (discovering label/list IDs) entirely on its own.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_apollo_notesGet a List of NotesB
Read-onlyIdempotent
Inspect

Get a list of notes. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
pageNoPage number (when supported). At least one filter is required on this endpoint; calling it with none returns HTTP 400 "At least one argument is required".
per_pageNoResults per page (when supported). At least one filter is required on this endpoint; calling it with none returns HTTP 400 "At least one argument is required".
account_idNoFilter by an account ID. At least one filter is required on this endpoint; calling it with none returns HTTP 400 "At least one argument is required".
contact_idNoFilter by a contact ID. At least one filter is required on this endpoint; calling it with none returns HTTP 400 "At least one argument is required".
start_dateNoOnly include notes created on/after this date (when supported). At least one filter is required on this endpoint; calling it with none returns HTTP 400 "At least one argument is required".
contact_idsNoFilter by contact IDs. At least one filter is required on this endpoint; calling it with none returns HTTP 400 "At least one argument is required".
opportunity_idNoFilter by an opportunity ID. At least one filter is required on this endpoint; calling it with none returns HTTP 400 "At least one argument is required".
conversation_idNoFilter by a conversation ID. At least one filter is required on this endpoint; calling it with none returns HTTP 400 "At least one argument is required".
conversation_idsNoFilter by conversation IDs. At least one filter is required on this endpoint; calling it with none returns HTTP 400 "At least one argument is required".
calendar_event_idNoFilter by a calendar event ID. At least one filter is required on this endpoint; calling it with none returns HTTP 400 "At least one argument is required".

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the bar is lower. The description adds one genuinely useful non-annotation fact — a master API key is required — plus pricing context, but omits the behavioral trap that unfiltered calls fail with HTTP 400.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences with no wasted prose; the auth requirement is stated immediately. The injected pricing comment block adds bulk but is boilerplate rather than authored content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the schema carries the filter requirement. Still, for a 10-parameter retrieval endpoint with several near-identical siblings, the description is thin — it never mentions filtering, pagination, or how it differs from neighboring search tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across all 10 parameters, so the schema already documents each filter and the at-least-one-filter rule. The description contributes no parameter meaning beyond that, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get a list of notes'), which is clear on its own. It does not, however, distinguish this tool from the many other Apollo list/retrieval siblings (e.g. get_apollo_emailer_messages_search, get_apollo_users_search), so an agent cannot tell from the text alone why it would pick this one.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of alternatives, and no hint about the most important usage constraint: that at least one filter argument is required. The only guidance an agent gets is buried in the schema, not the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_apollo_opportunities_opportunity_idView or Update DealA
Read-onlyIdempotent
Inspect

View a deal (opportunity) by ID. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
opportunity_idYesOpportunity ID

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds the master-API-key requirement, which is useful operational context beyond the annotations, but says nothing about rate limits, error behavior, or the fact that the title ('View or Update Deal') misleadingly suggests write capability.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose and auth requirement are front-loaded in a single tight sentence, which is good. The pricing boilerplate that follows does not help an agent select or invoke the tool and is mildly noisy, but it is delimited and clearly ancillary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read-by-ID tool with an output schema and full annotation coverage, the description supplies what the agent needs: what it fetches and the auth prerequisite. Return value details are correctly left to the output schema; only the routing vs. sibling tools is unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with a single opportunity_id parameter, so the baseline of 3 applies. The phrase 'by ID' in the description adds no format, encoding, or sourcing detail beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'View a deal (opportunity) by ID,' which maps cleanly to the get_apollo_opportunities_opportunity_id name. It does not explicitly distinguish itself from get_apollo_opportunities_search or get_apollo_opportunities_opportunity_id's update sibling, but the intent is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides the prerequisite 'Requires a master API key,' which tells the agent an auth condition must be met before calling. However, it gives no guidance on when to use this single-record fetch vs. get_apollo_opportunities_search or when to use the patch sibling for updating.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_apollo_opportunity_stagesList Deal StagesB
Read-onlyIdempotent
Inspect

List deal stages (opportunity stages). Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds one genuinely useful piece of context — the master API key requirement — but says nothing about scope of the returned stage list or account/workspace dependency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The functional sentence is front-loaded and wastes no words, but the embedded aisa-pricing block is boilerplate noise that adds length without helping tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described, annotations cover the safety semantics, and there are no parameters. Purpose plus the auth prerequisite is close to sufficient for a simple read-only list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to document; the baseline for a parameterless tool applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List deal stages') and disambiguates the term with the parenthetical '(opportunity stages)', which helps separate it from the nearby account/contact stage tools. It does not, however, explicitly distinguish itself from get_apollo_account_stages or get_apollo_contact_stages.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is the auth prerequisite ('Requires a master API key'). There is no statement of when to call this versus the sibling stage-listing tools or the opportunity search/get tools, so selection is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_apollo_organizations_enrichOrganization EnrichmentA
Read-onlyIdempotent
Inspect

Enrich one company by domain. domain is the only parameter and it must be the bare domain (apple.com), not a full URL. Returns an organization object with id, name, website_url, linkedin_url, twitter_url, facebook_url, angellist_url, phone, founded_year, alexa_ranking, publicly_traded_symbol, publicly_traded_exchange and languages. Use it as the entry point when all you have is a domain. For several domains at once use post_apollo_organizations_bulk_enrich; for the full record including funding and technology detail use get_apollo_organizations_id, which needs the Apollo organization id this call returns.

Usage-based billing; Default request estimate: $0.01975 USD (not a fixed price). Declared unit rate: $0 USD per provider_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
domainYesThe domain of the company that you want to enrich. Do not include www., the @ symbol, or similar. Example: apollo.io or microsoft.com

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, open-world, non-destructive behavior, so the safety profile is covered. The description adds real value beyond that: the chaining contract that get_apollo_organizations_id consumes the id this call returns, plus billing context. The return-field enumeration is largely redundant with the output schema, keeping it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then alternatives, then chaining guidance. Slightly padded by the long list of return fields that the output schema already defines, plus an injected pricing block, but overall tight and well-ordered.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers what it does, when to use it, its two alternatives, and the id hand-off to the detail sibling. With an output schema present, return values need not be documented, and nothing essential is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description reinforces the single-parameter contract and adds a caveat beyond the schema ('must be the bare domain (apple.com), not a full URL'), which sharpens the format requirement rather than merely restating it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Enrich one company by domain'), and explicitly names the siblings it is not (post_apollo_organizations_bulk_enrich, get_apollo_organizations_id). An agent can select it without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit routing: 'Use it as the entry point when all you have is a domain,' bulk for 'several domains at once,' and get_apollo_organizations_id for 'the full record including funding and technology detail.' Conditions for choosing alternatives are all spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_apollo_organizations_idGet Complete Organization InfoA
Read-onlyIdempotent
Inspect

The complete Apollo record for one company, by Apollo organization id (not by domain). Returns an organization object carrying everything enrichment returns plus the deeper fields: funding history, technology stack, department headcounts and related organizations. Get the id from get_apollo_organizations_enrich or post_apollo_mixed_companies_search first — this endpoint cannot take a domain.

Usage-based billing; Default request estimate: $0.01975 USD (not a fixed price). Declared unit rate: $0 USD per provider_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
idYesThe Apollo ID for the organization that you want to research. To find organization IDs, call the Organization Search endpoint and identify the organizaton_id value for the organization. Example: 5e66b6381e05b4008c8331b8

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description still adds useful substance by contrasting the payload with enrichment ('everything enrichment returns plus the deeper fields') and by disclosing usage-based billing. It stops short of rate limits or quota behavior, but that is a minor gap against the annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The substantive content is two tight sentences with the id-first constraint front-loaded before the supporting detail. Only the auto-injected pricing block bulks it out, so the prose itself earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the return shape need not be re-explained, and annotations carry the safety profile. What remains — how to get the id, what extra fields to expect, and that domains are unsupported — is all supplied, so nothing needed for a correct call is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter is documented with an example, so the baseline is 3. The description goes further by clarifying the identifier's origin and warning that a domain will not work, which materially reduces the chance of a wrong-value call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — the complete Apollo record for one company — and immediately scopes it to being looked up by Apollo organization id rather than domain. That scoping distinguishes it cleanly from the enrichment and search siblings, so an agent can route without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells the agent how to obtain the required id (via get_apollo_organizations_enrich or post_apollo_mixed_companies_search) and states the exclusion plainly: 'this endpoint cannot take a domain.' Both the positive path and the anti-pattern are covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_apollo_organizations_organization_id_job_postingsOrganization Job PostingsA
Read-onlyIdempotent
Inspect

Live job postings for one company, by Apollo organization id. Each posting carries its title, location, posted date and source URL. Useful as a hiring signal — which functions a company is expanding, and where. Get the organization id from get_apollo_organizations_enrich first. This reads Apollo's job board data, not the company's own careers page, so absence of postings is not proof a company is not hiring.

Usage-based billing; Default request estimate: $0.01975 USD (not a fixed price). Declared unit rate: $0 USD per provider_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
pageNoThe page number of the Apollo data that you want to retrieve. Use this parameter in combination with the per_page parameter to make search results for navigable and improve the performance of the endpoint. Example: 4
per_pageNoThe number of search results that should be returned for each page. Limiting the number of results per page improves the endpoint's performance. Use the page parameter to search the different pages of data. Example: 10
organization_idYesThe organization ID of the company for which you want to find job postings. Each company in the Apollo database is assigned a unique ID. To find IDs, call the Organization Search endpoint and identify the values for organization_id. Example: 5e66b6381e05b4008c8331b8

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the description's added value is the data-source disclosure: it reads Apollo's job board, not the company's careers page, so absence of postings is not proof the company isn't hiring. That is a genuinely useful caveat beyond the annotations, though return format and pagination behavior are left to the output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, followed by payload contents, the sourcing prerequisite, and the honesty caveat in a compact block. The appended pricing blockquote is boilerplate rather than tool guidance, but it is clearly demarcated and does not obscure the useful text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not explain return values, and it covers purpose, id source, and the interpretive limitation well. Remaining gaps are minor, e.g. no note on pagination limits or how many postings to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so page, per_page and organization_id are already documented in the schema; baseline is 3. The description adds a hint about where to source organization_id, though it points at get_apollo_organizations_enrich while the schema's own organization_id description says to use the Organization Search endpoint, a minor inconsistency rather than added clarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Live job postings for one company, by Apollo organization id') and enumerates what each posting carries (title, location, posted date, source URL). An agent can distinguish this from sibling organization tools like get_apollo_organizations_id and get_apollo_organizations_enrich without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit prerequisite ('Get the organization id from get_apollo_organizations_enrich first') and frames the use case as a hiring signal. It does not enumerate when-not-to-use or name a competing sibling, but the workflow context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_apollo_typed_custom_fieldsGet a List of All Custom FieldsA
Read-onlyIdempotent
Inspect

Get a list of all custom fields. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish the safe-read profile (readOnlyHint, idempotentHint, destructiveHint false), so the bar is lower. The description adds a genuinely useful constraint beyond annotations: the operation requires a master API key, which affects whether an agent can call it at all.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The operative content is two short sentences with the purpose front-loaded and the auth prerequisite immediately after. The injected pricing comment block is boilerplate noise that pads the text but is not under the tool author's control.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read tool with an output schema (so return values need no explanation) and full annotation coverage, the description covers purpose and the key auth gate. It falls short only on clarifying what 'typed' means versus the sibling fields endpoint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, which sets the baseline at 4 per the rubric, and the empty schema means there is no parameter semantics to compensate for. The description rightly spends no words on arguments.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get a list of all custom fields'), so the operation is unambiguous. However, it never distinguishes itself from close siblings such as get_apollo_fields or get_apollo_labels, and the 'typed' qualifier in the tool name is left unexplained.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over get_apollo_fields or the other field/label endpoints. The only clause present ('Requires a master API key') is a prerequisite, not a usage condition or alternative comparison.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_ad_networksAd NetworksD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.225 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
limitYes
domainYes
offsetNo
countryNoWorldwide data only; values are case-insensitive.ww
end_dateYes
start_dateYes
web_sourceNo
granularityNo
traffic_sourceNo
main_domain_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is covered without the description. The pricing block does add genuinely useful non-schema context (a $0.225 default request estimate and a $0.075/credit unit rate), which is a real cost disclosure, but the description says nothing about what the call returns, its coverage, or any rate/pagination behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short, but it is not concise in the useful sense: it is boilerplate that occupies the entire description while omitting any functional content, and it leads with raw HTML comment tags rather than a purpose statement. Every sentence is about pricing rather than about the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter tool with 10% schema coverage, an output schema present, and a crowded sibling namespace, the description is functionally empty — an agent cannot determine what data is returned or how to scope the request. Cost information is present, but nothing an agent needs to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 10% across 10 parameters (4 required), so the schema leaves nearly everything undocumented. The description mentions no parameter at all — not domain, date range, limit/offset, web_source, traffic_source, or main_domain_only — and therefore compensates for none of the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description contains no statement of what the tool does; it is entirely a pricing banner wrapped in HTML comment markers. Only the name and title ('Ad Networks') hint at the resource, and the description never says it returns ad-network data for a domain, nor distinguishes it from siblings like get_similarweb_ppc_spend or get_similarweb_marketing_channel_sources_legacy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of any alternative tool. The only conditional content is about billing, not about selecting this tool over the many sibling SimilarWeb endpoints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_apis_v1_similarweb_keyword_analysi_490801Keywords OverviewD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $1.275 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
limitYes
formatNo
countryNoWorldwide data only; values are case-insensitive.ww
end_dateYes
keywordsYes
start_dateYes
web_sourceNo
granularityYes
main_domain_onlyNo

TDQS

D1.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered structurally. The description does add non-obvious cost behavior (usage-based billing, $0.075 per similarweb_credit, estimate not final), which is genuinely useful for an agent deciding whether to call. However it discloses nothing about the read operation itself, result volume, or limits beyond cost.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short, but the pricing block is the whole description rather than a supporting note, so there is no purpose statement to front-load. The comment markers make it read as machine-injected boilerplate rather than an intentional tool definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A 9-parameter, 5-required analytics tool with 11% schema coverage, no output schema, and an open-world hint needs a description carrying the full functional burden. Instead the description covers only billing, leaving purpose, usage, and parameter meaning completely unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 11% across 9 parameters, and the description compensates for none of it. Required fields such as keywords (comma-delimited, max 20), start_date, end_date, granularity, and limit are left entirely to the bare schema, with no format or constraint explanation added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what the tool does. Its entire content is a pricing boilerplate block ('Usage-based billing; Default request estimate: $1.275 USD...'), with no verb or resource describing keyword analysis. An agent cannot tell from this text that the tool returns keyword overview metrics, nor distinguish it from get_similarweb_keywords or get_similarweb_keyword_competitors.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus any alternative. No mention of keyword sets, date ranges, or the sibling keyword tools. The only actionable statement is a cost estimate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_apis_v1_similarweb_segment_analysi_6349feSegments Marketing ChannelsD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.075 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
formatNo
countryNoWorldwide data only; values are case-insensitive.ww
metricsYes
segmentYesReplace YOUR_SEGMENT_ID with a real segment ID available to the configured Similarweb account. Obtain it from that account's Similarweb user/predefined segment metadata or ask your AIsa operator. This is an account-dependent template, not a ready-to-run or upstream-verified example.
end_dateYes
start_dateYes
web_sourceNo
granularityYes
main_domain_onlyNo

TDQS

D1.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds only a templated pricing estimate ($0.075/credit) — marginally useful cost context, but no operational behavior about the segment-analysis call itself (e.g., what the segment ID requirement implies, latency, or result shape).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but every sentence is boilerplate pricing metadata that does not earn its place against the tool's actual purpose. Brevity here reflects under-specification, not conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter, 5-required analytical tool with no output schema and 22% schema coverage, the description is completely inadequate — it omits purpose, usage, parameter meaning, and return expectations entirely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 22% and the description adds nothing about the 9 parameters — not the comma-delimited metrics delimiter, not the date range semantics, not granularity or main_domain_only. The one genuinely tricky parameter (segment ID) is documented only in the schema, not the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description contains no statement of purpose at all — it is exclusively a pricing/billing block. The title 'Segments Marketing Channels' hints at the domain, but the description itself never says what the tool does, and it cannot be distinguished from sibling segment/keyword/website analyst tools from the description text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, no exclusions, and no reference to any alternative sibling tool. The agent receives zero routing information from the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_apis_v1_similarweb_segment_analysi_64e47cSegments AnalysisD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.075 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
formatNo
countryNoWorldwide data only; values are case-insensitive.ww
metricsYes
segmentYesReplace YOUR_SEGMENT_ID with a real segment ID available to the configured Similarweb account. Obtain it from that account's Similarweb user/predefined segment metadata or ask your AIsa operator. This is an account-dependent template, not a ready-to-run or upstream-verified example.
end_dateYes
start_dateYes
web_sourceNo
granularityYes
main_domain_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered by structured data. The description adds only pricing info, and it conspicuously omits the account-dependent segment requirement that the schema hints at.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short but composed entirely of HTML-commented pricing metadata, which is not useful content for tool selection. Brevity here reflects under-specification rather than disciplined editing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter tool with a 22%-covered schema, the description should explain purpose, required inputs, and how it differs from the near-identical sibling. Instead it provides only a price estimate, so an agent lacks the information needed to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 22% and 9 parameters (5 required) are mostly undocumented – metrics, start_date, end_date, granularity, and format have no descriptions at all. The description does nothing to compensate, leaving the agent to guess at the required date and metric formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Despite the title 'Segments Analysis', the description text contains only pricing boilerplate and never states what the tool actually does. Nothing in the body distinguishes it from the sibling segment-analysis tools (get_similarweb_apis_v1_similarweb_segment_analysi_6349fe) or from the website/keyword analysis tools, so an agent cannot select it from the description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidance whatsoever – no when-to-use, no when-not-to-use, and no mention of alternatives such as the closely named sibling segment tool. The only content is a billing disclaimer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_apis_v1_similarweb_website_analysi_7399a9Conversion Rates AggregatedD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.375 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
limitYes
domainYes
formatNo
countryNoWorldwide data only; values are case-insensitive.ww
end_dateYes
start_dateYes
web_sourceNo
granularityYes
main_domain_onlyNo

TDQS

D1.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/openWorldHint and non-destructive, so the safety profile is covered. The description does add genuine billing context ($0.075 per similarweb_credit, ~$0.375 per request, account-specific settlement), but discloses nothing about the operation itself: no return shape, no granularity/date-range behavior, no explanation of the limit cap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and cleanly delimited, but this is under-specification rather than conciseness: the only sentence present is pricing metadata that does not help an agent invoke the tool correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter analytical tool with 11% schema coverage and no output schema, the description should carry purpose, parameter semantics and usage context. It delivers none of these, leaving the agent unable to invoke it correctly beyond guessing from the title.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 11% (effectively just the 'country' enum note), and 5 of 9 parameters are required. The description adds zero parameter meaning — nothing about domain format, date format/ranges, granularity semantics, or the meaning of main_domain_only.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description contains no statement of purpose at all — it is entirely pricing boilerplate wrapped in HTML comments. Only the tool name fragment and the title 'Conversion Rates Aggregated' hint at what it does (a SimilarWeb conversion-rate report), and neither is part of the description text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of alternatives among the many get_similarweb_* siblings, and no prerequisites or exclusions. An agent has no basis for choosing this over get_similarweb_website_traffic_trend or the neighbouring website-analysis tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_apis_v1_similarweb_website_analysi_850464Conversion Rates Over TimeD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.375 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
limitYes
domainYes
formatNo
countryNoWorldwide data only; values are case-insensitive.ww
end_dateYes
start_dateYes
web_sourceNo
granularityYes
main_domain_onlyNo

TDQS

D1.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so safety behavior is covered structurally. The description adds cost/rate context (usage-based billing, per-credit unit rate, estimate not fixed), which is genuinely useful behavioral information not in the annotations, but it is heavily hedged and says nothing about the operation, data semantics, limits, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short, but it is entirely off-topic boilerplate wrapped in HTML comment markers, front-loading billing rather than purpose. Brevity here reflects missing content rather than disciplined conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter, 5-required analytics endpoint with no output schema and heavy sibling competition, the description is wholly inadequate — it leaves purpose, usage, parameter meaning, and return semantics entirely undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 11% (only 'country' is documented), leaving 8 of 9 parameters — including required domain, start_date, end_date, granularity, and limit — unexplained in both schema and description. The description provides zero parameter meaning, so it fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what the tool does. Its entire body is a pricing banner (per-credit rate and default request estimate), which conveys nothing about the verb, resource, or scope of a conversion-rate time-series query. Only the separate title/name hint at the actual function, and the description itself is effectively missing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many sibling SimilarWeb endpoints (traffic_trend, audience_overlap, etc.). The only 'guidance' is cost-related, which does not help an agent decide whether this analysis is the right one for a given question.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_apis_v1_similarweb_website_analysi_aa2e1fDemographics - Specific GroupsD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.45 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
domainYes
formatNo
countryNoWorldwide data only; values are case-insensitive.ww
metricsYesThe reference example uses the documented v5 metric share. Metric values are comma-separated.
end_dateYes
age_bucketYesSelect one age bucket; age_bucket must be provided exactly once.
start_dateYes
web_sourceNo
granularityYes
main_domain_onlyNo

TDQS

D1.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds one genuinely non-annotated fact — usage-based billing at ~$0.45/request and $0.075 per credit — but says nothing about data semantics, aggregation, freshness, latency, or the age-bucket segmentation the title advertises.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short but not concise in a useful sense: two HTML-comment delimited lines of billing metadata with no front-loaded purpose statement. The pricing note earns its place, but the structure serves a pricing pipeline rather than an agent deciding how to call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters, 6 required, 30% schema coverage, no output schema and no purpose statement, the definition is far from complete for an agent to select and invoke it correctly. Nothing disambiguates it from the many sibling demographics/website-analysis tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 30% across 10 parameters, so the description is expected to compensate — and it provides zero parameter information. Nothing explains metrics syntax, date-range conventions, main_domain_only, or the required single age_bucket beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what the tool does; its entire body is pricing boilerplate inside HTML comments. The only hint of purpose comes from the tool name and title ('Demographics - Specific Groups'), which the description does not restate, expand, or clarify. An agent reading only the description cannot tell this returns age-bucket demographic data for a domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool, when not to, or how it relates to the many similar siblings (e.g. get_similarweb_demographics, get_similarweb_audience_interest, the other website-analysis variants). The absence is especially costly here because the sibling list contains several near-identical demographics/audience tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_audience_interestAudience InterestD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.375 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
limitYes
domainYes
offsetNo
countryNoWorldwide data only; values are case-insensitive.ww
end_dateYes
start_dateYes
web_sourceNo
granularityNo
traffic_sourceNo
main_domain_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description's only added context is the billing rate ($0.075/credit, ~$0.375 per request), which is genuinely useful behavioral information about cost that annotations do not carry, but it says nothing about latency, auth, rate limits, or what data is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loads a clear cost figure, but every sentence is billing boilerplate that does not help an agent select or invoke the tool. Brevity without substance is under-specification, not conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter, 4-required tool with a sibling-dense namespace, the description is completely inadequate: no purpose, no parameter guidance, no usage context. The presence of an output schema excuses return-value explanation but nothing else.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 10% across 10 parameters, so the description carries the burden of explaining domain, start_date/end_date, limit, offset, web_source, traffic_source, main_domain_only, and granularity — and it explains none of them. Only the 'country' enum is documented in the schema itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what the tool does. It is entirely a pricing/billing notice ('Usage-based billing; Default request estimate: $0.375 USD'), so an agent cannot tell that this tool returns SimilarWeb audience-interest data, nor how it differs from siblings like get_similarweb_demographics or get_similarweb_audience_overlap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool, when not to, or which sibling it should be preferred over among the ~30 SimilarWeb tools. The only content is cost metadata, which does not route tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_audience_overlapAudience OverlapD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.75 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
countryNoWorldwide data only; values are case-insensitive.ww
domainsYes
end_dateYes
start_dateYes
granularityNomonthly

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety behavior is covered. The pricing block legitimately adds cost context (~$0.75 per default request, $0.075/credit), which is useful, but it discloses nothing about the operation itself or its output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short but consists of HTML-comment boilerplate that is irrelevant to tool selection. It is not front-loaded with a purpose statement, so its brevity reflects under-specification rather than conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a five-parameter data-retrieval tool with 3 required inputs and only 20% schema coverage, the description omits everything an agent needs to call it correctly. The existence of an output schema excuses return-value documentation but does not excuse the complete absence of functional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 20%, so the description is obligated to compensate for undocumented parameters, yet it says nothing about domains (2-5, comma-delimited), date ranges, country, or granularity. The single documented parameter (country) is covered by the schema, not the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description contains only a pricing disclaimer block and never states what the tool does. Nothing distinguishes audience overlap from siblings such as get_similarweb_deduplicated_audience or get_similarweb_audience_interest.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives. An agent must infer the tool's purpose entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_deduplicated_audienceDeduplicated AudienceD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.525 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
domainYes
countryNoWorldwide data only; values are case-insensitive.ww
end_dateYes
start_dateYes
web_sourceNo
granularityNomonthly
main_domain_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description's only added behavioral fact is cost: usage-based billing at ~$0.075 per similarweb_credit with a ~$0.525 default request estimate, which is genuinely useful non-schema context. However, nothing is said about the data semantics of 'deduplicated' audience, date-range constraints, or latency, so it falls short of a 3.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short, but it is not concise in the useful sense: 100% of the content is billing boilerplate wrapped in HTML comment markers, and none of it is front-loaded functional information. It earns no place toward tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, but for a 7-parameter, 3-required analytics tool the description supplies no purpose, no usage context, and no parameter semantics. The definition is effectively incomplete for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 14%, and the description adds zero parameter meaning. Three required parameters (domain, start_date, end_date) and four optional ones (web_source, main_domain_only, granularity, country) are left entirely unexplained in prose, so an agent must guess at date formats and what 'deduplicated' implies for the domain argument.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what the tool does. It contains only a pricing/billing block ('Usage-based billing; Default request estimate: $0.525 USD...'), which gives an agent no way to know this returns a deduplicated audience metric for a domain, let alone how it differs from siblings like get_similarweb_audience_overlap or get_similarweb_demographics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no exclusions, and no reference to any alternative tool. With ~35 similarweb siblings, the absence of routing guidance is a severe gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_demographicsDemographicsD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.6 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
domainYes
formatNo
countryNoWorldwide data only; values are case-insensitive.ww
end_dateYes
start_dateYes
web_sourceNo
granularityYes
main_domain_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, so the safety profile is covered externally. The description's only added behavioral content is cost transparency (estimated $0.6/request, $0.075 per credit, account-specific settlement), which is genuinely useful for an agent weighing calls. However, it discloses nothing about data scope, auth requirements, rate limits, or result characteristics of a demographics read.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short, but it is short because it contains no functional content at all — a pricing marker block rather than a front-loaded purpose statement. Conciseness here reflects under-specification, not efficiency; the pricing note should follow, not replace, a statement of what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An 8-parameter, 4-required data-retrieval tool with an output schema and a large sibling family needs at minimum a purpose statement and usage routing. The description supplies neither, leaving the agent unable to distinguish this from any other SimilarWeb endpoint. The only mitigating factor is that an output schema exists, so return shape need not be described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 13% across 8 parameters, with four required (domain, start_date, end_date, granularity) carrying no documented meaning in either schema or description. The description contributes zero parameter semantics — no date format, no granularity semantics, no explanation of main_domain_only or web_source — so it fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description contains no statement of what the tool does — it is entirely a pricing/billing boilerplate block. Nothing indicates that it returns SimilarWeb demographic data for a domain, and the title 'Demographics' is left to carry the whole purpose. An agent cannot determine the tool's function from the description text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool, when not to, or how it relates to any of the ~30 siblings such as get_similarweb_audience_interest or get_similarweb_website_top_geographies. No prerequisites, no alternative routing, no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_keyword_competitorsKeyword CompetitorsD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.075 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
limitYes
domainYes
offsetNo
countryNoWorldwide data only; values are case-insensitive.ww
end_dateYes
start_dateYes
web_sourceNo
granularityNo
traffic_sourceNo
main_domain_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, covering the safety profile. The description's only added behavioral content is cost disclosure ($0.075 per similarweb_credit, estimate not fixed), which is genuinely useful but says nothing about what the operation returns or how it behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short, but it is entirely boilerplate pricing wrapped in HTML comment markers rather than a front-loaded purpose statement. Being brief here reflects omission of the essential content, not disciplined conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter tool with 4 required params and 10% schema coverage, the description is completely inadequate. Although an output schema exists (relieving the need to explain return values), nothing else an agent needs to call this correctly is provided.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 10% across 10 parameters, so the schema leaves most parameters (domain, start_date, end_date, limit, offset, web_source, granularity, traffic_source, main_domain_only) undocumented. The description compensates for none of this, adding zero parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what the tool does. It contains only a pricing boilerplate block ('Usage-based billing; Default request estimate: $0.075 USD...') with no verb, resource, or scope describing keyword competitor retrieval. An agent must rely entirely on the tool name to infer purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus siblings such as get_similarweb_keywords or get_similarweb_similar_sites. No context, prerequisites, or exclusions are offered anywhere in the text.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_keywordsWebsite KeywordsD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.075 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
limitYes
domainYes
formatNo
countryNoWorldwide data only; values are case-insensitive.ww
end_dateYes
start_dateYes
web_sourceNo
granularityYes
main_domain_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the operational profile (readOnly, idempotent, openWorld, non-destructive). The description's only additive behavioral content is the billing model — usage-based, ~$0.075 per similarweb_credit — which is genuinely useful cost context. However, it discloses nothing about data freshness, result size, or what the returned keyword records contain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the brevity is under-specification rather than efficiency: the entire body is boilerplate pricing with zero functional content. The one useful sentence (per-credit rate) is buried in a compliance block rather than front-loaded as tool guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, but for a 9-parameter, 5-required tool with 11% schema coverage and a crowded sibling namespace, the description supplies no purpose, no usage routing, and no parameter semantics — it is functionally empty.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 11% (only 'country' is documented), and there are 9 parameters including five required ones (domain, start_date, end_date, granularity, limit). The description explains none of them — no date format, no domain input convention, no meaning for granularity or web_source — leaving the agent to guess.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description contains no statement of what the tool does — it is entirely a pricing/billing notice. An agent must infer from the name and title alone that this retrieves SimilarWeb keyword data, and it cannot distinguish this from the many get_semrush_* and get_dataforseo_keywords_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not-to-use, or alternative guidance is given. The pricing block states cost but not the conditions under which this tool should be chosen over the adjacent get_similarweb_landing_pages or the Semrush/DataForSEO keyword tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_landing_pagesLanding PagesD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.075 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
limitYes
domainYes
offsetNo
countryNoWorldwide data only; values are case-insensitive.ww
end_dateYes
start_dateYes
web_sourceNo
granularityNo
traffic_sourceNo
main_domain_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered without the description. The only added behavioral information is the usage-based pricing estimate ($0.075 USD per similarweb_credit), which is genuinely useful context not present in annotations, but it says nothing about data scope, rate limits, or result semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short, but every sentence is off-topic boilerplate about billing rather than the tool's function. It is structurally compact yet fails the 'every sentence earns its place' test because no sentence helps an agent invoke the tool correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists (so return values need not be explained), the description omits the tool's purpose, usage context, and parameter meaning for a 10-parameter tool with 4 required fields. For a complex, expensive, open-world query tool, this is completely inadequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 10% across 10 parameters, so the description must compensate — and it does not. Parameters like domain, start_date/end_date formats, limit, offset, traffic_source, web_source, granularity and main_domain_only are left completely undocumented in both the schema and the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description contains only auto-generated pricing boilerplate and never states what the tool does. Nothing in it indicates that the tool retrieves SimilarWeb landing page data, what a 'landing page' record contains, or how it differs from siblings like get_similarweb_keywords. An agent reading only the description would have no idea what this tool returns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no usage guidance of any kind — no when-to-use, no when-not-to-use, and no routing to the many sibling tools (get_similarweb_keywords, get_semrush_url_organic_keywords, etc.). The description gives the agent no basis for choosing this tool over alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_marketing_channel_sources_legacyMarketing Channel SourcesD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.525 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
domainYes
countryNoWorldwide data only; values are case-insensitive.ww
end_dateYes
start_dateYes
web_sourceNo
granularityNomonthly
main_domain_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered structurally. The description's only added behavior is billing context (usage-based, ~$0.525 per request), which is genuinely useful cost information but says nothing about auth, rate limits, data granularity, or what the 'legacy' designation implies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short, but every sentence is pricing boilerplate that does not earn a place in a tool definition's description field. It is not padded, yet the space is spent on the wrong content entirely.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters, a low schema coverage of 14%, and no functional description, the definition is unusable for correct invocation. The presence of an output schema excuses omitting return-value details, but nothing else about this legacy marketing-channel tool is communicated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 14% across 7 parameters, so the schema does not carry the burden — yet the description supplies zero parameter meaning. It never mentions domain, date range, web_source, granularity, or main_domain_only, leaving required and enum parameters effectively undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description contains no statement of what the tool does; it is entirely a pricing/billing notice. An agent cannot tell from this text that the tool returns marketing channel source data, or how it differs from siblings like get_similarweb_referrals or get_similarweb_landing_pages.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, no alternatives named. The only content is a cost estimate, which does not help the agent decide whether to call this tool versus any other SimilarWeb sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_ppc_spendPPC SpendD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.075 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
domainYes
countryNoWorldwide data only; values are case-insensitive.ww
end_dateYes
start_dateYes
web_sourceNo
granularityNomonthly
main_domain_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds billing context (usage-based, estimate, unit rate), but it omits functional behavior such as return content, auth needs, rate limits, and what the PPC spend data represents.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short, but it is entirely billing metadata and is not front-loaded with the tool's purpose or usage guidance. For a tool-selection description, the pricing block does not earn its place as the primary content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters, low schema coverage, and many Similarweb siblings, the description is functionally empty. The output schema may cover return values, but the definition still lacks purpose, usage guidance, and parameter semantics needed for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 14%, and the description provides no parameter meaning at all. With 7 parameters including required domain, start_date, end_date, web_source, granularity, and main_domain_only, the description does nothing to compensate for the sparse schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description does not state what the tool does at all; it only contains a pricing/billing block. The title 'PPC Spend' and tool name hint at paid-search spend, but the description itself provides no functional purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool, when not to use it, or which sibling tool to choose instead. An agent gets no routing information from the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_rankingWebsite RankingD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.15 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
domainYes
countryNoWorldwide data only; values are case-insensitive.ww
end_dateYes
start_dateYes
web_sourceNo
granularityNomonthly
main_domain_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description does add one genuinely useful behavioral fact not present in structured data: this call is billed (default estimate $0.15 USD, unit rate $0.075 per credit, account-specific pricing may differ). That cost disclosure is analogous to a rate-limit note and is worth credit, but nothing else about behavior is described.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the entire content is auto-generated billing boilerplate wrapped in HTML comment tags, which is off-topic for tool selection and invocation. Length is fine; the content does not earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter tool with three required inputs, 14% schema coverage and a large sibling set, this description is functionally empty. An output schema exists so return values need not be described, but the agent has no basis for choosing or parameterising the call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 14% — just the 'country' parameter — while there are 7 parameters including required domain, start_date and end_date. The description supplies no parameter meaning at all, so the many undocumented fields (data format for dates, web_source, granularity, main_domain_only) get no compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what the tool does. It contains only a usage-based pricing block (default estimate $0.15, $0.075 per similarweb_credit) with HTML comment markers. Nothing tells the agent that this returns website ranking data, for which domain, or over what period, so it cannot be distinguished from siblings like get_similarweb_top_sites_ranking.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is zero guidance on when to call this versus the 30+ sibling tools (e.g. get_similarweb_top_sites_ranking, get_similarweb_website_traffic_trend, the website_analysis variants). No prerequisites, no exclusions, no alternative named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_referralsReferralsD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.3 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
limitYes
domainYes
offsetNo
countryNoWorldwide data only; values are case-insensitive.ww
end_dateYes
start_dateYes
web_sourceNo
granularityNo
traffic_sourceNo
main_domain_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered structurally. The pricing block is a genuine behavioral addition (usage-based billing, ~$0.3 estimate, $0.075/credit), which is useful for cost-aware invocation, but it discloses nothing about the operation itself or its result.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but every sentence is billing boilerplate rather than tool-relevant content. Conciseness is not achieved by omitting the function; the space is spent on procedural pricing rather than on what the agent needs to select and call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter tool with 10% schema coverage, the description is wholly inadequate. Although an output schema and annotations exist (reducing the need to describe returns and safety), there is no functional description, no scoping, and no parameter guidance — an agent cannot reliably infer what this endpoint returns or how to parameterize it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 10% across 10 parameters, so the description must compensate — and it provides zero parameter information. Required inputs (domain, start_date, end_date, limit) and the meaning of traffic_source, web_source, main_domain_only, and granularity are left entirely undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description contains no statement of purpose at all — it is entirely a pricing/billing banner. Nothing tells the agent that this tool retrieves referral traffic data for a domain, so the only signal is the name and title, which the description merely echoes indirectly. It fails to distinguish itself from the ~30 sibling get_similarweb_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as get_similarweb_landing_pages, get_similarweb_similar_sites, or get_similarweb_marketing_channel_sources_legacy. No prerequisites, no date-range or domain constraints, no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_serp_players_aggregatedSERP Players - AggregatedD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.075 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
limitYes
offsetNo
countryNoWorldwide data only; values are case-insensitive.ww
end_dateYes
keywordsYes
start_dateYes
granularityNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description's only added content is a usage-based price estimate ($0.075), which is genuinely useful operational context but says nothing about aggregation behavior, supported keyword counts, or data scope. Slight credit above the minimum.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short, but every sentence is billing metadata unrelated to tool selection or invocation, wrapped in HTML comment tags that further bury it. There is no functional content to front-load — the space is misused rather than simply verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter, 4-required analytics tool with 14% schema coverage, the description supplies none of the missing piece: what data is returned in aggregate form, what date range/keyword constraints mean, or how it relates to the timeseries sibling. An output schema exists so return format needn't be explained, but the input and purpose gaps leave the definition unusable on its own.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 14% across 7 parameters (limit, offset, start_date, end_date, keywords, granularity, country), and the description provides no parameter semantics whatsoever — no date format, no keyword-delimiter behavior, no limit/offset meaning. The description fully fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description contains no statement of what the tool does — only billing boilerplate. The title 'SERP Players - Aggregated' is the sole hint at purpose (aggregated SERP competitor data), and that comes from the title field, not the description, so an agent gets no functional explanation of this tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no conditions, and no reference to any of the ~30 siblings such as get_similarweb_serp_players_timeseries, which is the obvious alternative this tool needs to be distinguished from. The agent must guess entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_serp_players_timeseriesSERP Players - Clicks over timeD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.075 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
limitYes
offsetNo
countryNoWorldwide data only; values are case-insensitive.ww
end_dateYes
keywordsYes
start_dateYes
granularityNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description's only added value is cost transparency (~$0.075 per credit), which is genuinely useful context but says nothing about behavior, constraints, or effects. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short, but every sentence is off-topic boilerplate rather than tool documentation, so brevity here reflects absence of content, not efficient structure. The pricing note is front-loaded and clearly delimited, which is the only structural merit.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters at 14% coverage, 4 required fields, no parameter documentation, and no purpose statement, the definition is unusable for correct invocation. The existence of an output schema excuses explaining return values but nothing else that is missing here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 14% across 7 parameters, so the description carries a heavy burden — and it communicates nothing about limit, offset, keywords, start_date, end_date, country, or granularity. Required date-range and keyword-delimited params are entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what the tool does; it contains only aisa-pricing boilerplate about usage-based billing. An agent gets no verb, resource, or scope from the description body, and even the title's hint ('SERP Players - Clicks over time') is left unelaborated. This is effectively a missing description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use, when-not-to-use, or alternative guidance of any kind. Nothing distinguishes this tool from sibling 'get_similarweb_serp_players_aggregated' or the many other get_similarweb_* tools, so the agent has no basis for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_similar_sitesSimilarSitesD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.375 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
limitYes
domainYes
offsetNo
countryNoWorldwide data only; values are case-insensitive.ww
end_dateYes
start_dateYes
web_sourceNo
granularityNo
traffic_sourceNo
main_domain_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered elsewhere. The one piece of added context is billing information (mentioned pricing, per-credit rate, account-specific settlement), which is genuinely useful for a paid external API and is not in the annotations. However, it says nothing about rate limits, latency, data freshness, or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short and formally well-delimited by HTML comment markers, so it is not bloated. But it is entirely boilerplate that does not serve the tool-selection task; 'conciseness' by omission of all substance is under-specification, not efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 10 parameters, 4 of them required, near-zero schema coverage, and a crowded sibling namespace, the description is wholly inadequate. It offers no domain identification, no date-range semantics, no limit/offset behavior, and no indication of what the output contains — an agent cannot call this correctly on the basis of the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 10% (only 'country' is documented, and that is inside the schema, not the description). With 10 parameters — including non-obvious ones like main_domain_only, traffic_source, web_source, and required date-range bounds — the description supplies zero additional meaning, format hints (e.g. date format for start_date/end_date), or defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description contains no statement of purpose at all — it consists entirely of a pricing block ('Usage-based billing; Default request estimate: $0.375 USD...'). Nothing tells the agent what the tool returns, only that it returns similar sites if you infer that from the tool name. For a 10-parameter analytical tool this is a complete failure to identify verb+resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many siblings (get_similarweb_ranking, get_similarweb_audience_overlap, get_similarweb_subdomains, etc.). The only 'condition' offered is cost per credit, which does not help the agent decide whether this is the right tool for a task.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_subdomainsWebsite SubdomainsD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.15 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
limitYes
domainYes
offsetNo
countryNoWorldwide data only; values are case-insensitive.ww
end_dateYes
start_dateYes
web_sourceNo
granularityNo
traffic_sourceNo
main_domain_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description's only added behavioral fact is billing (per-credit pricing and an estimated request cost), which is genuinely useful but is the sole disclosure; nothing is said about rate limits, latency, or result behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short, but brevity is not the issue: every sentence is billing boilerplate that does not help an agent decide or invoke correctly. There is no front-loaded purpose statement for the pricing block to follow.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter, 4-required analytics tool with only 10% schema coverage, the description is wholly inadequate — it omits purpose, usage, and every parameter's semantics. The existence of an output schema excuses it from explaining return values, but nothing else is covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 10% across 10 parameters (limit, domain, offset, country, end_date, start_date, web_source, granularity, traffic_source, main_domain_only), so the description is required to compensate for date formats, enum meanings, and limit semantics. It provides zero parameter information, leaving the agent to guess at required date formats and the meaning of 'granularity' or 'main_domain_only'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description contains only an auto-injected pricing block ('Usage-based billing; Default request estimate: $0.15 USD...'). It never states what the tool does. The agent must infer purpose entirely from the tool name and title, and gets no differentiation from the ~30 sibling SimilarWeb tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as get_similarweb_website_traffic_snapshot, get_similarweb_similar_sites, or the many other SimilarWeb endpoints. No prerequisites, exclusions, or selection criteria are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_technologiesWebsite TechnologiesD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.75 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
limitYes
domainYes
formatNo
countryNoWorldwide data only; values are case-insensitive.ww
end_dateYes
start_dateYes
web_sourceNo
granularityYes
main_domain_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful cost behavior (default request estimate $0.75, $0.075 per similarweb_credit, account-specific pricing) but does not disclose other behavioral traits such as data freshness, rate limits, or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short, but it front-loads pricing rather than purpose, and the entire description is off-topic for tool selection. The structure is not appropriate for a tool definition because no functional content is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 9 parameters (5 required), 11% schema coverage, and an output schema, the description is completely inadequate. It omits purpose, usage guidance, and parameter semantics; the only context provided is billing metadata.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 11% across 9 parameters, and the description contains zero parameter information. It does not explain domain, date ranges, granularity, limit, or any other input, so it completely fails to compensate for the sparse schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what the tool does; it contains only a billing estimate and unit rate. The name and title suggest 'website technologies', but the description itself provides no functional verb, resource, or scope, so an agent cannot determine the tool's purpose from the text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus siblings such as get_similarweb_website_analysi_7399a9, get_similarweb_technology_* variants, or get_details. The only content is pricing, which does not help tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_top_sites_rankingTop Sites RankingD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.075 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
limitYes
offsetNo
countryNoWorldwide data only; values are case-insensitive.ww
categoryYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered. The description's only contribution is billing disclosure ($0.075 USD default estimate per similarweb_credit, usage-based, non-fixed), which is a genuine behavioral trait beyond the annotations, though it discloses nothing about the operation itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short but consists solely of an HTML-comment pricing block with no front-loaded statement of purpose. Being brief here reflects missing content rather than efficient concision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter, paid, read-only ranking tool with an output schema (so return values need not be described), the description still omits purpose, parameter semantics, and usage context. It is inadequate for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 25% across 4 parameters (category, limit, offset, country), and the description adds zero meaning for any of them. Required fields like category and limit are entirely unexplained, and the description does not compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what the tool does. It contains only a pricing/billing boilerplate block, so an agent learns nothing about retrieving a SimilarWeb top-sites ranking, what a 'category' means, or how this differs from siblings like get_similarweb_ranking or list_categories.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of alternatives, and no prerequisites or exclusions. With 30+ siblings, the complete absence of routing guidance leaves the agent unable to choose this tool over any other.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_traffic_engagementTraffic & EngagementD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.075 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
mtdNo
domainYes
countryNoWorldwide data only; values are case-insensitive.ww
metricsYes
end_dateYes
start_dateYes
web_sourceNo
granularityNomonthly
main_domain_onlyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so safety semantics are covered. The description does add genuinely useful non-annotation context: usage-based billing with a $0.075 USD per-request estimate and a similarweb_credit unit rate. However it says nothing about rate limits, auth, or what data is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short, but every word is billing boilerplate that does not help an agent select or invoke the tool. Conciseness without relevance is under-specification, not efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter tool with only 11% schema coverage, an output schema, and a dense sibling set, the description omits purpose, usage, and all parameter semantics. Even granting that the output schema removes the need to explain return values, the definition is unusable for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 11% across 9 parameters (4 required: domain, start_date, end_date, metrics), and the description contributes no parameter meaning at all — no mention of domains, date ranges, metric names, or the enum-constrained country/web_source/granularity values. This is the worst case for a high-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description contains only an auto-generated pricing notice and never states what the tool does. Neither the verb nor the resource is defined beyond what the tool name and title ('Traffic & Engagement') imply, and no sibling is distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives among the ~30 SimilarWeb siblings (e.g., website_traffic_snapshot, traffic_trend, marketing_channel_sources_legacy). An agent gets zero routing information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_website_top_geographiesWebsite Top GeographiesD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $2.25 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
monthNoComplete month in YYYY-MM.
domainYesBare website hostname without scheme, path, port, or credentials.

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description does add genuinely non-obvious cost context (estimated $2.25 per request, $0.075 per similarweb_credit, account-specific settlement), which an agent weighing whether to call a metered tool would value, but it says nothing about the operation's actual behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short, but every line is pricing boilerplate wrapped in HTML comment markers, so the limited space is spent on something other than tool selection. It is front-loaded with billing rather than purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values needn't be explained, but the description never says what "top geographies" means (country-level traffic distribution for a domain/month), leaving the core capability entirely undocumented for an agent scanning a large sibling list.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are self-documenting: domain is specified as a bare hostname and month as YYYY-MM with a previous-complete-UTC-month default policy. The description adds nothing beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description contains no statement of what the tool does. It is entirely a pricing/billing banner ("Usage-based billing; Default request estimate: $2.25 USD...") with no verb, resource, or scope tied to retrieving top geographies for a website.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many sibling geographies/audience tools (get_similarweb_traffic_engagement, get_similarweb_demographics, etc.). No prerequisites, no exclusions, no alternative named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_website_traffic_snapshotWebsite Traffic SnapshotC
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.3 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
monthNoComplete month in YYYY-MM.
domainYesBare website hostname without scheme, path, port, or credentials.
countryNoWorldwide data only; values are case-insensitive.ww

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description does add genuinely non-annotation behavior: usage-based billing with a stated unit rate and a default cost estimate, which is useful for cost-aware agents. It still omits any disclosure of response shape, latency, or credit consumption per call beyond the estimate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short and front-loaded, but every sentence is pricing metadata rather than tool guidance, so the brevity reflects missing content rather than disciplined concision. Nothing is wasted, but nothing about the operation is conveyed either.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and annotations cover safety, but the description supplies no functional framing at all for a tool that competes with a dozen overlapping similarweb traffic tools. An agent cannot tell what a 'traffic snapshot' includes (visits, pageviews, bounce rate, duration) versus its siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema documents domain, month (YYYY-MM, defaulting to previous complete UTC month) and country (worldwide only). The description adds no parameter meaning whatsoever, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description contains only pricing boilerplate (usage-based billing, $0.3 estimate, $0.075 per credit) and says nothing about what the tool retrieves or returns. Only the tool name and title hint at 'website traffic snapshot', which is not sufficient to distinguish it from siblings like get_similarweb_traffic_engagement or get_similarweb_website_traffic_trend.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no mention of alternatives. With 30+ similarweb siblings, the absence of any routing guidance leaves the agent unable to choose this tool over the many adjacent traffic metrics tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_similarweb_website_traffic_trendWebsite Traffic TrendD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.45 USD (not a fixed price). Declared unit rate: $0.075 USD per similarweb_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
domainYesBare website hostname without scheme, path, port, or credentials.
countryNoWorldwide data only; values are case-insensitive.ww
metricsNoOne to four supported Traffic & Engagement metrics.visits
end_dateNoInclusive last complete UTC month in YYYY-MM.
start_dateNoInclusive first month in YYYY-MM; provide together with end_date.

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, open-world, non-destructive, so the safety profile is covered. The description does add genuinely useful behavior beyond annotations: usage-based billing, a $0.45 default request estimate, and a $0.075 per similarweb_credit unit rate, which an agent should weigh before calling. However it discloses nothing about latency, time-window semantics, or result shape, so it is only partial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short and contains no padding, but every sentence is pricing boilerplate wrapped in HTML comment markers rather than task description. It is concise in size yet misdirected in content, and there is no front-loaded statement of purpose to anchor the rest.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, but the description still omits the trend/time-series semantics, default date behavior, and differentiation from the snapshot and traffic-engagement siblings. For a 5-parameter tool with three closely named siblings, this leaves the agent without the information needed to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents domain format, the country enum, the four-item metrics list, and the YYYY-MM date semantics; baseline 3 applies. The description adds no parameter meaning whatsoever beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description contains no statement of what the tool does; it is entirely a pricing banner. Only the tool name hints at retrieving a website traffic trend, and the description does nothing to confirm scope, distinguish trend from snapshot, or identify the resource beyond what the name already says.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no exclusions, and no reference to alternatives such as get_similarweb_website_traffic_snapshot or get_similarweb_traffic_engagement, which are the most likely competing tools. An agent has no basis for choosing this tool over those siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_categoriesBrowse the AIsa catalogueA
Read-only
Inspect

The AIsa catalogue at a glance: categories, the servers in each, tool counts, and the dedicated endpoint to connect if you only need one category. Free. (AIsa-only: tool-router has no equivalent.) Use mcp.aisa.one/mcp?modules=<category> (or mcp.aisa.one/<category>/mcp) to have that category's tools listed directly instead of via search.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is a safe, read-only, closed-world operation. The description adds useful context beyond annotations by saying it returns categories, servers, tool counts, and the dedicated endpoint, and that it is free. It omits auth/rate-limit details, but those are less critical given the read-only annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with what the tool returns and is generally efficient. The parenthetical about tool-router and the endpoint URL add some density, but each part contributes usage or content context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With zero parameters, read-only annotations, and an output schema available, the description supplies enough context for correct invocation. It explains the catalogue contents and gives the category-specific endpoint alternative, leaving no critical gap for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so parameter semantics are not a meaningful differentiator. The schema has no properties to explain, and the description does not need to document any inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that this tool gives a catalogue overview: categories, servers per category, tool counts, and a dedicated endpoint. The resource is specific and recognizable, though sibling differentiation is only partial because it references 'tool-router' rather than the listed siblings like search/use.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear alternative: use the category-specific endpoint if you only need one category, rather than going via search. It also notes the tool is free and AIsa-only, but it does not explicitly state when to call list_categories instead of search or use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_apollo_accounts_account_idUpdate an AccountB
Destructive
Inspect

Update fields on an existing account. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyYes
account_idYesAccount ID

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, so the safety profile is largely covered. The description contributes the master-API-key auth requirement and pricing note, but omits important behavior for a PATCH: that unspecified fields are left untouched, and any error/partial-failure semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action and then the auth requirement, with no redundancy. The injected pricing block adds length but is boilerplate rather than authorial padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations cover destructiveness, so those need not be restated. Still, for a mutation endpoint with a nested custom-fields object, the description never explains PATCH partial-update behavior or that typed_custom_fields requires pre-fetched field IDs, leaving meaningful operational gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Top-level schema coverage is 50% (account_id and body), and the description adds no parameter context. However, the nested body properties are documented exhaustively in the schema itself (name, phone, domain, owner_id, raw_address, account_stage_id, typed_custom_fields), so the schema carries the load and a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Update fields on an existing account') with clear scope (PATCH semantics implied by 'fields'). However, it does not differentiate from near-siblings such as post_apollo_accounts_bulk_update, post_apollo_accounts_update_owners, or patch_apollo_contacts_contact_id, leaving the agent to infer the distinction from names alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Adds one concrete prerequisite, 'Requires a master API key,' which is genuine selection context. But it gives no when-to-use vs when-not guidance and no pointer to the bulk-update or update-owners siblings, so routing relies on inference from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_apollo_contacts_contact_idUpdate or View ContactD
Destructive
Inspect

View a contact by ID. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyYes
contact_idYesContact ID

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description says 'View a contact by ID', implying a read, while annotations declare readOnlyHint=false and destructiveHint=true. This directly contradicts the structured safety signal. The one useful addition is the master API key requirement, but the contradiction dominates.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The functional description is a single terse sentence that mischaracterizes the tool, and it is padded with a multi-line pricing boilerplate block that is irrelevant to selecting or invoking the tool. The valuable content (auth requirement) is buried after the core claim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive PATCH tool with a nested update payload and a required body, the description never explains that it mutates a contact, what fields are updatable, or that `label_names` overwrites existing lists. An output schema exists so return values need not be explained, but the mutation semantics are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50% and the tool has a nested `body` object with a required but undocumented top-level shape. The description contributes nothing about `contact_id` or the update payload, so it fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description says only 'View a contact by ID', but the tool is a PATCH endpoint whose required `body` object contains update fields (email, title, name, labels, etc.) and whose title is 'Update or View Contact'. The description captures the read half and omits the mutation half, which is the primary operation, making it misleading rather than merely vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus the obvious read sibling `get_apollo_contacts_contact_id`, or versus the bulk update tools like `post_apollo_contacts_bulk_update`. The only condition stated is 'Requires a master API key', which is an auth note, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_apollo_opportunities_opportunity_idView or Update DealD
Destructive
Inspect

View a deal (opportunity) by ID. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyYes
opportunity_idYesOpportunity ID

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations declare readOnlyHint=false and destructiveHint=true, but the description says 'View a deal', implying a read-only operation. This contradicts the mutation/destructive nature of the tool and omits what fields are updated, whether changes are reversible, or what gets destroyed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loads a functional statement, but that statement is the wrong operation for the tool and is followed by pricing boilerplate rather than necessary update guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive PATCH tool with annotations, nested body parameters, and a required body object, the description is critically incomplete. It omits update semantics entirely and instead describes a read operation, leaving an agent unable to safely invoke the tool from the description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%, and the description adds almost no parameter meaning beyond 'by ID'. It does not explain the required body object or any of the update fields, leaving the schema to carry most of the semantic load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a resource and ID lookup ('View a deal (opportunity) by ID'), but the tool is a PATCH update tool. It gives the wrong core verb and fails to distinguish itself from the GET sibling get_apollo_opportunities_opportunity_id.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It only states an authentication prerequisite ('Requires a master API key') and provides no guidance on when to use this PATCH tool versus the GET tool or other update endpoints. The only usage signal it gives is misleading because it frames the operation as viewing rather than updating.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_accountsCreate an AccountA
Destructive
Inspect

Create a new account. Duplicate domains are not allowed. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=true, idempotentHint=false, openWorldHint=true), so the bar is lower. The description still adds genuinely non-annotation context: the master-API-key requirement and the duplicate-domain rejection rule. It omits failure behavior and does not restate anything the annotations already cover, but adds no more.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short front-loaded sentences: action, constraint, prerequisite. The pricing block is boilerplate but separate and ignorable. No wasted text in the substantive portion.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values need no explanation, and the nested schema fully documents inputs. What remains for the description—auth requirement and domain constraint—is covered, leaving only failure modes unstated for a destructive create.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The top-level `body` param carries no description (reported coverage 0%), but the nested body schema documents each field extensively (name, domain, owner_id, account_stage_id, typed_custom_fields), so the schema itself carries parameter semantics. The description contributes only the domain-uniqueness constraint, adding marginal value beyond the schema; baseline 3 fits.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Create a new account') in the first sentence, and the singular 'an account' distinguishes it from post_apollo_accounts_bulk_create and from patch_apollo_accounts_account_id. An agent can place it correctly without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description supplies prerequisites ('Requires a master API key') and a hard constraint ('Duplicate domains are not allowed'), which implies the create use case, but it never names an alternative such as bulk create or the patch endpoint, nor states when not to call it. Usage is implied rather than guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_accounts_bulk_createBulk Create AccountsB
Destructive
Inspect

Bulk create accounts. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, so the write/safety profile is covered. The description adds two genuinely useful non-schema facts — the master API key requirement and per-request pricing — but says nothing about partial-failure behavior, duplicate handling, or the all-or-nothing nature of a batch mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two front-loaded sentences carry the core action and the auth prerequisite with no wasted prose. The embedded pricing marker block is boilerplate noise but is clearly delineated and does not bury the substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. Still missing for a destructive batch mutation: the 100-item limit, whether validation failures abort the whole batch, and what a duplicate match returns — all of which the agent needs before invoking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description mentions no parameters at all; its only structured reference is the word "bulk". Reported schema description coverage is 0% at the top level, and the highest-leverage parameter semantics (run_dedupe behavior, the 100-account cap, append_label_names applying to ALL accounts) live only in the nested schema, leaving the description to compensate and it does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb+resource ("Bulk create accounts"), and "bulk" implicitly distinguishes it from the singular post_apollo_accounts and from post_apollo_accounts_bulk_update. It never names those siblings explicitly, so differentiation is inferable rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage-relevant statement is the prerequisite "Requires a master API key". There is no guidance on when to prefer this over post_apollo_accounts (single create), bulk_update, or how to decide on dedupe behavior, and no exclusions or failure conditions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_accounts_bulk_updateBulk Update AccountsB
Destructive
Inspect

Bulk update accounts. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description does add one genuinely useful non-annotation fact — the master API key requirement — but says nothing about what is overwritten, whether partial updates are possible, or the semantics of async processing beyond what the schema states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The authored content is two short, front-loaded sentences with no filler. The injected aisa-pricing block adds length but is machine-appended boilerplate rather than authorial verbosity, so it is only a minor deduction.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and annotations cover the destructive/idempotency profile. What is missing for a nested-object mutation is the two-mode usage model and any guidance on selecting between uniform and per-account updates, which an agent cannot infer from the wrapper schema alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is reported at 0% for the single top-level 'body' parameter, so the description carries the burden and does not meet it. It never explains the critical account_ids vs account_attributes duality, the async constraint, or the per-account versus uniform-update distinction that determines how the call must be shaped.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (bulk update accounts) and the 'bulk' qualifier correctly scopes it against the single-record sibling patch_apollo_accounts_account_id. It does not, however, explicitly name or distinguish itself from post_apollo_accounts_bulk_create, post_apollo_accounts_update_owners, or post_apollo_contacts_bulk_update, which share the same bulk-mutation pattern.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is 'Requires a master API key.' There is no statement of when to use this versus the single-record PATCH, the bulk_create, or the update_owners/update_stages variants, and no mention that two mutually exclusive update modes exist inside the body.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_accounts_searchSearch for AccountsB
Read-onlyIdempotent
Inspect

Search for accounts. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so safety is covered. The description adds two genuinely non-annotated traits: the master API key auth requirement and a per-request cost ($0.012 per successful request), which an agent weighing cost/credentials needs. It stops short of 5 because it says nothing about result volume or pagination behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, purpose front-loaded, no filler. The embedded pricing comment block is boilerplate but is at least clearly delimited and does not obscure the purpose line.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the nested schema covers all filters and pagination. Against that real complexity (seven filter/sort parameters on a nested body), the description is thin: it never summarizes that this is a filtered/paginated list search or how it relates to the parallel contact and mixed-company search endpoints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description contributes zero parameter meaning, and the top-level 'body' parameter has no description (0% coverage by the stated metric), so per the rubric the description should compensate but does not. In practice the nested body properties are documented thoroughly with examples and enum semantics, which keeps this at the baseline 3 rather than lower.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a clear verb+resource ('Search for accounts'), which an agent can distinguish from the sibling create/patch account tools and from get_apollo_accounts_id. However, it offers no differentiation against the other search endpoints (post_apollo_contacts_search, post_apollo_mixed_companies_search), so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is a prerequisite ('Requires a master API key'), which is auth information rather than a when-to-use statement. Nothing tells the agent when to prefer this over get_apollo_accounts_id, post_apollo_mixed_companies_search, or the create/patch siblings, and there are no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_accounts_update_ownersUpdate Account Owner for Multiple AccountsB
Destructive
Inspect

Update account owner for multiple accounts. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
owner_idYesNew owner ID
account_idsYesAccount IDs

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description adds genuinely new context beyond the structured fields: it requires a master API key, an auth escalation the agent would not otherwise know about. It stops short of saying whether existing owners are replaced or how partial failures are handled.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The functional content is two tightly written sentences, front-loaded with the action and followed by the prerequisite. The injected pricing block consumes more words than the actual description, though it is machine-generated boilerplate rather than authorial bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the master API key requirement is a useful addition. However, for a destructive, non-idempotent bulk mutation, the description gives no indication of overwrite semantics or partial-success behavior, leaving a meaningful gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with only two self-documenting parameters (owner_id, account_ids), so the schema carries the load. The description adds no syntax, format, or cardinality guidance beyond what the schema already states, making 3 the correct baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource (update account owner) and adds the scope qualifier 'for multiple accounts', which distinguishes it from the single-record sibling patch_apollo_accounts_account_id. It does not, however, contrast itself against the other near-identical bulk siblings such as post_apollo_accounts_bulk_update or post_apollo_contacts_update_owners.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no named alternatives, and no exclusions. The 'multiple accounts' phrasing only weakly implies this is the batch variant; an agent must infer from the name which of several bulk-account tools applies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_contactsCreate a ContactB
Destructive
Inspect

Create a new contact. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description adds the master API key authentication requirement, which is genuine value beyond the annotations. It does not, however, warn that creating without dedupe can produce duplicates -- that risk is only disclosed inside the run_dedupe property description in the schema, not here.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The prose is a single front-loaded sentence followed by the auth prerequisite -- no wasted words. The trailing pricing HTML comment block is boilerplate noise that adds length without helping an agent invoke the tool, which keeps this from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not owed. Still, for a destructive, non-idempotent write tool the description omits the duplicate-creation caveat and any pointer to the bulk or update alternatives, leaving behavioral context thinner than the tool's complexity warrants.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description contributes no parameter information at all; the wrapper 'body' parameter is undocumented in the description. The reported 0% coverage is largely an artifact of only counting top-level parameters, since the 17 nested properties carry rich descriptions and examples (notably run_dedupe). Net effect: the schema does all the work and the description adds nothing, so a middle score is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Create a new contact.' An agent immediately knows this creates one contact record. However, it does nothing to distinguish itself from close siblings such as post_apollo_contacts_bulk_create (creating many) or patch_apollo_contacts_contact_id (updating an existing one), so the agent must infer the distinction from the names alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is the prerequisite 'Requires a master API key,' which is useful but not a usage condition. There is no statement of when to use this tool versus bulk_create, the search endpoints, or patch for updates. No alternatives or exclusions are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_contacts_bulk_createBulk Create ContactsB
Destructive
Inspect

Bulk create contacts. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description adds a genuinely useful non-annotation fact - the master API key requirement - but is silent on the 100-contact cap, dedupe/merge semantics, and partial-failure behavior for a destructive bulk write.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two functional sentences, front-loaded with the purpose, with no wasted prose. The injected pricing comment block consumes structure without helping tool selection, which is the only blemish on an otherwise tight definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and annotations cover the destructive/idempotency profile. Still missing for a destructive batch mutation are the max batch size, what happens on duplicate matches, and whether validation failures are partial or atomic.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% at the parameter level, so the description would normally need to compensate, and it says nothing about the body. The nested schema is nevertheless exhaustive - every contact field, owner_id, run_dedupe, and append_label_names carry their own descriptions - so effective semantics are already available. Baseline 3 reflects a description that adds nothing over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Bulk create contacts'), and the 'bulk' qualifier cleanly separates it from the single-record sibling post_apollo_contacts. It never names that alternative, so the agent must still infer the boundary, which keeps this from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use bulk create versus post_apollo_contacts, post_apollo_contacts_bulk_update, or the dedupe-aware path. The one prerequisite given ('Requires a master API key') is an auth condition rather than selection guidance, so the agent gets no routing help beyond the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_contacts_bulk_updateBulk Update ContactsB
Destructive
Inspect

Bulk update contacts. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=false and openWorldHint=true, so the safety profile is covered externally. The description adds a genuinely useful auth requirement ('Requires a master API key') that annotations omit, but it says nothing about overwrite semantics, whether omitted fields are preserved, or the >100-contact async threshold.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The functional sentence is short and front-loaded with the verb and resource. The injected pricing block adds length but is a mandated boilerplate element rather than authorial bloat, so the core text earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive bulk mutation with a deeply nested, two-mode request body, the description is bare. The output schema removes the need to document return values and the annotations carry the safety profile, but routing between the bulk and single-contact siblings and clarifying the two mutually exclusive update modes are still missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Top-level schema coverage is 0% (the single 'body' wrapper is undocumented), but its nested properties are exhaustively described with examples, so the schema does most of the heavy lifting. The description contributes nothing about the anyOf union — that contact_ids applies identical values to many contacts while contact_attributes applies individual updates — which is the key semantic an agent needs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

'Bulk update contacts' names a specific verb and resource, and the word 'bulk' implicitly separates it from the single-record sibling patch_apollo_contacts_contact_id. It does not, however, explicitly name an alternative or contrast itself with post_apollo_contacts_bulk_create, so an agent must infer the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only conditional statement is 'Requires a master API key', which is a prerequisite rather than usage guidance. Nothing says when to prefer this over patch_apollo_contacts_contact_id, post_apollo_contacts_bulk_create, or post_apollo_contacts_update_owners, nor when to choose uniform updates vs per-contact updates.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_contacts_searchSearch for ContactsC
Read-onlyIdempotent
Inspect

Search for contacts. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered. The description adds two genuinely useful non-schema facts, the master API key requirement and the per-request price, but says nothing about result volume, rate limits, or account scoping. Given annotations carry most of the burden, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core content is two tight sentences with the purpose front-loaded. The pricing block is injected boilerplate rather than authored prose, but it is fenced and does not bury the actual intent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the annotations cover the safety profile. What is still missing is routing against the numerous sibling search tools and any hint about the nested body structure, which for a nested-object, open-world search endpoint leaves meaningful gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is reported at 0% for the top-level required parameter 'body', and the description says nothing at all about how to shape the body. Although the nested properties carry their own descriptions in the schema, the description contributes zero additional meaning about pagination, keyword search, sorting, or label/stage filters, so it fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a clear verb and resource ('Search for contacts'), so the basic purpose is legible. However, it gives no differentiation from the many sibling contact/search tools (e.g. get_apollo_contacts_contact_id, post_apollo_mixed_people_api_search), leaving the agent to guess which is appropriate. This lands at the minimum-viable level rather than a specific, distinguishing statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Only 'Requires a master API key' is offered, which is a prerequisite rather than guidance on when to use this tool versus alternatives. Nothing tells the agent when this search is preferred over the mixed-people or bulk-match siblings, and there are no exclusions or context cues.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_contacts_update_ownersUpdate Contact Owner for Multiple ContactsB
Destructive
Inspect

Update contact owner for multiple contacts. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
owner_idYesNew owner ID
contact_idsYesContact IDs

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, readOnlyHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is covered. The description adds a real behavioral fact in the master API key requirement, but it never explains the destructive effect itself — that existing owner assignments are overwritten — which is the key unknown for an agent calling a destructive bulk mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The functional sentence and the auth requirement are front-loaded in two short sentences with no redundancy. The injected pricing block is mandated boilerplate rather than authorial waste, but it does dilute the signal slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations covering safety and an output schema covering the response, the definition is broadly serviceable. It is still thin for a destructive bulk mutation: no guidance on partial failure, batch limits, or what happens to the previous owner.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters carry descriptions, so the schema fully documents owner_id and contact_ids. The description contributes no additional parameter meaning (no ID format, no batch size ceiling, no behavior for invalid IDs), so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+scope: reassigning a contact owner across multiple contacts, which implicitly separates it from the single-record patch_apollo_contacts_contact_id and from post_apollo_contacts_update_stages. It does not explicitly name those siblings, so differentiation is inferred from the 'multiple contacts' scope rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The prerequisite 'Requires a master API key' is a genuine usage constraint that helps an agent decide whether the call is even possible. However, there is no indication of when to prefer this bulk tool over the single-contact patch, nor any exclusion or limit guidance for the contact_ids set.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_contacts_update_stagesUpdate Contact Stage for Multiple ContactsB
Destructive
Inspect

Update contact stage for multiple contacts. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
contact_idsYesContact IDs
contact_stage_idYesNew contact stage ID

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, so the risk profile is covered structurally. The description adds one genuinely useful behavior beyond them — the master API key requirement — but says nothing about reversibility, what happens to existing stage assignments, or partial-failure behavior on a batch.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core sentence is front-loaded and wastes no words. The appended pricing block is templated boilerplate that does not aid tool selection, but it is clearly delimited and does not obscure the purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, and the annotations carry the safety profile, so the description is close to sufficient. It still omits the one thing an agent would want for a destructive batch mutation: whether the change is reversible and how many contacts can be submitted per call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters are required, so contact_ids and contact_stage_id are already documented in the schema. The description adds no format, cardinality, or batching-limit detail beyond what the schema states, making the baseline 3 correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource plainly: 'Update contact stage for multiple contacts', which is unambiguous and clearly a bulk stage mutation. It does not, however, distinguish itself from adjacent siblings such as post_apollo_contacts_bulk_update or patch_apollo_contacts_contact_id, so the agent must infer the difference from the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Other than the requirement of a master API key, there is no when-to-use guidance, no exclusions, and no routing to alternatives like the single-contact patch or the generic bulk update. 'For multiple contacts' implies the batch case but stops short of telling the agent when this tool is the right pick.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_emailer_campaigns_add_contact_idsAdd Contacts to a SequenceB
Destructive
Inspect

Add contacts to a sequence. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
contact_idsNoContact IDs to add. Provide either contact_ids[] or label_names[] (or both).
label_namesNoLabel names for contacts to add. Provide either label_names[] or contact_ids[] (or both).
sequence_idYesSequence (emailer campaign) ID.
sequence_no_emailNoAllow contacts without email.
emailer_campaign_idYesSequence ID (same as sequence_id).
sequence_job_changeNoAllow contacts with job change.
sequence_unverified_emailNoAllow contacts with unverified email.
send_email_from_email_addressNoOptional from-address alias.
send_email_from_email_account_idYesEmail account ID (or IDs) to send from.
sequence_active_in_other_campaignsNoAllow contacts active in other sequences.
sequence_finished_in_other_campaignsNoAllow contacts finished in other sequences.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the mutation/safety profile is covered structurally. The description adds the auth requirement (master API key) and pricing, which is real context, but it never explains the consequence of the destructive hint (e.g., contacts entering an outbound sequence) that the annotations imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The functional sentence is front-loaded and waste-free, and the auth requirement follows immediately. The embedded pricing comment block is boilerplate noise but is clearly demarcated and does not obscure the core instruction.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a full output schema and 100% parameter coverage, return values and inputs are covered, so the remaining burden is behavioral. For a destructive 11-parameter mutation the description is minimally adequate: it names the auth requirement but omits consequences, conflict conditions with the remove/stop sibling, and how the several 'allow contacts with...' flags interact.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 11 parameters including contact_ids/label_names alternation are documented in the schema itself. The description adds nothing about parameter semantics, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Add contacts to a sequence'), which an agent can map directly to the operation. It does not, however, differentiate itself from the closely named sibling post_apollo_emailer_campaigns_remove_or_stop_contact_ids or explain the contact/label ambiguity that the schema raises.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no conditions distinguishing adding from removing/stopping contacts, and no note on prerequisites beyond 'Requires a master API key.' The agent is left to infer when this tool is the correct choice vs. siblings like the remove/stop variant or sequence approve/abort.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_emailer_campaigns_remove_or_stop_contact_idsUpdate Contact Status in a SequenceC
Destructive
Inspect

Update contact status in a sequence. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
modeYesOne of: mark_as_finished, remove, stop.
contact_idsYesContact IDs.
emailer_campaign_idsYesSequence IDs.

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description adds the genuinely useful auth constraint (master API key), but is silent on the behavioral consequences of each mode — removing vs stopping vs marking finished — for a bulk destructive operation, which is exactly the context an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The operative text is two short sentences and the auth constraint comes early. The injected pricing block is platform boilerplate rather than the author's prose, so it only marginally dilutes an otherwise tight definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, but for a destructive bulk mutation with three semantically distinct modes the description leaves the mode effects, scope of impact, and failure behavior entirely unexplained. The definition is too thin for the operation's risk level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters (mode, contact_ids, emailer_campaign_ids) are documented in the schema. The description adds no semantics beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Update contact status in a sequence" is essentially a restatement of the title with a different arrangement of the same words. It does not clarify that the tool removes/stops/marks contacts in one or more sequences, nor does it distinguish it from the sibling post_apollo_emailer_campaigns_add_contact_ids. Only the tool name carries the real distinguishing information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is a prerequisite ("Requires a master API key"); there is no statement of when to prefer this tool over add_contact_ids, nor which of the three modes to choose for a given outcome. The agent must infer the entire decision from the schema's mode list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_emailer_campaigns_searchSearch for SequencesA
Read-onlyIdempotent
Inspect

Search for sequences (emailer campaigns) in your Apollo account. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
pageNoPage number.
q_nameNoKeywords to match sequence names.
per_pageNoResults per page.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the bar is lower; the description adds a genuinely useful non-annotation detail, the master-API-key authentication requirement. It still does not describe pagination behaviour or result limits, which the annotations do not cover either.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two front-loaded sentences with zero filler; purpose comes first, then the auth prerequisite. The injected pricing block is boilerplate noise relative to tool selection but does not bury the operative information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, full parameter coverage in the schema, and annotations carrying the safety profile, the description needs only purpose and prerequisites, both of which it supplies. A note on paging across the page/per_page pair is the only obvious missing piece.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for all three parameters (page, q_name, per_page), so the schema already carries the semantics. The description adds no syntax, defaults, or guidance about paging or keyword matching, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Search) and resource (sequences / emailer campaigns), and resolves the naming ambiguity created by the 'post_' prefix by making clear this is a read-style lookup. It does not name a sibling to differentiate from, though the parenthetical alias quietly separates it from get_apollo_emailer_messages_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"In your Apollo account" plus "Requires a master API key" gives the prerequisite and a general context, but there is no explicit when-to-use guidance or named alternative for searching messages rather than sequences. The agent must infer the boundary from the resource name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_emailer_campaigns_sequence_id_abortDeactivate a SequenceB
Destructive
Inspect

Deactivate a sequence. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
sequence_idYesSequence ID.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is covered structurally. The description adds the master-API-key authentication requirement, which is real value beyond the annotations, but says nothing about what deactivation actually does to in-flight sequences, enrolled contacts, or how abort differs from archive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The substantive content is two short front-loaded sentences with no padding around the action. The injected pricing block is boilerplate that consumes space without aiding tool selection, keeping it below a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations carrying the safety profile, the description only owes the agent the action and its prerequisites, both of which are present. It falls short of complete because the distinction between deactivating, archiving, and stopping (remove_or_stop_contact_ids) is left for the agent to guess.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single sequence_id parameter, so the baseline is 3. The description adds no format, sourcing, or semantics for the ID beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("Deactivate") and resource ("a sequence"), so the action itself is unambiguous. It does not, however, distinguish itself from the close siblings post_apollo_emailer_campaigns_sequence_id_archive or ..._approve, which an agent reads as adjacent lifecycle operations on the same sequence.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance, no when-not-to-use, and no routing to alternatives such as archive vs abort vs approve. The only actionable instruction is the credential prerequisite ("Requires a master API key"), which is a gate rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_emailer_campaigns_sequence_id_approveActivate a SequenceB
Destructive
Inspect

Activate a sequence. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
sequence_idYesSequence ID.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is covered externally. The description's one real addition is 'Requires a master API key' — a genuine auth prerequisite not in the annotations. It says nothing about reversibility or what activation does to in-flight contacts.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The functional content is two tight sentences with the auth caveat front-loaded alongside the action. The pricing boilerplate is non-behavioral but is clearly delimited as a comment block.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations carry the destructive/idempotency profile. What is missing is guidance on irreversible activation, which matters for a destructive, non-idempotent mutation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with a single parameter, so the baseline is 3. The description adds no format or sourcing detail for sequence_id beyond the schema's 'Sequence ID.'

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Activate a sequence'), which is much clearer than the name's opaque 'approve' segment. However, it does not differentiate from close siblings like _abort and _archive, so an agent must infer the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives no when-to-use guidance and names no alternatives, despite siblings _abort and _archive being obvious confusable options for an emailer campaign sequence. The agent gets no routing help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_emailer_campaigns_sequence_id_archiveArchive a SequenceA
Destructive
Inspect

Archive a sequence (marks it inactive and finishes contacts). Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
sequence_idYesSequence ID.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds real value beyond them: what archiving does to the sequence and its contacts, the master-key auth requirement, and per-request cost. It does not cover reversibility or timing, but given the annotation coverage this is a strong disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The operative content is two tight sentences, front-loaded with the action and its effect. The pricing block is boilerplate but is short, clearly delimited, and carries genuine cost information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive single-parameter call with an output schema, the description covers the effect, auth requirement, and cost, so an agent has enough to invoke it correctly. It stops short of stating whether the change is reversible or how in-flight sends are handled.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter (sequence_id) and schema description coverage is 100%, so the schema already carries the parameter meaning. The description adds nothing about the identifier beyond what is structured, which is the expected baseline here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb ('Archive') and resource ('a sequence'), plus a clarifying gloss of what archiving does ('marks it inactive and finishes contacts'). That effect does implicitly distinguish it from the abort sibling, but no sibling is named, so it falls short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an important prerequisite ('Requires a master API key') and describes the outcome, which implies when this is appropriate. However, it never states when to choose archive over the closely related abort or approve endpoints, leaving the agent to infer the distinction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_fieldsGet a List of Fields + Create a Custom FieldD
Destructive
Inspect

Get a list of fields. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, destructiveHint=true, idempotentHint=false, but the description says only "Get a list of fields," implying a read. This contradicts the annotations and hides the destructive write nature. The only useful extra is the master API key requirement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The two real sentences are terse, but a large auto-generated pricing block occupies much of the text and conveys nothing about tool selection or behavior. The minimal information present is also front-loaded around the wrong (read) action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists (so return values need not be described), the definition is incomplete for a destructive write tool: it never states it creates a custom field, never covers the required body parameters, and its stated action conflicts with the annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% at the top level and the description mentions no parameters at all. It adds nothing about the nested body fields (type, label, modality, meta) that drive field creation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only says "Get a list of fields," but the tool name (post_), the title ("Get a List of Fields + Create a Custom Field"), and the body schema with type/label/modality all indicate the primary action is creating a custom field. The description omits the create function entirely and is therefore partial/misleading about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not, or alternative guidance is given. Siblings get_apollo_fields and get_apollo_typed_custom_fields appear to be the pure read routes, yet the description does not distinguish this mutating tool from them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_mixed_companies_searchOrganization SearchA
Read-onlyIdempotent
Inspect

Find companies matching criteria: name, domain, headcount, industry, location, funding stage and technologies in use. Returns organizations and accounts side by side — organizations are Apollo's global database, accounts are records that already exist in this Apollo workspace — plus pagination and breadcrumbs echoing the filters that were applied. Use it to build a target list. When you already know the domain, get_apollo_organizations_enrich answers directly and costs less.

Usage-based billing; Default request estimate: $0.01975 USD (not a fixed price). Declared unit rate: $0 USD per provider_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
pageNoThe page number of the Apollo data that you want to retrieve. Use this parameter in combination with the per_page parameter to make search results for navigable and improve the performance of the endpoint. Example: 4
per_pageNoThe number of search results that should be returned for each page. Limiting the number of results per page improves the endpoint's performance. Use the page parameter to search the different pages of data. Example: 10
organization_idsNoThe Apollo IDs for the companies you want to include in your search results. Each company in the Apollo database is assigned a unique ID. To find IDs, identify the values for organization_id when you call this endpoint. Example: 5e66b6381e05b4008c8331b8
revenue_range_maxNoSearch for organizations based on their revenue. Use this parameter to set the upper range of organization revenue. Use the revenue_range[min] parameter to set the lower range of revenue. Do not enter currency symbols, commas, or decimal points in the figure. Example: 50000000
revenue_range_minNoSearch for organizations based on their revenue. Use this parameter to set the lower range of organization revenue. Use the revenue_range[max] parameter to set the upper range of revenue. Do not enter currency symbols, commas, or decimal points in the figure. Example: 300000
q_organization_nameNoFilter search results to include a specific company name. If the value you enter for this parameter does not match with a company's name, the company will not appear in search results, even if it matches other parameters. Partial matches are accepted. For example, if you filter by the value marketing, a company called NY Marketing Unlimited would still be eligible as a search result, but NY Market Analysis would not be eligible. Example: apollo or mining
organization_locationsNoThe location of the company headquarters. You can search across cities, US states, and countries. If a company has several office locations, results are still based on the headquarters location. For example, if you search chicago but a company's HQ location is in boston, any Boston-based companies will not appearch in your search results, even if they match other parameters.. To exclude companies based on location, use the organization_not_locations parameter. Examples: texas; tokyo; spain
total_funding_range_maxNoThe maximum amount the company received during all of its funding rounds combined. Use this parameter in combination with total_funding_range[min] to set a monetary range for all of the company's funding rounds. Do not enter currency symbols, commas, or decimal points in the figure. Examples: 50000000; 350000000
total_funding_range_minNoThe minimum amount the company received during all of its funding rounds combined. Use this parameter in combination with total_funding_range[max] to set a monetary range for all of the company's funding rounds. Do not enter currency symbols, commas, or decimal points in the figure. Examples: 50000000; 350000000
q_organization_job_titlesNoThe job titles that are listed in active job postings at the company. Examples: sales manager; research analyst
organization_job_locationsNoThe locations of the jobs being actively recruited by the company. Examples: atlanta; japan
organization_not_locationsNoExclude companies from search results based on the location of the company headquarters. You can use cities, US states, and countries as locations to exclude. This parameter is useful for ensuring you do not prospect in an undesirable territory. For example, if you use ireland as a value, no Ireland-based companies will appear in your search results. Examples: minnesota; ireland; seoul
q_organization_domains_listNoThe domain name for the person's employer. This can be the current employer or a previous employer. Do not include www., the @ symbol, or similar. This parameter accepts up to 1,000 domains in a single request. Examples: apollo.io; microsoft.com
q_organization_keyword_tagsNoFilter search results based on keywords associated with companies. For example, you can enter mining as a value to return only companies that have an association with the mining industry. Examples: mining; sales strategy; consulting
latest_funding_date_range_maxNoThe latest date when the company received its most recent funding round. Use this parameter in combination with latest_funding_date_range[min] to set a date range for when the company received its most recent funding round. Example: 2025-09-25
latest_funding_date_range_minNoThe earliest date when the company received its most recent funding round. Use this parameter in combination with latest_funding_date_range[max] to set a date range for when the company received its most recent funding round. Example: 2025-07-25
latest_funding_amount_range_maxNoThe maximium amount the company received with its most recent funding round. Use this parameter in combination with latest_funding_amount_range[min] to set a monetary range for the company's most recent funding round. Do not enter currency symbols, commas, or decimal points in the figure. Examples: 5000000; 15000000
latest_funding_amount_range_minNoThe minimum amount the company received with its most recent funding round. Use this parameter in combination with latest_funding_amount_range[max] to set a monetary range for the company's most recent funding round. Do not enter currency symbols, commas, or decimal points in the figure. Examples: 5000000; 15000000
organization_num_jobs_range_maxNoThe maximum number of job postings active at the company. Use this parameter in combination with organization_num_jobs_range[min] to set a job postings range. Examples: 50; 500
organization_num_jobs_range_minNoThe minimum number of job postings active at the company. Use this parameter in combination with organization_num_jobs_range[max] to set a job postings range. Examples: 50; 500
organization_num_employees_rangesNoThe number range of employees working for the company. This enables you to find companies based on headcount. You can add multiple ranges to expand your search results. Each range you add needs to be a string, with the upper and lower numbers of the range separated only by a comma. Examples: 1,10; 250,500; 10000,20000
organization_job_posted_at_range_maxNoThe latest date when jobs were posted by the company. Use this parameter in combination with organization_job_posted_at_range[min] to set a date range for when jobs posted. Example: 2025-09-25
organization_job_posted_at_range_minNoThe earliest date when jobs were posted by the company. Use this parameter in combination with organization_job_posted_at_range[max] to set a date range for when jobs posted. Example: 2025-07-25
currently_using_any_of_technology_uidsNoFind organizations based on the technologies they currently use. Apollo supports filtering by 1,500+ technologies. Apollo calculates technologies data from multiple sources. This data is updated regularly. Check out the full list of supported technologies by downloading this CSV file . Use underscores (_) to replace spaces and periods for the technologies listed in the CSV file. Examples: salesforce; google_analytics; wordpress_org

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive), so the bar is lower. The description adds genuine value beyond them: the dual organizations/accounts return shape, the echoed pagination/breadcrumbs, and a cost signal ($0.01975 estimated request). It stops short of noting rate limits or result caps, so it is strong but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with purpose, then output shape, then the routing decision. The appended pricing block is boilerplate but is genuine cost information, and nothing else is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 24-parameter, zero-required, open-world search with 100% schema coverage and an output schema, the description supplies everything an agent needs: what it searches, what comes back, and when to prefer the cheaper alternative. No critical invocation detail is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 24 parameters, making 3 the baseline. The description names broad filter categories (headcount, funding stage, technologies) that map onto schema properties but adds no syntax or format detail the schema does not already provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Find companies matching criteria') and enumerates the filterable dimensions (name, domain, headcount, industry, location, funding stage, technologies). It also distinguishes the result sets (organizations = Apollo global DB, accounts = existing workspace records), so an agent can tell it apart from sibling enrich tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use ('Use it to build a target list') and an explicit alternative with a selection condition and cost rationale ('When you already know the domain, get_apollo_organizations_enrich answers directly and costs less'). Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_mixed_people_api_searchPeople API SearchA
Read-onlyIdempotent
Inspect

Use the People API Search endpoint to find net new people in the Apollo database. Several filters are available to help narrow your search. This endpoint is optimized for API usage and does not consume credits. This endpoint is primarily designed for prospecting net new people. This endpoint does not return email addresses or phone numbers. Use the People Enrichment or Bulk People Enrichment endpoints to enrich data. This endpoint requires a master API key. Refer to Create API Keys to learn how to create a master API key. To protect Apollo's performance for all users, this endpoint has a display limit of 50,000 records (100 records per page, up to 500 pages). Add more filters to narrow your search results as much as possible. This limitation does not restrict your access to Apollo's database; you just need to access the data in batches.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
pageNoThe page number of the Apollo data that you want to retrieve. Use this parameter in combination with the per_page parameter to make search results for navigable and improve the performance of the endpoint. Example: 4
per_pageNoThe number of search results that should be returned for each page. Limiting the number of results per page improves the endpoint's performance. Use the page parameter to search the different pages of data. Example: 10
q_keywordsNoA string of words over which we want to filter the results.
person_titlesNoJob titles held by the people you want to find. For a person to be included in search results, they only need to match 1 of the job titles you add. Adding more job titles expands your search results. Results also include job titles with the same terms, even if they are not exact matches. For example, searching for marketing manager might return people with the job title content marketing manager. Use this parameter in combination with the person_seniorities[] parameter to find people based on specific job functions and seniority levels. Examples: sales development representative; marketing manager; research analyst
organization_idsNoThe Apollo IDs for the companies (employers) you want to include in your search results. Each company in the Apollo database is assigned a unique ID. To find IDs, call the Organization Search endpoint and identify the values for organization_id. Example: 5e66b6381e05b4008c8331b8
person_locationsNoThe location where people live. You can search across cities, US states, and countries. To find people based on the headquarters locations of their current employer, use the organization_locations parameter. Examples: california; ireland; chicago
revenue_range_maxNoThe maximum revenue the person's current employer generates. Use this parameter in combination with revenue_range[min] to set a revenue range. Do not enter currency symbols, commas, or decimal points in the figure. Examples: 500000; 1500000
revenue_range_minNoThe minimum revenue the person's current employer generates. Use this parameter in combination with revenue_range[max] to set a revenue range. Do not enter currency symbols, commas, or decimal points in the figure. Examples: 500000; 1500000
person_senioritiesNoThe job seniority that people hold within their current employer. This enables you to find people that currently hold positions at certain reporting levels, such as Director level or senior IC level. For a person to be included in search results, they only need to match 1 of the seniorities you add. Adding more seniorities expands your search results. Searches only return results based on their current job title, so searching for Director-level employees only returns people that currently hold a Director-level title. If someone was previously a Director, but is currently a VP, they would not be included in your search results. Use this parameter in combination with the person_titles[] parameter to find people based on specific job functions and seniority levels. The following options can be used for this parameter: owner founder c_suite partner vp head director manager senior entry intern
contact_email_statusNoThe email statuses for the people you want to find. You can add multiple statuses to expand your search. The statuses you can search include: verified unverified likely to engage unavailable
include_similar_titlesNoThis parameter determines whether people with job titles similar to the titles you define in the person_titles[] parameter are returned in the response. Set this parameter to false when using person_titles[] to return only strict matches for job titles.
organization_locationsNoThe location of the company headquarters for a person's current employer. You can search across cities, US states, and countries. If a company has several office locations, results are still based on the headquarters location. For example, if you search chicago but a company's HQ location is in boston, people that work for the Boston-based company will not appear in your results, even if they match other parameters. To find people based on their personal location, use the person_locations parameter. Examples: texas; tokyo; spain
q_organization_job_titlesNoThe job titles that are listed in active job postings at the person's current employer. Examples: sales manager; research analyst
organization_job_locationsNoThe locations of the jobs being actively recruited by the person's employer. Examples: atlanta; japan
q_organization_domains_listNoThe domain name for the person's employer. This can be the current employer or a previous employer. Do not include www., the @ symbol, or similar. This parameter accepts up to 1,000 domains in a single request. Examples: apollo.io; microsoft.com
organization_num_jobs_range_maxNoThe maximum number of job postings active at the person's current employer. Use this parameter in combination with organization_num_jobs_range[min] to set a job postings range. Examples: 50; 500
organization_num_jobs_range_minNoThe minimum number of job postings active at the person's current employer. Use this parameter in combination with organization_num_jobs_range[max] to set a job postings range. Examples: 50; 500
organization_num_employees_rangesNoThe number range of employees working for the person's current company. This enables you to find people based on the headcount of their employer. You can add multiple ranges to expand your search results. Each range you add needs to be a string, with the upper and lower numbers of the range separated only by a comma. Examples: 1,10; 250,500; 10000,20000
organization_job_posted_at_range_maxNoThe latest date when jobs were posted by the person's current employer. Use this parameter in combination with organization_job_posted_at_range[min] to set a date range for when jobs posted. Example: 2025-09-25
organization_job_posted_at_range_minNoThe earliest date when jobs were posted by the person's current employer. Use this parameter in combination with organization_job_posted_at_range[max] to set a date range for when jobs posted. Example: 2025-07-25
currently_using_all_of_technology_uidsNoFind people based on all of the technologies their current employer uses. Apollo supports filtering by 1,500+ technologies. Apollo calculates technologies data from multiple sources. This data is updated regularly. Check out the full list of supported technologies by downloading this CSV file . Use underscores (_) to replace spaces and periods for the technologies listed in the CSV file. Examples: salesforce; google_analytics; wordpress_org
currently_using_any_of_technology_uidsNoFind people based on any of the technologies their current employer uses. Apollo supports filtering by 1,500+ technologies. Apollo calculates technologies data from multiple sources. This data is updated regularly. Check out the full list of supported technologies by downloading this CSV file . Use underscores (_) to replace spaces and periods for the technologies listed in the CSV file. Examples: salesforce; google_analytics; wordpress_org
currently_not_using_any_of_technology_uidsNoExclude people from your search based on any of the technologies their current employer uses. Apollo supports filtering by 1,500+ technologies. Apollo calculates technologies data from multiple sources. This data is updated regularly. Check out the full list of supported technologies by downloading this CSV file . Use underscores (_) to replace spaces and periods for the technologies listed in the CSV file. Examples: salesforce; google_analytics; wordpress_org

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/open-world, and the description adds substantial non-obvious behavior: no credit consumption, master API key requirement, a 50,000-record display limit (100/page, 500 pages), and guidance to narrow with filters. This is exactly the extra context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and key exclusions are front-loaded, but there is mild redundancy from the repeated 'This endpoint...' construction across consecutive sentences. It is appropriately sized for a 23-parameter tool, just slightly repetitive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full annotation coverage, the description still supplies everything an agent needs to call it correctly: auth requirement, credit behavior, pagination ceiling, and enrichment alternatives. Nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across 23 parameters, so the schema already documents each filter in depth. The description adds no per-parameter syntax or pairing guidance beyond the pagination limit note, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('find net new people in the Apollo database') and explicitly contrasts the tool with People Enrichment / Bulk People Enrichment, so an agent can distinguish it from siblings like post_apollo_people_match without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the primary use case (prospecting net new people), the explicit exclusion ('does not return email addresses or phone numbers'), and names the alternative endpoints to use for enrichment. This is an explicit when/when-not/alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_news_articles_searchNews Articles SearchA
Read-onlyIdempotent
Inspect

News coverage for specific companies. organization_ids[] is required — omitting it returns HTTP 422 with "organization_ids is required", so resolve the companies first with get_apollo_organizations_enrich or post_apollo_mixed_companies_search. Narrow further with categories[] (funding, hires, launches and similar), published_at[min], published_at[max], and page with page and per_page. Returns news_articles and pagination. Use it to catch a trigger event before reaching out.

Usage-based billing; Default request estimate: $0.01975 USD (not a fixed price). Declared unit rate: $0 USD per provider_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
pageNoThe page number of the Apollo data that you want to retrieve. Use this parameter in combination with the per_page parameter to make search results for navigable and improve the performance of the endpoint. Example: 4
per_pageNoThe number of search results that should be returned for each page. Limiting the number of results per page improves the endpoint's performance. Use the page parameter to search the different pages of data. Example: 10
categoriesNoFilter your search to include only certain categories or sub-categories of news. Use the News search filter for companies within Apollo to uncover all possible categories and sub-categories. Examples: hires; investment; contract
organization_idsYesThe Apollo IDs for the companies you want to include in your search results. Each company in the Apollo database is assigned a unique ID. To find IDs, call the Organization Search endpoint and identify the values for organization_id. Example: 5e66b6381e05b4008c8331b8
published_at_maxNoSet the upper bound of the date range you want to search. Use this parameter in combination with the published_at[min] parameter. This date should fall after the published_at[min] date. The date should be formatted as YYYY-MM-DD. Example: 2025-05-15
published_at_minNoSet the lower bound of the date range you want to search. Use this parameter in combination with the published_at[max] parameter. This date should fall before the published_at[max] date. The date should be formatted as YYYY-MM-DD. Example: 2025-02-15

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, open-world), so the bar is lower. The description adds real behavioral context beyond them: the exact failure mode (HTTP 422 with 'organization_ids is required') when the required param is omitted, and the response shape (news_articles, pagination). No auth, rate-limit, or cost caveats beyond the injected pricing block.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense, front-loaded, and every sentence carries a distinct instruction: required param, how to resolve it, available filters, return fields, and use case. No filler or restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values need not be explained, and the annotations cover the safety profile. Given the description covers the required parameter, its error behavior, the prerequisite chain, filter options, and a use case, an agent has everything needed to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaning on top: it flags organization_ids as required and explains why (and how to obtain values), and gives category examples (funding, hires, launches) plus the date-range and paging parameters as a coherent filtering story. Some overlap with schema text, but the required-param rationale is genuine added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ("News coverage for specific companies") and immediately distinguishes itself from siblings by naming the prerequisite tools (get_apollo_organizations_enrich, post_apollo_mixed_companies_search) rather than describing itself in isolation. An agent can identify the tool's domain without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit prerequisite (resolve organization_ids first, with two named alternatives) and a concrete motivating use case ("catch a trigger event before reaching out"). It stops short of stating when NOT to use this tool versus other news/social sources in the sibling list, so it is strong but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_opportunitiesCreate DealB
Destructive
Inspect

Create a deal (opportunity). Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=false and openWorldHint=true, so the mutation profile is covered. The description adds the auth requirement (master API key), which annotations do not convey, but says nothing about creation side effects, duplicate handling, or required related entities.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and followed by the key precondition, with no wasted prose. The injected pricing comment block is boilerplate noise rather than description content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A mutation tool with a required nested body object and no annotation-level detail about creation semantics; an output schema exists so return values need not be explained. The description covers only the action and auth, leaving the agent to infer prerequisite IDs and creation behavior entirely from the nested schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Top-level schema description coverage is 0% (the single 'body' parameter is undescribed), and the description contributes no parameter meaning at all. The nested body properties are in fact richly documented in the schema, which limits the damage, but the description itself does nothing to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Create a deal (opportunity)') and usefully disambiguates the API's 'opportunity' terminology as a 'deal'. It does not differentiate itself from siblings like patch_apollo_opportunities or get_apollo_opportunities_search, but the create action is unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is an authentication prerequisite ('Requires a master API key'), which is a precondition rather than a when-to-use rule. There is no mention of when to create a deal versus updating one, or of what pre-existing entities (stage, account, owner) must be resolved first.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_organizations_bulk_enrichBulk Organization EnrichmentA
Read-onlyIdempotent
Inspect

Enrich up to 10 companies in one call. Body takes domains, an array of bare domains. Returns the enriched organizations alongside status, total_requested_domains, unique_domains, unique_records and unique_enriched_records — compare the requested and enriched counts rather than assuming every domain resolved. For one domain get_apollo_organizations_enrich is a plain GET.

Usage-based billing; Default request estimate: $0.1975 USD (not a fixed price). Declared unit rate: $0 USD per provider_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
domainsYesThe domain of each company that you want to enrich. Do not include www., the @ symbol, or similar. Example: apollo.io and microsoft.com

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: the 10-company cap and the warning that not every domain may resolve, advising the caller to compare requested vs enriched counts rather than assume success.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and cap, then the parameter, then the return caveat, then the sibling pointer. Well ordered and mostly waste-free, though the appended pricing boilerplate inflates length relative to the actionable content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite an output schema existing, the description helpfully calls out the key response fields and, more importantly, the semantic caveat that counts may not all match. Together with the sibling routing and the 10-domain limit, an agent has everything needed to call and interpret this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the domains array, bare-domain format, and www/@ exclusion. The description reinforces the 'array of bare domains' shape but adds no syntax or format detail the schema lacks, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (enrich) and resource (organizations/companies) with scope (up to 10 in one call). Explicitly distinguishes itself from the sibling get_apollo_organizations_enrich by noting that the single-domain case is a plain GET, so an agent can choose between them without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a clear routing rule: use this for multiple domains (up to 10), use get_apollo_organizations_enrich for one domain. That covers the primary selection decision, though it doesn't state exclusions such as what to do beyond 10 domains or rate-limit behavior.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_people_bulk_matchBulk People EnrichmentA
Read-onlyIdempotent
Inspect

Enrich up to 10 people in one call. Body takes details, an array of the same identifier objects post_apollo_people_match accepts. Returns matches alongside status, total_requested_enrichments, unique_enriched_records, missing_records and credits_consumed — read missing_records rather than assuming every input matched. Costs one credit per record enriched, not per call. Use this over a loop of single calls: same credits, one round trip. For a single person post_apollo_people_match is simpler.

Usage-based billing; Default request estimate: $1.7775 USD (not a fixed price). Declared unit rate: $0 USD per provider_credit. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyYes
webhook_urlNoIf you set the reveal_phone_number parameter to true, this parameter becomes mandatory. Otherwise, do not use this parameter. Enter the webhook URL that specifies where Apollo should send a JSON response that includes the phone number you requested. Apollo suggests testing this flow to ensure you receive the separate response with the phone number. If phone numbers are not revealed delivered to the webhook URL, try applying UTF-8 encoding to the webhook URL. Example: https://webhook.site/cc4cf44e-e047-4774-8dac-473d28474e40; https%3A%2F%2Fwebhook.site%2Fcc4cf44e-e047-4774-8dac-473d28474e40
reveal_phone_numberNoSet to true if you want to enrich the data of all matched people with all available phone numbers, including mobile phone numbers. This potentially consumes credits as part of your Apollo pricing plan . The default value is false. If this parameter is set to true, you must enter a webhook URL for the webhook_url parameter. Apollo will asynchronously verify phone numbers for you, then send a JSON response that includes only details about the phone numbers to the webhook URL you provide. It can take several minutes for the phone numbers to be delivered.
run_waterfall_emailNoSet to true to enable email waterfall enrichment
run_waterfall_phoneNoSet to true to enable phone waterfall enrichment

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/OpenWorld, so the safety profile is covered. The description adds genuinely useful behavior beyond that: credit cost is per record enriched rather than per call, and partial matches are possible so the caller should inspect missing_records rather than assume success. It stops short of rate limits or async timing, so a 4 rather than 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences ordered as purpose, body, return/cost, then routing. No wasted prose; the pricing block is an injected boilerplate section rather than authored description text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a paid, nested, non-destructive enrichment call with an output schema, the definition covers input shape, cost model, partial-failure semantics, and sibling routing. Nothing an agent needs in order to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 80%, so a baseline of 3 applies. The description adds value by explaining that body.details is an array of the same identifier objects post_apollo_people_match accepts and is capped at 10, linking the nested schema to the sibling's contract rather than just restating field names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (bulk-enrich people), gives the hard cap (up to 10), and explicitly names the sibling it differs from (post_apollo_people_match). An agent can distinguish bulk from single enrichment without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit routing rule: use this over a loop of single calls for the same credits and one round trip, and fall back to post_apollo_people_match for a single person. Both the when-to-use and the when-to-use-something-else conditions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_people_matchPeople EnrichmentA
Read-onlyIdempotent
Inspect

Enrich one person: give whatever identifiers you have and get back Apollo's full record for them. Send identifiers in the JSON request body, not the query string. Accepts email, first_name plus last_name, name, domain, organization_name, linkedin_url or hashed_email — the more you supply, the likelier the match. Returns a person object with id, name, title, headline, linkedin_url, twitter_url, github_url, photo_url, organization_id and an employment_history array, plus a request_id. Personal emails and phone numbers are withheld unless reveal_personal_emails (body) or reveal_phone_number (query) is set, and those cost extra credits. A 200 does not guarantee a match — check whether person actually came back. Use post_apollo_people_bulk_match for up to 10 people in one call; use post_apollo_mixed_people_api_search when you do not have an identifier and need to find candidates first.

Published reference price: $0.01975 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyYesIdentify one person. Give at least one identifier; the more you supply, the likelier the match.
webhook_urlNoIf you set the reveal_phone_number parameter to true, this parameter becomes mandatory. Otherwise, do not use this parameter. Enter the webhook URL that specifies where Apollo should send a JSON response that includes the phone number you requested. Apollo suggests testing this flow to ensure you receive the separate response with the phone number. If phone numbers are not revealed delivered to the webhook URL, try applying UTF-8 encoding to the webhook URL. Example: https://webhook.site/cc4cf44e-e047-4774-8dac-473d28474e40; https%3A%2F%2Fwebhook.site%2Fcc4cf44e-e047-4774-8dac-473d28474e40
reveal_phone_numberNoSet to true if you want to enrich the person's data with all available phone numbers, including mobile phone numbers. This potentially consumes credits as part of your Apollo pricing plan . The default value is false. If this parameter is set to true, you must enter a webhook URL for the webhook_url parameter. Apollo will asynchronously verify phone numbers for you, then send a JSON response that includes only details about the person's phone numbers to the webhook URL you provide. It can take several minutes for the phone numbers to be delivered.
run_waterfall_emailNoSet to true to enable email waterfall enrichment
run_waterfall_phoneNoSet to true to enable phone waterfall enrichment

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint), but the description adds material behavior beyond them: personal emails/phone numbers are withheld by default, revealing them costs extra credits, and a 200 response does not guarantee a match. That last caveat is exactly the kind of non-obvious trait an agent needs. It stops short of noting the async webhook requirement for phone reveals or any rate limiting, so it is not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is long, but front-loaded with the core action and then packed with distinct facts (identifiers, placement, return shape, cost, non-match caveat, alternatives) with no filler sentences. The return-field enumeration is arguably redundant given the output schema, which keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists so return values need no explanation, yet the description still sketches the person object and note fields for orientation. Combined with identifier options, payload placement, cost implications, and sibling alternatives, an agent has everything needed to invoke this correctly on the first attempt.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, and every body field is already documented with examples. The description still adds semantic value the schema does not: the identifier list is presented as a preference-ordered set ('the more you supply, the likelier the match'), and it flags that reveal_personal_emails lives in the body while reveal_phone_number is a query parameter — a distinction that is easy to get wrong from the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: 'Enrich one person', and immediately bounds scope ('one person' vs bulk). It explicitly names the sibling tools it is not (post_apollo_people_bulk_match, post_apollo_mixed_people_api_search), so an agent can discriminate among the Apollo people tools without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit routing rules: use bulk match for up to 10 people in one call, and use mixed_people_api_search when no identifier exists and candidates must be found first. It also states the entry condition (supply whatever identifiers you have, more is better) and the payload-placement rule (body, not query string).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_phone_callsCreate Call RecordsB
Destructive
Inspect

Create call records. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
loggedNoWhether to create an individual record.
statusNoCall status.
user_idNoCaller user IDs.
durationNoDuration in seconds.
end_timeNoISO 8601 end time.
to_numberNoDialed phone number.
account_idNoAccount ID.
contact_idNoContact ID.
start_timeNoISO 8601 start time.
from_numberNoCaller phone number.
phone_call_outcome_idNoOutcome ID.
phone_call_purpose_idNoPurpose ID.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=true, idempotentHint=false), and the description usefully adds the master-API-key auth requirement and a per-request price. However, it does not disclose side effects, retry/non-idempotency implications, or how duplicate calls are handled.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and auth prerequisite are front-loaded in a single tight sentence, and the pricing note is clearly delimited boilerplate. Slightly padded by the pricing comment block but no wasted prose in the functional content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described, and annotations cover mutation risk. Still, for a 12-parameter mutation tool with zero required fields, the description gives no indication of which fields matter, minimum viable payload, or batching behaviour.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across all 12 parameters, so the schema already carries the field semantics. The description adds no parameter-level meaning (e.g., the relationship between logged, status, and the ID fields), so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb plus resource: 'Create call records.' An agent can distinguish this from get_apollo_phone_calls_search (read) and put_apollo_phone_calls_id (update) by the naming pattern, but the description never explicitly differentiates itself from those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is an authentication prerequisite ('Requires a master API key'). There is no statement of when to use this tool versus the search/get/update phone-call siblings, nor any when-not condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_reports_sync_reportQuery Analytics ReportC
Read-onlyIdempotent
Inspect

Query analytics report. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds one genuinely useful fact not present in structured data — the master API key requirement — plus pricing, but says nothing about result volume, limits, or rate behavior beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and followed by the auth requirement; nothing is wasted. The boilerplate pricing block is injected rather than authored, but it is clearly delimited.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a high-complexity tool with a deeply nested required body and a documented output schema, yet the description never mentions the reference-document dependency for valid metric/dimension names, the one-entry limits on group_by/date_ranges, or the custom_range interaction with filters. An agent would have to reverse-engineer all of that from the schema alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single top-level parameter (body) carries no description, but the nested schema is unusually thorough, documenting metrics, filters, group_by, pivot_group_by, date_ranges, sorts and their constraints. The description adds nothing about any parameter, so it neither compensates for the coverage gap nor contributes value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description says it queries an analytics report, which is a recognizable verb+resource, but it is essentially a restatement of the title and adds no scope detail (e.g. what kind of report, sync vs async). It does not distinguish this tool from siblings such as post_apollo_usage_stats_api_usage_stats or the various search tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Requires a master API key" is a prerequisite, not usage guidance. There is no statement of when to use this tool versus the other reporting/search endpoints, and no exclusions or alternatives are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_tasksCreate a TaskB
Destructive
Inspect

Create a task. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=true, openWorldHint=true, and idempotentHint=false, so the write/safety profile is covered. The description adds the master-API-key auth requirement, which is genuinely beyond the annotations, but says nothing about side effects (e.g. notifying the assigned user), error behavior on invalid user_id/contact_id, or why a create is flagged destructive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The two substantive sentences are front-loaded with the action verb and contain no filler. The trailing aisa-pricing block is injected boilerplate and does not dilute the definition. Brevity is appropriate, though it comes at the cost of the gaps noted elsewhere rather than from trimming genuine value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. What remains missing for a mutation tool with a nested required body object is the wrapper-structure explanation, side effects on the assigned user, and any guidance on single vs. bulk creation. Adequate but clearly incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%: the single top-level parameter 'body' has no description, and the tool description says nothing about parameters. It never explains that all task fields (user_id, contact_id, type, status, due_at, note, title, priority) must be nested inside a body object, which is the one non-obvious structural fact an agent needs. The nested property descriptions are rich, but that is the schema doing the work, not the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Create a task.' Combined with the title 'Create a Task' this is unambiguous about what the tool does. It does not, however, distinguish itself from the sibling post_apollo_tasks_bulk_create or explain how it relates to post_apollo_tasks_search, so sibling differentiation is left to the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Requires a master API key' gives one concrete prerequisite, which is more than most descriptions offer. There is no guidance on when to choose this over post_apollo_tasks_bulk_create, no note that this creates exactly one task, and no statement of when not to use it, so usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_tasks_bulk_createBulk Create TasksB
Destructive
Inspect

Bulk create tasks. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false, openWorldHint=true and readOnlyHint=false, so the mutation/write nature is covered without the description. The description adds the master-key auth requirement, which is useful non-schema context. It says nothing about batch-size limits, partial-failure behavior, or reversibility of created tasks.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with purpose then requirement, with no author-supplied padding. The trailing pricing comment is injected boilerplate rather than authored content, so it is not heavily penalized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation and annotations cover the safety profile. What remains missing for a bulk mutation tool is whether the batch is atomic, any cap on contact_ids, and the auth scope consequence if the master key is absent — the description stops at naming the requirement.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Measured schema description coverage is 0% at the parameter level (the sole top-level 'body' object is undocumented), and the description supplies no parameter information at all, so it fails to compensate. The nested properties do carry rich inline descriptions (examples, ISO 8601 format, enum values), which keeps this from being a 1, but the description itself contributes nothing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Bulk create tasks'), and the 'Bulk' qualifier implicitly separates it from the single-create sibling post_apollo_tasks. It does not name any sibling explicitly, so it lands at clear-but-not-differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The prerequisite 'Requires a master API key' is a genuine usage condition, which is more than most. However, there is no guidance on when to prefer this over post_apollo_tasks or post_apollo_tasks_search, so the when-to-use dimension is only implied by the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_tasks_searchSearch for TasksA
Read-onlyIdempotent
Inspect

Search tasks. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
pageNoPage number.
per_pageNoResults per page.
sort_by_fieldNoSort field.
open_factor_namesNoOptional open factors.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered structurally; the description contributes a genuinely non-annotation detail (master API key required) plus cost-per-request. It does not mention pagination limits or result caps, which would be the next useful disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences with no filler; the capability statement comes before the auth requirement. The injected pricing comment block adds markup noise, but the prose itself is tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and 100% param coverage, the description needn't explain return values, and it correctly flags the auth prerequisite. The remaining gap is that a search tool with no obvious query parameter is not clarified, which could confuse an agent about what the tool actually filters on.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the four parameters are already documented and the baseline of 3 applies. The description adds no meaning beyond the schema, and notably does not explain what is searched on when no query/filter parameter exists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb+resource ('Search tasks'), which correctly identifies the read/search counterpart to the write siblings post_apollo_tasks and post_apollo_tasks_bulk_create. It does not, however, name any sibling or differentiate itself from the other Apollo search endpoints (contacts/accounts/opportunities), so it stops short of full sibling routing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is a prerequisite ('Requires a master API key'); there is no when-to-use, when-not-to-use, or named alternative. Given a large family of *_search siblings, an agent gets nothing to decide between them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_apollo_usage_stats_api_usage_statsView API Usage Stats and Rate LimitsA
Read-onlyIdempotent
Inspect

View API usage stats and rate limits. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so safety is covered. The description contributes beyond them by disclosing the master-API-key authorization prerequisite, a constraint an agent cannot infer from structured fields. It stops short of describing response scope or any rate-limit context of its own.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded single sentence plus a short auth note, both earning their place. The appended aisa-pricing boilerplate is not authored description content and adds noise, but the core text is tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With zero parameters, an output schema present (so return values need no explanation), and annotations covering the safety profile, the description carries the remaining informational burden adequately by stating the auth requirement. Slightly more context about what stats are returned would be ideal but is not required given the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, which is the documented baseline of 4. There is nothing parameter-wise for the description to compensate for, and schema coverage is complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb+resource: view API usage stats and rate limits. This is the only usage/rate-limit tool among the Apollo siblings, so it is distinguishable by resource even though no sibling is named. Clear, though it lacks explicit contrast with lookalike read tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use (checking usage and rate limits) is implied by the resource name, and the prerequisite 'Requires a master API key' is stated. However, there is no explicit when-to-use trigger and no named alternative or exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_waveinflu_ai_searchCreator AI SearchA
Destructive
Inspect

Finds creators from a natural-language brief instead of a seed account. platform and query are required; add limit (1–100, default 40) and the same optional filters as Similar Creators. Describe the creators you want in plain language (for example, "beauty creators in the US") and the response returns matching creators in the same rich shape as Similar Creators — full profile metrics plus AI-inferred gender, ageRange, ethnicity, faceVisibility, accountPositioning, aiDescription, and a relevance score. Billing is per delivered creator (data.count).

Usage-based billing; Default request estimate: $0.124425 USD (not a fixed price). Declared unit rate: $0.004977 USD per similar_creator_point. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations mark this readOnly=false, destructive=true and idempotent=false, which is unusual for a search tool; the description resolves that by disclosing usage-based billing ('Billing is per delivered creator (data.count)') plus a concrete per-unit rate and estimate. That cost/consumption context is exactly the kind of behavior structured fields cannot convey. It does not spell out auth requirements or rate limits, so it falls short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the differentiator and required inputs, then response shape, then billing — a sensible ordering with little filler. The appended pricing comment block is boilerplate rather than author content, but it does lengthen the definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the essentials for a billed, non-idempotent search: input meaning, output richness (redundant given the output schema exists), and cost. The one soft spot is that the filter set is described only by cross-reference ('the same optional filters as Similar Creators'), forcing an agent to consult a sibling to know the full filter surface.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds conceptual value (limit 'caps the billed count', the AI-inferred output fields), but it conflicts with the schema on two points: it calls `platform` required when the schema requires only `query` and gives platform a default, and it states `limit` defaults to 40 while the schema says 25. With reported schema coverage at 0% for the top-level `body` wrapper, the description is carrying the burden and these inaccuracies are costly, though the nested filter and platform properties are individually documented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('Finds creators') and immediately states the distinguishing mechanism: a natural-language brief rather than a seed account. This separates it cleanly from the sibling post_waveinflu_similar_creators, which is seed-driven, so an agent can pick between the two without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear condition for use ('Describe the creators you want in plain language') and contrasts it against the seed-account approach, implicitly naming the alternative path. It stops short of an explicit 'when not to use this / use similar_creators instead' instruction, so routing still requires a small inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_waveinflu_email_lookupEmail LookupA
Read-onlyIdempotent
Inspect

Looks up the contact email for one Instagram, TikTok, or YouTube creator from a profile URL. Pass profile_url; the response returns the parsed platform, the normalized profile_url, and an email object {status, value}. A not_found status (with value null) is a normal result, not an error, and is still billed as one valid lookup. Handles one creator per call. To assemble a creator list first, use Similar Creators or AI Search — each match already includes an email for most creators; use this endpoint for the ones that come back null.

Usage-based billing; Default request estimate: $0.001991 USD (not a fixed price). Declared unit rate: $0.001991 USD per email_lookup_point. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely non-obvious behavior: a `not_found` status with null value is a normal outcome rather than an error, and it is still billed as one valid lookup, plus the per-lookup pricing unit. It does not mention auth requirements or rate limits, so it stops short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action and payload, then layers response shape, error semantics, and routing in descending order of importance. The embedded pricing comment block is machine-generated noise, but the prose itself is tight with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values were already documented, yet the description still surfaces the two things an agent actually needs to reason about: the `not_found` case is normal and billable, and one creator is handled per call. Combined with the sibling routing, nothing needed to call this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% at the top level (the single nested `body.profile_url`), so the description must compensate, and it does: it tells the agent to pass `profile_url` and constrains the accepted values to Instagram, TikTok, or YouTube profile URLs, matching the schema example. It adds no syntax rules (e.g., trailing slash or handle-only input), so it is not fully exhaustive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — looks up the contact email for exactly one Instagram/TikTok/YouTube creator from a profile URL — and names the sibling alternatives (Similar Creators, AI Search) it is not. An agent can distinguish this from post_waveinflu_ai_search or post_waveinflu_similar_creators without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit routing guidance: use the list-producing endpoints first to assemble a creator list, then call this endpoint for the creators whose `email` came back null. The one-creator-per-call constraint is stated outright, which prevents batching misuse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_waveinflu_similar_creatorsSimilar CreatorsA
Read-onlyIdempotent
Inspect

Finds creators similar to a seed account on Instagram, TikTok, or YouTube. platform and target_account are required; add limit (1–100, default 40) and optional filters (regions, languages, follower and play-count ranges, gender, ethnicity, creator type, face visibility, workspace dedup). Each match returns a rich profile: biography, email, followerCount, averagePlayCount / medianPlayCount, averageEngagementRate / medianEngagementRate, plus AI-inferred gender, ageRange, ethnicity, faceVisibility, accountPositioning tags, and an aiDescription, with a relevance score. Results are sorted by score descending. Billing is per delivered creator (data.count).

Usage-based billing; Default request estimate: $0.124425 USD (not a fixed price). Declared unit rate: $0.004977 USD per similar_creator_point. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, open-world, non-destructive), so the bar is lower. The description adds genuinely useful context beyond them: per-delivered-creator billing tied to data.count, score-descending sort, and workspace-dedup behavior. Auth/rate-limit behavior is still absent, keeping it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, then parameters, return fields, sorting, and billing in a single dense paragraph. Every sentence carries information, though the return-field enumeration is somewhat list-heavy against an existing output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested, complex tool with an output schema, the description covers required params, optional filters, dedup, sort order, and billing. Return values are enumerated even though the output schema handles them, so nothing an agent needs is missing, but the incorrect limit default is a completeness flaw.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description compensates for the low top-level schema coverage by naming the required fields and enumerating the filter categories. However, it states a `limit` default of 40 while the schema declares a default of 25, a factual mismatch that could mislead the agent, and it largely restates what the nested schema descriptions already document.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Finds creators similar to a seed account') plus the exact platforms (Instagram, TikTok, YouTube). This clearly distinguishes it from siblings like ai_search, email_lookup, and search without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It tells the agent which parameters are required and which are optional, which implies the invocation pattern, but it never states when to choose this over siblings like post_waveinflu_ai_search or when not to use it. Usage context is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

put_apollo_phone_calls_idUpdate Call RecordsC
Destructive
Inspect

Update call records. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
idYesCall record ID.
loggedNoWhether to create an individual record.
statusNoCall status.
user_idNoCaller user IDs.
durationNoDuration in seconds.
end_timeNoISO 8601 end time.
to_numberNoDialed phone number.
account_idNoAccount ID.
contact_idNoContact ID.
start_timeNoISO 8601 start time.
from_numberNoCaller phone number.
phone_call_outcome_idNoOutcome ID.
phone_call_purpose_idNoPurpose ID.

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description contributes one genuinely non-redundant fact — the master API key requirement — but says nothing about what the destructive update replaces, whether omitted fields are cleared or preserved, or PUT replace-vs-merge semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The prose is two short, front-loaded sentences with no filler. The injected pricing HTML comment block is noise, but the authored content itself is tight and not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and all parameters are documented in the schema. However, for a 13-parameter destructive mutation with destructiveHint=true and idempotentHint=false, the description omits partial-vs-full update semantics and any effect of the call, leaving the definition only minimally viable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across all 13 parameters, so the schema already carries the semantics and the baseline of 3 applies. The description adds no parameter-level meaning (e.g., that only the required id is needed and the rest are optional fields to change), leaving it purely a restatement.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ("Update call records"), which is marginally more informative than the name alone, but it adds no detail beyond the title "Update Call Records" and does not distinguish this mutation endpoint from siblings such as post_apollo_phone_calls or get_apollo_phone_calls_search. It is clear but generic.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of alternatives (e.g., post_apollo_phone_calls for creation), and no exclusions. "Requires a master API key" is a prerequisite, not usage guidance, so the agent gets no routing help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

useRun an AIsa operationC
Destructive
Inspect

deprecated, use batch_use instead

NameRequiredDescriptionDefault
argumentsNoArguments matching input_schema / arguments_schema
search_idNosearch_id from the search that found this operation
operation_idYesoperation_id as returned by search
max_price_usdNoRefuse the call before any spend if its quoted price is above this many USD

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=true, and openWorldHint=true, so the agent knows this is a state-changing, open-world operation. The description adds only the deprecation status and says nothing about what gets mutated, spend behavior (despite a max_price_usd param), or authorization needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single clause with zero waste; the deprecation notice and the replacement are front-loaded. It is terse by design for a deprecated endpoint, though it is under-specified rather than optimally efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Has an output schema and annotations, which reduces the burden, but a 4-parameter operation tool with a deprecation notice gives no information about what it executes or whether it remains functional. For an agent deciding between this and batch_use, the description is thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (operation_id, arguments, search_id, max_price_usd) are already documented in the schema. The description adds no parameter meaning on top, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what the tool does — no verb or resource. It only labels the tool as deprecated and points to a replacement, leaving the actual capability ('Run an AIsa operation' from the title) unexplained. An agent must infer the purpose from the title and schema alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly routes the agent to the alternative ('use batch_use instead'), which is exactly the guidance needed for a deprecated tool. It doesn't explain when, if ever, this tool should still be called (e.g., during a migration window), so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 30 tool updates
    • Addedaccount
    • Removedget_details
    • Changedpatch_apollo_accounts_account_id10 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / account_stage_id
        Removed value: -{
        -  "description": "Account stage ID",
        -  "type": "string"
        -}
      • addedInput schema / properties / body
        Added value: +{
        +  "properties": {
        +    "account_stage_id": {
        +      "description": "The Apollo ID for the account stage to which you want to assign the account. Enter a different ID to update the account stage. <br><br>Call the <a href=\"https://docs.apollo.io/reference/list-account-stages\" target=\"_blank\">list account stages endpoint</a> to retrieve a list of all the account stage IDs available in your Apollo account. <br><br>If you do not specify the account stage, Apollo automatically assigns the account to a stage as determined by your team's Apollo account. To change the order of account stages, launch the Apollo product and go to <b>Settings</b> > <b>Objects</b> > <a href=\"https://app.apollo.io/#/settings/accounts/stages\" target=\"_blank\"><b>Accounts</b></a>. Then, access the <b>Triggers</b> tab and change the stage for when an account is created. <br><br>Example: `61b8e913e0f4d2012e3af74e`",
        +      "type": "string"
        +    },
        +    "domain": {
        +      "description": "Update the domain name for the account. Do not include `www.` or similar. <br><br>Example: `apollo.io` or `microsoft.com`",
        +      "type": "string"
        +    },
        +    "name": {
        +      "description": "Update the account's name. This should be a human-readable name. <br><br>Example: `The Fast Irish Copywriters`",
        +      "type": "string"
        +    },
        +    "owner_id": {
        +      "description": "The ID for the account owner within your team's Apollo account. Enter a different ID to update the owner of the account. <br><br>Use the <a href=\"https://docs.apollo.io/reference/get-a-list-of-users\" target=\"_blank\">get a list of users endpoint</a> to retrieve IDs for all of the users within your Apollo account. <br><br>Example: `66302798d03b9601c7934ebf`",
        +      "type": "string"
        +    },
        +    "phone": {
        +      "description": "Update the primary phone number for the account. <br><br>This can be the phone number for the corporate headquarters, a branch location, or a direct dial to the primary point of contact for the account. <br><br>Apollo sanitizes phone numbers, so you can enter them in any format. The sanitized number can be viewed in the endpoint response. <br><br>Examples: `555-555-0133`; `+44 7700 900852`",
        +      "type": "string"
        +    },
        +    "raw_address": {
        +      "description": "Update the corporate location for the account. This can include a city, US state, and country. <br><br>Apollo matches the location you provide to the most applicable pre-defined location. <br><br>Examples: `Belfield, Dublin 4, Ireland`; `Dallas, United States`",
        +      "type": "string"
        +    },
        +    "typed_custom_fields": {
        +      "additionalProperties": {
        +        "type": "string"
        +      },
        +      "description": "Add information to <a href=\"https://knowledge.apollo.io/hc/en-us/articles/4412498754445-Create-Custom-Account-Fields\" target=\"_blank\">custom fields</a> in Apollo. <br><br><b>Your custom fields are unique to your team's Apollo account. This means that the examples in this documentation may not work for your testing purposes.</b> <br><br>To utilize this parameter successfully, call the <a href=\"https://docs.apollo.io/reference/get-a-list-of-all-custom-fields\">get a list of all custom fields</a> endpoint and identify the `id` value for the custom field, as well as the appropriate data type. For example, if a custom field accepts picklist entries, you need to pass the accompanying `id` value for the picklist entry that you want to use as the input value. <br><br><b>Example</b>: When the <a href=\"https://docs.apollo.io/reference/get-a-list-of-all-custom-fields\">get a list of all custom fields</a> endpoint returns an `id` of field: \n * `\"60c39ed82bd02f01154c470a\"` (datetime) \n \n\n then the value passed should be: \n\n `{\"60c39ed82bd02f01154c470a\": \"2025-08-07\"}`",
        +      "example": {
        +        "60c39ed82bd02f01154c470a": "2025-08-07"
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
      • removedInput schema / properties / domain
        Removed value: -{
        -  "description": "Account domain",
        -  "type": "string"
        -}
      • removedInput schema / properties / name
        Removed value: -{
        -  "description": "Account name",
        -  "type": "string"
        -}
      • removedInput schema / properties / owner_id
        Removed value: -{
        -  "description": "Owner ID",
        -  "type": "string"
        -}
      • removedInput schema / properties / phone
        Removed value: -{
        -  "description": "Phone number",
        -  "type": "string"
        -}
      • removedInput schema / properties / raw_address
        Removed value: -{
        -  "description": "Raw address",
        -  "type": "string"
        -}
      • removedInput schema / properties / typed_custom_fields
        Removed value: -{
        -  "description": "Typed custom fields object",
        -  "type": "object"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "account_id"
        -]New value: +[
        +  "account_id",
        +  "body"
        +]
    • Changedpatch_apollo_contacts_contact_id19 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / account_id
        Removed value: -{
        -  "description": "Account ID",
        -  "type": "string"
        -}
      • addedInput schema / properties / body
        Added value: +{
        +  "properties": {
        +    "account_id": {
        +      "description": "Update the account ID. Example: `63f53afe4ceeca00016bdd2f`",
        +      "type": "string"
        +    },
        +    "contact_stage_id": {
        +      "description": "Update the contact stage ID. Example: `6095a710bd01d100a506d4af`",
        +      "type": "string"
        +    },
        +    "corporate_phone": {
        +      "description": "Work/office phone.",
        +      "type": "string"
        +    },
        +    "direct_phone": {
        +      "description": "Primary phone.",
        +      "type": "string"
        +    },
        +    "email": {
        +      "description": "Update the contact email. Example: `example@email.com`",
        +      "type": "string"
        +    },
        +    "first_name": {
        +      "description": "Update the contact's first name. Example: `Tim`",
        +      "type": "string"
        +    },
        +    "home_phone": {
        +      "description": "Home phone.",
        +      "type": "string"
        +    },
        +    "label_names": {
        +      "description": "Replace lists this contact belongs to. (Passing new values will overwrite existing lists.)",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "last_name": {
        +      "description": "Update the contact's last name. Example: `Zheng`",
        +      "type": "string"
        +    },
        +    "mobile_phone": {
        +      "description": "Mobile phone.",
        +      "type": "string"
        +    },
        +    "organization_name": {
        +      "description": "Update the employer (company) name. Example: `apollo`",
        +      "type": "string"
        +    },
        +    "other_phone": {
        +      "description": "Alternate phone.",
        +      "type": "string"
        +    },
        +    "present_raw_address": {
        +      "description": "Update location (city/state/country). Example: `Atlanta, United States`",
        +      "type": "string"
        +    },
        +    "title": {
        +      "description": "Update the job title. Example: `senior research analyst`",
        +      "type": "string"
        +    },
        +    "typed_custom_fields": {
        +      "additionalProperties": {
        +        "type": "string"
        +      },
        +      "description": "Add information to <a href=\"https://knowledge.apollo.io/hc/en-us/articles/4412498825869-Create-Custom-Contact-Fields\" target=\"_blank\">custom fields</a> in Apollo. <br><br><b>Your custom fields are unique to your team's Apollo account. This means that the examples in this documentation may not work for your testing purposes.</b> <br><br>To utilize this parameter successfully, call the <a href=\"https://docs.apollo.io/reference/get-a-list-of-all-custom-fields\">get a list of all custom fields</a> endpoint and identify the `id` value for the custom field, as well as the appropriate data type. For example, if a custom field accepts picklist entries, you need to pass the accompanying `id` value for the picklist entry that you want to use as the input value. <br><br><b>Example</b>: When the <a href=\"https://docs.apollo.io/reference/get-a-list-of-all-custom-fields\">get a list of all custom fields</a> endpoint returns an `id` of field: \n * `\"60c39ed82bd02f01154c470a\"` (datetime) \n \n\n then the value passed should be: \n\n `{\"60c39ed82bd02f01154c470a\": \"2025-08-07\"}`",
        +      "example": {
        +        "60c39ed82bd02f01154c470a": "2025-08-07"
        +      },
        +      "type": "object"
        +    },
        +    "website_url": {
        +      "description": "Update the employer website URL. Example: `https://www.apollo.io/`",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
      • removedInput schema / properties / contact_stage_id
        Removed value: -{
        -  "description": "Contact stage ID",
        -  "type": "string"
        -}
      • removedInput schema / properties / corporate_phone
        Removed value: -{
        -  "description": "Corporate phone",
        -  "type": "string"
        -}
      • removedInput schema / properties / direct_phone
        Removed value: -{
        -  "description": "Direct phone",
        -  "type": "string"
        -}
      • removedInput schema / properties / email
        Removed value: -{
        -  "description": "Email",
        -  "type": "string"
        -}
      • removedInput schema / properties / first_name
        Removed value: -{
        -  "description": "First name",
        -  "type": "string"
        -}
      • removedInput schema / properties / home_phone
        Removed value: -{
        -  "description": "Home phone",
        -  "type": "string"
        -}
      • removedInput schema / properties / label_names
        Removed value: -{
        -  "description": "Labels to set on the contact",
        -  "type": "string"
        -}
      • removedInput schema / properties / last_name
        Removed value: -{
        -  "description": "Last name",
        -  "type": "string"
        -}
      • removedInput schema / properties / mobile_phone
        Removed value: -{
        -  "description": "Mobile phone",
        -  "type": "string"
        -}
      • removedInput schema / properties / organization_name
        Removed value: -{
        -  "description": "Organization name",
        -  "type": "string"
        -}
      • removedInput schema / properties / other_phone
        Removed value: -{
        -  "description": "Other phone",
        -  "type": "string"
        -}
      • removedInput schema / properties / present_raw_address
        Removed value: -{
        -  "description": "Raw address",
        -  "type": "string"
        -}
      • removedInput schema / properties / title
        Removed value: -{
        -  "description": "Title",
        -  "type": "string"
        -}
      • removedInput schema / properties / typed_custom_fields
        Removed value: -{
        -  "description": "Typed custom fields object",
        -  "type": "object"
        -}
      • removedInput schema / properties / website_url
        Removed value: -{
        -  "description": "Website URL",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "contact_id"
        -]New value: +[
        +  "contact_id",
        +  "body"
        +]
    • Changedpatch_apollo_opportunities_opportunity_id9 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / amount
        Removed value: -{
        -  "description": "Amount",
        -  "type": "number"
        -}
      • addedInput schema / properties / body
        Added value: +{
        +  "properties": {
        +    "amount": {
        +      "description": "The monetary value of the deal. Enter a different value to update the deal amount. <br><br>Do not enter commas or currency symbols for the value. The currency is automatically populated by the settings within your Apollo account. Commas are not accepted and result in the deal amount being left blank. <br><br>Example: `55123478` (results in a deal value of `$55,123,478` if the default currency is USD)",
        +      "type": "string"
        +    },
        +    "closed_date": {
        +      "description": "Update the estimated close date for the deal. This can be a future or past date. <br><br>The date should be formatted as `YYYY-MM-DD`. <br><br>Example: `2025-10-30`",
        +      "format": "date",
        +      "type": "string"
        +    },
        +    "name": {
        +      "description": "Update the name of the deal. This should be a human-readable name. <br><br>Example: `Massive Q3 Deal`",
        +      "type": "string"
        +    },
        +    "opportunity_stage_id": {
        +      "description": "The ID for the deal stage within your team's Apollo account. Enter a different ID to update the deal stage. <br><br>Each deal stage is assigned a unique ID. To find deal stage IDs, call the <a href=\"https://docs.apollo.io/reference/list-deal-stages\" target=\"_blank\">list deal stages endpoint</a> and identify the value for `id` for each stage. <br><br>Example: `6095a710bd01d100a506d4bd`",
        +      "type": "string"
        +    },
        +    "owner_id": {
        +      "description": "The ID for the deal owner within your team's Apollo account. Enter a different ID to update the owner of the deal. <br><br>Use the <a href=\"https://docs.apollo.io/reference/get-a-list-of-users\" target=\"_blank\">get a list of users endpoint</a> to retrieve IDs for all of the users within your Apollo account. <br><br>Example: `66302798d03b9601c7934ebf`",
        +      "type": "string"
        +    },
        +    "typed_custom_fields": {
        +      "additionalProperties": {
        +        "type": "string"
        +      },
        +      "description": "Add information to <a href=\"https://knowledge.apollo.io/hc/en-us/articles/4415062486669-Create-a-Deal\" target=\"_blank\">custom fields</a> in Apollo. <br><br><b>Your custom fields are unique to your team's Apollo account. This means that the examples in this documentation may not work for your testing purposes.</b> <br><br>To utilize this parameter successfully, call the <a href=\"https://docs.apollo.io/reference/get-a-list-of-all-custom-fields\">get a list of all custom fields</a> endpoint and identify the `id` value for the custom field, as well as the appropriate data type. For example, if a custom field accepts picklist entries, you need to pass the accompanying `id` value for the picklist entry that you want to use as the input value. <br><br><b>Example</b>: When the <a href=\"https://docs.apollo.io/reference/get-a-list-of-all-custom-fields\">get a list of all custom fields</a> endpoint returns an `id` of field: \n * `\"60c39ed82bd02f01154c470a\"` (datetime) \n \n\n then the value passed should be: \n\n `{\"60c39ed82bd02f01154c470a\": \"2025-08-07\"}`",
        +      "example": {
        +        "60c39ed82bd02f01154c470a": "2025-08-07"
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
      • removedInput schema / properties / closed_date
        Removed value: -{
        -  "description": "Closed date (date string)",
        -  "type": "string"
        -}
      • removedInput schema / properties / name
        Removed value: -{
        -  "description": "Opportunity name",
        -  "type": "string"
        -}
      • removedInput schema / properties / opportunity_stage_id
        Removed value: -{
        -  "description": "Stage ID",
        -  "type": "string"
        -}
      • removedInput schema / properties / owner_id
        Removed value: -{
        -  "description": "Owner ID",
        -  "type": "string"
        -}
      • removedInput schema / properties / typed_custom_fields
        Removed value: -{
        -  "description": "Typed custom fields object",
        -  "type": "object"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "opportunity_id"
        -]New value: +[
        +  "opportunity_id",
        +  "body"
        +]
    • Changedpost_apollo_accounts7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / account_stage_id
        Removed value: -{
        -  "description": "Account stage ID",
        -  "type": "string"
        -}
      • addedInput schema / properties / body
        Added value: +{
        +  "properties": {
        +    "account_stage_id": {
        +      "description": "The Apollo ID for the account stage to which you want to assign the account. Call the <a href=\"https://docs.apollo.io/reference/list-account-stages\" target=\"_blank\">list account stages endpoint</a> to retrieve a list of all the account stage IDs available in your Apollo account. <br><br>If you do not specify the account stage, Apollo automatically assigns the account to a stage as determined by your team's Apollo account. To change the order of account stages, launch the Apollo product and go to <b>Settings</b> > <b>Objects</b> > <a href=\"https://app.apollo.io/#/settings/accounts/stages\" target=\"_blank\"><b>Accounts</b></a>. Then, access the <b>Triggers</b> tab and change the stage for when an account is created.<br><br>Example: `6095a710bd01d100a506d4b9`",
        +      "type": "string"
        +    },
        +    "domain": {
        +      "description": "The domain name for the account. <br><br>Do not include `www.` or similar. <br><br>Example: `apollo.io` or `microsoft.com`",
        +      "type": "string"
        +    },
        +    "name": {
        +      "description": "Name the account that you are creating. This should be a human-readable name. <br><br>Example: `The Irish Copywriters`",
        +      "type": "string"
        +    },
        +    "owner_id": {
        +      "description": "The ID for the account owner within your team's Apollo account. <br><br>Use the <a href=\"https://docs.apollo.io/reference/get-a-list-of-users\" target=\"_blank\">get a list of users endpoint</a> to retrieve IDs for all of the users within your Apollo account. <br><br>Example: `66302798d03b9601c7934ebf`",
        +      "type": "string"
        +    },
        +    "phone": {
        +      "description": "The primary phone number for the account. <br><br>This can be the phone number for the corporate headquarters, a branch location, or a direct dial to the primary point of contact for the account. <br><br>Apollo sanitizes phone numbers, so you can enter them in any format. The sanitized number can be viewed in the endpoint response. <br><br>Examples: `555-555-0133`; `+44 7700 900852`",
        +      "type": "string"
        +    },
        +    "raw_address": {
        +      "description": "The corporate location for the account. This can include a city, US state, and country. <br><br>Apollo matches the location you provide to the most applicable pre-defined location. <br><br>Examples: `Belfield, Dublin 4, Ireland`; `Dallas, United States`",
        +      "type": "string"
        +    },
        +    "typed_custom_fields": {
        +      "additionalProperties": {
        +        "type": "string"
        +      },
        +      "description": "Add information to <a href=\"https://knowledge.apollo.io/hc/en-us/articles/4412498754445-Create-Custom-Account-Fields\" target=\"_blank\">custom fields</a> in Apollo. <br><br><b>Your custom fields are unique to your team's Apollo account. This means that the examples in this documentation may not work for your testing purposes.</b> <br><br>To utilize this parameter successfully, call the <a href=\"https://docs.apollo.io/reference/get-a-list-of-all-custom-fields\">get a list of all custom fields</a> endpoint and identify the `id` value for the custom field, as well as the appropriate data type. For example, if a custom field accepts picklist entries, you need to pass the accompanying `id` value for the picklist entry that you want to use as the input value. <br><br><b>Example</b>: When the <a href=\"https://docs.apollo.io/reference/get-a-list-of-all-custom-fields\">get a list of all custom fields</a> endpoint returns an `id` of field: \n * `\"60c39ed82bd02f01154c470a\"` (datetime) \n \n\n then the value passed should be: \n\n `{\"60c39ed82bd02f01154c470a\": \"2025-08-07\"}`",
        +      "example": {
        +        "60c39ed82bd02f01154c470a": "2025-08-07"
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
      • removedInput schema / properties / domain
        Removed value: -{
        -  "description": "Account domain",
        -  "type": "string"
        -}
      • removedInput schema / properties / name
        Removed value: -{
        -  "description": "Account name",
        -  "type": "string"
        -}
      • removedInput schema / properties / owner_id
        Removed value: -{
        -  "description": "Owner ID",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "name",
        -  "domain"
        -]New value: +[
        +  "body"
        +]
    • Changedpost_apollo_accounts_bulk_create6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / accounts
        Removed value: -{
        -  "description": "Array of accounts to create",
        -  "type": "string"
        -}
      • removedInput schema / properties / append_label_names
        Removed value: -{
        -  "description": "Label names to append to each created account",
        -  "type": "string"
        -}
      • addedInput schema / properties / body
        Added value: +{
        +  "properties": {
        +    "accounts": {
        +      "description": "Array of account attribute objects (maximum 100 accounts per request)",
        +      "items": {
        +        "properties": {
        +          "account_stage_id": {
        +            "description": "Account stage/pipeline stage ID (BSON::ObjectId format)",
        +            "example": "507f1f77bcf86cd799439014",
        +            "type": "string"
        +          },
        +          "domain": {
        +            "description": "Company domain (e.g., 'example.com')",
        +            "example": "acme.com",
        +            "type": "string"
        +          },
        +          "facebook_url": {
        +            "description": "Facebook page URL",
        +            "example": "https://facebook.com/acme",
        +            "type": "string"
        +          },
        +          "hubspot_id": {
        +            "description": "HubSpot company ID for CRM integration",
        +            "example": "12345678",
        +            "type": "string"
        +          },
        +          "linkedin_url": {
        +            "description": "LinkedIn company page URL",
        +            "example": "https://linkedin.com/company/acme",
        +            "type": "string"
        +          },
        +          "merged_crm_ids": {
        +            "description": "Additional CRM IDs for deduplication",
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "name": {
        +            "description": "Account name",
        +            "example": "Acme Corporation",
        +            "type": "string"
        +          },
        +          "organization_id": {
        +            "description": "Apollo organization ID",
        +            "example": "507f1f77bcf86cd799439012",
        +            "type": "string"
        +          },
        +          "owner_id": {
        +            "description": "Account owner user ID (BSON::ObjectId format). Defaults to current user if not provided",
        +            "example": "507f1f77bcf86cd799439013",
        +            "type": "string"
        +          },
        +          "parent_account_id": {
        +            "description": "Parent account ID for account hierarchy (BSON::ObjectId format)",
        +            "example": "507f1f77bcf86cd799439016",
        +            "type": "string"
        +          },
        +          "phone": {
        +            "description": "Company phone number",
        +            "example": "+1-555-0135",
        +            "type": "string"
        +          },
        +          "phone_status_cd": {
        +            "description": "Phone validation status",
        +            "type": "string"
        +          },
        +          "raw_address": {
        +            "description": "Company address",
        +            "example": "123 Main St, San Francisco, CA 94105",
        +            "type": "string"
        +          },
        +          "salesforce_id": {
        +            "description": "Salesforce account ID for CRM integration",
        +            "example": "001pJNj9pix2idKsfj",
        +            "type": "string"
        +          },
        +          "twitter_url": {
        +            "description": "Twitter profile URL",
        +            "example": "https://twitter.com/acme",
        +            "type": "string"
        +          },
        +          "typed_custom_fields": {
        +            "additionalProperties": {
        +              "type": "string"
        +            },
        +            "description": "Custom field values as key-value pairs where key is the field_id and value is the field_value",
        +            "example": {
        +              "507f1f77bcf86cd799439020": "High Value",
        +              "507f1f77bcf86cd799439021": "Q4 2025"
        +            },
        +            "type": "object"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "maxItems": 100,
        +      "type": "array"
        +    },
        +    "append_label_names": {
        +      "description": "Array of label names to add to ALL accounts in this request",
        +      "example": [
        +        "Enterprise",
        +        "High Priority"
        +      ],
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "run_dedupe": {
        +      "default": false,
        +      "description": "Enable aggressive deduplication by domain, organization_id, and name. When false (default), only matches by CRM IDs. When true, also matches by domain, organization_id, and name. Existing accounts are returned without modification in both modes",
        +      "example": true,
        +      "type": "boolean"
        +    }
        +  },
        +  "required": [
        +    "accounts"
        +  ],
        +  "type": "object"
        +}
      • removedInput schema / properties / run_dedupe
        Removed value: -{
        -  "description": "Enable deduplication. Default false.",
        -  "type": "boolean"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "accounts"
        -]New value: +[
        +  "body"
        +]
    • Changedpost_apollo_accounts_bulk_update6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / account_attributes
        Removed value: -{
        -  "items": {
        -    "properties": {
        -      "account_stage_id": {
        -        "description": "Account stage ID",
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Account name",
        -        "type": "string"
        -      },
        -      "owner_id": {
        -        "description": "Owner ID",
        -        "type": "string"
        -      }
        -    },
        -    "type": "object"
        -  },
        -  "type": "array"
        -}
      • removedInput schema / properties / account_ids
        Removed value: -{
        -  "description": "IDs of accounts to update",
        -  "type": "string"
        -}
      • removedInput schema / properties / async
        Removed value: -{
        -  "description": "Run asynchronously. Default false.",
        -  "type": "boolean"
        -}
      • addedInput schema / properties / body
        Added value: +{
        +  "properties": {
        +    "account_attributes": {
        +      "description": "Array of account objects with individual updates. Use this for applying different updates to each account.",
        +      "items": {
        +        "properties": {
        +          "account_stage_id": {
        +            "description": "The Apollo account stage ID",
        +            "example": "6095a710bd01d100a506d4b7",
        +            "type": "string"
        +          },
        +          "id": {
        +            "description": "The account ID to update",
        +            "example": "66e9abf95ac32901b20d1a0d",
        +            "type": "string"
        +          },
        +          "name": {
        +            "description": "The account name",
        +            "example": "Acme Corporation",
        +            "type": "string"
        +          },
        +          "owner_id": {
        +            "description": "The Apollo user ID to assign as owner",
        +            "example": "66302798d03b9601c7934ebf",
        +            "type": "string"
        +          },
        +          "typed_custom_fields": {
        +            "additionalProperties": {
        +              "type": "string"
        +            },
        +            "description": "Custom field values as key-value pairs",
        +            "example": {
        +              "60c39ed82bd02f01154c470a": "2025-08-07"
        +            },
        +            "type": "object"
        +          }
        +        },
        +        "required": [
        +          "id"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "account_ids": {
        +      "description": "Array of account IDs to update with the same values. Use this for applying the same updates to multiple accounts.",
        +      "example": [
        +        "66e9abf95ac32901b20d1a0d",
        +        "66e9a4db056fe802d331fb8a"
        +      ],
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "account_stage_id": {
        +      "description": "When using account_ids, apply this account stage to all accounts",
        +      "example": "6095a710bd01d100a506d4b7",
        +      "type": "string"
        +    },
        +    "async": {
        +      "description": "Set to true to process updates asynchronously. Only available when using account_ids. Not supported with account_attributes.",
        +      "example": false,
        +      "type": "boolean"
        +    },
        +    "name": {
        +      "description": "When using account_ids, apply this name to all accounts",
        +      "example": "Updated Account Name",
        +      "type": "string"
        +    },
        +    "owner_id": {
        +      "description": "When using account_ids, apply this owner to all accounts",
        +      "example": "66302798d03b9601c7934ebf",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "account_ids",
        -  "account_attributes"
        -]New value: +[
        +  "body"
        +]
    • Changedpost_apollo_accounts_search10 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / account_label_ids
        Removed value: -{
        -  "description": "Filter by account label IDs",
        -  "type": "string"
        -}
      • removedInput schema / properties / account_stage_ids
        Removed value: -{
        -  "description": "Filter by account stage IDs",
        -  "type": "string"
        -}
      • addedInput schema / properties / body
        Added value: +{
        +  "properties": {
        +    "account_label_ids": {
        +      "description": "The Apollo IDs for the labels that you want to include in your search results. If you add multiple labels, Apollo will include all accounts connected to any of the labels, along with the other parameters, in the search results. Example: `['6095a710bd01d100a506d4ae']`",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "account_stage_ids": {
        +      "description": "The Apollo IDs for the account stages that you want to include in your search results. If you add multiple account stages, Apollo will include all accounts that match any of the stages, along with the other parameters, in the search results. Call the [list account stages endpoint](https://docs.apollo.io/reference/list-account-stages) to retrieve a list of all the account stage IDs available in your Apollo account. Example: `61b8e913e0f4d2012e3af74e`",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "page": {
        +      "description": "The page number of the Apollo data that you want to retrieve. Use this parameter in combination with the `per_page` parameter to make search results navigable and improve the performance of the endpoint. Example: `4`",
        +      "format": "int32",
        +      "type": "integer"
        +    },
        +    "per_page": {
        +      "description": "The number of search results that should be returned for each page. Limiting the number of results per page improves the endpoint's performance. Use the `page` parameter to navigate through the different pages of data. Example: `10`",
        +      "format": "int32",
        +      "type": "integer"
        +    },
        +    "q_organization_name": {
        +      "description": "Add keywords to narrow the search of the accounts in your team's Apollo account. Keywords should directly match at least part of an account's name. For example, searching the keyword `marketing` might return the result `NY Marketing Unlimited`, but not `NY Market Analysts`. This parameter only searches account names, not other account fields. Examples: `apollo`; `microsoft`; `marketing`",
        +      "type": "string"
        +    },
        +    "sort_ascending": {
        +      "default": false,
        +      "description": "Set to `true` to sort the matching accounts in ascending order. This parameter must be used with `sort_by_field`. Otherwise, the sorting logic is not applied. Example: `true`",
        +      "type": "boolean"
        +    },
        +    "sort_by_field": {
        +      "description": "Sort the matching accounts by 1 of the following options:\n- `account_last_activity_date`: The most recent activity date recorded first.\n- `account_created_at`: The most recently created first.\n- `account_updated_at`: The most recently updated first.",
        +      "enum": [
        +        "account_last_activity_date",
        +        "account_created_at",
        +        "account_updated_at"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
      • removedInput schema / properties / page
        Removed value: -{
        -  "description": "Page number",
        -  "type": "integer"
        -}
      • removedInput schema / properties / per_page
        Removed value: -{
        -  "description": "Items per page",
        -  "type": "integer"
        -}
      • removedInput schema / properties / q_organization_name
        Removed value: -{
        -  "description": "Organization name query",
        -  "type": "string"
        -}
      • removedInput schema / properties / sort_ascending
        Removed value: -{
        -  "description": "Sort ascending",
        -  "type": "boolean"
        -}
      • removedInput schema / properties / sort_by_field
        Removed value: -{
        -  "description": "Sort field (e.g. account_last_activity_date, account_created_at, account_updated_at)",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[]New value: +[
        +  "body"
        +]
    • Changedpost_apollo_accounts_update_owners3 fields changed
      • addedInput schema / properties / account_ids / description
        Added value: +"Account IDs"
      • removedInput schema / properties / account_ids / items / description
        Removed value: -"Account IDs"
      • changedInput schema / required
        Previous value: -[
        -  "owner_id",
        -  "account_ids"
        -]New value: +[
        +  "account_ids",
        +  "owner_id"
        +]
    • Changedpost_apollo_contacts20 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / account_id
        Removed value: -{
        -  "description": "Account ID",
        -  "type": "string"
        -}
      • addedInput schema / properties / body
        Added value: +{
        +  "properties": {
        +    "account_id": {
        +      "description": "The Apollo ID for the account. Example: `63f53afe4ceeca00016bdd2f`",
        +      "type": "string"
        +    },
        +    "contact_stage_id": {
        +      "description": "The Apollo ID for the contact stage. Example: `6095a710bd01d100a506d4ae`",
        +      "type": "string"
        +    },
        +    "corporate_phone": {
        +      "description": "The work/office phone number. Example: `+44 7700 900852`",
        +      "type": "string"
        +    },
        +    "direct_phone": {
        +      "description": "The primary phone number. Example: `555-555-0133`",
        +      "type": "string"
        +    },
        +    "email": {
        +      "description": "The email address of the contact. Example: `example@email.com`",
        +      "type": "string"
        +    },
        +    "first_name": {
        +      "description": "The first name of the contact you want to create. Example: `Tim`",
        +      "type": "string"
        +    },
        +    "home_phone": {
        +      "description": "The home phone number. Example: `555-555-0133`",
        +      "type": "string"
        +    },
        +    "label_names": {
        +      "description": "Lists to which the contact belongs.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "last_name": {
        +      "description": "The last name of the contact you want to create. Example: `Zheng`",
        +      "type": "string"
        +    },
        +    "mobile_phone": {
        +      "description": "The mobile phone number. Example: `555-555-0133`",
        +      "type": "string"
        +    },
        +    "organization_name": {
        +      "description": "The name of the contact's employer (company). Example: `apollo`",
        +      "type": "string"
        +    },
        +    "other_phone": {
        +      "description": "Alternative phone number. Example: `555-555-0133`",
        +      "type": "string"
        +    },
        +    "present_raw_address": {
        +      "description": "The personal location for the contact. Example: `Atlanta, United States`",
        +      "type": "string"
        +    },
        +    "run_dedupe": {
        +      "default": false,
        +      "description": "Set to `true` to match against your existing contacts instead of always creating a new one. The default value is `false`. <br><br>When a match is found, Apollo **updates that existing contact in place** with the values you sent and returns it — the `id` in the response belongs to the pre-existing contact, not a new record. Fields you send overwrite the stored values, fields you omit are left untouched, and sending an empty value clears the field. <br><br>Matching is checked in order: `id`, CRM identifiers, `person_id`, `email` (against the contact's primary and additional emails), then name plus company. Because of the last rule, a contact can be matched and updated even when the email differs. <br><br>When deduplication is enabled, performance may be slightly impacted due to the additional matching checks. See the endpoint description for full details.",
        +      "type": "boolean"
        +    },
        +    "title": {
        +      "description": "The current job title that the contact holds. Example: `senior research analyst`",
        +      "type": "string"
        +    },
        +    "typed_custom_fields": {
        +      "additionalProperties": {
        +        "type": "string"
        +      },
        +      "description": "Add information to <a href=\"https://knowledge.apollo.io/hc/en-us/articles/4412498825869-Create-Custom-Contact-Fields\" target=\"_blank\">custom fields</a> in Apollo. <br><br><b>Your custom fields are unique to your team's Apollo account. This means that the examples in this documentation may not work for your testing purposes.</b> <br><br>To utilize this parameter successfully, call the <a href=\"https://docs.apollo.io/reference/get-a-list-of-all-custom-fields\">get a list of all custom fields</a> endpoint and identify the `id` value for the custom field, as well as the appropriate data type. For example, if a custom field accepts picklist entries, you need to pass the accompanying `id` value for the picklist entry that you want to use as the input value. <br><br><b>Example</b>: When the <a href=\"https://docs.apollo.io/reference/get-a-list-of-all-custom-fields\">get a list of all custom fields</a> endpoint returns an `id` of field: \n * `\"60c39ed82bd02f01154c470a\"` (datetime) \n \n\n then the value passed should be: \n\n `{\"60c39ed82bd02f01154c470a\": \"2025-08-07\"}`",
        +      "example": {
        +        "60c39ed82bd02f01154c470a": "2025-08-07"
        +      },
        +      "type": "object"
        +    },
        +    "website_url": {
        +      "description": "The corporate website URL. Example: `https://www.apollo.io/`",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
      • removedInput schema / properties / contact_stage_id
        Removed value: -{
        -  "description": "Contact stage ID",
        -  "type": "string"
        -}
      • removedInput schema / properties / corporate_phone
        Removed value: -{
        -  "description": "Corporate phone",
        -  "type": "string"
        -}
      • removedInput schema / properties / direct_phone
        Removed value: -{
        -  "description": "Direct phone",
        -  "type": "string"
        -}
      • removedInput schema / properties / email
        Removed value: -{
        -  "description": "Email",
        -  "type": "string"
        -}
      • removedInput schema / properties / first_name
        Removed value: -{
        -  "description": "First name",
        -  "type": "string"
        -}
      • removedInput schema / properties / home_phone
        Removed value: -{
        -  "description": "Home phone",
        -  "type": "string"
        -}
      • removedInput schema / properties / label_names
        Removed value: -{
        -  "description": "Labels to set on the contact",
        -  "type": "string"
        -}
      • removedInput schema / properties / last_name
        Removed value: -{
        -  "description": "Last name",
        -  "type": "string"
        -}
      • removedInput schema / properties / mobile_phone
        Removed value: -{
        -  "description": "Mobile phone",
        -  "type": "string"
        -}
      • removedInput schema / properties / organization_name
        Removed value: -{
        -  "description": "Organization name",
        -  "type": "string"
        -}
      • removedInput schema / properties / other_phone
        Removed value: -{
        -  "description": "Other phone",
        -  "type": "string"
        -}
      • removedInput schema / properties / present_raw_address
        Removed value: -{
        -  "description": "Raw address",
        -  "type": "string"
        -}
      • removedInput schema / properties / run_dedupe
        Removed value: -{
        -  "description": "Enable deduplication. Default false.",
        -  "type": "boolean"
        -}
      • removedInput schema / properties / title
        Removed value: -{
        -  "description": "Title",
        -  "type": "string"
        -}
      • removedInput schema / properties / typed_custom_fields
        Removed value: -{
        -  "description": "Typed custom fields object",
        -  "type": "object"
        -}
      • removedInput schema / properties / website_url
        Removed value: -{
        -  "description": "Website URL",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[]New value: +[
        +  "body"
        +]
    • Changedpost_apollo_contacts_bulk_create6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / append_label_names
        Removed value: -{
        -  "description": "Label names to append to each created contact",
        -  "type": "string"
        -}
      • addedInput schema / properties / body
        Added value: +{
        +  "properties": {
        +    "append_label_names": {
        +      "description": "Array of label names to add to ALL contacts in this request",
        +      "example": [
        +        "Hot Lead",
        +        "Q1 2024"
        +      ],
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "contacts": {
        +      "description": "Array of contact objects to create (maximum 100 contacts per request)",
        +      "items": {
        +        "properties": {
        +          "account_id": {
        +            "description": "Associated account ID",
        +            "example": "507f1f77bcf86cd799439011",
        +            "type": "string"
        +          },
        +          "contact_emails": {
        +            "description": "Array of email objects with position",
        +            "items": {
        +              "properties": {
        +                "email": {
        +                  "example": "john.doe@example.com",
        +                  "type": "string"
        +                },
        +                "position": {
        +                  "example": 0,
        +                  "type": "integer"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "contact_stage_id": {
        +            "description": "Contact stage ID",
        +            "example": "507f1f77bcf86cd799439014",
        +            "type": "string"
        +          },
        +          "email": {
        +            "description": "Contact's email address",
        +            "example": "john.doe@example.com",
        +            "type": "string"
        +          },
        +          "facebook_url": {
        +            "description": "Facebook profile URL",
        +            "example": "https://www.facebook.com/johndoe",
        +            "type": "string"
        +          },
        +          "first_name": {
        +            "description": "Contact's first name",
        +            "example": "John",
        +            "type": "string"
        +          },
        +          "hubspot_id": {
        +            "description": "HubSpot ID for matching and deduplication",
        +            "example": "12345678",
        +            "type": "string"
        +          },
        +          "last_name": {
        +            "description": "Contact's last name",
        +            "example": "Doe",
        +            "type": "string"
        +          },
        +          "linkedin_url": {
        +            "description": "LinkedIn profile URL",
        +            "example": "https://www.linkedin.com/in/john-doe-3f9a7c21",
        +            "type": "string"
        +          },
        +          "organization_id": {
        +            "description": "Associated organization ID",
        +            "example": "507f1f77bcf86cd799439012",
        +            "type": "string"
        +          },
        +          "organization_name": {
        +            "description": "Company/organization name",
        +            "example": "Acme Corporation",
        +            "type": "string"
        +          },
        +          "outreach_id": {
        +            "description": "Outreach.io ID",
        +            "example": "98765",
        +            "type": "string"
        +          },
        +          "phone": {
        +            "description": "Phone number",
        +            "example": "+1-555-0135",
        +            "type": "string"
        +          },
        +          "phone_numbers": {
        +            "description": "Array of phone number objects",
        +            "items": {
        +              "properties": {
        +                "position": {
        +                  "example": 0,
        +                  "type": "integer"
        +                },
        +                "raw_number": {
        +                  "example": "+1-555-0135",
        +                  "type": "string"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "phone_status_cd": {
        +            "description": "Phone validation status",
        +            "type": "string"
        +          },
        +          "photo_url": {
        +            "description": "Profile photo URL",
        +            "example": "https://example.com/photo.jpg",
        +            "type": "string"
        +          },
        +          "present_raw_address": {
        +            "description": "Physical address",
        +            "example": "San Francisco, CA",
        +            "type": "string"
        +          },
        +          "primary_title": {
        +            "description": "Primary job title (takes precedence over title)",
        +            "example": "VP of Sales",
        +            "type": "string"
        +          },
        +          "salesforce_account_id": {
        +            "description": "Salesforce Account ID",
        +            "example": "001pJNj9pix2idKsfj",
        +            "type": "string"
        +          },
        +          "salesforce_contact_id": {
        +            "description": "Salesforce Contact ID for matching",
        +            "example": "003xx000004TmiQAAS",
        +            "type": "string"
        +          },
        +          "salesforce_id": {
        +            "description": "Salesforce ID for matching and deduplication",
        +            "example": "003xx000004TmiQAAS",
        +            "type": "string"
        +          },
        +          "salesforce_lead_id": {
        +            "description": "Salesforce Lead ID",
        +            "example": "00Qxx000001abcDEFG",
        +            "type": "string"
        +          },
        +          "salesloft_id": {
        +            "description": "SalesLoft ID",
        +            "example": "54321",
        +            "type": "string"
        +          },
        +          "title": {
        +            "description": "Contact's job title",
        +            "example": "Senior Manager",
        +            "type": "string"
        +          },
        +          "twitter_url": {
        +            "description": "Twitter profile URL",
        +            "example": "https://twitter.com/johndoe",
        +            "type": "string"
        +          },
        +          "typed_custom_fields": {
        +            "additionalProperties": {
        +              "type": "string"
        +            },
        +            "description": "Custom field values as key-value pairs where key is the field_id and value is the field_value",
        +            "example": {
        +              "60c39ed82bd02f01154c470a": "2025-08-07"
        +            },
        +            "type": "object"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "maxItems": 100,
        +      "type": "array"
        +    },
        +    "owner_id": {
        +      "description": "Owner user ID applied to all contacts in this batch. Defaults to current user if omitted. Returns 422 if the ID does not belong to the current team.",
        +      "example": "507f1f77bcf86cd799439013",
        +      "type": "string"
        +    },
        +    "run_dedupe": {
        +      "default": false,
        +      "description": "Enable full deduplication across all sources. When false (default), creates duplicates for non-email_import sources and merges with email_import placeholders only. When true, returns existing contacts in `existing_contacts` without modifying them (except email_import placeholders, which are still merged). <br><br>Matching is checked in order: `id`, CRM identifiers, `person_id`, `email` (against the contact's primary and additional emails), then name plus company (matched on email domain, `organization_id`, or `organization_name`). <br><br>Unlike <a href=\"https://docs.apollo.io/reference/create-a-contact\">create a contact</a>, this endpoint never overwrites a matched contact's fields.",
        +      "example": true,
        +      "type": "boolean"
        +    }
        +  },
        +  "required": [
        +    "contacts"
        +  ],
        +  "type": "object"
        +}
      • removedInput schema / properties / contacts
        Removed value: -{
        -  "description": "Array of contacts to create",
        -  "type": "string"
        -}
      • removedInput schema / properties / run_dedupe
        Removed value: -{
        -  "description": "Enable deduplication. Default false.",
        -  "type": "boolean"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "contacts"
        -]New value: +[
        +  "body"
        +]
    • Changedpost_apollo_contacts_bulk_update3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / body
        Added value: +{
        +  "anyOf": [
        +    {
        +      "required": [
        +        "contact_ids"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "contact_attributes"
        +      ]
        +    }
        +  ],
        +  "properties": {
        +    "account_id": {
        +      "description": "When using contact_ids, apply this account ID to all contacts",
        +      "example": "63f53afe4ceeca00016bdd2f",
        +      "type": "string"
        +    },
        +    "async": {
        +      "description": "Force asynchronous processing. Automatically enabled for >100 contacts.",
        +      "example": false,
        +      "type": "boolean"
        +    },
        +    "contact_attributes": {
        +      "description": "Array of contact objects with individual updates. Use this for applying different updates to each contact.",
        +      "items": {
        +        "properties": {
        +          "account_id": {
        +            "description": "The Apollo account ID to associate with the contact",
        +            "example": "63f53afe4ceeca00016bdd2f",
        +            "type": "string"
        +          },
        +          "email": {
        +            "description": "The contact's email address",
        +            "example": "john.doe@example.com",
        +            "type": "string"
        +          },
        +          "first_name": {
        +            "description": "The contact's first name",
        +            "example": "John",
        +            "type": "string"
        +          },
        +          "id": {
        +            "description": "The contact ID to update",
        +            "example": "66e34b81740c50074e3d1bd4",
        +            "type": "string"
        +          },
        +          "last_name": {
        +            "description": "The contact's last name",
        +            "example": "Doe",
        +            "type": "string"
        +          },
        +          "linkedin_url": {
        +            "description": "The contact's LinkedIn profile URL",
        +            "example": "https://www.linkedin.com/in/john-doe-3f9a7c21",
        +            "type": "string"
        +          },
        +          "organization_name": {
        +            "description": "The contact's organization name",
        +            "example": "Example Corp",
        +            "type": "string"
        +          },
        +          "owner_id": {
        +            "description": "The Apollo user ID to assign as owner",
        +            "example": "66302798d03b9601c7934ebf",
        +            "type": "string"
        +          },
        +          "present_raw_address": {
        +            "description": "The contact's location",
        +            "example": "San Francisco, CA",
        +            "type": "string"
        +          },
        +          "title": {
        +            "description": "The contact's job title",
        +            "example": "Senior Manager",
        +            "type": "string"
        +          },
        +          "typed_custom_fields": {
        +            "additionalProperties": {
        +              "type": "string"
        +            },
        +            "description": "Custom field values as key-value pairs",
        +            "example": {
        +              "60c39ed82bd02f01154c470a": "2025-08-07"
        +            },
        +            "type": "object"
        +          }
        +        },
        +        "required": [
        +          "id"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "contact_ids": {
        +      "description": "Array of contact IDs to update with the same values. Use this for applying the same updates to multiple contacts.",
        +      "example": [
        +        "66e34b81740c50074e3d1bd4",
        +        "66e370fbf5f5c003f0e1d0cf"
        +      ],
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "email": {
        +      "description": "When using contact_ids, apply this email to all contacts",
        +      "example": "updated@example.com",
        +      "type": "string"
        +    },
        +    "first_name": {
        +      "description": "When using contact_ids, apply this first name to all contacts",
        +      "example": "Updated",
        +      "type": "string"
        +    },
        +    "last_name": {
        +      "description": "When using contact_ids, apply this last name to all contacts",
        +      "example": "Name",
        +      "type": "string"
        +    },
        +    "linkedin_url": {
        +      "description": "When using contact_ids, apply this LinkedIn URL to all contacts",
        +      "example": "https://www.linkedin.com/in/updated",
        +      "type": "string"
        +    },
        +    "organization_name": {
        +      "description": "When using contact_ids, apply this organization name to all contacts",
        +      "example": "Updated Corp",
        +      "type": "string"
        +    },
        +    "owner_id": {
        +      "description": "When using contact_ids, apply this owner to all contacts",
        +      "example": "66302798d03b9601c7934ebf",
        +      "type": "string"
        +    },
        +    "present_raw_address": {
        +      "description": "When using contact_ids, apply this address to all contacts",
        +      "example": "New York, NY",
        +      "type": "string"
        +    },
        +    "title": {
        +      "description": "When using contact_ids, apply this title to all contacts",
        +      "example": "Updated Title",
        +      "type": "string"
        +    },
        +    "typed_custom_fields": {
        +      "additionalProperties": {
        +        "type": "string"
        +      },
        +      "description": "When using contact_ids, apply these custom fields to all contacts",
        +      "example": {
        +        "60c39ed82bd02f01154c470a": "2025-08-07"
        +      },
        +      "type": "object"
        +    },
        +    "visible_entity_ids": {
        +      "description": "Specific contact IDs to return in the response (for performance)",
        +      "example": [
        +        "66e34b81740c50074e3d1bd4"
        +      ],
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
      • changedInput schema / required
        Previous value: -[]New value: +[
        +  "body"
        +]
    • Changedpost_apollo_contacts_search10 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / body
        Added value: +{
        +  "properties": {
        +    "contact_label_ids": {
        +      "description": "The Apollo IDs for the labels that you want to include in your search results. If you add multiple labels, Apollo will include all contacts connected to any of the labels, along with the other parameters, in the search results. Example: `['6095a710bd01d100a506d4ae']`",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "contact_stage_ids": {
        +      "description": "The Apollo IDs for the contact stages that you want to include in your search results. If you add multiple contact stages, Apollo will include all contacts that match any of the stages, along with the other parameters, in the search results. Call the [list contact stages endpoint](https://docs.apollo.io/reference/list-contact-stages) to retrieve a list of all the contact stage IDs available in your Apollo account. Example: `6095a710bd01d100a506d4ae`",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "page": {
        +      "description": "The page number of the Apollo data that you want to retrieve. Use this parameter in combination with the `per_page` parameter to make search results navigable and improve the performance of the endpoint. Example: `4`",
        +      "format": "int32",
        +      "type": "integer"
        +    },
        +    "per_page": {
        +      "description": "The number of search results that should be returned for each page. Limiting the number of results per page improves the endpoint's performance. Use the `page` parameter to search the different pages of data. Example: `10`",
        +      "format": "int32",
        +      "type": "integer"
        +    },
        +    "q_keywords": {
        +      "description": "Add a keyword search string to narrow the contacts in your team's Apollo account. Keywords should be related to the same search concept and can include names, job titles, employers or company names, or email addresses. Examples: `matthew helm`; `CEO`; `Sumware Software`",
        +      "type": "string"
        +    },
        +    "sort_ascending": {
        +      "default": false,
        +      "description": "Set to `true` to sort the matching contacts in ascending order. This parameter must be used with `sort_by_field`. Otherwise, the sorting logic is not applied. Example: `true`",
        +      "type": "boolean"
        +    },
        +    "sort_by_field": {
        +      "description": "Sort the matching contacts by 1 of the following options: \n- `contact_last_activity_date`: The most recent activity date recorded first.\n- `contact_email_last_opened_at`: The most recent email opened date first.\n- `contact_email_last_clicked_at`: The most recent email clicked first.\n- `contact_created_at`: The most recently created first.\n- `contact_updated_at`: The most recently updated first.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
      • removedInput schema / properties / contact_label_ids
        Removed value: -{
        -  "description": "Filter by contact label IDs",
        -  "type": "string"
        -}
      • removedInput schema / properties / contact_stage_ids
        Removed value: -{
        -  "description": "Filter by contact stage IDs",
        -  "type": "string"
        -}
      • removedInput schema / properties / page
        Removed value: -{
        -  "description": "Page number",
        -  "type": "integer"
        -}
      • removedInput schema / properties / per_page
        Removed value: -{
        -  "description": "Items per page",
        -  "type": "integer"
        -}
      • removedInput schema / properties / q_keywords
        Removed value: -{
        -  "description": "Keyword query",
        -  "type": "string"
        -}
      • removedInput schema / properties / sort_ascending
        Removed value: -{
        -  "description": "Sort ascending. Default false.",
        -  "type": "boolean"
        -}
      • removedInput schema / properties / sort_by_field
        Removed value: -{
        -  "description": "Sort field (e.g. contact_last_activity_date, contact_created_at, contact_updated_at)",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[]New value: +[
        +  "body"
        +]
    • Changedpost_apollo_contacts_update_owners3 fields changed
      • addedInput schema / properties / contact_ids / description
        Added value: +"Contact IDs"
      • removedInput schema / properties / contact_ids / items / description
        Removed value: -"Contact IDs"
      • changedInput schema / required
        Previous value: -[
        -  "owner_id",
        -  "contact_ids"
        -]New value: +[
        +  "contact_ids",
        +  "owner_id"
        +]
    • Changedpost_apollo_contacts_update_stages3 fields changed
      • addedInput schema / properties / contact_ids / description
        Added value: +"Contact IDs"
      • removedInput schema / properties / contact_ids / items / description
        Removed value: -"Contact IDs"
      • changedInput schema / required
        Previous value: -[
        -  "contact_stage_id",
        -  "contact_ids"
        -]New value: +[
        +  "contact_ids",
        +  "contact_stage_id"
        +]
    • Changedpost_apollo_emailer_campaigns_remove_or_stop_contact_ids1 field changed
      • changedInput schema / required
        Previous value: -[
        -  "mode",
        -  "contact_ids",
        -  "emailer_campaign_ids"
        -]New value: +[
        +  "contact_ids",
        +  "emailer_campaign_ids",
        +  "mode"
        +]
    • Changedpost_apollo_fields7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / body
        Added value: +{
        +  "properties": {
        +    "label": {
        +      "description": "Name of the custom field you want to create. Example: `Test Name`",
        +      "type": "string"
        +    },
        +    "meta": {
        +      "properties": {
        +        "max_length": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "modality": {
        +      "description": "The modality of the custom field you want to create.  Example: `contact`",
        +      "enum": [
        +        "contact",
        +        "account",
        +        "opportunity"
        +      ],
        +      "type": "string"
        +    },
        +    "type": {
        +      "description": "What kind of custom field you want to create. Example: `textarea`",
        +      "enum": [
        +        "string",
        +        "textarea",
        +        "number",
        +        "date",
        +        "datetime",
        +        "boolean"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
      • removedInput schema / properties / label
        Removed value: -{
        -  "description": "Field label.",
        -  "type": "string"
        -}
      • removedInput schema / properties / meta
        Removed value: -{
        -  "description": "Additional field config.",
        -  "type": "object"
        -}
      • removedInput schema / properties / modality
        Removed value: -{
        -  "description": "Entity modality (e.g., contact).",
        -  "type": "string"
        -}
      • removedInput schema / properties / type
        Removed value: -{
        -  "description": "Field type (e.g., textarea).",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[]New value: +[
        +  "body"
        +]
    • Changedpost_apollo_mixed_companies_search18 fields changed
      • removedInput schema / properties / latest_funding_amount_range
        Removed value: -{
        -  "properties": {
        -    "max": {
        -      "description": "The maximium amount the company received with its most recent funding round. Use this parameter in combination with latest_funding_amount_range[min] to set a monetary range for the company's most recent funding round. Do not enter currency symbols, commas, or decimal points in the figure. Examples: 5000000; 15000000",
        -      "type": "integer"
        -    },
        -    "min": {
        -      "description": "The minimum amount the company received with its most recent funding round. Use this parameter in combination with latest_funding_amount_range[max] to set a monetary range for the company's most recent funding round. Do not enter currency symbols, commas, or decimal points in the figure. Examples: 5000000; 15000000",
        -      "type": "integer"
        -    }
        -  },
        -  "type": "object"
        -}
      • addedInput schema / properties / latest_funding_amount_range_max
        Added value: +{
        +  "description": "The maximium amount the company received with its most recent funding round. Use this parameter in combination with latest_funding_amount_range[min] to set a monetary range for the company's most recent funding round. Do not enter currency symbols, commas, or decimal points in the figure. Examples: 5000000; 15000000",
        +  "type": "integer"
        +}
      • addedInput schema / properties / latest_funding_amount_range_min
        Added value: +{
        +  "description": "The minimum amount the company received with its most recent funding round. Use this parameter in combination with latest_funding_amount_range[max] to set a monetary range for the company's most recent funding round. Do not enter currency symbols, commas, or decimal points in the figure. Examples: 5000000; 15000000",
        +  "type": "integer"
        +}
      • removedInput schema / properties / latest_funding_date_range
        Removed value: -{
        -  "properties": {
        -    "max": {
        -      "description": "The latest date when the company received its most recent funding round. Use this parameter in combination with latest_funding_date_range[min] to set a date range for when the company received its most recent funding round. Example: 2025-09-25",
        -      "type": "string"
        -    },
        -    "min": {
        -      "description": "The earliest date when the company received its most recent funding round. Use this parameter in combination with latest_funding_date_range[max] to set a date range for when the company received its most recent funding round. Example: 2025-07-25",
        -      "type": "string"
        -    }
        -  },
        -  "type": "object"
        -}
      • addedInput schema / properties / latest_funding_date_range_max
        Added value: +{
        +  "description": "The latest date when the company received its most recent funding round. Use this parameter in combination with latest_funding_date_range[min] to set a date range for when the company received its most recent funding round. Example: 2025-09-25",
        +  "type": "string"
        +}
      • addedInput schema / properties / latest_funding_date_range_min
        Added value: +{
        +  "description": "The earliest date when the company received its most recent funding round. Use this parameter in combination with latest_funding_date_range[max] to set a date range for when the company received its most recent funding round. Example: 2025-07-25",
        +  "type": "string"
        +}
      • removedInput schema / properties / organization_job_posted_at_range
        Removed value: -{
        -  "properties": {
        -    "max": {
        -      "description": "The latest date when jobs were posted by the company. Use this parameter in combination with organization_job_posted_at_range[min] to set a date range for when jobs posted. Example: 2025-09-25",
        -      "type": "string"
        -    },
        -    "min": {
        -      "description": "The earliest date when jobs were posted by the company. Use this parameter in combination with organization_job_posted_at_range[max] to set a date range for when jobs posted. Example: 2025-07-25",
        -      "type": "string"
        -    }
        -  },
        -  "type": "object"
        -}
      • addedInput schema / properties / organization_job_posted_at_range_max
        Added value: +{
        +  "description": "The latest date when jobs were posted by the company. Use this parameter in combination with organization_job_posted_at_range[min] to set a date range for when jobs posted. Example: 2025-09-25",
        +  "type": "string"
        +}
      • addedInput schema / properties / organization_job_posted_at_range_min
        Added value: +{
        +  "description": "The earliest date when jobs were posted by the company. Use this parameter in combination with organization_job_posted_at_range[max] to set a date range for when jobs posted. Example: 2025-07-25",
        +  "type": "string"
        +}
      • removedInput schema / properties / organization_num_jobs_range
        Removed value: -{
        -  "properties": {
        -    "max": {
        -      "description": "The maximum number of job postings active at the company. Use this parameter in combination with organization_num_jobs_range[min] to set a job postings range. Examples: 50; 500",
        -      "type": "integer"
        -    },
        -    "min": {
        -      "description": "The minimum number of job postings active at the company. Use this parameter in combination with organization_num_jobs_range[max] to set a job postings range. Examples: 50; 500",
        -      "type": "integer"
        -    }
        -  },
        -  "type": "object"
        -}
      • addedInput schema / properties / organization_num_jobs_range_max
        Added value: +{
        +  "description": "The maximum number of job postings active at the company. Use this parameter in combination with organization_num_jobs_range[min] to set a job postings range. Examples: 50; 500",
        +  "type": "integer"
        +}
      • addedInput schema / properties / organization_num_jobs_range_min
        Added value: +{
        +  "description": "The minimum number of job postings active at the company. Use this parameter in combination with organization_num_jobs_range[max] to set a job postings range. Examples: 50; 500",
        +  "type": "integer"
        +}
      • removedInput schema / properties / revenue_range
        Removed value: -{
        -  "properties": {
        -    "max": {
        -      "description": "Search for organizations based on their revenue. Use this parameter to set the upper range of organization revenue. Use the revenue_range[min] parameter to set the lower range of revenue. Do not enter currency symbols, commas, or decimal points in the figure. Example: 50000000",
        -      "type": "integer"
        -    },
        -    "min": {
        -      "description": "Search for organizations based on their revenue. Use this parameter to set the lower range of organization revenue. Use the revenue_range[max] parameter to set the upper range of revenue. Do not enter currency symbols, commas, or decimal points in the figure. Example: 300000",
        -      "type": "integer"
        -    }
        -  },
        -  "type": "object"
        -}
      • addedInput schema / properties / revenue_range_max
        Added value: +{
        +  "description": "Search for organizations based on their revenue. Use this parameter to set the upper range of organization revenue. Use the revenue_range[min] parameter to set the lower range of revenue. Do not enter currency symbols, commas, or decimal points in the figure. Example: 50000000",
        +  "type": "integer"
        +}
      • addedInput schema / properties / revenue_range_min
        Added value: +{
        +  "description": "Search for organizations based on their revenue. Use this parameter to set the lower range of organization revenue. Use the revenue_range[max] parameter to set the upper range of revenue. Do not enter currency symbols, commas, or decimal points in the figure. Example: 300000",
        +  "type": "integer"
        +}
      • removedInput schema / properties / total_funding_range
        Removed value: -{
        -  "properties": {
        -    "max": {
        -      "description": "The maximum amount the company received during all of its funding rounds combined. Use this parameter in combination with total_funding_range[min] to set a monetary range for all of the company's funding rounds. Do not enter currency symbols, commas, or decimal points in the figure. Examples: 50000000; 350000000",
        -      "type": "integer"
        -    },
        -    "min": {
        -      "description": "The minimum amount the company received during all of its funding rounds combined. Use this parameter in combination with total_funding_range[max] to set a monetary range for all of the company's funding rounds. Do not enter currency symbols, commas, or decimal points in the figure. Examples: 50000000; 350000000",
        -      "type": "integer"
        -    }
        -  },
        -  "type": "object"
        -}
      • addedInput schema / properties / total_funding_range_max
        Added value: +{
        +  "description": "The maximum amount the company received during all of its funding rounds combined. Use this parameter in combination with total_funding_range[min] to set a monetary range for all of the company's funding rounds. Do not enter currency symbols, commas, or decimal points in the figure. Examples: 50000000; 350000000",
        +  "type": "integer"
        +}
      • addedInput schema / properties / total_funding_range_min
        Added value: +{
        +  "description": "The minimum amount the company received during all of its funding rounds combined. Use this parameter in combination with total_funding_range[max] to set a monetary range for all of the company's funding rounds. Do not enter currency symbols, commas, or decimal points in the figure. Examples: 50000000; 350000000",
        +  "type": "integer"
        +}
    • Changedpost_apollo_mixed_people_api_search9 fields changed
      • removedInput schema / properties / organization_job_posted_at_range
        Removed value: -{
        -  "properties": {
        -    "max": {
        -      "description": "The latest date when jobs were posted by the person's current employer. Use this parameter in combination with organization_job_posted_at_range[min] to set a date range for when jobs posted. Example: 2025-09-25",
        -      "type": "string"
        -    },
        -    "min": {
        -      "description": "The earliest date when jobs were posted by the person's current employer. Use this parameter in combination with organization_job_posted_at_range[max] to set a date range for when jobs posted. Example: 2025-07-25",
        -      "type": "string"
        -    }
        -  },
        -  "type": "object"
        -}
      • addedInput schema / properties / organization_job_posted_at_range_max
        Added value: +{
        +  "description": "The latest date when jobs were posted by the person's current employer. Use this parameter in combination with organization_job_posted_at_range[min] to set a date range for when jobs posted. Example: 2025-09-25",
        +  "type": "string"
        +}
      • addedInput schema / properties / organization_job_posted_at_range_min
        Added value: +{
        +  "description": "The earliest date when jobs were posted by the person's current employer. Use this parameter in combination with organization_job_posted_at_range[max] to set a date range for when jobs posted. Example: 2025-07-25",
        +  "type": "string"
        +}
      • removedInput schema / properties / organization_num_jobs_range
        Removed value: -{
        -  "properties": {
        -    "max": {
        -      "description": "The maximum number of job postings active at the person's current employer. Use this parameter in combination with organization_num_jobs_range[min] to set a job postings range. Examples: 50; 500",
        -      "type": "integer"
        -    },
        -    "min": {
        -      "description": "The minimum number of job postings active at the person's current employer. Use this parameter in combination with organization_num_jobs_range[max] to set a job postings range. Examples: 50; 500",
        -      "type": "integer"
        -    }
        -  },
        -  "type": "object"
        -}
      • addedInput schema / properties / organization_num_jobs_range_max
        Added value: +{
        +  "description": "The maximum number of job postings active at the person's current employer. Use this parameter in combination with organization_num_jobs_range[min] to set a job postings range. Examples: 50; 500",
        +  "type": "integer"
        +}
      • addedInput schema / properties / organization_num_jobs_range_min
        Added value: +{
        +  "description": "The minimum number of job postings active at the person's current employer. Use this parameter in combination with organization_num_jobs_range[max] to set a job postings range. Examples: 50; 500",
        +  "type": "integer"
        +}
      • removedInput schema / properties / revenue_range
        Removed value: -{
        -  "properties": {
        -    "max": {
        -      "description": "The maximum revenue the person's current employer generates. Use this parameter in combination with revenue_range[min] to set a revenue range. Do not enter currency symbols, commas, or decimal points in the figure. Examples: 500000; 1500000",
        -      "type": "integer"
        -    },
        -    "min": {
        -      "description": "The minimum revenue the person's current employer generates. Use this parameter in combination with revenue_range[max] to set a revenue range. Do not enter currency symbols, commas, or decimal points in the figure. Examples: 500000; 1500000",
        -      "type": "integer"
        -    }
        -  },
        -  "type": "object"
        -}
      • addedInput schema / properties / revenue_range_max
        Added value: +{
        +  "description": "The maximum revenue the person's current employer generates. Use this parameter in combination with revenue_range[min] to set a revenue range. Do not enter currency symbols, commas, or decimal points in the figure. Examples: 500000; 1500000",
        +  "type": "integer"
        +}
      • addedInput schema / properties / revenue_range_min
        Added value: +{
        +  "description": "The minimum revenue the person's current employer generates. Use this parameter in combination with revenue_range[max] to set a revenue range. Do not enter currency symbols, commas, or decimal points in the figure. Examples: 500000; 1500000",
        +  "type": "integer"
        +}
    • Changedpost_apollo_news_articles_search3 fields changed
      • removedInput schema / properties / published_at
        Removed value: -{
        -  "properties": {
        -    "max": {
        -      "description": "Set the upper bound of the date range you want to search. Use this parameter in combination with the published_at[min] parameter. This date should fall after the published_at[min] date. The date should be formatted as YYYY-MM-DD. Example: 2025-05-15",
        -      "type": "string"
        -    },
        -    "min": {
        -      "description": "Set the lower bound of the date range you want to search. Use this parameter in combination with the published_at[max] parameter. This date should fall before the published_at[max] date. The date should be formatted as YYYY-MM-DD. Example: 2025-02-15",
        -      "type": "string"
        -    }
        -  },
        -  "type": "object"
        -}
      • addedInput schema / properties / published_at_max
        Added value: +{
        +  "description": "Set the upper bound of the date range you want to search. Use this parameter in combination with the published_at[min] parameter. This date should fall after the published_at[min] date. The date should be formatted as YYYY-MM-DD. Example: 2025-05-15",
        +  "type": "string"
        +}
      • addedInput schema / properties / published_at_min
        Added value: +{
        +  "description": "Set the lower bound of the date range you want to search. Use this parameter in combination with the published_at[max] parameter. This date should fall before the published_at[max] date. The date should be formatted as YYYY-MM-DD. Example: 2025-02-15",
        +  "type": "string"
        +}
    • Changedpost_apollo_opportunities10 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / account_id
        Removed value: -{
        -  "description": "Account ID",
        -  "type": "string"
        -}
      • removedInput schema / properties / amount
        Removed value: -{
        -  "description": "Deal amount",
        -  "type": "number"
        -}
      • addedInput schema / properties / body
        Added value: +{
        +  "properties": {
        +    "account_id": {
        +      "description": "The ID for the account within your Apollo instance. This is the company that you are targeting as part of the deal being created. <br><br>Each company in the Apollo database is assigned a unique ID. To find IDs, call the <a href=\"https://docs.apollo.io/reference/organization-search\" target=\"_blank\">organization search endpoint</a> and identify the values for `organization_id`. <br><br>Example: `5e66b6381e05b4008c8331b8`",
        +      "type": "string"
        +    },
        +    "amount": {
        +      "description": "The monetary value of the deal being created. <br><br>Do not enter commas or currency symbols for the value. The currency is automatically populated by the settings within your Apollo account. Commas are not accepted and result in the deal amount being left blank. <br><br>Example: `55123478` (results in a deal value of `$55,123,478` if the default currency is USD)",
        +      "type": "string"
        +    },
        +    "closed_date": {
        +      "description": "The estimated close date for the deal. This can be a future or past date. <br><br>The date should be formatted as `YYYY-MM-DD`. <br><br>Example: `2025-10-30`",
        +      "format": "date",
        +      "type": "string"
        +    },
        +    "name": {
        +      "description": "Name the deal you are creating. This should be a human-readable name. <br><br>Example: `Massive Q3 Deal`",
        +      "type": "string"
        +    },
        +    "opportunity_stage_id": {
        +      "description": "The ID for the deal stage within your team's Apollo account. <br><br>Each deal stage is assigned a unique ID. To find deal stage IDs, call the <a href=\"https://docs.apollo.io/reference/list-deal-stages\" target=\"_blank\">list deal stages endpoint</a> and identify the value for `id` for each stage. <br><br>Example: `6095a710bd01d100a506d4bd`",
        +      "type": "string"
        +    },
        +    "owner_id": {
        +      "description": "The ID for the deal owner within your team's Apollo account. <br><br>Use the <a href=\"https://docs.apollo.io/reference/get-a-list-of-users\" target=\"_blank\">get a list of users endpoint</a> to retrieve IDs for all of the users within your Apollo account. <br><br>Example: `66302798d03b9601c7934ebf`",
        +      "type": "string"
        +    },
        +    "typed_custom_fields": {
        +      "additionalProperties": {
        +        "type": "string"
        +      },
        +      "description": "Add information to <a href=\"https://knowledge.apollo.io/hc/en-us/articles/4415062486669-Create-a-Deal\" target=\"_blank\">custom fields</a> in Apollo. <br><br><b>Your custom fields are unique to your team's Apollo account. This means that the examples in this documentation may not work for your testing purposes.</b> <br><br>To utilize this parameter successfully, call the <a href=\"https://docs.apollo.io/reference/get-a-list-of-all-custom-fields\">get a list of all custom fields</a> endpoint and identify the `id` value for the custom field, as well as the appropriate data type. For example, if a custom field accepts picklist entries, you need to pass the accompanying `id` value for the picklist entry that you want to use as the input value. <br><br><b>Example</b>: When the <a href=\"https://docs.apollo.io/reference/get-a-list-of-all-custom-fields\">get a list of all custom fields</a> endpoint returns an `id` of field: \n * `\"60c39ed82bd02f01154c470a\"` (datetime) \n \n\n then the value passed should be: \n\n `{\"60c39ed82bd02f01154c470a\": \"2025-08-07\"}`",
        +      "example": {
        +        "60c39ed82bd02f01154c470a": "2025-08-07"
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "name"
        +  ],
        +  "type": "object"
        +}
      • removedInput schema / properties / closed_date
        Removed value: -{
        -  "description": "Closed date (date string)",
        -  "type": "string"
        -}
      • removedInput schema / properties / name
        Removed value: -{
        -  "description": "Deal name",
        -  "type": "string"
        -}
      • removedInput schema / properties / opportunity_stage_id
        Removed value: -{
        -  "description": "Deal stage ID",
        -  "type": "string"
        -}
      • removedInput schema / properties / owner_id
        Removed value: -{
        -  "description": "Owner ID",
        -  "type": "string"
        -}
      • removedInput schema / properties / typed_custom_fields
        Removed value: -{
        -  "description": "Typed custom fields object",
        -  "type": "object"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "name"
        -]New value: +[
        +  "body"
        +]
    • Changedpost_apollo_people_bulk_match8 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / body
        Added value: +{
        +  "properties": {
        +    "details": {
        +      "description": "Provide info for each person you want to enrich as an object within this array. Add up to 10 people.",
        +      "items": {
        +        "description": "One person to enrich. Give whatever identifiers you have — the more, the likelier the match.",
        +        "properties": {
        +          "domain": {
        +            "description": "Domain of the person's employer, without www. Example: apollo.io",
        +            "type": "string"
        +          },
        +          "email": {
        +            "description": "Email address of the person.",
        +            "type": "string"
        +          },
        +          "first_name": {
        +            "description": "First name, used with last_name. Example: tim",
        +            "type": "string"
        +          },
        +          "hashed_email": {
        +            "description": "MD5 or SHA-256 hash of the email address.",
        +            "type": "string"
        +          },
        +          "id": {
        +            "description": "Apollo person id, e.g. from a people search.",
        +            "type": "string"
        +          },
        +          "last_name": {
        +            "description": "Last name, used with first_name. Example: zheng",
        +            "type": "string"
        +          },
        +          "linkedin_url": {
        +            "description": "LinkedIn profile URL of the person.",
        +            "type": "string"
        +          },
        +          "name": {
        +            "description": "Full name, e.g. \"tim zheng\"; replaces first_name + last_name.",
        +            "type": "string"
        +          },
        +          "organization_name": {
        +            "description": "Name of the person's employer. Example: apollo",
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "reveal_personal_emails": {
        +      "description": "Set to true if you want to enrich all matched people with personal emails. This potentially consumes credits as part of your Apollo pricing plan . The default value is false. If a person resides in a GDPR -compliant region, Apollo will not reveal their personal email.",
        +      "type": "boolean"
        +    }
        +  },
        +  "required": [
        +    "details"
        +  ],
        +  "type": "object"
        +}
      • removedInput schema / properties / details
        Removed value: -{
        -  "description": "Provide info for each person you want to enrich as an object within this array. Add up to 10 people.",
        -  "items": {
        -    "description": "One person to enrich. Give whatever identifiers you have — the more, the likelier the match.",
        -    "properties": {
        -      "domain": {
        -        "description": "Domain of the person's employer, without www. Example: apollo.io",
        -        "type": "string"
        -      },
        -      "email": {
        -        "description": "Email address of the person.",
        -        "type": "string"
        -      },
        -      "first_name": {
        -        "description": "First name, used with last_name. Example: tim",
        -        "type": "string"
        -      },
        -      "hashed_email": {
        -        "description": "MD5 or SHA-256 hash of the email address.",
        -        "type": "string"
        -      },
        -      "id": {
        -        "description": "Apollo person id, e.g. from a people search.",
        -        "type": "string"
        -      },
        -      "last_name": {
        -        "description": "Last name, used with first_name. Example: zheng",
        -        "type": "string"
        -      },
        -      "linkedin_url": {
        -        "description": "LinkedIn profile URL of the person.",
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Full name, e.g. \"tim zheng\"; replaces first_name + last_name.",
        -        "type": "string"
        -      },
        -      "organization_name": {
        -        "description": "Name of the person's employer. Example: apollo",
        -        "type": "string"
        -      }
        -    },
        -    "type": "object"
        -  },
        -  "type": "array"
        -}
      • addedInput schema / properties / reveal_phone_number / description
        Added value: +"Set to true if you want to enrich the data of all matched people with all available phone numbers, including mobile phone numbers. This potentially consumes credits as part of your Apollo pricing plan . The default value is false. If this parameter is set to true, you must enter a webhook URL for the webhook_url parameter. Apollo will asynchronously verify phone numbers for you, then send a JSON response that includes only details about the phone numbers to the webhook URL you provide. It can take several minutes for the phone numbers to be delivered."
      • addedInput schema / properties / run_waterfall_email / description
        Added value: +"Set to true to enable email waterfall enrichment"
      • addedInput schema / properties / run_waterfall_phone / description
        Added value: +"Set to true to enable phone waterfall enrichment"
      • addedInput schema / properties / webhook_url / description
        Added value: +"If you set the reveal_phone_number parameter to true, this parameter becomes mandatory. Otherwise, do not use this parameter. Enter the webhook URL that specifies where Apollo should send a JSON response that includes the phone number you requested. Apollo suggests testing this flow to ensure you receive the separate response with the phone number. If phone numbers are not revealed delivered to the webhook URL, try applying UTF-8 encoding to the webhook URL. Example: https://webhook.site/cc4cf44e-e047-4774-8dac-473d28474e40; https%3A%2F%2Fwebhook.site%2Fcc4cf44e-e047-4774-8dac-473d28474e40"
      • changedInput schema / required
        Previous value: -[
        -  "details"
        -]New value: +[
        +  "body"
        +]
    • Changedpost_apollo_people_match7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / body
        Added value: +{
        +  "anyOf": [
        +    {
        +      "properties": {
        +        "first_name": {
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "first_name"
        +      ]
        +    },
        +    {
        +      "properties": {
        +        "last_name": {
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "last_name"
        +      ]
        +    },
        +    {
        +      "properties": {
        +        "name": {
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "name"
        +      ]
        +    },
        +    {
        +      "properties": {
        +        "email": {
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "email"
        +      ]
        +    },
        +    {
        +      "properties": {
        +        "hashed_email": {
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "hashed_email"
        +      ]
        +    },
        +    {
        +      "properties": {
        +        "organization_name": {
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "organization_name"
        +      ]
        +    },
        +    {
        +      "properties": {
        +        "domain": {
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "domain"
        +      ]
        +    },
        +    {
        +      "properties": {
        +        "id": {
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "id"
        +      ]
        +    },
        +    {
        +      "properties": {
        +        "linkedin_url": {
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "linkedin_url"
        +      ]
        +    }
        +  ],
        +  "description": "Identify one person. Give at least one identifier; the more you supply, the likelier the match.",
        +  "minProperties": 1,
        +  "properties": {
        +    "domain": {
        +      "description": "The domain name for the person's employer. This can be the current employer or a previous employer. Do not include www., the @ symbol, or similar. Example: apollo.io or microsoft.com",
        +      "type": "string"
        +    },
        +    "email": {
        +      "description": "The email address of the person. Example: example@email.com",
        +      "type": "string"
        +    },
        +    "first_name": {
        +      "description": "The first name of the person. This is typically used in combination with the last_name parameter. Example: tim",
        +      "type": "string"
        +    },
        +    "hashed_email": {
        +      "description": "The hashed email of the person. The email should adhere to either the MD5 or SHA-256 hash format. Example: 8d935115b9ff4489f2d1f9249503cadf (MD5) or 97817c0c49994eb500ad0a5e7e2d8aed51977b26424d508f66e4e8887746a152 (SHA-256)",
        +      "type": "string"
        +    },
        +    "id": {
        +      "description": "The Apollo ID for the person. Each person in the Apollo database is assigned a unique ID. To find IDs, call the People API Search endpoint and identify the values for person_id. Example: 587cf802f65125cad923a266",
        +      "type": "string"
        +    },
        +    "last_name": {
        +      "description": "The last name of the person. This is typically used in combination with the first_name parameter. Example: zheng",
        +      "type": "string"
        +    },
        +    "linkedin_url": {
        +      "description": "The URL for the person's LinkedIn profile. Example: http://www.linkedin.com/in/tim-zheng-677ba010",
        +      "type": "string"
        +    },
        +    "name": {
        +      "description": "The full name of the person. This will typically be a first name and last name separated by a space. If you use this parameter, you do not need to use the first_name and last_name parameters. Example: tim zheng",
        +      "type": "string"
        +    },
        +    "organization_name": {
        +      "description": "The name of the person's employer. This can be the current employer or a previous employer. Example: apollo",
        +      "type": "string"
        +    },
        +    "reveal_personal_emails": {
        +      "description": "Set to true if you want to enrich the person's data with personal emails. This potentially consumes credits as part of your Apollo pricing plan . The default value is false. If a person resides in a GDPR -compliant region, Apollo will not reveal their personal email.",
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
      • addedInput schema / properties / reveal_phone_number / description
        Added value: +"Set to true if you want to enrich the person's data with all available phone numbers, including mobile phone numbers. This potentially consumes credits as part of your Apollo pricing plan . The default value is false. If this parameter is set to true, you must enter a webhook URL for the webhook_url parameter. Apollo will asynchronously verify phone numbers for you, then send a JSON response that includes only details about the person's phone numbers to the webhook URL you provide. It can take several minutes for the phone numbers to be delivered."
      • addedInput schema / properties / run_waterfall_email / description
        Added value: +"Set to true to enable email waterfall enrichment"
      • addedInput schema / properties / run_waterfall_phone / description
        Added value: +"Set to true to enable phone waterfall enrichment"
      • addedInput schema / properties / webhook_url / description
        Added value: +"If you set the reveal_phone_number parameter to true, this parameter becomes mandatory. Otherwise, do not use this parameter. Enter the webhook URL that specifies where Apollo should send a JSON response that includes the phone number you requested. Apollo suggests testing this flow to ensure you receive the separate response with the phone number. If phone numbers are not revealed delivered to the webhook URL, try applying UTF-8 encoding to the webhook URL. Example: https://webhook.site/cc4cf44e-e047-4774-8dac-473d28474e40; https%3A%2F%2Fwebhook.site%2Fcc4cf44e-e047-4774-8dac-473d28474e40"
      • changedInput schema / required
        Previous value: -[]New value: +[
        +  "body"
        +]
    • Changedpost_apollo_reports_sync_report9 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / body
        Added value: +{
        +  "properties": {
        +    "date_ranges": {
        +      "description": "The time window for the query. Provide one object with a <code>modality</code> preset. For a custom date range, set <code>modality</code> to <code>custom_range</code> and add a <code>smart_datetime_range</code> key in <code>filters</code> with <code>{\"min\": \"YYYY-MM-DD\", \"max\": \"YYYY-MM-DD\"}</code>.",
        +      "items": {
        +        "properties": {
        +          "modality": {
        +            "description": "Date range preset. Valid values: <code>today</code>, <code>yesterday</code>, <code>current_week</code>, <code>current_month</code>, <code>current_quarter</code>, <code>current_year</code>, <code>last_7_days</code>, <code>last_2_weeks</code>, <code>last_30_days</code>, <code>last_3_months</code>, <code>last_6_months</code>, <code>last_12_months</code>, <code>last_4_quarters</code>, <code>last_2_years</code>, <code>previous_week</code>, <code>previous_month</code>, <code>previous_quarter</code>, <code>previous_year</code>, <code>all_time</code>, <code>custom_range</code> (requires <code>smart_datetime_range</code> in <code>filters</code>).",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "modality"
        +        ],
        +        "type": "object"
        +      },
        +      "maxItems": 1,
        +      "type": "array"
        +    },
        +    "filters": {
        +      "additionalProperties": true,
        +      "description": "Key/value filter map to narrow the result set. Pass an empty object <code>{}</code> for no filters. Common filter keys are documented in the <code>properties</code> below; additional dimension-based filters may also be passed using the same key names as <code>group_by[].name</code> values. Refer to the <a href=\"https://docs.apollo.io/reference/sync-report-metrics\" target=\"_blank\">Metrics and Dimensions Reference</a> for a complete list.",
        +      "properties": {
        +        "account_stage_ids": {
        +          "description": "Filter to specific account stage IDs.",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "contact_stage_ids": {
        +          "description": "Filter to specific contact stage IDs.",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "email_account_ids": {
        +          "description": "Filter to specific sender mailbox IDs.",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "emailer_campaign_ids": {
        +          "description": "Filter to specific sequence IDs.",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "opportunity_stage_ids": {
        +          "description": "Filter to specific opportunity stage IDs.",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "smart_datetime_range": {
        +          "description": "Required when <code>date_ranges[].modality</code> is <code>custom_range</code>. Specifies the exact date window as ISO 8601 date strings.",
        +          "properties": {
        +            "max": {
        +              "description": "End date (inclusive). Format: <code>YYYY-MM-DD</code>. <br><br>Example: <code>2024-03-31</code>",
        +              "type": "string"
        +            },
        +            "min": {
        +              "description": "Start date (inclusive). Format: <code>YYYY-MM-DD</code>. <br><br>Example: <code>2024-01-01</code>",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "min",
        +            "max"
        +          ],
        +          "type": "object"
        +        },
        +        "smart_subteam_id": {
        +          "description": "Filter to specific sub-team IDs.",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "smart_user_id": {
        +          "description": "Filter to specific team member IDs. Use <code>\"current\"</code> for the authenticated user. <br><br>Example: <code>[\"current\"]</code>",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "group_by": {
        +      "description": "The dimension to group results by (row dimension). Pass one object to break results down by that dimension. Pass an empty array <code>[]</code> for flat totals with no grouping. <br><br>Only one entry is supported. Refer to the <a href=\"https://docs.apollo.io/reference/sync-report-metrics\" target=\"_blank\">Metrics and Dimensions Reference</a> for valid dimension names.",
        +      "items": {
        +        "properties": {
        +          "limit": {
        +            "description": "Maximum number of dimension values to return.",
        +            "type": "integer"
        +          },
        +          "name": {
        +            "description": "The dimension name. <br><br>Example: <code>smart_user_id</code>",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "name"
        +        ],
        +        "type": "object"
        +      },
        +      "maxItems": 1,
        +      "type": "array"
        +    },
        +    "group_by_totals_selected": {
        +      "description": "When <code>true</code>, the response includes an aggregated totals row in addition to the per-dimension-value rows.",
        +      "type": "boolean"
        +    },
        +    "metrics": {
        +      "description": "The metrics to query. Each object specifies which metric to measure and which date and user columns the engine should use for that metric. The <code>smart_datetime_reference</code> and <code>smart_user_id_reference</code> values are metric-specific — using the wrong values will return no data. Refer to the <a href=\"https://docs.apollo.io/reference/sync-report-metrics\" target=\"_blank\">Metrics and Dimensions Reference</a> for valid metric names and the correct reference fields for each. <br><br>Pass an empty array <code>[]</code> to return a response with no metric columns.",
        +      "items": {
        +        "properties": {
        +          "display_name": {
        +            "description": "Optional label override for this metric's column in the response.",
        +            "type": "string"
        +          },
        +          "smart_datetime_reference": {
        +            "description": "The date column name to use for this metric time range. Valid values depend on the metric. See the smart reference field values table for supported values by metric type. Unsupported values may cause the related date or user filter not to apply. <br><br>Example: <code>activity_datetime</code>",
        +            "type": "string"
        +          },
        +          "smart_user_id_reference": {
        +            "description": "The user column name that filters per user. Many metrics use <code>user_id</code>. See the smart reference field values table for supported values by metric family. Unsupported values may cause the related date or user filter not to apply. <br><br>Example: <code>user_id</code>",
        +            "type": "string"
        +          },
        +          "value": {
        +            "description": "The metric identifier. For built-in metrics, use the metric name (e.g. <code>num_emails_sent</code>). For team-defined custom metrics, use the format <code>custom_metric_{id}</code> where <code>{id}</code> is the custom metric's id.",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "value",
        +          "smart_datetime_reference",
        +          "smart_user_id_reference"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "min_ratio_denominator": {
        +      "default": 0,
        +      "description": "Minimum denominator threshold for ratio metrics. Rows where the denominator falls below this value are excluded from ratio calculations.",
        +      "type": "integer"
        +    },
        +    "pivot_group_by": {
        +      "description": "The dimension to pivot on (column dimension). Used together with <code>group_by</code> to produce a two-dimensional cross-tab table: <code>group_by</code> defines the row dimension and <code>pivot_group_by</code> defines the column dimension. Pass an empty array <code>[]</code> for non-pivot queries. <br><br>Only one entry is supported.",
        +      "items": {
        +        "properties": {
        +          "limit": {
        +            "description": "Maximum number of pivot column values to return.",
        +            "type": "integer"
        +          },
        +          "name": {
        +            "description": "The dimension name to pivot on. <br><br>Example: <code>emailer_campaign_id</code>",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "name"
        +        ],
        +        "type": "object"
        +      },
        +      "maxItems": 1,
        +      "type": "array"
        +    },
        +    "pivot_group_by_totals_selected": {
        +      "description": "When <code>true</code>, the pivot response includes an aggregated totals column in addition to the per-pivot-value columns.",
        +      "type": "boolean"
        +    },
        +    "skip_group_by_values": {
        +      "description": "Exclude specific dimension values from the result rows. Values must match the raw <code>key</code> field returned in bucket responses for the active <code>group_by</code> dimension (e.g. a contact stage ID string, a user ID string, or a date string for datetime dimensions). Maximum 500 entries.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "maxItems": 500,
        +      "type": "array"
        +    },
        +    "sorts": {
        +      "description": "Sort order for the result rows. Only the first entry is applied. Pass an empty array <code>[]</code> to use the default order. <br><br>Sorting is supported by metric value — provide the <code>metric</code> field with the same structure as an entry in the <code>metrics</code> array. The <code>asc</code> field controls direction (<code>true</code> = ascending, <code>false</code> = descending). <br><br>Sorting by dimension value (e.g. alphabetically by user name) is not supported via the API.",
        +      "items": {
        +        "properties": {
        +          "asc": {
        +            "description": "Sort ascending (<code>true</code>) or descending (<code>false</code>).",
        +            "type": "boolean"
        +          },
        +          "metric": {
        +            "description": "Sort by a metric column. Provide the same structure as a metric entry in the <code>metrics</code> array.",
        +            "properties": {
        +              "smart_datetime_reference": {
        +                "type": "string"
        +              },
        +              "smart_user_id_reference": {
        +                "type": "string"
        +              },
        +              "value": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          }
        +        },
        +        "required": [
        +          "asc"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "metrics",
        +    "group_by",
        +    "sorts",
        +    "filters",
        +    "group_by_totals_selected",
        +    "pivot_group_by_totals_selected",
        +    "date_ranges"
        +  ],
        +  "type": "object"
        +}
      • removedInput schema / properties / date_range
        Removed value: -{
        -  "description": "Date range filter (when supported).",
        -  "type": "object"
        -}
      • removedInput schema / properties / filters
        Removed value: -{
        -  "description": "Filter specs.",
        -  "type": "string"
        -}
      • removedInput schema / properties / group_by
        Removed value: -{
        -  "description": "Dimensions to group by.",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedInput schema / properties / metrics
        Removed value: -{
        -  "description": "Metrics to compute.",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedInput schema / properties / pivot_group_by
        Removed value: -{
        -  "description": "Optional pivot dimensions.",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedInput schema / properties / sorts
        Removed value: -{
        -  "description": "Sort specs.",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • changedInput schema / required
        Previous value: -[]New value: +[
        +  "body"
        +]
    • Changedpost_apollo_tasks10 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / body
        Added value: +{
        +  "properties": {
        +    "contact_id": {
        +      "description": "The Apollo ID for the contact that you want to be on the receiving end of the action. <br><br>To find contact IDs, call the <a href=\"https://docs.apollo.io/reference/search-for-contacts\" target=\"_blank\">search for contacts endpoint</a> and identify the `id` value for the contact. <br><br>Example: `66e34b81740c50074e3d1bd4`",
        +      "type": "string"
        +    },
        +    "due_at": {
        +      "description": "The full date and time when the task will be due. <br><br>Your entry should adhere to the <a href=\"https://www.rfc-editor.org/rfc/rfc3339#section-5.6\" target=\"_blank\">ISO 8601 date-time format</a>. Apollo uses Greenwich Mean Time (GMT) by default. If you do not account for time zone differences, you could add a task due date that falls on a different day than you intended. <br><br>The value you enter can either adhere to GMT, or you can adjust the time manually by specifying in hours and minutes how much you want to offset GMT.<br><br>Example: `2025-02-15T08:10:30Z`; `2025-03-25T10:15:30+05:00`",
        +      "format": "date-time",
        +      "type": "string"
        +    },
        +    "note": {
        +      "description": "Add a description for the task. This should be a human-readable message. <br><br>This parameter is not required, but it is recommended as it provides the task owner with more context on the action they need to take. <br><br>Example: `This contact expressed interest in the Sequences feature specifically. Be prepared to discuss.`",
        +      "type": "string"
        +    },
        +    "priority": {
        +      "default": "medium",
        +      "description": "Assign a priority to the task you are creating: <ul> <li> `high` </li> <li> `medium` </li> <li> `low` </li> </ul>",
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "The status of the task being created. For future-facing tasks, you should use the `scheduled` status. <br><br>For tasks that are already completed, you can use `completed` or `skipped`. <br><br>Example: `scheduled`",
        +      "type": "string"
        +    },
        +    "title": {
        +      "description": "A title for the task. If omitted, Apollo will display an auto-generated title based on the task type and contact name. <br><br>Example: `Follow up on demo request`",
        +      "type": "string"
        +    },
        +    "type": {
        +      "description": "Set the task to be 1 of the following task types. This enables the task owner to know the type of action they need to take. <ul> <li> `call`: Call the contact. </li> <li> `outreach_manual_email`: Email the contact. </li> <li> `linkedin_step_connect`: Send a LinkedIn invitation to connect with the contact. </li> <li> `linkedin_step_message`: Send a direct message to the contact's LinkedIn profile. </li> <li> `linkedin_step_view_profile`: View the contact's LinkedIn profile. </li> <li> `linkedin_step_interact_post`: Interact with the contact's recent LinkedIn posts. </li> <li> `action_item`: Take generic action for the contact. If you use this task type, Apollo recommends using the `note` parameter too. </li> </ul>",
        +      "type": "string"
        +    },
        +    "user_id": {
        +      "description": "The ID for the task owner within your team's Apollo account. This is the user that will take action on the contacts. <br><br>Use the <a href=\"https://docs.apollo.io/reference/get-a-list-of-users\" target=\"_blank\">get a list of users endpoint</a> to retrieve IDs for all of the users within your Apollo account. <br><br>Example: `66302798d03b9601c7934ebf`",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "user_id",
        +    "contact_id",
        +    "type",
        +    "status",
        +    "due_at"
        +  ],
        +  "type": "object"
        +}
      • removedInput schema / properties / contact_id
        Removed value: -{
        -  "description": "Contact ID.",
        -  "type": "string"
        -}
      • removedInput schema / properties / due_at
        Removed value: -{
        -  "description": "ISO 8601 due datetime.",
        -  "type": "string"
        -}
      • removedInput schema / properties / priority
        Removed value: -{
        -  "description": "Task priority (default: medium).",
        -  "type": "string"
        -}
      • removedInput schema / properties / status
        Removed value: -{
        -  "description": "Task status.",
        -  "type": "string"
        -}
      • removedInput schema / properties / title
        Removed value: -{
        -  "description": "Optional title.",
        -  "type": "string"
        -}
      • removedInput schema / properties / type
        Removed value: -{
        -  "description": "Task type.",
        -  "type": "string"
        -}
      • removedInput schema / properties / user_id
        Removed value: -{
        -  "description": "Task owner user ID.",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "user_id",
        -  "contact_id",
        -  "type",
        -  "status",
        -  "due_at"
        -]New value: +[
        +  "body"
        +]
    • Changedpost_apollo_tasks_bulk_create10 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / body
        Added value: +{
        +  "properties": {
        +    "contact_ids": {
        +      "description": "The Apollo IDs for the contacts that you want to be on the receiving end of the action. <br><br>If you add multiple contact IDs, individual tasks will be created for each of the contacts using the same task type, due date, and other details. <br><br>To find contact IDs, call the <a href=\"https://docs.apollo.io/reference/search-for-contacts\" target=\"_blank\">search for contacts endpoint</a> and identify the `id` value for the contact. <br><br>Example: `66e34b81740c50074e3d1bd4`",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "due_at": {
        +      "description": "The full date and time when the task will be due. <br><br>Your entry should adhere to the <a href=\"https://www.rfc-editor.org/rfc/rfc3339#section-5.6\" target=\"_blank\">ISO 8601 date-time format</a>. Apollo uses Greenwich Mean Time (GMT) by default. If you do not account for time zone differences, you could add a task due date that falls on a different day than you intended. <br><br>The value you enter can either adhere to GMT, or you can adjust the time manually by specifying in hours and minutes how much you want to offset GMT.<br><br>Example: `2025-02-15T08:10:30Z`; `2025-03-25T10:15:30+05:00`",
        +      "format": "date-time",
        +      "type": "string"
        +    },
        +    "note": {
        +      "description": "Add a description for the task. This should be a human-readable message. <br><br>This parameter is not required, but it is recommended as it provides the task owner with more context on the action they need to take. <br><br>Example: `This contact expressed interest in the Sequences feature specifically. Be prepared to discuss.`",
        +      "type": "string"
        +    },
        +    "priority": {
        +      "default": "medium",
        +      "description": "Assign a priority to the task you are creating: <ul> <li> `high` </li> <li> `medium` </li> <li> `low` </li> </ul>",
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "The status of the task being created. For future-facing tasks, you should use the `scheduled` status. <br><br>For tasks that are already completed, you can use `completed` or `skipped`. <br><br>Example: `scheduled`",
        +      "type": "string"
        +    },
        +    "type": {
        +      "description": "Set the task to be 1 of the following task types. This enables the task owner to know the type of action they need to take. <ul> <li> `call`: Call the contacts. </li> <li> `outreach_manual_email`: Email the contacts. </li> <li> `linkedin_step_connect`: Send a LinkedIn invitation to connect with the contacts. </li> <li> `linkedin_step_message`: Send a direct message to the contacts' LinkedIn profiles. </li> <li> `linkedin_step_view_profile`: View the contacts' LinkedIn profiles. </li> <li> `linkedin_step_interact_post`: Interact with the contacts' recent LinkedIn posts. </li> <li> `action_item`: Take generic action for the contacts. If you use this task type, Apollo recommends using the `note` parameter too. </li> </ul>",
        +      "type": "string"
        +    },
        +    "user_id": {
        +      "description": "The ID for the task owner within your team's Apollo account. This is the user that will take action on the contacts. <br><br>Use the <a href=\"https://docs.apollo.io/reference/get-a-list-of-users\" target=\"_blank\">get a list of users endpoint</a> to retrieve IDs for all of the users within your Apollo account. <br><br>Example: `66302798d03b9601c7934ebf`",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "user_id",
        +    "contact_ids",
        +    "type",
        +    "status",
        +    "due_at"
        +  ],
        +  "type": "object"
        +}
      • removedInput schema / properties / contact_ids
        Removed value: -{
        -  "description": "Contact IDs.",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedInput schema / properties / due_at
        Removed value: -{
        -  "description": "ISO 8601 due datetime.",
        -  "type": "string"
        -}
      • removedInput schema / properties / priority
        Removed value: -{
        -  "description": "Task priority (default: medium).",
        -  "type": "string"
        -}
      • removedInput schema / properties / status
        Removed value: -{
        -  "description": "Task status.",
        -  "type": "string"
        -}
      • removedInput schema / properties / title
        Removed value: -{
        -  "description": "Optional title.",
        -  "type": "string"
        -}
      • removedInput schema / properties / type
        Removed value: -{
        -  "description": "Task type.",
        -  "type": "string"
        -}
      • removedInput schema / properties / user_id
        Removed value: -{
        -  "description": "Task owner user ID.",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "user_id",
        -  "contact_ids",
        -  "type",
        -  "status",
        -  "due_at"
        -]New value: +[
        +  "body"
        +]
    • Changedpost_waveinflu_ai_search7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / body
        Added value: +{
        +  "properties": {
        +    "filters": {
        +      "description": "Optional filters applied before matching. All fields are optional.",
        +      "properties": {
        +        "creatorTypes": {
        +          "description": "Creator account types, e.g. [\"individual\", \"brand\"].",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "ethnicities": {
        +          "description": "Inferred creator ethnicities.",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "faceVisibilities": {
        +          "description": "Face-visibility classifications, e.g. [\"clear_face\", \"mixed\", \"no_face\"].",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "genders": {
        +          "description": "Inferred creator genders, e.g. [\"female\", \"male\"].",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "languages": {
        +          "description": "Creator languages, e.g. [\"en\", \"ja\", \"zh-cn\"].",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "maxFollowers": {
        +          "description": "Maximum follower / subscriber count.",
        +          "type": "number"
        +        },
        +        "maxPlayCount": {
        +          "description": "Maximum play / view count, measured by `playCountMetric`.",
        +          "type": "number"
        +        },
        +        "minFollowers": {
        +          "description": "Minimum follower / subscriber count.",
        +          "type": "number"
        +        },
        +        "minPlayCount": {
        +          "description": "Minimum play / view count, measured by `playCountMetric`.",
        +          "type": "number"
        +        },
        +        "playCountMetric": {
        +          "description": "Whether `minPlayCount` / `maxPlayCount` are compared against the median or the average play count.",
        +          "enum": [
        +            "median",
        +            "average"
        +          ],
        +          "type": "string"
        +        },
        +        "regions": {
        +          "description": "Creator regions (ISO country codes), e.g. [\"US\", \"GB\", \"JP\"].",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "workspaceDeduplicationEnabled": {
        +          "description": "When true, creators already saved in your workspace are excluded from the results.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "limit": {
        +      "default": 25,
        +      "description": "Maximum number of creators to return. Default 25, range 1–100. Caps the billed count.",
        +      "example": 10,
        +      "maximum": 100,
        +      "minimum": 1,
        +      "type": "integer"
        +    },
        +    "platform": {
        +      "default": "youtube",
        +      "description": "Target platform.",
        +      "enum": [
        +        "instagram",
        +        "tiktok",
        +        "youtube"
        +      ],
        +      "example": "instagram",
        +      "type": "string"
        +    },
        +    "query": {
        +      "description": "Natural-language description of the creators you are looking for.",
        +      "example": "beauty creators in the US",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "query"
        +  ],
        +  "type": "object"
        +}
      • removedInput schema / properties / filters
        Removed value: -{
        -  "description": "Optional filters applied before matching. All fields are optional.",
        -  "properties": {
        -    "creatorTypes": {
        -      "description": "Creator account types, e.g. [\"individual\", \"brand\"].",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "ethnicities": {
        -      "description": "Inferred creator ethnicities.",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "faceVisibilities": {
        -      "description": "Face-visibility classifications, e.g. [\"clear_face\", \"mixed\", \"no_face\"].",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "genders": {
        -      "description": "Inferred creator genders, e.g. [\"female\", \"male\"].",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "languages": {
        -      "description": "Creator languages, e.g. [\"en\", \"ja\", \"zh-cn\"].",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "maxFollowers": {
        -      "description": "Maximum follower / subscriber count.",
        -      "type": "number"
        -    },
        -    "maxPlayCount": {
        -      "description": "Maximum play / view count, measured by `playCountMetric`.",
        -      "type": "number"
        -    },
        -    "minFollowers": {
        -      "description": "Minimum follower / subscriber count.",
        -      "type": "number"
        -    },
        -    "minPlayCount": {
        -      "description": "Minimum play / view count, measured by `playCountMetric`.",
        -      "type": "number"
        -    },
        -    "playCountMetric": {
        -      "description": "Whether `minPlayCount` / `maxPlayCount` are compared against the median or the average play count.",
        -      "enum": [
        -        "median",
        -        "average"
        -      ],
        -      "type": "string"
        -    },
        -    "regions": {
        -      "description": "Creator regions (ISO country codes), e.g. [\"US\", \"GB\", \"JP\"].",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "workspaceDeduplicationEnabled": {
        -      "description": "When true, creators already saved in your workspace are excluded from the results.",
        -      "type": "boolean"
        -    }
        -  },
        -  "type": "object"
        -}
      • removedInput schema / properties / limit
        Removed value: -{
        -  "default": 25,
        -  "maximum": 100,
        -  "minimum": 1,
        -  "type": "integer"
        -}
      • removedInput schema / properties / platform
        Removed value: -{
        -  "default": "youtube",
        -  "enum": [
        -    "instagram",
        -    "tiktok",
        -    "youtube"
        -  ],
        -  "type": "string"
        -}
      • removedInput schema / properties / query
        Removed value: -{
        -  "description": "Natural-language description of the creators you are looking for.",
        -  "example": "beauty creators in the US",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "query"
        -]New value: +[
        +  "body"
        +]
    • Changedpost_waveinflu_email_lookup4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / body
        Added value: +{
        +  "properties": {
        +    "profile_url": {
        +      "description": "Instagram, TikTok, or YouTube creator profile URL.",
        +      "example": "https://www.instagram.com/onkimia/",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
      • removedInput schema / properties / profile_url
        Removed value: -{
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[]New value: +[
        +  "body"
        +]
    • Changedpost_waveinflu_similar_creators7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / body
        Added value: +{
        +  "properties": {
        +    "filters": {
        +      "description": "Optional filters applied before matching. All fields are optional.",
        +      "properties": {
        +        "creatorTypes": {
        +          "description": "Creator account types, e.g. [\"individual\", \"brand\"].",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "ethnicities": {
        +          "description": "Inferred creator ethnicities.",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "faceVisibilities": {
        +          "description": "Face-visibility classifications, e.g. [\"clear_face\", \"mixed\", \"no_face\"].",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "genders": {
        +          "description": "Inferred creator genders, e.g. [\"female\", \"male\"].",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "languages": {
        +          "description": "Creator languages, e.g. [\"en\", \"ja\", \"zh-cn\"].",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "maxFollowers": {
        +          "description": "Maximum follower / subscriber count.",
        +          "type": "number"
        +        },
        +        "maxPlayCount": {
        +          "description": "Maximum play / view count, measured by `playCountMetric`.",
        +          "type": "number"
        +        },
        +        "minFollowers": {
        +          "description": "Minimum follower / subscriber count.",
        +          "type": "number"
        +        },
        +        "minPlayCount": {
        +          "description": "Minimum play / view count, measured by `playCountMetric`.",
        +          "type": "number"
        +        },
        +        "playCountMetric": {
        +          "description": "Whether `minPlayCount` / `maxPlayCount` are compared against the median or the average play count.",
        +          "enum": [
        +            "median",
        +            "average"
        +          ],
        +          "type": "string"
        +        },
        +        "regions": {
        +          "description": "Creator regions (ISO country codes), e.g. [\"US\", \"GB\", \"JP\"].",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "workspaceDeduplicationEnabled": {
        +          "description": "When true, creators already saved in your workspace are excluded from the results.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "limit": {
        +      "default": 25,
        +      "description": "Maximum number of creators to return. Default 25, range 1–100. Caps the billed count.",
        +      "example": 10,
        +      "maximum": 100,
        +      "minimum": 1,
        +      "type": "integer"
        +    },
        +    "platform": {
        +      "default": "youtube",
        +      "description": "Target platform.",
        +      "enum": [
        +        "instagram",
        +        "tiktok",
        +        "youtube"
        +      ],
        +      "example": "instagram",
        +      "type": "string"
        +    },
        +    "target_account": {
        +      "description": "Seed account: a creator handle (with or without @) or profile URL to find similar creators for.",
        +      "example": "@onkimia",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "target_account"
        +  ],
        +  "type": "object"
        +}
      • removedInput schema / properties / filters
        Removed value: -{
        -  "description": "Optional filters applied before matching. All fields are optional.",
        -  "properties": {
        -    "creatorTypes": {
        -      "description": "Creator account types, e.g. [\"individual\", \"brand\"].",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "ethnicities": {
        -      "description": "Inferred creator ethnicities.",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "faceVisibilities": {
        -      "description": "Face-visibility classifications, e.g. [\"clear_face\", \"mixed\", \"no_face\"].",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "genders": {
        -      "description": "Inferred creator genders, e.g. [\"female\", \"male\"].",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "languages": {
        -      "description": "Creator languages, e.g. [\"en\", \"ja\", \"zh-cn\"].",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "maxFollowers": {
        -      "description": "Maximum follower / subscriber count.",
        -      "type": "number"
        -    },
        -    "maxPlayCount": {
        -      "description": "Maximum play / view count, measured by `playCountMetric`.",
        -      "type": "number"
        -    },
        -    "minFollowers": {
        -      "description": "Minimum follower / subscriber count.",
        -      "type": "number"
        -    },
        -    "minPlayCount": {
        -      "description": "Minimum play / view count, measured by `playCountMetric`.",
        -      "type": "number"
        -    },
        -    "playCountMetric": {
        -      "description": "Whether `minPlayCount` / `maxPlayCount` are compared against the median or the average play count.",
        -      "enum": [
        -        "median",
        -        "average"
        -      ],
        -      "type": "string"
        -    },
        -    "regions": {
        -      "description": "Creator regions (ISO country codes), e.g. [\"US\", \"GB\", \"JP\"].",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "workspaceDeduplicationEnabled": {
        -      "description": "When true, creators already saved in your workspace are excluded from the results.",
        -      "type": "boolean"
        -    }
        -  },
        -  "type": "object"
        -}
      • removedInput schema / properties / limit
        Removed value: -{
        -  "default": 25,
        -  "maximum": 100,
        -  "minimum": 1,
        -  "type": "integer"
        -}
      • removedInput schema / properties / platform
        Removed value: -{
        -  "default": "youtube",
        -  "enum": [
        -    "instagram",
        -    "tiktok",
        -    "youtube"
        -  ],
        -  "type": "string"
        -}
      • removedInput schema / properties / target_account
        Removed value: -{
        -  "description": "Seed account: a creator handle (with or without @) or profile URL to find similar creators for.",
        -  "example": "@onkimia",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "target_account"
        -]New value: +[
        +  "body"
        +]
  2. 40 tool updates
    • Addedbatch_get_schema
    • Addedbatch_quote
    • Changedbatch_use18 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / properties / calls / description
        Removed value: -"Up to 20 items of {call_id, operation_id, arguments}; steps at the same execution_level of a plan go in one batch"
      • addedInput schema / properties / calls / items / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • changedInput schema / properties / calls / items / additionalProperties
        Previous value: -trueNew value: +false
      • addedInput schema / properties / calls / items / properties
        Added value: +{
        +  "arguments": {
        +    "additionalProperties": true,
        +    "description": "Strictly schema-compliant arguments using the exact field names and types from this tool's arguments_schema.",
        +    "type": "object"
        +  },
        +  "call_id": {
        +    "description": "Caller-chosen identifier unique within this batch.",
        +    "maxLength": 128,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "tool": {
        +    "description": "Exact tool name returned by search or batch_get_schema. Never invent a name.",
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedInput schema / properties / calls / items / required
        Added value: +[
        +  "call_id",
        +  "tool",
        +  "arguments"
        +]
      • addedInput schema / properties / calls / maxItems
        Added value: +20
      • addedInput schema / properties / calls / minItems
        Added value: +1
      • removedInput schema / properties / max_price_usd
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "number"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Per-call price cap applied to every item"
        -}
      • removedInput schema / properties / search_id / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / search_id / default
        Removed value: -null
      • changedInput schema / properties / search_id / description
        Previous value: -"search_id from the search that found these operations"New value: +"Optional search correlation identifier returned by search."
      • addedInput schema / properties / search_id / type
        Added value: +"string"
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.",
        +  "maxLength": 128,
        +  "pattern": "^[A-Za-z0-9_-]*$",
        +  "type": "string"
        +}
      • addedOutput schema / $defs
        Added value: +{
        +  "jsonValue": {
        +    "anyOf": [
        +      {
        +        "additionalProperties": {
        +          "$ref": "#/$defs/jsonValue"
        +        },
        +        "type": "object"
        +      },
        +      {
        +        "items": {
        +          "$ref": "#/$defs/jsonValue"
        +        },
        +        "type": "array"
        +      },
        +      {
        +        "type": "string"
        +      },
        +      {
        +        "type": "number"
        +      },
        +      {
        +        "type": "boolean"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "description": "JSON value returned by the upstream tool."
        +  }
        +}
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / properties
        Added value: +{
        +  "batch_id": {
        +    "type": "string"
        +  },
        +  "error_count": {
        +    "minimum": 0,
        +    "type": "integer"
        +  },
        +  "next_steps_guidance": {
        +    "description": "Deterministic next-step instructions derived from this result. Not an authorization grant.",
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "results": {
        +    "items": {
        +      "$schema": "https://json-schema.org/draft/2020-12/schema",
        +      "additionalProperties": false,
        +      "properties": {
        +        "call_id": {
        +          "type": "string"
        +        },
        +        "customer_cost_micros_usd": {
        +          "description": "Actual customer charge settled by AIsaServices, in micro-USD. Omitted when the upstream response does not report it.",
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "data": {
        +          "$ref": "#/$defs/jsonValue"
        +        },
        +        "error": {
        +          "anyOf": [
        +            {
        +              "$schema": "https://json-schema.org/draft/2020-12/schema",
        +              "additionalProperties": false,
        +              "properties": {
        +                "message": {
        +                  "type": "string"
        +                },
        +                "retryable": {
        +                  "type": "boolean"
        +                },
        +                "status": {
        +                  "type": "integer"
        +                },
        +                "type": {
        +                  "enum": [
        +                    "validation",
        +                    "authentication",
        +                    "payment",
        +                    "permission",
        +                    "rate_limit",
        +                    "upstream",
        +                    "timeout",
        +                    "internal"
        +                  ],
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "type",
        +                "status",
        +                "retryable"
        +              ],
        +              "type": "object"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "request_id": {
        +          "type": "string"
        +        },
        +        "successful": {
        +          "type": "boolean"
        +        },
        +        "tool": {
        +          "type": "string"
        +        },
        +        "upstream_status": {
        +          "description": "HTTP status returned by AIsaServices when a request was dispatched.",
        +          "type": "integer"
        +        }
        +      },
        +      "required": [
        +        "call_id",
        +        "tool",
        +        "successful",
        +        "request_id"
        +      ],
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  "session_id": {
        +    "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.",
        +    "maxLength": 128,
        +    "minLength": 1,
        +    "pattern": "^[A-Za-z0-9_-]*$",
        +    "type": "string"
        +  },
        +  "success_count": {
        +    "minimum": 0,
        +    "type": "integer"
        +  },
        +  "total_count": {
        +    "minimum": 1,
        +    "type": "integer"
        +  }
        +}
      • addedOutput schema / required
        Added value: +[
        +  "session_id",
        +  "batch_id",
        +  "total_count",
        +  "success_count",
        +  "error_count",
        +  "results",
        +  "next_steps_guidance"
        +]
    • Changedget_details13 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / properties / arguments
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "additionalProperties": true,
        -      "type": "object"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "The arguments the operation would be called with, for a price that reflects them. Keyed by operation_id for a batch, or passed flat for a single operation_id. Routes whose required parameters are validated before pricing have no price without them."
        -}
      • addedInput schema / properties / include_arguments_schema
        Added value: +{
        +  "default": true,
        +  "description": "Return the complete arguments_schema. Defaults to true.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / include_documentation / description
        Previous value: -"Include the complete native public OpenAPI document, reference closure and scoped completeness. Existing execution schemas remain unchanged."New value: +"Return the complete immutable public OpenAPI operation, referenced declarations, provenance and scoped completeness. Documentation does not change execution support."
      • addedInput schema / properties / include_response_schema
        Added value: +{
        +  "default": false,
        +  "description": "Return the complete response_schema. Defaults to false.",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / operation_id
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "One operation_id from search"
        -}
      • removedInput schema / properties / operation_ids
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Up to 20 operation_ids, for a batch"
        -}
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.",
        +  "maxLength": 128,
        +  "pattern": "^[A-Za-z0-9_-]*$",
        +  "type": "string"
        +}
      • addedInput schema / properties / tools
        Added value: +{
        +  "description": "Exact tool names returned by search whose complete contracts are needed. Never invent tool names.",
        +  "items": {
        +    "minLength": 1,
        +    "pattern": "^\\S(?:.*\\S)?$",
        +    "type": "string"
        +  },
        +  "maxItems": 20,
        +  "minItems": 1,
        +  "type": "array",
        +  "uniqueItems": true
        +}
      • removedInput schema / properties / with_quote
        Removed value: -{
        -  "default": true,
        -  "description": "Whether each operation is priced for this account before the answer. One round trip per operation; spends nothing.",
        -  "type": "boolean"
        -}
      • addedInput schema / required
        Added value: +[
        +  "tools"
        +]
      • addedOutput schema / properties
        Added value: +{
        +  "error_count": {
        +    "type": "integer"
        +  },
        +  "next_steps_guidance": {
        +    "anyOf": [
        +      {
        +        "type": "null"
        +      },
        +      {
        +        "type": "array"
        +      }
        +    ],
        +    "items": {
        +      "type": "string"
        +    }
        +  },
        +  "session_id": {
        +    "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.",
        +    "maxLength": 128,
        +    "minLength": 1,
        +    "pattern": "^[A-Za-z0-9_-]{1,128}$",
        +    "type": "string"
        +  },
        +  "success_count": {
        +    "type": "integer"
        +  },
        +  "tools": {
        +    "additionalProperties": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "arguments_schema": {
        +          "additionalProperties": true,
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "object"
        +            }
        +          ]
        +        },
        +        "canonical_operation_id": {
        +          "type": "string"
        +        },
        +        "documentation": {
        +          "additionalProperties": true,
        +          "type": "object"
        +        },
        +        "error": {
        +          "additionalProperties": false,
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "object"
        +            }
        +          ],
        +          "properties": {
        +            "code": {
        +              "type": "string"
        +            },
        +            "message": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "code",
        +            "message"
        +          ]
        +        },
        +        "execution_supported": {
        +          "description": "Whether this router can execute and quote the operation; false retains documentation and discovery only.",
        +          "type": "boolean"
        +        },
        +        "execution_unsupported_reason": {
        +          "description": "Why execution and quoting remain unavailable through this router.",
        +          "type": "string"
        +        },
        +        "idempotent": {
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "boolean"
        +            }
        +          ]
        +        },
        +        "known_pitfalls": {
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "array"
        +            }
        +          ],
        +          "items": {
        +            "type": "string"
        +          }
        +        },
        +        "read_only": {
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "boolean"
        +            }
        +          ]
        +        },
        +        "response_schema": {
        +          "additionalProperties": true,
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "object"
        +            }
        +          ]
        +        },
        +        "side_effects": {
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "array"
        +            }
        +          ],
        +          "items": {
        +            "type": "string"
        +          }
        +        },
        +        "successful": {
        +          "type": "boolean"
        +        }
        +      },
        +      "required": [
        +        "successful"
        +      ],
        +      "type": "object"
        +    },
        +    "type": "object"
        +  },
        +  "total_count": {
        +    "type": "integer"
        +  }
        +}
      • addedOutput schema / required
        Added value: +[
        +  "error_count",
        +  "next_steps_guidance",
        +  "session_id",
        +  "success_count",
        +  "tools",
        +  "total_count"
        +]
    • Changedget_similarweb_ad_networks18 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false)."
      • removedInput schema / properties / offset / description
        Removed value: -"Row offset for pagination."
      • addedInput schema / properties / offset / maximum
        Added value: +100000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / traffic_source / description
        Removed value: -"Traffic-source filter."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date",
        -  "limit"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "limit",
        +  "start_date"
        +]
    • Addedget_similarweb_apis_v1_similarweb_keyword_analysi_490801
    • Addedget_similarweb_apis_v1_similarweb_segment_analysi_6349fe
    • Addedget_similarweb_apis_v1_similarweb_segment_analysi_64e47c
    • Addedget_similarweb_apis_v1_similarweb_website_analysi_7399a9
    • Addedget_similarweb_apis_v1_similarweb_website_analysi_850464
    • Addedget_similarweb_apis_v1_similarweb_website_analysi_aa2e1f
    • Changedget_similarweb_audience_interest18 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false)."
      • removedInput schema / properties / offset / description
        Removed value: -"Row offset for pagination."
      • addedInput schema / properties / offset / maximum
        Added value: +100000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / traffic_source / description
        Removed value: -"Traffic-source filter."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date",
        -  "limit"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "limit",
        +  "start_date"
        +]
    • Changedget_similarweb_audience_overlap10 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domains / description
        Removed value: -"Two to five target domains, comma-separated (e.g. cnn.com,bbc.com)."
      • addedInput schema / properties / domains / x-aisa-delimiter
        Added value: +","
      • addedInput schema / properties / domains / x-aisa-maxItems
        Added value: +5
      • addedInput schema / properties / domains / x-aisa-minItems
        Added value: +2
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly. Default: monthly."
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • changedInput schema / required
        Previous value: -[
        -  "domains",
        -  "start_date",
        -  "end_date"
        -]New value: +[
        +  "domains",
        +  "end_date",
        +  "start_date"
        +]
    • Changedget_similarweb_deduplicated_audience11 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly. Default: monthly."
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false). Default: True."
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "start_date"
        +]
    • Changedget_similarweb_demographics12 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +2048
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / format / description
        Removed value: -"Response format. Allowed: json."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false)."
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date",
        -  "granularity"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "granularity",
        +  "start_date"
        +]
    • Changedget_similarweb_keyword_competitors19 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false)."
      • removedInput schema / properties / offset / description
        Removed value: -"Row offset for pagination."
      • addedInput schema / properties / offset / maximum
        Added value: +100000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / traffic_source / description
        Removed value: -"Traffic-source filter."
      • removedInput schema / properties / web_source / description
        Removed value: -"Web source. This endpoint accepts desktop only (the gateway rejects mobile_web and total with 400)."
      • changedInput schema / properties / web_source / enum
        Previous value: -[
        -  "desktop"
        -]New value: +[
        +  "desktop",
        +  "mobile_web",
        +  "total"
        +]
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date",
        -  "limit"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "limit",
        +  "start_date"
        +]
    • Changedget_similarweb_keywords15 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +2048
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / format / description
        Removed value: -"Response format. Allowed: json."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false)."
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date",
        -  "granularity",
        -  "limit"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "granularity",
        +  "limit",
        +  "start_date"
        +]
    • Changedget_similarweb_landing_pages18 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false)."
      • removedInput schema / properties / offset / description
        Removed value: -"Row offset for pagination."
      • addedInput schema / properties / offset / maximum
        Added value: +100000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / traffic_source / description
        Removed value: -"Traffic-source filter."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date",
        -  "limit"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "limit",
        +  "start_date"
        +]
    • Changedget_similarweb_marketing_channel_sources_legacy11 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly. Default: monthly."
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false). Default: True."
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "start_date"
        +]
    • Changedget_similarweb_popular_pages18 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false)."
      • removedInput schema / properties / offset / description
        Removed value: -"Row offset for pagination."
      • addedInput schema / properties / offset / maximum
        Added value: +100000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / traffic_source / description
        Removed value: -"Traffic-source filter."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date",
        -  "limit"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "limit",
        +  "start_date"
        +]
    • Changedget_similarweb_ppc_spend11 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly. Default: monthly."
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false). Default: True."
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "start_date"
        +]
    • Changedget_similarweb_ranking11 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly. Default: monthly."
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false). Default: True."
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "start_date"
        +]
    • Changedget_similarweb_referrals18 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false)."
      • removedInput schema / properties / offset / description
        Removed value: -"Row offset for pagination."
      • addedInput schema / properties / offset / maximum
        Added value: +100000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / traffic_source / description
        Removed value: -"Traffic-source filter."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date",
        -  "limit"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "limit",
        +  "start_date"
        +]
    • Changedget_similarweb_serp_players_aggregated14 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / keyword
        Removed value: -{
        -  "description": "Target keyword.",
        -  "type": "string"
        -}
      • addedInput schema / properties / keywords
        Added value: +{
        +  "type": "string",
        +  "x-aisa-delimiter": ",",
        +  "x-aisa-maxItems": 1,
        +  "x-aisa-minItems": 1
        +}
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / offset / description
        Removed value: -"Row offset for pagination."
      • addedInput schema / properties / offset / maximum
        Added value: +100000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • changedInput schema / required
        Previous value: -[
        -  "keyword",
        -  "start_date",
        -  "end_date",
        -  "limit"
        -]New value: +[
        +  "end_date",
        +  "keywords",
        +  "limit",
        +  "start_date"
        +]
    • Changedget_similarweb_serp_players_timeseries14 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / keyword
        Removed value: -{
        -  "description": "Target keyword.",
        -  "type": "string"
        -}
      • addedInput schema / properties / keywords
        Added value: +{
        +  "type": "string",
        +  "x-aisa-delimiter": ",",
        +  "x-aisa-maxItems": 1,
        +  "x-aisa-minItems": 1
        +}
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / offset / description
        Removed value: -"Row offset for pagination."
      • addedInput schema / properties / offset / maximum
        Added value: +100000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • changedInput schema / required
        Previous value: -[
        -  "keyword",
        -  "start_date",
        -  "end_date",
        -  "limit"
        -]New value: +[
        +  "end_date",
        +  "keywords",
        +  "limit",
        +  "start_date"
        +]
    • Changedget_similarweb_similar_sites18 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM. Together with start_date must span exactly 3 consecutive months, and must be the most recent supported month (the window rolls forward monthly; see the endpoint description)."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false)."
      • removedInput schema / properties / offset / description
        Removed value: -"Row offset for pagination."
      • addedInput schema / properties / offset / maximum
        Added value: +100000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM. Must be exactly 2 months before end_date: the window has to span exactly 3 consecutive months within SimilarWeb's latest supported range (see the endpoint description)."
      • removedInput schema / properties / traffic_source / description
        Removed value: -"Traffic-source filter."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date",
        -  "limit"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "limit",
        +  "start_date"
        +]
    • Changedget_similarweb_subdomains18 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false)."
      • removedInput schema / properties / offset / description
        Removed value: -"Row offset for pagination."
      • addedInput schema / properties / offset / maximum
        Added value: +100000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / traffic_source / description
        Removed value: -"Traffic-source filter."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date",
        -  "limit"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "limit",
        +  "start_date"
        +]
    • Changedget_similarweb_technologies15 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +2048
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / format / description
        Removed value: -"Response format. Allowed: json."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false)."
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date",
        -  "granularity",
        -  "limit"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "granularity",
        +  "limit",
        +  "start_date"
        +]
    • Changedget_similarweb_top_sites_ranking11 fields changed
      • removedInput schema / properties / category / description
        Removed value: -"Industry category, e.g. Finance."
      • addedInput schema / properties / category / maxLength
        Added value: +191
      • addedInput schema / properties / category / minLength
        Added value: +1
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / offset / description
        Removed value: -"Row offset for pagination."
      • addedInput schema / properties / offset / maximum
        Added value: +100000
      • addedInput schema / properties / offset / minimum
        Added value: +0
    • Changedget_similarweb_traffic_engagement16 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly. Default: monthly."
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false). Default: True."
      • removedInput schema / properties / metrics / description
        Removed value: -"Comma-separated metrics, e.g. visits,pages_per_visit."
      • addedInput schema / properties / metrics / x-aisa-delimiter
        Added value: +","
      • addedInput schema / properties / metrics / x-aisa-maxItems
        Added value: +8
      • addedInput schema / properties / metrics / x-aisa-minItems
        Added value: +1
      • removedInput schema / properties / mtd / description
        Removed value: -"Month-to-date flag (true/false)."
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date",
        -  "metrics"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "metrics",
        +  "start_date"
        +]
    • Changedget_similarweb_website_top_geographies2 fields changed
      • changedInput schema / properties / domain / description
        Previous value: -"Target domain, e.g. example.com."New value: +"Bare website hostname without scheme, path, port, or credentials."
      • addedInput schema / properties / month
        Added value: +{
        +  "description": "Complete month in YYYY-MM.",
        +  "type": "string",
        +  "x-aisa-default-policy": "previous_complete_utc_month"
        +}
    • Changedget_similarweb_website_traffic_snapshot4 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • changedInput schema / properties / domain / description
        Previous value: -"Target domain, e.g. example.com."New value: +"Bare website hostname without scheme, path, port, or credentials."
      • addedInput schema / properties / month
        Added value: +{
        +  "description": "Complete month in YYYY-MM.",
        +  "type": "string",
        +  "x-aisa-default-policy": "previous_complete_utc_month"
        +}
    • Changedget_similarweb_website_traffic_trend6 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • changedInput schema / properties / domain / description
        Previous value: -"Target domain, e.g. example.com."New value: +"Bare website hostname without scheme, path, port, or credentials."
      • addedInput schema / properties / end_date
        Added value: +{
        +  "description": "Inclusive last complete UTC month in YYYY-MM.",
        +  "type": "string"
        +}
      • addedInput schema / properties / metrics
        Added value: +{
        +  "default": "visits",
        +  "description": "One to four supported Traffic & Engagement metrics.",
        +  "type": "string",
        +  "x-aisa-delimiter": ",",
        +  "x-aisa-item-enum": [
        +    "average_visit_duration",
        +    "bounce_rate",
        +    "new_users",
        +    "page_views",
        +    "pages_per_visit",
        +    "returning_users",
        +    "unique_visitors",
        +    "visits"
        +  ],
        +  "x-aisa-maxItems": 4
        +}
      • addedInput schema / properties / start_date
        Added value: +{
        +  "description": "Inclusive first month in YYYY-MM; provide together with end_date.",
        +  "type": "string"
        +}
    • Changedpost_apollo_people_bulk_match11 fields changed
      • removedInput schema / properties / reveal_personal_emails
        Removed value: -{
        -  "description": "Set to true if you want to enrich all matched people with personal emails. This potentially consumes credits as part of your Apollo pricing plan . The default value is false. If a person resides in a GDPR -compliant region, Apollo will not reveal their personal email.",
        -  "type": "boolean"
        -}
      • addedInput schema / properties / reveal_phone_number / default
        Added value: +false
      • removedInput schema / properties / reveal_phone_number / description
        Removed value: -"Set to true if you want to enrich the data of all matched people with all available phone numbers, including mobile phone numbers. This potentially consumes credits as part of your Apollo pricing plan . The default value is false. If this parameter is set to true, you must enter a webhook URL for the webhook_url parameter. Apollo will asynchronously verify phone numbers for you, then send a JSON response that includes only details about the phone numbers to the webhook URL you provide. It can take several minutes for the phone numbers to be delivered."
      • addedInput schema / properties / run_waterfall_email / default
        Added value: +false
      • removedInput schema / properties / run_waterfall_email / description
        Removed value: -"Set to true to enable email waterfall enrichment"
      • addedInput schema / properties / run_waterfall_phone / default
        Added value: +false
      • removedInput schema / properties / run_waterfall_phone / description
        Removed value: -"Set to true to enable phone waterfall enrichment"
      • removedInput schema / properties / webhook_url / description
        Removed value: -"If you set the reveal_phone_number parameter to true, this parameter becomes mandatory. Otherwise, do not use this parameter. Enter the webhook URL that specifies where Apollo should send a JSON response that includes the phone number you requested. Apollo suggests testing this flow to ensure you receive the separate response with the phone number. If phone numbers are not revealed delivered to the webhook URL, try applying UTF-8 encoding to the webhook URL. Example: https://webhook.site/cc4cf44e-e047-4774-8dac-473d28474e40; https%3A%2F%2Fwebhook.site%2Fcc4cf44e-e047-4774-8dac-473d28474e40"
      • addedInput schema / properties / webhook_url / format
        Added value: +"https_url"
      • addedInput schema / properties / webhook_url / maxLength
        Added value: +2048
      • addedInput schema / properties / webhook_url / minLength
        Added value: +1
    • Changedpost_apollo_people_match20 fields changed
      • removedInput schema / properties / domain
        Removed value: -{
        -  "description": "The domain name for the person's employer. This can be the current employer or a previous employer. Do not include www., the @ symbol, or similar. Example: apollo.io or microsoft.com",
        -  "type": "string"
        -}
      • removedInput schema / properties / email
        Removed value: -{
        -  "description": "The email address of the person. Example: example@email.com",
        -  "type": "string"
        -}
      • removedInput schema / properties / first_name
        Removed value: -{
        -  "description": "The first name of the person. This is typically used in combination with the last_name parameter. Example: tim",
        -  "type": "string"
        -}
      • removedInput schema / properties / hashed_email
        Removed value: -{
        -  "description": "The hashed email of the person. The email should adhere to either the MD5 or SHA-256 hash format. Example: 8d935115b9ff4489f2d1f9249503cadf (MD5) or 97817c0c49994eb500ad0a5e7e2d8aed51977b26424d508f66e4e8887746a152 (SHA-256)",
        -  "type": "string"
        -}
      • removedInput schema / properties / id
        Removed value: -{
        -  "description": "The Apollo ID for the person. Each person in the Apollo database is assigned a unique ID. To find IDs, call the People API Search endpoint and identify the values for person_id. Example: 587cf802f65125cad923a266",
        -  "type": "string"
        -}
      • removedInput schema / properties / last_name
        Removed value: -{
        -  "description": "The last name of the person. This is typically used in combination with the first_name parameter. Example: zheng",
        -  "type": "string"
        -}
      • removedInput schema / properties / linkedin_url
        Removed value: -{
        -  "description": "The URL for the person's LinkedIn profile. Example: http://www.linkedin.com/in/tim-zheng-677ba010",
        -  "type": "string"
        -}
      • removedInput schema / properties / name
        Removed value: -{
        -  "description": "The full name of the person. This will typically be a first name and last name separated by a space. If you use this parameter, you do not need to use the first_name and last_name parameters. Example: tim zheng",
        -  "type": "string"
        -}
      • removedInput schema / properties / organization_name
        Removed value: -{
        -  "description": "The name of the person's employer. This can be the current employer or a previous employer. Example: apollo",
        -  "type": "string"
        -}
      • removedInput schema / properties / reveal_personal_emails
        Removed value: -{
        -  "description": "Set to true if you want to enrich the person's data with personal emails. This potentially consumes credits as part of your Apollo pricing plan . The default value is false. If a person resides in a GDPR -compliant region, Apollo will not reveal their personal email.",
        -  "type": "boolean"
        -}
      • addedInput schema / properties / reveal_phone_number / default
        Added value: +false
      • removedInput schema / properties / reveal_phone_number / description
        Removed value: -"Set to true if you want to enrich the person's data with all available phone numbers, including mobile phone numbers. This potentially consumes credits as part of your Apollo pricing plan . The default value is false. If this parameter is set to true, you must enter a webhook URL for the webhook_url parameter. Apollo will asynchronously verify phone numbers for you, then send a JSON response that includes only details about the person's phone numbers to the webhook URL you provide. It can take several minutes for the phone numbers to be delivered."
      • addedInput schema / properties / run_waterfall_email / default
        Added value: +false
      • removedInput schema / properties / run_waterfall_email / description
        Removed value: -"Set to true to enable email waterfall enrichment"
      • addedInput schema / properties / run_waterfall_phone / default
        Added value: +false
      • removedInput schema / properties / run_waterfall_phone / description
        Removed value: -"Set to true to enable phone waterfall enrichment"
      • removedInput schema / properties / webhook_url / description
        Removed value: -"If you set the reveal_phone_number parameter to true, this parameter becomes mandatory. Otherwise, do not use this parameter. Enter the webhook URL that specifies where Apollo should send a JSON response that includes the phone number you requested. Apollo suggests testing this flow to ensure you receive the separate response with the phone number. If phone numbers are not revealed delivered to the webhook URL, try applying UTF-8 encoding to the webhook URL. Example: https://webhook.site/cc4cf44e-e047-4774-8dac-473d28474e40; https%3A%2F%2Fwebhook.site%2Fcc4cf44e-e047-4774-8dac-473d28474e40"
      • addedInput schema / properties / webhook_url / format
        Added value: +"https_url"
      • addedInput schema / properties / webhook_url / maxLength
        Added value: +2048
      • addedInput schema / properties / webhook_url / minLength
        Added value: +1
    • Changedpost_waveinflu_ai_search8 fields changed
      • changedInput schema / properties / limit / default
        Previous value: -40New value: +25
      • removedInput schema / properties / limit / description
        Removed value: -"Maximum number of creators to return. Default 40, range 1–100. Caps the billed count."
      • removedInput schema / properties / limit / example
        Removed value: -10
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / platform / default
        Added value: +"youtube"
      • removedInput schema / properties / platform / description
        Removed value: -"Target platform."
      • removedInput schema / properties / platform / example
        Removed value: -"instagram"
      • changedInput schema / required
        Previous value: -[
        -  "platform",
        -  "query"
        -]New value: +[
        +  "query"
        +]
    • Changedpost_waveinflu_email_lookup3 fields changed
      • removedInput schema / properties / profile_url / description
        Removed value: -"Instagram, TikTok, or YouTube creator profile URL."
      • removedInput schema / properties / profile_url / example
        Removed value: -"https://www.instagram.com/onkimia/"
      • changedInput schema / required
        Previous value: -[
        -  "profile_url"
        -]New value: +[]
    • Changedpost_waveinflu_similar_creators8 fields changed
      • changedInput schema / properties / limit / default
        Previous value: -40New value: +25
      • removedInput schema / properties / limit / description
        Removed value: -"Maximum number of creators to return. Default 40, range 1–100. Caps the billed count."
      • removedInput schema / properties / limit / example
        Removed value: -10
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / platform / default
        Added value: +"youtube"
      • removedInput schema / properties / platform / description
        Removed value: -"Target platform."
      • removedInput schema / properties / platform / example
        Removed value: -"instagram"
      • changedInput schema / required
        Previous value: -[
        -  "platform",
        -  "target_account"
        -]New value: +[
        +  "target_account"
        +]
    • Changedsearch17 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / properties / category / anyOf
        Removed value: -[
        -  {
        -    "enum": [
        -      "seo",
        -      "finance",
        -      "social",
        -      "search",
        -      "sales",
        -      "mail"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / category / default
        Removed value: -null
      • changedInput schema / properties / category / description
        Previous value: -"Restrict to one category (seo, finance, social, search, sales, mail). Omit to search everything."New value: +"Restrict retrieval to one category. Omit to search everything. (AIsa-only: tool-router has no equivalent.)"
      • addedInput schema / properties / category / enum
        Added value: +[
        +  "seo",
        +  "finance",
        +  "social",
        +  "search",
        +  "sales",
        +  "mail"
        +]
      • addedInput schema / properties / category / type
        Added value: +"string"
      • addedInput schema / properties / known_fields
        Added value: +{
        +  "additionalProperties": true,
        +  "default": {},
        +  "description": "Known values such as ticker, URL, provider, or identifier that improve retrieval.",
        +  "type": "object"
        +}
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum candidates, 1-10"New value: +"Maximum number of additional direct tool candidates."
      • addedInput schema / properties / limit / maximum
        Added value: +20
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • addedInput schema / properties / provider_filters
        Added value: +{
        +  "default": [],
        +  "description": "Optional exact catalog provider keys used to narrow retrieval (for example similarweb). Do not use display brands. Omit this field if the exact key is unknown.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "maxItems": 50,
        +  "type": "array",
        +  "uniqueItems": true
        +}
      • changedInput schema / properties / query / description
        Previous value: -"What you need, in plain language, e.g. 'backlinks of a domain', 'recent tweets by a user', 'insider trades for AAPL'. English works best."New value: +"Natural-language capability or task to discover."
      • addedInput schema / properties / query / maxLength
        Added value: +2000
      • addedInput schema / properties / query / minLength
        Added value: +1
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.",
        +  "maxLength": 128,
        +  "pattern": "^[A-Za-z0-9_-]*$",
        +  "type": "string"
        +}
      • addedOutput schema / properties
        Added value: +{
        +  "next_steps_guidance": {
        +    "anyOf": [
        +      {
        +        "type": "null"
        +      },
        +      {
        +        "type": "array"
        +      }
        +    ],
        +    "items": {
        +      "type": "string"
        +    }
        +  },
        +  "plan": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "type": "null"
        +      },
        +      {
        +        "type": "object"
        +      }
        +    ],
        +    "properties": {
        +      "canonical_use_case": {
        +        "type": "string"
        +      },
        +      "description": {
        +        "type": "string"
        +      },
        +      "known_pitfalls": {
        +        "anyOf": [
        +          {
        +            "type": "null"
        +          },
        +          {
        +            "type": "array"
        +          }
        +        ],
        +        "items": {
        +          "type": "string"
        +        }
        +      },
        +      "plan_ref": {
        +        "type": "string"
        +      },
        +      "primary_tools": {
        +        "anyOf": [
        +          {
        +            "type": "null"
        +          },
        +          {
        +            "type": "array"
        +          }
        +        ],
        +        "items": {
        +          "type": "string"
        +        }
        +      },
        +      "recommended_steps": {
        +        "anyOf": [
        +          {
        +            "type": "null"
        +          },
        +          {
        +            "type": "array"
        +          }
        +        ],
        +        "items": {
        +          "type": "string"
        +        }
        +      },
        +      "related_tools": {
        +        "anyOf": [
        +          {
        +            "type": "null"
        +          },
        +          {
        +            "type": "array"
        +          }
        +        ],
        +        "items": {
        +          "type": "string"
        +        }
        +      }
        +    },
        +    "required": [
        +      "canonical_use_case",
        +      "description",
        +      "known_pitfalls",
        +      "plan_ref",
        +      "primary_tools",
        +      "recommended_steps",
        +      "related_tools"
        +    ]
        +  },
        +  "retrieval_mode": {
        +    "anyOf": [
        +      {
        +        "type": "null"
        +      },
        +      {
        +        "type": "string"
        +      }
        +    ]
        +  },
        +  "search_id": {
        +    "type": "string"
        +  },
        +  "session_id": {
        +    "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.",
        +    "maxLength": 128,
        +    "minLength": 1,
        +    "pattern": "^[A-Za-z0-9_-]{1,128}$",
        +    "type": "string"
        +  },
        +  "tools": {
        +    "anyOf": [
        +      {
        +        "type": "null"
        +      },
        +      {
        +        "type": "array"
        +      }
        +    ],
        +    "items": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "arguments_schema": {
        +          "additionalProperties": true,
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "object"
        +            }
        +          ]
        +        },
        +        "description": {
        +          "type": "string"
        +        },
        +        "execution_supported": {
        +          "description": "Whether this router can execute and quote the operation; false retains documentation and discovery only.",
        +          "type": "boolean"
        +        },
        +        "execution_unsupported_reason": {
        +          "description": "Why execution and quoting remain unavailable through this router.",
        +          "type": "string"
        +        },
        +        "has_full_schema": {
        +          "type": "boolean"
        +        },
        +        "match_reasons": {
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "array"
        +            }
        +          ],
        +          "items": {
        +            "type": "string"
        +          }
        +        },
        +        "price": {
        +          "additionalProperties": true,
        +          "type": "object"
        +        },
        +        "retrieval_debug": {
        +          "additionalProperties": false,
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "object"
        +            }
        +          ],
        +          "properties": {
        +            "fused_rank": {
        +              "type": "integer"
        +            },
        +            "fused_score": {
        +              "type": "number"
        +            },
        +            "lexical_rank": {
        +              "type": "integer"
        +            },
        +            "lexical_score": {
        +              "type": "number"
        +            },
        +            "rerank_admission_rank": {
        +              "type": "integer"
        +            },
        +            "rerank_rank": {
        +              "type": "integer"
        +            },
        +            "rerank_score": {
        +              "anyOf": [
        +                {
        +                  "type": "null"
        +                },
        +                {
        +                  "type": "number"
        +                }
        +              ]
        +            },
        +            "runtime_availability": {
        +              "type": "string"
        +            },
        +            "vector_view_ranks": {
        +              "additionalProperties": {
        +                "type": "integer"
        +              },
        +              "type": "object"
        +            },
        +            "vector_view_scores": {
        +              "additionalProperties": {
        +                "type": "number"
        +              },
        +              "type": "object"
        +            }
        +          },
        +          "required": [
        +            "fused_rank",
        +            "fused_score",
        +            "lexical_rank",
        +            "lexical_score",
        +            "rerank_admission_rank",
        +            "rerank_rank",
        +            "runtime_availability",
        +            "vector_view_ranks",
        +            "vector_view_scores"
        +          ]
        +        },
        +        "summary": {
        +          "type": "string"
        +        },
        +        "tool": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "description",
        +        "has_full_schema",
        +        "price",
        +        "summary",
        +        "tool"
        +      ],
        +      "type": "object"
        +    }
        +  }
        +}
      • addedOutput schema / required
        Added value: +[
        +  "next_steps_guidance",
        +  "search_id",
        +  "session_id",
        +  "tools"
        +]
    • Changeduse1 field changed
      • changedInput schema / properties / max_price_usd / description
        Previous value: -"Refuse the call before any spend if it would cost more than this many USD"New value: +"Refuse the call before any spend if its quoted price is above this many USD"
  3. 40 tool updates
    • Removedbatch_get_schema
    • Removedbatch_quote
    • Changedbatch_use18 fields changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / properties / calls / description
        Added value: +"Up to 20 items of {call_id, operation_id, arguments}; steps at the same execution_level of a plan go in one batch"
      • removedInput schema / properties / calls / items / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • changedInput schema / properties / calls / items / additionalProperties
        Previous value: -falseNew value: +true
      • removedInput schema / properties / calls / items / properties
        Removed value: -{
        -  "arguments": {
        -    "additionalProperties": true,
        -    "description": "Strictly schema-compliant arguments using the exact field names and types from this tool's arguments_schema.",
        -    "type": "object"
        -  },
        -  "call_id": {
        -    "description": "Caller-chosen identifier unique within this batch.",
        -    "maxLength": 128,
        -    "minLength": 1,
        -    "type": "string"
        -  },
        -  "tool": {
        -    "description": "Exact tool name returned by search or batch_get_schema. Never invent a name.",
        -    "minLength": 1,
        -    "type": "string"
        -  }
        -}
      • removedInput schema / properties / calls / items / required
        Removed value: -[
        -  "call_id",
        -  "tool",
        -  "arguments"
        -]
      • removedInput schema / properties / calls / maxItems
        Removed value: -20
      • removedInput schema / properties / calls / minItems
        Removed value: -1
      • addedInput schema / properties / max_price_usd
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Per-call price cap applied to every item"
        +}
      • addedInput schema / properties / search_id / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / search_id / default
        Added value: +null
      • changedInput schema / properties / search_id / description
        Previous value: -"Optional search correlation identifier returned by search."New value: +"search_id from the search that found these operations"
      • removedInput schema / properties / search_id / type
        Removed value: -"string"
      • removedInput schema / properties / session_id
        Removed value: -{
        -  "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.",
        -  "maxLength": 128,
        -  "pattern": "^[A-Za-z0-9_-]*$",
        -  "type": "string"
        -}
      • removedOutput schema / $defs
        Removed value: -{
        -  "jsonValue": {
        -    "anyOf": [
        -      {
        -        "additionalProperties": {
        -          "$ref": "#/$defs/jsonValue"
        -        },
        -        "type": "object"
        -      },
        -      {
        -        "items": {
        -          "$ref": "#/$defs/jsonValue"
        -        },
        -        "type": "array"
        -      },
        -      {
        -        "type": "string"
        -      },
        -      {
        -        "type": "number"
        -      },
        -      {
        -        "type": "boolean"
        -      },
        -      {
        -        "type": "null"
        -      }
        -    ],
        -    "description": "JSON value returned by the upstream tool."
        -  }
        -}
      • removedOutput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • removedOutput schema / properties
        Removed value: -{
        -  "batch_id": {
        -    "type": "string"
        -  },
        -  "error_count": {
        -    "minimum": 0,
        -    "type": "integer"
        -  },
        -  "next_steps_guidance": {
        -    "description": "Deterministic next-step instructions derived from this result. Not an authorization grant.",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "results": {
        -    "items": {
        -      "$schema": "https://json-schema.org/draft/2020-12/schema",
        -      "additionalProperties": false,
        -      "properties": {
        -        "call_id": {
        -          "type": "string"
        -        },
        -        "customer_cost_micros_usd": {
        -          "description": "Actual customer charge settled by AIsaServices, in micro-USD. Omitted when the upstream response does not report it.",
        -          "minimum": 0,
        -          "type": "integer"
        -        },
        -        "data": {
        -          "$ref": "#/$defs/jsonValue"
        -        },
        -        "error": {
        -          "anyOf": [
        -            {
        -              "$schema": "https://json-schema.org/draft/2020-12/schema",
        -              "additionalProperties": false,
        -              "properties": {
        -                "message": {
        -                  "type": "string"
        -                },
        -                "retryable": {
        -                  "type": "boolean"
        -                },
        -                "status": {
        -                  "type": "integer"
        -                },
        -                "type": {
        -                  "enum": [
        -                    "validation",
        -                    "authentication",
        -                    "payment",
        -                    "permission",
        -                    "rate_limit",
        -                    "upstream",
        -                    "timeout",
        -                    "internal"
        -                  ],
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "type",
        -                "status",
        -                "retryable"
        -              ],
        -              "type": "object"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ]
        -        },
        -        "request_id": {
        -          "type": "string"
        -        },
        -        "successful": {
        -          "type": "boolean"
        -        },
        -        "tool": {
        -          "type": "string"
        -        },
        -        "upstream_status": {
        -          "description": "HTTP status returned by AIsaServices when a request was dispatched.",
        -          "type": "integer"
        -        }
        -      },
        -      "required": [
        -        "call_id",
        -        "tool",
        -        "successful",
        -        "request_id"
        -      ],
        -      "type": "object"
        -    },
        -    "type": "array"
        -  },
        -  "session_id": {
        -    "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.",
        -    "maxLength": 128,
        -    "minLength": 1,
        -    "pattern": "^[A-Za-z0-9_-]*$",
        -    "type": "string"
        -  },
        -  "success_count": {
        -    "minimum": 0,
        -    "type": "integer"
        -  },
        -  "total_count": {
        -    "minimum": 1,
        -    "type": "integer"
        -  }
        -}
      • removedOutput schema / required
        Removed value: -[
        -  "session_id",
        -  "batch_id",
        -  "total_count",
        -  "success_count",
        -  "error_count",
        -  "results",
        -  "next_steps_guidance"
        -]
    • Changedget_details13 fields changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / properties / arguments
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The arguments the operation would be called with, for a price that reflects them. Keyed by operation_id for a batch, or passed flat for a single operation_id. Routes whose required parameters are validated before pricing have no price without them."
        +}
      • removedInput schema / properties / include_arguments_schema
        Removed value: -{
        -  "default": true,
        -  "description": "Return the complete arguments_schema. Defaults to true.",
        -  "type": "boolean"
        -}
      • changedInput schema / properties / include_documentation / description
        Previous value: -"Return the complete immutable public OpenAPI operation, referenced declarations, provenance and scoped completeness. Documentation does not change execution support."New value: +"Include the complete native public OpenAPI document, reference closure and scoped completeness. Existing execution schemas remain unchanged."
      • removedInput schema / properties / include_response_schema
        Removed value: -{
        -  "default": false,
        -  "description": "Return the complete response_schema. Defaults to false.",
        -  "type": "boolean"
        -}
      • addedInput schema / properties / operation_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "One operation_id from search"
        +}
      • addedInput schema / properties / operation_ids
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Up to 20 operation_ids, for a batch"
        +}
      • removedInput schema / properties / session_id
        Removed value: -{
        -  "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.",
        -  "maxLength": 128,
        -  "pattern": "^[A-Za-z0-9_-]*$",
        -  "type": "string"
        -}
      • removedInput schema / properties / tools
        Removed value: -{
        -  "description": "Exact tool names returned by search whose complete contracts are needed. Never invent tool names.",
        -  "items": {
        -    "minLength": 1,
        -    "pattern": "^\\S(?:.*\\S)?$",
        -    "type": "string"
        -  },
        -  "maxItems": 20,
        -  "minItems": 1,
        -  "type": "array",
        -  "uniqueItems": true
        -}
      • addedInput schema / properties / with_quote
        Added value: +{
        +  "default": true,
        +  "description": "Whether each operation is priced for this account before the answer. One round trip per operation; spends nothing.",
        +  "type": "boolean"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "tools"
        -]
      • removedOutput schema / properties
        Removed value: -{
        -  "error_count": {
        -    "type": "integer"
        -  },
        -  "next_steps_guidance": {
        -    "anyOf": [
        -      {
        -        "type": "null"
        -      },
        -      {
        -        "type": "array"
        -      }
        -    ],
        -    "items": {
        -      "type": "string"
        -    }
        -  },
        -  "session_id": {
        -    "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.",
        -    "maxLength": 128,
        -    "minLength": 1,
        -    "pattern": "^[A-Za-z0-9_-]{1,128}$",
        -    "type": "string"
        -  },
        -  "success_count": {
        -    "type": "integer"
        -  },
        -  "tools": {
        -    "additionalProperties": {
        -      "additionalProperties": false,
        -      "properties": {
        -        "arguments_schema": {
        -          "additionalProperties": true,
        -          "anyOf": [
        -            {
        -              "type": "null"
        -            },
        -            {
        -              "type": "object"
        -            }
        -          ]
        -        },
        -        "canonical_operation_id": {
        -          "type": "string"
        -        },
        -        "documentation": {
        -          "additionalProperties": true,
        -          "type": "object"
        -        },
        -        "error": {
        -          "additionalProperties": false,
        -          "anyOf": [
        -            {
        -              "type": "null"
        -            },
        -            {
        -              "type": "object"
        -            }
        -          ],
        -          "properties": {
        -            "code": {
        -              "type": "string"
        -            },
        -            "message": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "code",
        -            "message"
        -          ]
        -        },
        -        "execution_supported": {
        -          "description": "Whether this router can execute and quote the operation; false retains documentation and discovery only.",
        -          "type": "boolean"
        -        },
        -        "execution_unsupported_reason": {
        -          "description": "Why execution and quoting remain unavailable through this router.",
        -          "type": "string"
        -        },
        -        "idempotent": {
        -          "anyOf": [
        -            {
        -              "type": "null"
        -            },
        -            {
        -              "type": "boolean"
        -            }
        -          ]
        -        },
        -        "known_pitfalls": {
        -          "anyOf": [
        -            {
        -              "type": "null"
        -            },
        -            {
        -              "type": "array"
        -            }
        -          ],
        -          "items": {
        -            "type": "string"
        -          }
        -        },
        -        "read_only": {
        -          "anyOf": [
        -            {
        -              "type": "null"
        -            },
        -            {
        -              "type": "boolean"
        -            }
        -          ]
        -        },
        -        "response_schema": {
        -          "additionalProperties": true,
        -          "anyOf": [
        -            {
        -              "type": "null"
        -            },
        -            {
        -              "type": "object"
        -            }
        -          ]
        -        },
        -        "side_effects": {
        -          "anyOf": [
        -            {
        -              "type": "null"
        -            },
        -            {
        -              "type": "array"
        -            }
        -          ],
        -          "items": {
        -            "type": "string"
        -          }
        -        },
        -        "successful": {
        -          "type": "boolean"
        -        }
        -      },
        -      "required": [
        -        "successful"
        -      ],
        -      "type": "object"
        -    },
        -    "type": "object"
        -  },
        -  "total_count": {
        -    "type": "integer"
        -  }
        -}
      • removedOutput schema / required
        Removed value: -[
        -  "error_count",
        -  "next_steps_guidance",
        -  "session_id",
        -  "success_count",
        -  "tools",
        -  "total_count"
        -]
    • Changedget_similarweb_ad_networks18 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Worldwide data only; values are case-insensitive."New value: +"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "ww"
        -]New value: +[
        +  "us",
        +  "ww"
        +]
      • addedInput schema / properties / domain / description
        Added value: +"Target domain, e.g. example.com."
      • removedInput schema / properties / domain / maxLength
        Removed value: -253
      • removedInput schema / properties / domain / minLength
        Removed value: -1
      • addedInput schema / properties / end_date / description
        Added value: +"End month, format YYYY-MM."
      • addedInput schema / properties / granularity / description
        Added value: +"Time granularity. Allowed: monthly."
      • addedInput schema / properties / limit / default
        Added value: +20
      • addedInput schema / properties / limit / description
        Added value: +"Number of rows to return; max 20, billed as 20 if exceeded."
      • removedInput schema / properties / limit / minimum
        Removed value: -1
      • addedInput schema / properties / main_domain_only / description
        Added value: +"Restrict to the main domain only (true/false)."
      • addedInput schema / properties / offset / description
        Added value: +"Row offset for pagination."
      • removedInput schema / properties / offset / maximum
        Removed value: -100000
      • removedInput schema / properties / offset / minimum
        Removed value: -0
      • addedInput schema / properties / start_date / description
        Added value: +"Start month, format YYYY-MM."
      • addedInput schema / properties / traffic_source / description
        Added value: +"Traffic-source filter."
      • addedInput schema / properties / web_source / description
        Added value: +"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "end_date",
        -  "limit",
        -  "start_date"
        -]New value: +[
        +  "domain",
        +  "start_date",
        +  "end_date",
        +  "limit"
        +]
    • Removedget_similarweb_apis_v1_similarweb_keyword_analysi_490801
    • Removedget_similarweb_apis_v1_similarweb_segment_analysi_6349fe
    • Removedget_similarweb_apis_v1_similarweb_segment_analysi_64e47c
    • Removedget_similarweb_apis_v1_similarweb_website_analysi_7399a9
    • Removedget_similarweb_apis_v1_similarweb_website_analysi_850464
    • Removedget_similarweb_apis_v1_similarweb_website_analysi_aa2e1f
    • Changedget_similarweb_audience_interest18 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Worldwide data only; values are case-insensitive."New value: +"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "ww"
        -]New value: +[
        +  "us",
        +  "ww"
        +]
      • addedInput schema / properties / domain / description
        Added value: +"Target domain, e.g. example.com."
      • removedInput schema / properties / domain / maxLength
        Removed value: -253
      • removedInput schema / properties / domain / minLength
        Removed value: -1
      • addedInput schema / properties / end_date / description
        Added value: +"End month, format YYYY-MM."
      • addedInput schema / properties / granularity / description
        Added value: +"Time granularity. Allowed: monthly."
      • addedInput schema / properties / limit / default
        Added value: +20
      • addedInput schema / properties / limit / description
        Added value: +"Number of rows to return; max 20, billed as 20 if exceeded."
      • removedInput schema / properties / limit / minimum
        Removed value: -1
      • addedInput schema / properties / main_domain_only / description
        Added value: +"Restrict to the main domain only (true/false)."
      • addedInput schema / properties / offset / description
        Added value: +"Row offset for pagination."
      • removedInput schema / properties / offset / maximum
        Removed value: -100000
      • removedInput schema / properties / offset / minimum
        Removed value: -0
      • addedInput schema / properties / start_date / description
        Added value: +"Start month, format YYYY-MM."
      • addedInput schema / properties / traffic_source / description
        Added value: +"Traffic-source filter."
      • addedInput schema / properties / web_source / description
        Added value: +"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "end_date",
        -  "limit",
        -  "start_date"
        -]New value: +[
        +  "domain",
        +  "start_date",
        +  "end_date",
        +  "limit"
        +]
    • Changedget_similarweb_audience_overlap10 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Worldwide data only; values are case-insensitive."New value: +"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "ww"
        -]New value: +[
        +  "us",
        +  "ww"
        +]
      • addedInput schema / properties / domains / description
        Added value: +"Two to five target domains, comma-separated (e.g. cnn.com,bbc.com)."
      • removedInput schema / properties / domains / x-aisa-delimiter
        Removed value: -","
      • removedInput schema / properties / domains / x-aisa-maxItems
        Removed value: -5
      • removedInput schema / properties / domains / x-aisa-minItems
        Removed value: -2
      • addedInput schema / properties / end_date / description
        Added value: +"End month, format YYYY-MM."
      • addedInput schema / properties / granularity / description
        Added value: +"Time granularity. Allowed: monthly. Default: monthly."
      • addedInput schema / properties / start_date / description
        Added value: +"Start month, format YYYY-MM."
      • changedInput schema / required
        Previous value: -[
        -  "domains",
        -  "end_date",
        -  "start_date"
        -]New value: +[
        +  "domains",
        +  "start_date",
        +  "end_date"
        +]
    • Changedget_similarweb_deduplicated_audience11 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Worldwide data only; values are case-insensitive."New value: +"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "ww"
        -]New value: +[
        +  "us",
        +  "ww"
        +]
      • addedInput schema / properties / domain / description
        Added value: +"Target domain, e.g. example.com."
      • removedInput schema / properties / domain / maxLength
        Removed value: -253
      • removedInput schema / properties / domain / minLength
        Removed value: -1
      • addedInput schema / properties / end_date / description
        Added value: +"End month, format YYYY-MM."
      • addedInput schema / properties / granularity / description
        Added value: +"Time granularity. Allowed: monthly. Default: monthly."
      • addedInput schema / properties / main_domain_only / description
        Added value: +"Restrict to the main domain only (true/false). Default: True."
      • addedInput schema / properties / start_date / description
        Added value: +"Start month, format YYYY-MM."
      • addedInput schema / properties / web_source / description
        Added value: +"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "end_date",
        -  "start_date"
        -]New value: +[
        +  "domain",
        +  "start_date",
        +  "end_date"
        +]
    • Changedget_similarweb_demographics12 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Worldwide data only; values are case-insensitive."New value: +"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "ww"
        -]New value: +[
        +  "us",
        +  "ww"
        +]
      • addedInput schema / properties / domain / description
        Added value: +"Target domain, e.g. example.com."
      • removedInput schema / properties / domain / maxLength
        Removed value: -2048
      • removedInput schema / properties / domain / minLength
        Removed value: -1
      • addedInput schema / properties / end_date / description
        Added value: +"End month, format YYYY-MM."
      • addedInput schema / properties / format / description
        Added value: +"Response format. Allowed: json."
      • addedInput schema / properties / granularity / description
        Added value: +"Time granularity. Allowed: monthly."
      • addedInput schema / properties / main_domain_only / description
        Added value: +"Restrict to the main domain only (true/false)."
      • addedInput schema / properties / start_date / description
        Added value: +"Start month, format YYYY-MM."
      • addedInput schema / properties / web_source / description
        Added value: +"Traffic source device split. Allowed: total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "end_date",
        -  "granularity",
        -  "start_date"
        -]New value: +[
        +  "domain",
        +  "start_date",
        +  "end_date",
        +  "granularity"
        +]
    • Changedget_similarweb_keyword_competitors19 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Worldwide data only; values are case-insensitive."New value: +"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "ww"
        -]New value: +[
        +  "us",
        +  "ww"
        +]
      • addedInput schema / properties / domain / description
        Added value: +"Target domain, e.g. example.com."
      • removedInput schema / properties / domain / maxLength
        Removed value: -253
      • removedInput schema / properties / domain / minLength
        Removed value: -1
      • addedInput schema / properties / end_date / description
        Added value: +"End month, format YYYY-MM."
      • addedInput schema / properties / granularity / description
        Added value: +"Time granularity. Allowed: monthly."
      • addedInput schema / properties / limit / default
        Added value: +20
      • addedInput schema / properties / limit / description
        Added value: +"Number of rows to return; max 20, billed as 20 if exceeded."
      • removedInput schema / properties / limit / minimum
        Removed value: -1
      • addedInput schema / properties / main_domain_only / description
        Added value: +"Restrict to the main domain only (true/false)."
      • addedInput schema / properties / offset / description
        Added value: +"Row offset for pagination."
      • removedInput schema / properties / offset / maximum
        Removed value: -100000
      • removedInput schema / properties / offset / minimum
        Removed value: -0
      • addedInput schema / properties / start_date / description
        Added value: +"Start month, format YYYY-MM."
      • addedInput schema / properties / traffic_source / description
        Added value: +"Traffic-source filter."
      • addedInput schema / properties / web_source / description
        Added value: +"Web source. This endpoint accepts desktop only (the gateway rejects mobile_web and total with 400)."
      • changedInput schema / properties / web_source / enum
        Previous value: -[
        -  "desktop",
        -  "mobile_web",
        -  "total"
        -]New value: +[
        +  "desktop"
        +]
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "end_date",
        -  "limit",
        -  "start_date"
        -]New value: +[
        +  "domain",
        +  "start_date",
        +  "end_date",
        +  "limit"
        +]
    • Changedget_similarweb_keywords15 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Worldwide data only; values are case-insensitive."New value: +"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "ww"
        -]New value: +[
        +  "us",
        +  "ww"
        +]
      • addedInput schema / properties / domain / description
        Added value: +"Target domain, e.g. example.com."
      • removedInput schema / properties / domain / maxLength
        Removed value: -2048
      • removedInput schema / properties / domain / minLength
        Removed value: -1
      • addedInput schema / properties / end_date / description
        Added value: +"End month, format YYYY-MM."
      • addedInput schema / properties / format / description
        Added value: +"Response format. Allowed: json."
      • addedInput schema / properties / granularity / description
        Added value: +"Time granularity. Allowed: monthly."
      • addedInput schema / properties / limit / default
        Added value: +20
      • addedInput schema / properties / limit / description
        Added value: +"Number of rows to return; max 20, billed as 20 if exceeded."
      • removedInput schema / properties / limit / minimum
        Removed value: -1
      • addedInput schema / properties / main_domain_only / description
        Added value: +"Restrict to the main domain only (true/false)."
      • addedInput schema / properties / start_date / description
        Added value: +"Start month, format YYYY-MM."
      • addedInput schema / properties / web_source / description
        Added value: +"Traffic source device split. Allowed: total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "end_date",
        -  "granularity",
        -  "limit",
        -  "start_date"
        -]New value: +[
        +  "domain",
        +  "start_date",
        +  "end_date",
        +  "granularity",
        +  "limit"
        +]
    • Changedget_similarweb_landing_pages18 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Worldwide data only; values are case-insensitive."New value: +"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "ww"
        -]New value: +[
        +  "us",
        +  "ww"
        +]
      • addedInput schema / properties / domain / description
        Added value: +"Target domain, e.g. example.com."
      • removedInput schema / properties / domain / maxLength
        Removed value: -253
      • removedInput schema / properties / domain / minLength
        Removed value: -1
      • addedInput schema / properties / end_date / description
        Added value: +"End month, format YYYY-MM."
      • addedInput schema / properties / granularity / description
        Added value: +"Time granularity. Allowed: monthly."
      • addedInput schema / properties / limit / default
        Added value: +20
      • addedInput schema / properties / limit / description
        Added value: +"Number of rows to return; max 20, billed as 20 if exceeded."
      • removedInput schema / properties / limit / minimum
        Removed value: -1
      • addedInput schema / properties / main_domain_only / description
        Added value: +"Restrict to the main domain only (true/false)."
      • addedInput schema / properties / offset / description
        Added value: +"Row offset for pagination."
      • removedInput schema / properties / offset / maximum
        Removed value: -100000
      • removedInput schema / properties / offset / minimum
        Removed value: -0
      • addedInput schema / properties / start_date / description
        Added value: +"Start month, format YYYY-MM."
      • addedInput schema / properties / traffic_source / description
        Added value: +"Traffic-source filter."
      • addedInput schema / properties / web_source / description
        Added value: +"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "end_date",
        -  "limit",
        -  "start_date"
        -]New value: +[
        +  "domain",
        +  "start_date",
        +  "end_date",
        +  "limit"
        +]
    • Changedget_similarweb_marketing_channel_sources_legacy11 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Worldwide data only; values are case-insensitive."New value: +"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "ww"
        -]New value: +[
        +  "us",
        +  "ww"
        +]
      • addedInput schema / properties / domain / description
        Added value: +"Target domain, e.g. example.com."
      • removedInput schema / properties / domain / maxLength
        Removed value: -253
      • removedInput schema / properties / domain / minLength
        Removed value: -1
      • addedInput schema / properties / end_date / description
        Added value: +"End month, format YYYY-MM."
      • addedInput schema / properties / granularity / description
        Added value: +"Time granularity. Allowed: monthly. Default: monthly."
      • addedInput schema / properties / main_domain_only / description
        Added value: +"Restrict to the main domain only (true/false). Default: True."
      • addedInput schema / properties / start_date / description
        Added value: +"Start month, format YYYY-MM."
      • addedInput schema / properties / web_source / description
        Added value: +"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "end_date",
        -  "start_date"
        -]New value: +[
        +  "domain",
        +  "start_date",
        +  "end_date"
        +]
    • Changedget_similarweb_popular_pages18 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Worldwide data only; values are case-insensitive."New value: +"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "ww"
        -]New value: +[
        +  "us",
        +  "ww"
        +]
      • addedInput schema / properties / domain / description
        Added value: +"Target domain, e.g. example.com."
      • removedInput schema / properties / domain / maxLength
        Removed value: -253
      • removedInput schema / properties / domain / minLength
        Removed value: -1
      • addedInput schema / properties / end_date / description
        Added value: +"End month, format YYYY-MM."
      • addedInput schema / properties / granularity / description
        Added value: +"Time granularity. Allowed: monthly."
      • addedInput schema / properties / limit / default
        Added value: +20
      • addedInput schema / properties / limit / description
        Added value: +"Number of rows to return; max 20, billed as 20 if exceeded."
      • removedInput schema / properties / limit / minimum
        Removed value: -1
      • addedInput schema / properties / main_domain_only / description
        Added value: +"Restrict to the main domain only (true/false)."
      • addedInput schema / properties / offset / description
        Added value: +"Row offset for pagination."
      • removedInput schema / properties / offset / maximum
        Removed value: -100000
      • removedInput schema / properties / offset / minimum
        Removed value: -0
      • addedInput schema / properties / start_date / description
        Added value: +"Start month, format YYYY-MM."
      • addedInput schema / properties / traffic_source / description
        Added value: +"Traffic-source filter."
      • addedInput schema / properties / web_source / description
        Added value: +"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "end_date",
        -  "limit",
        -  "start_date"
        -]New value: +[
        +  "domain",
        +  "start_date",
        +  "end_date",
        +  "limit"
        +]
    • Changedget_similarweb_ppc_spend11 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Worldwide data only; values are case-insensitive."New value: +"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "ww"
        -]New value: +[
        +  "us",
        +  "ww"
        +]
      • addedInput schema / properties / domain / description
        Added value: +"Target domain, e.g. example.com."
      • removedInput schema / properties / domain / maxLength
        Removed value: -253
      • removedInput schema / properties / domain / minLength
        Removed value: -1
      • addedInput schema / properties / end_date / description
        Added value: +"End month, format YYYY-MM."
      • addedInput schema / properties / granularity / description
        Added value: +"Time granularity. Allowed: monthly. Default: monthly."
      • addedInput schema / properties / main_domain_only / description
        Added value: +"Restrict to the main domain only (true/false). Default: True."
      • addedInput schema / properties / start_date / description
        Added value: +"Start month, format YYYY-MM."
      • addedInput schema / properties / web_source / description
        Added value: +"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "end_date",
        -  "start_date"
        -]New value: +[
        +  "domain",
        +  "start_date",
        +  "end_date"
        +]
    • Changedget_similarweb_ranking11 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Worldwide data only; values are case-insensitive."New value: +"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "ww"
        -]New value: +[
        +  "us",
        +  "ww"
        +]
      • addedInput schema / properties / domain / description
        Added value: +"Target domain, e.g. example.com."
      • removedInput schema / properties / domain / maxLength
        Removed value: -253
      • removedInput schema / properties / domain / minLength
        Removed value: -1
      • addedInput schema / properties / end_date / description
        Added value: +"End month, format YYYY-MM."
      • addedInput schema / properties / granularity / description
        Added value: +"Time granularity. Allowed: monthly. Default: monthly."
      • addedInput schema / properties / main_domain_only / description
        Added value: +"Restrict to the main domain only (true/false). Default: True."
      • addedInput schema / properties / start_date / description
        Added value: +"Start month, format YYYY-MM."
      • addedInput schema / properties / web_source / description
        Added value: +"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "end_date",
        -  "start_date"
        -]New value: +[
        +  "domain",
        +  "start_date",
        +  "end_date"
        +]
    • Changedget_similarweb_referrals18 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Worldwide data only; values are case-insensitive."New value: +"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "ww"
        -]New value: +[
        +  "us",
        +  "ww"
        +]
      • addedInput schema / properties / domain / description
        Added value: +"Target domain, e.g. example.com."
      • removedInput schema / properties / domain / maxLength
        Removed value: -253
      • removedInput schema / properties / domain / minLength
        Removed value: -1
      • addedInput schema / properties / end_date / description
        Added value: +"End month, format YYYY-MM."
      • addedInput schema / properties / granularity / description
        Added value: +"Time granularity. Allowed: monthly."
      • addedInput schema / properties / limit / default
        Added value: +20
      • addedInput schema / properties / limit / description
        Added value: +"Number of rows to return; max 20, billed as 20 if exceeded."
      • removedInput schema / properties / limit / minimum
        Removed value: -1
      • addedInput schema / properties / main_domain_only / description
        Added value: +"Restrict to the main domain only (true/false)."
      • addedInput schema / properties / offset / description
        Added value: +"Row offset for pagination."
      • removedInput schema / properties / offset / maximum
        Removed value: -100000
      • removedInput schema / properties / offset / minimum
        Removed value: -0
      • addedInput schema / properties / start_date / description
        Added value: +"Start month, format YYYY-MM."
      • addedInput schema / properties / traffic_source / description
        Added value: +"Traffic-source filter."
      • addedInput schema / properties / web_source / description
        Added value: +"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "end_date",
        -  "limit",
        -  "start_date"
        -]New value: +[
        +  "domain",
        +  "start_date",
        +  "end_date",
        +  "limit"
        +]
    • Changedget_similarweb_serp_players_aggregated14 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Worldwide data only; values are case-insensitive."New value: +"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "ww"
        -]New value: +[
        +  "us",
        +  "ww"
        +]
      • addedInput schema / properties / end_date / description
        Added value: +"End month, format YYYY-MM."
      • addedInput schema / properties / granularity / description
        Added value: +"Time granularity. Allowed: monthly."
      • addedInput schema / properties / keyword
        Added value: +{
        +  "description": "Target keyword.",
        +  "type": "string"
        +}
      • removedInput schema / properties / keywords
        Removed value: -{
        -  "type": "string",
        -  "x-aisa-delimiter": ",",
        -  "x-aisa-maxItems": 1,
        -  "x-aisa-minItems": 1
        -}
      • addedInput schema / properties / limit / default
        Added value: +20
      • addedInput schema / properties / limit / description
        Added value: +"Number of rows to return; max 20, billed as 20 if exceeded."
      • removedInput schema / properties / limit / minimum
        Removed value: -1
      • addedInput schema / properties / offset / description
        Added value: +"Row offset for pagination."
      • removedInput schema / properties / offset / maximum
        Removed value: -100000
      • removedInput schema / properties / offset / minimum
        Removed value: -0
      • addedInput schema / properties / start_date / description
        Added value: +"Start month, format YYYY-MM."
      • changedInput schema / required
        Previous value: -[
        -  "end_date",
        -  "keywords",
        -  "limit",
        -  "start_date"
        -]New value: +[
        +  "keyword",
        +  "start_date",
        +  "end_date",
        +  "limit"
        +]
    • Changedget_similarweb_serp_players_timeseries14 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Worldwide data only; values are case-insensitive."New value: +"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "ww"
        -]New value: +[
        +  "us",
        +  "ww"
        +]
      • addedInput schema / properties / end_date / description
        Added value: +"End month, format YYYY-MM."
      • addedInput schema / properties / granularity / description
        Added value: +"Time granularity. Allowed: monthly."
      • addedInput schema / properties / keyword
        Added value: +{
        +  "description": "Target keyword.",
        +  "type": "string"
        +}
      • removedInput schema / properties / keywords
        Removed value: -{
        -  "type": "string",
        -  "x-aisa-delimiter": ",",
        -  "x-aisa-maxItems": 1,
        -  "x-aisa-minItems": 1
        -}
      • addedInput schema / properties / limit / default
        Added value: +20
      • addedInput schema / properties / limit / description
        Added value: +"Number of rows to return; max 20, billed as 20 if exceeded."
      • removedInput schema / properties / limit / minimum
        Removed value: -1
      • addedInput schema / properties / offset / description
        Added value: +"Row offset for pagination."
      • removedInput schema / properties / offset / maximum
        Removed value: -100000
      • removedInput schema / properties / offset / minimum
        Removed value: -0
      • addedInput schema / properties / start_date / description
        Added value: +"Start month, format YYYY-MM."
      • changedInput schema / required
        Previous value: -[
        -  "end_date",
        -  "keywords",
        -  "limit",
        -  "start_date"
        -]New value: +[
        +  "keyword",
        +  "start_date",
        +  "end_date",
        +  "limit"
        +]
    • Changedget_similarweb_similar_sites18 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Worldwide data only; values are case-insensitive."New value: +"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "ww"
        -]New value: +[
        +  "us",
        +  "ww"
        +]
      • addedInput schema / properties / domain / description
        Added value: +"Target domain, e.g. example.com."
      • removedInput schema / properties / domain / maxLength
        Removed value: -253
      • removedInput schema / properties / domain / minLength
        Removed value: -1
      • addedInput schema / properties / end_date / description
        Added value: +"End month, format YYYY-MM. Together with start_date must span exactly 3 consecutive months, and must be the most recent supported month (the window rolls forward monthly; see the endpoint description)."
      • addedInput schema / properties / granularity / description
        Added value: +"Time granularity. Allowed: monthly."
      • addedInput schema / properties / limit / default
        Added value: +20
      • addedInput schema / properties / limit / description
        Added value: +"Number of rows to return; max 20, billed as 20 if exceeded."
      • removedInput schema / properties / limit / minimum
        Removed value: -1
      • addedInput schema / properties / main_domain_only / description
        Added value: +"Restrict to the main domain only (true/false)."
      • addedInput schema / properties / offset / description
        Added value: +"Row offset for pagination."
      • removedInput schema / properties / offset / maximum
        Removed value: -100000
      • removedInput schema / properties / offset / minimum
        Removed value: -0
      • addedInput schema / properties / start_date / description
        Added value: +"Start month, format YYYY-MM. Must be exactly 2 months before end_date: the window has to span exactly 3 consecutive months within SimilarWeb's latest supported range (see the endpoint description)."
      • addedInput schema / properties / traffic_source / description
        Added value: +"Traffic-source filter."
      • addedInput schema / properties / web_source / description
        Added value: +"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "end_date",
        -  "limit",
        -  "start_date"
        -]New value: +[
        +  "domain",
        +  "start_date",
        +  "end_date",
        +  "limit"
        +]
    • Changedget_similarweb_subdomains18 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Worldwide data only; values are case-insensitive."New value: +"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "ww"
        -]New value: +[
        +  "us",
        +  "ww"
        +]
      • addedInput schema / properties / domain / description
        Added value: +"Target domain, e.g. example.com."
      • removedInput schema / properties / domain / maxLength
        Removed value: -253
      • removedInput schema / properties / domain / minLength
        Removed value: -1
      • addedInput schema / properties / end_date / description
        Added value: +"End month, format YYYY-MM."
      • addedInput schema / properties / granularity / description
        Added value: +"Time granularity. Allowed: monthly."
      • addedInput schema / properties / limit / default
        Added value: +20
      • addedInput schema / properties / limit / description
        Added value: +"Number of rows to return; max 20, billed as 20 if exceeded."
      • removedInput schema / properties / limit / minimum
        Removed value: -1
      • addedInput schema / properties / main_domain_only / description
        Added value: +"Restrict to the main domain only (true/false)."
      • addedInput schema / properties / offset / description
        Added value: +"Row offset for pagination."
      • removedInput schema / properties / offset / maximum
        Removed value: -100000
      • removedInput schema / properties / offset / minimum
        Removed value: -0
      • addedInput schema / properties / start_date / description
        Added value: +"Start month, format YYYY-MM."
      • addedInput schema / properties / traffic_source / description
        Added value: +"Traffic-source filter."
      • addedInput schema / properties / web_source / description
        Added value: +"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "end_date",
        -  "limit",
        -  "start_date"
        -]New value: +[
        +  "domain",
        +  "start_date",
        +  "end_date",
        +  "limit"
        +]
    • Changedget_similarweb_technologies15 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Worldwide data only; values are case-insensitive."New value: +"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "ww"
        -]New value: +[
        +  "us",
        +  "ww"
        +]
      • addedInput schema / properties / domain / description
        Added value: +"Target domain, e.g. example.com."
      • removedInput schema / properties / domain / maxLength
        Removed value: -2048
      • removedInput schema / properties / domain / minLength
        Removed value: -1
      • addedInput schema / properties / end_date / description
        Added value: +"End month, format YYYY-MM."
      • addedInput schema / properties / format / description
        Added value: +"Response format. Allowed: json."
      • addedInput schema / properties / granularity / description
        Added value: +"Time granularity. Allowed: monthly."
      • addedInput schema / properties / limit / default
        Added value: +20
      • addedInput schema / properties / limit / description
        Added value: +"Number of rows to return; max 20, billed as 20 if exceeded."
      • removedInput schema / properties / limit / minimum
        Removed value: -1
      • addedInput schema / properties / main_domain_only / description
        Added value: +"Restrict to the main domain only (true/false)."
      • addedInput schema / properties / start_date / description
        Added value: +"Start month, format YYYY-MM."
      • addedInput schema / properties / web_source / description
        Added value: +"Traffic source device split. Allowed: total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "end_date",
        -  "granularity",
        -  "limit",
        -  "start_date"
        -]New value: +[
        +  "domain",
        +  "start_date",
        +  "end_date",
        +  "granularity",
        +  "limit"
        +]
    • Changedget_similarweb_top_sites_ranking11 fields changed
      • addedInput schema / properties / category / description
        Added value: +"Industry category, e.g. Finance."
      • removedInput schema / properties / category / maxLength
        Removed value: -191
      • removedInput schema / properties / category / minLength
        Removed value: -1
      • changedInput schema / properties / country / description
        Previous value: -"Worldwide data only; values are case-insensitive."New value: +"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "ww"
        -]New value: +[
        +  "us",
        +  "ww"
        +]
      • addedInput schema / properties / limit / default
        Added value: +20
      • addedInput schema / properties / limit / description
        Added value: +"Number of rows to return; max 20, billed as 20 if exceeded."
      • removedInput schema / properties / limit / minimum
        Removed value: -1
      • addedInput schema / properties / offset / description
        Added value: +"Row offset for pagination."
      • removedInput schema / properties / offset / maximum
        Removed value: -100000
      • removedInput schema / properties / offset / minimum
        Removed value: -0
    • Changedget_similarweb_traffic_engagement16 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Worldwide data only; values are case-insensitive."New value: +"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "ww"
        -]New value: +[
        +  "us",
        +  "ww"
        +]
      • addedInput schema / properties / domain / description
        Added value: +"Target domain, e.g. example.com."
      • removedInput schema / properties / domain / maxLength
        Removed value: -253
      • removedInput schema / properties / domain / minLength
        Removed value: -1
      • addedInput schema / properties / end_date / description
        Added value: +"End month, format YYYY-MM."
      • addedInput schema / properties / granularity / description
        Added value: +"Time granularity. Allowed: monthly. Default: monthly."
      • addedInput schema / properties / main_domain_only / description
        Added value: +"Restrict to the main domain only (true/false). Default: True."
      • addedInput schema / properties / metrics / description
        Added value: +"Comma-separated metrics, e.g. visits,pages_per_visit."
      • removedInput schema / properties / metrics / x-aisa-delimiter
        Removed value: -","
      • removedInput schema / properties / metrics / x-aisa-maxItems
        Removed value: -8
      • removedInput schema / properties / metrics / x-aisa-minItems
        Removed value: -1
      • addedInput schema / properties / mtd / description
        Added value: +"Month-to-date flag (true/false)."
      • addedInput schema / properties / start_date / description
        Added value: +"Start month, format YYYY-MM."
      • addedInput schema / properties / web_source / description
        Added value: +"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "end_date",
        -  "metrics",
        -  "start_date"
        -]New value: +[
        +  "domain",
        +  "start_date",
        +  "end_date",
        +  "metrics"
        +]
    • Changedget_similarweb_website_top_geographies2 fields changed
      • changedInput schema / properties / domain / description
        Previous value: -"Bare website hostname without scheme, path, port, or credentials."New value: +"Target domain, e.g. example.com."
      • removedInput schema / properties / month
        Removed value: -{
        -  "description": "Complete month in YYYY-MM.",
        -  "type": "string",
        -  "x-aisa-default-policy": "previous_complete_utc_month"
        -}
    • Changedget_similarweb_website_traffic_snapshot4 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Worldwide data only; values are case-insensitive."New value: +"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "ww"
        -]New value: +[
        +  "us",
        +  "ww"
        +]
      • changedInput schema / properties / domain / description
        Previous value: -"Bare website hostname without scheme, path, port, or credentials."New value: +"Target domain, e.g. example.com."
      • removedInput schema / properties / month
        Removed value: -{
        -  "description": "Complete month in YYYY-MM.",
        -  "type": "string",
        -  "x-aisa-default-policy": "previous_complete_utc_month"
        -}
    • Changedget_similarweb_website_traffic_trend6 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Worldwide data only; values are case-insensitive."New value: +"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "ww"
        -]New value: +[
        +  "us",
        +  "ww"
        +]
      • changedInput schema / properties / domain / description
        Previous value: -"Bare website hostname without scheme, path, port, or credentials."New value: +"Target domain, e.g. example.com."
      • removedInput schema / properties / end_date
        Removed value: -{
        -  "description": "Inclusive last complete UTC month in YYYY-MM.",
        -  "type": "string"
        -}
      • removedInput schema / properties / metrics
        Removed value: -{
        -  "default": "visits",
        -  "description": "One to four supported Traffic & Engagement metrics.",
        -  "type": "string",
        -  "x-aisa-delimiter": ",",
        -  "x-aisa-item-enum": [
        -    "average_visit_duration",
        -    "bounce_rate",
        -    "new_users",
        -    "page_views",
        -    "pages_per_visit",
        -    "returning_users",
        -    "unique_visitors",
        -    "visits"
        -  ],
        -  "x-aisa-maxItems": 4
        -}
      • removedInput schema / properties / start_date
        Removed value: -{
        -  "description": "Inclusive first month in YYYY-MM; provide together with end_date.",
        -  "type": "string"
        -}
    • Changedpost_apollo_people_bulk_match11 fields changed
      • addedInput schema / properties / reveal_personal_emails
        Added value: +{
        +  "description": "Set to true if you want to enrich all matched people with personal emails. This potentially consumes credits as part of your Apollo pricing plan . The default value is false. If a person resides in a GDPR -compliant region, Apollo will not reveal their personal email.",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / reveal_phone_number / default
        Removed value: -false
      • addedInput schema / properties / reveal_phone_number / description
        Added value: +"Set to true if you want to enrich the data of all matched people with all available phone numbers, including mobile phone numbers. This potentially consumes credits as part of your Apollo pricing plan . The default value is false. If this parameter is set to true, you must enter a webhook URL for the webhook_url parameter. Apollo will asynchronously verify phone numbers for you, then send a JSON response that includes only details about the phone numbers to the webhook URL you provide. It can take several minutes for the phone numbers to be delivered."
      • removedInput schema / properties / run_waterfall_email / default
        Removed value: -false
      • addedInput schema / properties / run_waterfall_email / description
        Added value: +"Set to true to enable email waterfall enrichment"
      • removedInput schema / properties / run_waterfall_phone / default
        Removed value: -false
      • addedInput schema / properties / run_waterfall_phone / description
        Added value: +"Set to true to enable phone waterfall enrichment"
      • addedInput schema / properties / webhook_url / description
        Added value: +"If you set the reveal_phone_number parameter to true, this parameter becomes mandatory. Otherwise, do not use this parameter. Enter the webhook URL that specifies where Apollo should send a JSON response that includes the phone number you requested. Apollo suggests testing this flow to ensure you receive the separate response with the phone number. If phone numbers are not revealed delivered to the webhook URL, try applying UTF-8 encoding to the webhook URL. Example: https://webhook.site/cc4cf44e-e047-4774-8dac-473d28474e40; https%3A%2F%2Fwebhook.site%2Fcc4cf44e-e047-4774-8dac-473d28474e40"
      • removedInput schema / properties / webhook_url / format
        Removed value: -"https_url"
      • removedInput schema / properties / webhook_url / maxLength
        Removed value: -2048
      • removedInput schema / properties / webhook_url / minLength
        Removed value: -1
    • Changedpost_apollo_people_match20 fields changed
      • addedInput schema / properties / domain
        Added value: +{
        +  "description": "The domain name for the person's employer. This can be the current employer or a previous employer. Do not include www., the @ symbol, or similar. Example: apollo.io or microsoft.com",
        +  "type": "string"
        +}
      • addedInput schema / properties / email
        Added value: +{
        +  "description": "The email address of the person. Example: example@email.com",
        +  "type": "string"
        +}
      • addedInput schema / properties / first_name
        Added value: +{
        +  "description": "The first name of the person. This is typically used in combination with the last_name parameter. Example: tim",
        +  "type": "string"
        +}
      • addedInput schema / properties / hashed_email
        Added value: +{
        +  "description": "The hashed email of the person. The email should adhere to either the MD5 or SHA-256 hash format. Example: 8d935115b9ff4489f2d1f9249503cadf (MD5) or 97817c0c49994eb500ad0a5e7e2d8aed51977b26424d508f66e4e8887746a152 (SHA-256)",
        +  "type": "string"
        +}
      • addedInput schema / properties / id
        Added value: +{
        +  "description": "The Apollo ID for the person. Each person in the Apollo database is assigned a unique ID. To find IDs, call the People API Search endpoint and identify the values for person_id. Example: 587cf802f65125cad923a266",
        +  "type": "string"
        +}
      • addedInput schema / properties / last_name
        Added value: +{
        +  "description": "The last name of the person. This is typically used in combination with the first_name parameter. Example: zheng",
        +  "type": "string"
        +}
      • addedInput schema / properties / linkedin_url
        Added value: +{
        +  "description": "The URL for the person's LinkedIn profile. Example: http://www.linkedin.com/in/tim-zheng-677ba010",
        +  "type": "string"
        +}
      • addedInput schema / properties / name
        Added value: +{
        +  "description": "The full name of the person. This will typically be a first name and last name separated by a space. If you use this parameter, you do not need to use the first_name and last_name parameters. Example: tim zheng",
        +  "type": "string"
        +}
      • addedInput schema / properties / organization_name
        Added value: +{
        +  "description": "The name of the person's employer. This can be the current employer or a previous employer. Example: apollo",
        +  "type": "string"
        +}
      • addedInput schema / properties / reveal_personal_emails
        Added value: +{
        +  "description": "Set to true if you want to enrich the person's data with personal emails. This potentially consumes credits as part of your Apollo pricing plan . The default value is false. If a person resides in a GDPR -compliant region, Apollo will not reveal their personal email.",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / reveal_phone_number / default
        Removed value: -false
      • addedInput schema / properties / reveal_phone_number / description
        Added value: +"Set to true if you want to enrich the person's data with all available phone numbers, including mobile phone numbers. This potentially consumes credits as part of your Apollo pricing plan . The default value is false. If this parameter is set to true, you must enter a webhook URL for the webhook_url parameter. Apollo will asynchronously verify phone numbers for you, then send a JSON response that includes only details about the person's phone numbers to the webhook URL you provide. It can take several minutes for the phone numbers to be delivered."
      • removedInput schema / properties / run_waterfall_email / default
        Removed value: -false
      • addedInput schema / properties / run_waterfall_email / description
        Added value: +"Set to true to enable email waterfall enrichment"
      • removedInput schema / properties / run_waterfall_phone / default
        Removed value: -false
      • addedInput schema / properties / run_waterfall_phone / description
        Added value: +"Set to true to enable phone waterfall enrichment"
      • addedInput schema / properties / webhook_url / description
        Added value: +"If you set the reveal_phone_number parameter to true, this parameter becomes mandatory. Otherwise, do not use this parameter. Enter the webhook URL that specifies where Apollo should send a JSON response that includes the phone number you requested. Apollo suggests testing this flow to ensure you receive the separate response with the phone number. If phone numbers are not revealed delivered to the webhook URL, try applying UTF-8 encoding to the webhook URL. Example: https://webhook.site/cc4cf44e-e047-4774-8dac-473d28474e40; https%3A%2F%2Fwebhook.site%2Fcc4cf44e-e047-4774-8dac-473d28474e40"
      • removedInput schema / properties / webhook_url / format
        Removed value: -"https_url"
      • removedInput schema / properties / webhook_url / maxLength
        Removed value: -2048
      • removedInput schema / properties / webhook_url / minLength
        Removed value: -1
    • Changedpost_waveinflu_ai_search8 fields changed
      • changedInput schema / properties / limit / default
        Previous value: -25New value: +40
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of creators to return. Default 40, range 1–100. Caps the billed count."
      • addedInput schema / properties / limit / example
        Added value: +10
      • changedInput schema / properties / limit / type
        Previous value: -"integer"New value: +"number"
      • removedInput schema / properties / platform / default
        Removed value: -"youtube"
      • addedInput schema / properties / platform / description
        Added value: +"Target platform."
      • addedInput schema / properties / platform / example
        Added value: +"instagram"
      • changedInput schema / required
        Previous value: -[
        -  "query"
        -]New value: +[
        +  "platform",
        +  "query"
        +]
    • Changedpost_waveinflu_email_lookup3 fields changed
      • addedInput schema / properties / profile_url / description
        Added value: +"Instagram, TikTok, or YouTube creator profile URL."
      • addedInput schema / properties / profile_url / example
        Added value: +"https://www.instagram.com/onkimia/"
      • changedInput schema / required
        Previous value: -[]New value: +[
        +  "profile_url"
        +]
    • Changedpost_waveinflu_similar_creators8 fields changed
      • changedInput schema / properties / limit / default
        Previous value: -25New value: +40
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of creators to return. Default 40, range 1–100. Caps the billed count."
      • addedInput schema / properties / limit / example
        Added value: +10
      • changedInput schema / properties / limit / type
        Previous value: -"integer"New value: +"number"
      • removedInput schema / properties / platform / default
        Removed value: -"youtube"
      • addedInput schema / properties / platform / description
        Added value: +"Target platform."
      • addedInput schema / properties / platform / example
        Added value: +"instagram"
      • changedInput schema / required
        Previous value: -[
        -  "target_account"
        -]New value: +[
        +  "platform",
        +  "target_account"
        +]
    • Changedsearch17 fields changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / properties / category / anyOf
        Added value: +[
        +  {
        +    "enum": [
        +      "seo",
        +      "finance",
        +      "social",
        +      "search",
        +      "sales",
        +      "mail"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / category / default
        Added value: +null
      • changedInput schema / properties / category / description
        Previous value: -"Restrict retrieval to one category. Omit to search everything. (AIsa-only: tool-router has no equivalent.)"New value: +"Restrict to one category (seo, finance, social, search, sales, mail). Omit to search everything."
      • removedInput schema / properties / category / enum
        Removed value: -[
        -  "seo",
        -  "finance",
        -  "social",
        -  "search",
        -  "sales",
        -  "mail"
        -]
      • removedInput schema / properties / category / type
        Removed value: -"string"
      • removedInput schema / properties / known_fields
        Removed value: -{
        -  "additionalProperties": true,
        -  "default": {},
        -  "description": "Known values such as ticker, URL, provider, or identifier that improve retrieval.",
        -  "type": "object"
        -}
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of additional direct tool candidates."New value: +"Maximum candidates, 1-10"
      • removedInput schema / properties / limit / maximum
        Removed value: -20
      • removedInput schema / properties / limit / minimum
        Removed value: -1
      • removedInput schema / properties / provider_filters
        Removed value: -{
        -  "default": [],
        -  "description": "Optional exact catalog provider keys used to narrow retrieval (for example similarweb). Do not use display brands. Omit this field if the exact key is unknown.",
        -  "items": {
        -    "type": "string"
        -  },
        -  "maxItems": 50,
        -  "type": "array",
        -  "uniqueItems": true
        -}
      • changedInput schema / properties / query / description
        Previous value: -"Natural-language capability or task to discover."New value: +"What you need, in plain language, e.g. 'backlinks of a domain', 'recent tweets by a user', 'insider trades for AAPL'. English works best."
      • removedInput schema / properties / query / maxLength
        Removed value: -2000
      • removedInput schema / properties / query / minLength
        Removed value: -1
      • removedInput schema / properties / session_id
        Removed value: -{
        -  "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.",
        -  "maxLength": 128,
        -  "pattern": "^[A-Za-z0-9_-]*$",
        -  "type": "string"
        -}
      • removedOutput schema / properties
        Removed value: -{
        -  "next_steps_guidance": {
        -    "anyOf": [
        -      {
        -        "type": "null"
        -      },
        -      {
        -        "type": "array"
        -      }
        -    ],
        -    "items": {
        -      "type": "string"
        -    }
        -  },
        -  "plan": {
        -    "additionalProperties": false,
        -    "anyOf": [
        -      {
        -        "type": "null"
        -      },
        -      {
        -        "type": "object"
        -      }
        -    ],
        -    "properties": {
        -      "canonical_use_case": {
        -        "type": "string"
        -      },
        -      "description": {
        -        "type": "string"
        -      },
        -      "known_pitfalls": {
        -        "anyOf": [
        -          {
        -            "type": "null"
        -          },
        -          {
        -            "type": "array"
        -          }
        -        ],
        -        "items": {
        -          "type": "string"
        -        }
        -      },
        -      "plan_ref": {
        -        "type": "string"
        -      },
        -      "primary_tools": {
        -        "anyOf": [
        -          {
        -            "type": "null"
        -          },
        -          {
        -            "type": "array"
        -          }
        -        ],
        -        "items": {
        -          "type": "string"
        -        }
        -      },
        -      "recommended_steps": {
        -        "anyOf": [
        -          {
        -            "type": "null"
        -          },
        -          {
        -            "type": "array"
        -          }
        -        ],
        -        "items": {
        -          "type": "string"
        -        }
        -      },
        -      "related_tools": {
        -        "anyOf": [
        -          {
        -            "type": "null"
        -          },
        -          {
        -            "type": "array"
        -          }
        -        ],
        -        "items": {
        -          "type": "string"
        -        }
        -      }
        -    },
        -    "required": [
        -      "canonical_use_case",
        -      "description",
        -      "known_pitfalls",
        -      "plan_ref",
        -      "primary_tools",
        -      "recommended_steps",
        -      "related_tools"
        -    ]
        -  },
        -  "retrieval_mode": {
        -    "anyOf": [
        -      {
        -        "type": "null"
        -      },
        -      {
        -        "type": "string"
        -      }
        -    ]
        -  },
        -  "search_id": {
        -    "type": "string"
        -  },
        -  "session_id": {
        -    "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.",
        -    "maxLength": 128,
        -    "minLength": 1,
        -    "pattern": "^[A-Za-z0-9_-]{1,128}$",
        -    "type": "string"
        -  },
        -  "tools": {
        -    "anyOf": [
        -      {
        -        "type": "null"
        -      },
        -      {
        -        "type": "array"
        -      }
        -    ],
        -    "items": {
        -      "additionalProperties": false,
        -      "properties": {
        -        "arguments_schema": {
        -          "additionalProperties": true,
        -          "anyOf": [
        -            {
        -              "type": "null"
        -            },
        -            {
        -              "type": "object"
        -            }
        -          ]
        -        },
        -        "description": {
        -          "type": "string"
        -        },
        -        "execution_supported": {
        -          "description": "Whether this router can execute and quote the operation; false retains documentation and discovery only.",
        -          "type": "boolean"
        -        },
        -        "execution_unsupported_reason": {
        -          "description": "Why execution and quoting remain unavailable through this router.",
        -          "type": "string"
        -        },
        -        "has_full_schema": {
        -          "type": "boolean"
        -        },
        -        "match_reasons": {
        -          "anyOf": [
        -            {
        -              "type": "null"
        -            },
        -            {
        -              "type": "array"
        -            }
        -          ],
        -          "items": {
        -            "type": "string"
        -          }
        -        },
        -        "price": {
        -          "additionalProperties": true,
        -          "type": "object"
        -        },
        -        "retrieval_debug": {
        -          "additionalProperties": false,
        -          "anyOf": [
        -            {
        -              "type": "null"
        -            },
        -            {
        -              "type": "object"
        -            }
        -          ],
        -          "properties": {
        -            "fused_rank": {
        -              "type": "integer"
        -            },
        -            "fused_score": {
        -              "type": "number"
        -            },
        -            "lexical_rank": {
        -              "type": "integer"
        -            },
        -            "lexical_score": {
        -              "type": "number"
        -            },
        -            "rerank_admission_rank": {
        -              "type": "integer"
        -            },
        -            "rerank_rank": {
        -              "type": "integer"
        -            },
        -            "rerank_score": {
        -              "anyOf": [
        -                {
        -                  "type": "null"
        -                },
        -                {
        -                  "type": "number"
        -                }
        -              ]
        -            },
        -            "runtime_availability": {
        -              "type": "string"
        -            },
        -            "vector_view_ranks": {
        -              "additionalProperties": {
        -                "type": "integer"
        -              },
        -              "type": "object"
        -            },
        -            "vector_view_scores": {
        -              "additionalProperties": {
        -                "type": "number"
        -              },
        -              "type": "object"
        -            }
        -          },
        -          "required": [
        -            "fused_rank",
        -            "fused_score",
        -            "lexical_rank",
        -            "lexical_score",
        -            "rerank_admission_rank",
        -            "rerank_rank",
        -            "runtime_availability",
        -            "vector_view_ranks",
        -            "vector_view_scores"
        -          ]
        -        },
        -        "summary": {
        -          "type": "string"
        -        },
        -        "tool": {
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "description",
        -        "has_full_schema",
        -        "price",
        -        "summary",
        -        "tool"
        -      ],
        -      "type": "object"
        -    }
        -  }
        -}
      • removedOutput schema / required
        Removed value: -[
        -  "next_steps_guidance",
        -  "search_id",
        -  "session_id",
        -  "tools"
        -]
    • Changeduse1 field changed
      • changedInput schema / properties / max_price_usd / description
        Previous value: -"Refuse the call before any spend if its quoted price is above this many USD"New value: +"Refuse the call before any spend if it would cost more than this many USD"
  4. 40 tool updates
    • Addedbatch_get_schema
    • Addedbatch_quote
    • Changedbatch_use18 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / properties / calls / description
        Removed value: -"Up to 20 items of {call_id, operation_id, arguments}; steps at the same execution_level of a plan go in one batch"
      • addedInput schema / properties / calls / items / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • changedInput schema / properties / calls / items / additionalProperties
        Previous value: -trueNew value: +false
      • addedInput schema / properties / calls / items / properties
        Added value: +{
        +  "arguments": {
        +    "additionalProperties": true,
        +    "description": "Strictly schema-compliant arguments using the exact field names and types from this tool's arguments_schema.",
        +    "type": "object"
        +  },
        +  "call_id": {
        +    "description": "Caller-chosen identifier unique within this batch.",
        +    "maxLength": 128,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "tool": {
        +    "description": "Exact tool name returned by search or batch_get_schema. Never invent a name.",
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedInput schema / properties / calls / items / required
        Added value: +[
        +  "call_id",
        +  "tool",
        +  "arguments"
        +]
      • addedInput schema / properties / calls / maxItems
        Added value: +20
      • addedInput schema / properties / calls / minItems
        Added value: +1
      • removedInput schema / properties / max_price_usd
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "number"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Per-call price cap applied to every item"
        -}
      • removedInput schema / properties / search_id / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / search_id / default
        Removed value: -null
      • changedInput schema / properties / search_id / description
        Previous value: -"search_id from the search that found these operations"New value: +"Optional search correlation identifier returned by search."
      • addedInput schema / properties / search_id / type
        Added value: +"string"
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.",
        +  "maxLength": 128,
        +  "pattern": "^[A-Za-z0-9_-]*$",
        +  "type": "string"
        +}
      • addedOutput schema / $defs
        Added value: +{
        +  "jsonValue": {
        +    "anyOf": [
        +      {
        +        "additionalProperties": {
        +          "$ref": "#/$defs/jsonValue"
        +        },
        +        "type": "object"
        +      },
        +      {
        +        "items": {
        +          "$ref": "#/$defs/jsonValue"
        +        },
        +        "type": "array"
        +      },
        +      {
        +        "type": "string"
        +      },
        +      {
        +        "type": "number"
        +      },
        +      {
        +        "type": "boolean"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "description": "JSON value returned by the upstream tool."
        +  }
        +}
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / properties
        Added value: +{
        +  "batch_id": {
        +    "type": "string"
        +  },
        +  "error_count": {
        +    "minimum": 0,
        +    "type": "integer"
        +  },
        +  "next_steps_guidance": {
        +    "description": "Deterministic next-step instructions derived from this result. Not an authorization grant.",
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "results": {
        +    "items": {
        +      "$schema": "https://json-schema.org/draft/2020-12/schema",
        +      "additionalProperties": false,
        +      "properties": {
        +        "call_id": {
        +          "type": "string"
        +        },
        +        "customer_cost_micros_usd": {
        +          "description": "Actual customer charge settled by AIsaServices, in micro-USD. Omitted when the upstream response does not report it.",
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "data": {
        +          "$ref": "#/$defs/jsonValue"
        +        },
        +        "error": {
        +          "anyOf": [
        +            {
        +              "$schema": "https://json-schema.org/draft/2020-12/schema",
        +              "additionalProperties": false,
        +              "properties": {
        +                "message": {
        +                  "type": "string"
        +                },
        +                "retryable": {
        +                  "type": "boolean"
        +                },
        +                "status": {
        +                  "type": "integer"
        +                },
        +                "type": {
        +                  "enum": [
        +                    "validation",
        +                    "authentication",
        +                    "payment",
        +                    "permission",
        +                    "rate_limit",
        +                    "upstream",
        +                    "timeout",
        +                    "internal"
        +                  ],
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "type",
        +                "status",
        +                "retryable"
        +              ],
        +              "type": "object"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "request_id": {
        +          "type": "string"
        +        },
        +        "successful": {
        +          "type": "boolean"
        +        },
        +        "tool": {
        +          "type": "string"
        +        },
        +        "upstream_status": {
        +          "description": "HTTP status returned by AIsaServices when a request was dispatched.",
        +          "type": "integer"
        +        }
        +      },
        +      "required": [
        +        "call_id",
        +        "tool",
        +        "successful",
        +        "request_id"
        +      ],
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  "session_id": {
        +    "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.",
        +    "maxLength": 128,
        +    "minLength": 1,
        +    "pattern": "^[A-Za-z0-9_-]*$",
        +    "type": "string"
        +  },
        +  "success_count": {
        +    "minimum": 0,
        +    "type": "integer"
        +  },
        +  "total_count": {
        +    "minimum": 1,
        +    "type": "integer"
        +  }
        +}
      • addedOutput schema / required
        Added value: +[
        +  "session_id",
        +  "batch_id",
        +  "total_count",
        +  "success_count",
        +  "error_count",
        +  "results",
        +  "next_steps_guidance"
        +]
    • Changedget_details13 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / properties / arguments
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "additionalProperties": true,
        -      "type": "object"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "The arguments the operation would be called with, for a price that reflects them. Keyed by operation_id for a batch, or passed flat for a single operation_id. Routes whose required parameters are validated before pricing have no price without them."
        -}
      • addedInput schema / properties / include_arguments_schema
        Added value: +{
        +  "default": true,
        +  "description": "Return the complete arguments_schema. Defaults to true.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / include_documentation / description
        Previous value: -"Include the complete native public OpenAPI document, reference closure and scoped completeness. Existing execution schemas remain unchanged."New value: +"Return the complete immutable public OpenAPI operation, referenced declarations, provenance and scoped completeness. Documentation does not change execution support."
      • addedInput schema / properties / include_response_schema
        Added value: +{
        +  "default": false,
        +  "description": "Return the complete response_schema. Defaults to false.",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / operation_id
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "One operation_id from search"
        -}
      • removedInput schema / properties / operation_ids
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Up to 20 operation_ids, for a batch"
        -}
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.",
        +  "maxLength": 128,
        +  "pattern": "^[A-Za-z0-9_-]*$",
        +  "type": "string"
        +}
      • addedInput schema / properties / tools
        Added value: +{
        +  "description": "Exact tool names returned by search whose complete contracts are needed. Never invent tool names.",
        +  "items": {
        +    "minLength": 1,
        +    "pattern": "^\\S(?:.*\\S)?$",
        +    "type": "string"
        +  },
        +  "maxItems": 20,
        +  "minItems": 1,
        +  "type": "array",
        +  "uniqueItems": true
        +}
      • removedInput schema / properties / with_quote
        Removed value: -{
        -  "default": true,
        -  "description": "Whether each operation is priced for this account before the answer. One round trip per operation; spends nothing.",
        -  "type": "boolean"
        -}
      • addedInput schema / required
        Added value: +[
        +  "tools"
        +]
      • addedOutput schema / properties
        Added value: +{
        +  "error_count": {
        +    "type": "integer"
        +  },
        +  "next_steps_guidance": {
        +    "anyOf": [
        +      {
        +        "type": "null"
        +      },
        +      {
        +        "type": "array"
        +      }
        +    ],
        +    "items": {
        +      "type": "string"
        +    }
        +  },
        +  "session_id": {
        +    "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.",
        +    "maxLength": 128,
        +    "minLength": 1,
        +    "pattern": "^[A-Za-z0-9_-]{1,128}$",
        +    "type": "string"
        +  },
        +  "success_count": {
        +    "type": "integer"
        +  },
        +  "tools": {
        +    "additionalProperties": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "arguments_schema": {
        +          "additionalProperties": true,
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "object"
        +            }
        +          ]
        +        },
        +        "canonical_operation_id": {
        +          "type": "string"
        +        },
        +        "documentation": {
        +          "additionalProperties": true,
        +          "type": "object"
        +        },
        +        "error": {
        +          "additionalProperties": false,
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "object"
        +            }
        +          ],
        +          "properties": {
        +            "code": {
        +              "type": "string"
        +            },
        +            "message": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "code",
        +            "message"
        +          ]
        +        },
        +        "execution_supported": {
        +          "description": "Whether this router can execute and quote the operation; false retains documentation and discovery only.",
        +          "type": "boolean"
        +        },
        +        "execution_unsupported_reason": {
        +          "description": "Why execution and quoting remain unavailable through this router.",
        +          "type": "string"
        +        },
        +        "idempotent": {
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "boolean"
        +            }
        +          ]
        +        },
        +        "known_pitfalls": {
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "array"
        +            }
        +          ],
        +          "items": {
        +            "type": "string"
        +          }
        +        },
        +        "read_only": {
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "boolean"
        +            }
        +          ]
        +        },
        +        "response_schema": {
        +          "additionalProperties": true,
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "object"
        +            }
        +          ]
        +        },
        +        "side_effects": {
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "array"
        +            }
        +          ],
        +          "items": {
        +            "type": "string"
        +          }
        +        },
        +        "successful": {
        +          "type": "boolean"
        +        }
        +      },
        +      "required": [
        +        "successful"
        +      ],
        +      "type": "object"
        +    },
        +    "type": "object"
        +  },
        +  "total_count": {
        +    "type": "integer"
        +  }
        +}
      • addedOutput schema / required
        Added value: +[
        +  "error_count",
        +  "next_steps_guidance",
        +  "session_id",
        +  "success_count",
        +  "tools",
        +  "total_count"
        +]
    • Changedget_similarweb_ad_networks18 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false)."
      • removedInput schema / properties / offset / description
        Removed value: -"Row offset for pagination."
      • addedInput schema / properties / offset / maximum
        Added value: +100000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / traffic_source / description
        Removed value: -"Traffic-source filter."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date",
        -  "limit"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "limit",
        +  "start_date"
        +]
    • Addedget_similarweb_apis_v1_similarweb_keyword_analysi_490801
    • Addedget_similarweb_apis_v1_similarweb_segment_analysi_6349fe
    • Addedget_similarweb_apis_v1_similarweb_segment_analysi_64e47c
    • Addedget_similarweb_apis_v1_similarweb_website_analysi_7399a9
    • Addedget_similarweb_apis_v1_similarweb_website_analysi_850464
    • Addedget_similarweb_apis_v1_similarweb_website_analysi_aa2e1f
    • Changedget_similarweb_audience_interest18 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false)."
      • removedInput schema / properties / offset / description
        Removed value: -"Row offset for pagination."
      • addedInput schema / properties / offset / maximum
        Added value: +100000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / traffic_source / description
        Removed value: -"Traffic-source filter."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date",
        -  "limit"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "limit",
        +  "start_date"
        +]
    • Changedget_similarweb_audience_overlap10 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domains / description
        Removed value: -"Two to five target domains, comma-separated (e.g. cnn.com,bbc.com)."
      • addedInput schema / properties / domains / x-aisa-delimiter
        Added value: +","
      • addedInput schema / properties / domains / x-aisa-maxItems
        Added value: +5
      • addedInput schema / properties / domains / x-aisa-minItems
        Added value: +2
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly. Default: monthly."
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • changedInput schema / required
        Previous value: -[
        -  "domains",
        -  "start_date",
        -  "end_date"
        -]New value: +[
        +  "domains",
        +  "end_date",
        +  "start_date"
        +]
    • Changedget_similarweb_deduplicated_audience11 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly. Default: monthly."
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false). Default: True."
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "start_date"
        +]
    • Changedget_similarweb_demographics12 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +2048
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / format / description
        Removed value: -"Response format. Allowed: json."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false)."
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date",
        -  "granularity"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "granularity",
        +  "start_date"
        +]
    • Changedget_similarweb_keyword_competitors19 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false)."
      • removedInput schema / properties / offset / description
        Removed value: -"Row offset for pagination."
      • addedInput schema / properties / offset / maximum
        Added value: +100000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / traffic_source / description
        Removed value: -"Traffic-source filter."
      • removedInput schema / properties / web_source / description
        Removed value: -"Web source. This endpoint accepts desktop only (the gateway rejects mobile_web and total with 400)."
      • changedInput schema / properties / web_source / enum
        Previous value: -[
        -  "desktop"
        -]New value: +[
        +  "desktop",
        +  "mobile_web",
        +  "total"
        +]
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date",
        -  "limit"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "limit",
        +  "start_date"
        +]
    • Changedget_similarweb_keywords15 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +2048
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / format / description
        Removed value: -"Response format. Allowed: json."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false)."
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date",
        -  "granularity",
        -  "limit"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "granularity",
        +  "limit",
        +  "start_date"
        +]
    • Changedget_similarweb_landing_pages18 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false)."
      • removedInput schema / properties / offset / description
        Removed value: -"Row offset for pagination."
      • addedInput schema / properties / offset / maximum
        Added value: +100000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / traffic_source / description
        Removed value: -"Traffic-source filter."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date",
        -  "limit"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "limit",
        +  "start_date"
        +]
    • Changedget_similarweb_marketing_channel_sources_legacy11 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly. Default: monthly."
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false). Default: True."
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "start_date"
        +]
    • Changedget_similarweb_popular_pages18 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false)."
      • removedInput schema / properties / offset / description
        Removed value: -"Row offset for pagination."
      • addedInput schema / properties / offset / maximum
        Added value: +100000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / traffic_source / description
        Removed value: -"Traffic-source filter."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date",
        -  "limit"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "limit",
        +  "start_date"
        +]
    • Changedget_similarweb_ppc_spend11 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly. Default: monthly."
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false). Default: True."
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "start_date"
        +]
    • Changedget_similarweb_ranking11 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly. Default: monthly."
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false). Default: True."
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "start_date"
        +]
    • Changedget_similarweb_referrals18 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false)."
      • removedInput schema / properties / offset / description
        Removed value: -"Row offset for pagination."
      • addedInput schema / properties / offset / maximum
        Added value: +100000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / traffic_source / description
        Removed value: -"Traffic-source filter."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date",
        -  "limit"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "limit",
        +  "start_date"
        +]
    • Changedget_similarweb_serp_players_aggregated14 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / keyword
        Removed value: -{
        -  "description": "Target keyword.",
        -  "type": "string"
        -}
      • addedInput schema / properties / keywords
        Added value: +{
        +  "type": "string",
        +  "x-aisa-delimiter": ",",
        +  "x-aisa-maxItems": 1,
        +  "x-aisa-minItems": 1
        +}
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / offset / description
        Removed value: -"Row offset for pagination."
      • addedInput schema / properties / offset / maximum
        Added value: +100000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • changedInput schema / required
        Previous value: -[
        -  "keyword",
        -  "start_date",
        -  "end_date",
        -  "limit"
        -]New value: +[
        +  "end_date",
        +  "keywords",
        +  "limit",
        +  "start_date"
        +]
    • Changedget_similarweb_serp_players_timeseries14 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / keyword
        Removed value: -{
        -  "description": "Target keyword.",
        -  "type": "string"
        -}
      • addedInput schema / properties / keywords
        Added value: +{
        +  "type": "string",
        +  "x-aisa-delimiter": ",",
        +  "x-aisa-maxItems": 1,
        +  "x-aisa-minItems": 1
        +}
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / offset / description
        Removed value: -"Row offset for pagination."
      • addedInput schema / properties / offset / maximum
        Added value: +100000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • changedInput schema / required
        Previous value: -[
        -  "keyword",
        -  "start_date",
        -  "end_date",
        -  "limit"
        -]New value: +[
        +  "end_date",
        +  "keywords",
        +  "limit",
        +  "start_date"
        +]
    • Changedget_similarweb_similar_sites18 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM. Together with start_date must span exactly 3 consecutive months, and must be the most recent supported month (the window rolls forward monthly; see the endpoint description)."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false)."
      • removedInput schema / properties / offset / description
        Removed value: -"Row offset for pagination."
      • addedInput schema / properties / offset / maximum
        Added value: +100000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM. Must be exactly 2 months before end_date: the window has to span exactly 3 consecutive months within SimilarWeb's latest supported range (see the endpoint description)."
      • removedInput schema / properties / traffic_source / description
        Removed value: -"Traffic-source filter."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date",
        -  "limit"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "limit",
        +  "start_date"
        +]
    • Changedget_similarweb_subdomains18 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false)."
      • removedInput schema / properties / offset / description
        Removed value: -"Row offset for pagination."
      • addedInput schema / properties / offset / maximum
        Added value: +100000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / traffic_source / description
        Removed value: -"Traffic-source filter."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date",
        -  "limit"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "limit",
        +  "start_date"
        +]
    • Changedget_similarweb_technologies15 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +2048
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / format / description
        Removed value: -"Response format. Allowed: json."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly."
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false)."
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date",
        -  "granularity",
        -  "limit"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "granularity",
        +  "limit",
        +  "start_date"
        +]
    • Changedget_similarweb_top_sites_ranking11 fields changed
      • removedInput schema / properties / category / description
        Removed value: -"Industry category, e.g. Finance."
      • addedInput schema / properties / category / maxLength
        Added value: +191
      • addedInput schema / properties / category / minLength
        Added value: +1
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / limit / default
        Removed value: -20
      • removedInput schema / properties / limit / description
        Removed value: -"Number of rows to return; max 20, billed as 20 if exceeded."
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • removedInput schema / properties / offset / description
        Removed value: -"Row offset for pagination."
      • addedInput schema / properties / offset / maximum
        Added value: +100000
      • addedInput schema / properties / offset / minimum
        Added value: +0
    • Changedget_similarweb_traffic_engagement16 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • removedInput schema / properties / domain / description
        Removed value: -"Target domain, e.g. example.com."
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +1
      • removedInput schema / properties / end_date / description
        Removed value: -"End month, format YYYY-MM."
      • removedInput schema / properties / granularity / description
        Removed value: -"Time granularity. Allowed: monthly. Default: monthly."
      • removedInput schema / properties / main_domain_only / description
        Removed value: -"Restrict to the main domain only (true/false). Default: True."
      • removedInput schema / properties / metrics / description
        Removed value: -"Comma-separated metrics, e.g. visits,pages_per_visit."
      • addedInput schema / properties / metrics / x-aisa-delimiter
        Added value: +","
      • addedInput schema / properties / metrics / x-aisa-maxItems
        Added value: +8
      • addedInput schema / properties / metrics / x-aisa-minItems
        Added value: +1
      • removedInput schema / properties / mtd / description
        Removed value: -"Month-to-date flag (true/false)."
      • removedInput schema / properties / start_date / description
        Removed value: -"Start month, format YYYY-MM."
      • removedInput schema / properties / web_source / description
        Removed value: -"Traffic source device split. Allowed: desktop, mobile_web, total."
      • changedInput schema / required
        Previous value: -[
        -  "domain",
        -  "start_date",
        -  "end_date",
        -  "metrics"
        -]New value: +[
        +  "domain",
        +  "end_date",
        +  "metrics",
        +  "start_date"
        +]
    • Changedget_similarweb_website_top_geographies2 fields changed
      • changedInput schema / properties / domain / description
        Previous value: -"Target domain, e.g. example.com."New value: +"Bare website hostname without scheme, path, port, or credentials."
      • addedInput schema / properties / month
        Added value: +{
        +  "description": "Complete month in YYYY-MM.",
        +  "type": "string",
        +  "x-aisa-default-policy": "previous_complete_utc_month"
        +}
    • Changedget_similarweb_website_traffic_snapshot4 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • changedInput schema / properties / domain / description
        Previous value: -"Target domain, e.g. example.com."New value: +"Bare website hostname without scheme, path, port, or credentials."
      • addedInput schema / properties / month
        Added value: +{
        +  "description": "Complete month in YYYY-MM.",
        +  "type": "string",
        +  "x-aisa-default-policy": "previous_complete_utc_month"
        +}
    • Changedget_similarweb_website_traffic_trend6 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Two-letter country code. Allowed: us, ww. Default: ww. Coverage is limited to ww and us on the current plan."New value: +"Worldwide data only; values are case-insensitive."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "ww"
        -]New value: +[
        +  "ww"
        +]
      • changedInput schema / properties / domain / description
        Previous value: -"Target domain, e.g. example.com."New value: +"Bare website hostname without scheme, path, port, or credentials."
      • addedInput schema / properties / end_date
        Added value: +{
        +  "description": "Inclusive last complete UTC month in YYYY-MM.",
        +  "type": "string"
        +}
      • addedInput schema / properties / metrics
        Added value: +{
        +  "default": "visits",
        +  "description": "One to four supported Traffic & Engagement metrics.",
        +  "type": "string",
        +  "x-aisa-delimiter": ",",
        +  "x-aisa-item-enum": [
        +    "average_visit_duration",
        +    "bounce_rate",
        +    "new_users",
        +    "page_views",
        +    "pages_per_visit",
        +    "returning_users",
        +    "unique_visitors",
        +    "visits"
        +  ],
        +  "x-aisa-maxItems": 4
        +}
      • addedInput schema / properties / start_date
        Added value: +{
        +  "description": "Inclusive first month in YYYY-MM; provide together with end_date.",
        +  "type": "string"
        +}
    • Changedpost_apollo_people_bulk_match11 fields changed
      • removedInput schema / properties / reveal_personal_emails
        Removed value: -{
        -  "description": "Set to true if you want to enrich all matched people with personal emails. This potentially consumes credits as part of your Apollo pricing plan . The default value is false. If a person resides in a GDPR -compliant region, Apollo will not reveal their personal email.",
        -  "type": "boolean"
        -}
      • addedInput schema / properties / reveal_phone_number / default
        Added value: +false
      • removedInput schema / properties / reveal_phone_number / description
        Removed value: -"Set to true if you want to enrich the data of all matched people with all available phone numbers, including mobile phone numbers. This potentially consumes credits as part of your Apollo pricing plan . The default value is false. If this parameter is set to true, you must enter a webhook URL for the webhook_url parameter. Apollo will asynchronously verify phone numbers for you, then send a JSON response that includes only details about the phone numbers to the webhook URL you provide. It can take several minutes for the phone numbers to be delivered."
      • addedInput schema / properties / run_waterfall_email / default
        Added value: +false
      • removedInput schema / properties / run_waterfall_email / description
        Removed value: -"Set to true to enable email waterfall enrichment"
      • addedInput schema / properties / run_waterfall_phone / default
        Added value: +false
      • removedInput schema / properties / run_waterfall_phone / description
        Removed value: -"Set to true to enable phone waterfall enrichment"
      • removedInput schema / properties / webhook_url / description
        Removed value: -"If you set the reveal_phone_number parameter to true, this parameter becomes mandatory. Otherwise, do not use this parameter. Enter the webhook URL that specifies where Apollo should send a JSON response that includes the phone number you requested. Apollo suggests testing this flow to ensure you receive the separate response with the phone number. If phone numbers are not revealed delivered to the webhook URL, try applying UTF-8 encoding to the webhook URL. Example: https://webhook.site/cc4cf44e-e047-4774-8dac-473d28474e40; https%3A%2F%2Fwebhook.site%2Fcc4cf44e-e047-4774-8dac-473d28474e40"
      • addedInput schema / properties / webhook_url / format
        Added value: +"https_url"
      • addedInput schema / properties / webhook_url / maxLength
        Added value: +2048
      • addedInput schema / properties / webhook_url / minLength
        Added value: +1
    • Changedpost_apollo_people_match20 fields changed
      • removedInput schema / properties / domain
        Removed value: -{
        -  "description": "The domain name for the person's employer. This can be the current employer or a previous employer. Do not include www., the @ symbol, or similar. Example: apollo.io or microsoft.com",
        -  "type": "string"
        -}
      • removedInput schema / properties / email
        Removed value: -{
        -  "description": "The email address of the person. Example: example@email.com",
        -  "type": "string"
        -}
      • removedInput schema / properties / first_name
        Removed value: -{
        -  "description": "The first name of the person. This is typically used in combination with the last_name parameter. Example: tim",
        -  "type": "string"
        -}
      • removedInput schema / properties / hashed_email
        Removed value: -{
        -  "description": "The hashed email of the person. The email should adhere to either the MD5 or SHA-256 hash format. Example: 8d935115b9ff4489f2d1f9249503cadf (MD5) or 97817c0c49994eb500ad0a5e7e2d8aed51977b26424d508f66e4e8887746a152 (SHA-256)",
        -  "type": "string"
        -}
      • removedInput schema / properties / id
        Removed value: -{
        -  "description": "The Apollo ID for the person. Each person in the Apollo database is assigned a unique ID. To find IDs, call the People API Search endpoint and identify the values for person_id. Example: 587cf802f65125cad923a266",
        -  "type": "string"
        -}
      • removedInput schema / properties / last_name
        Removed value: -{
        -  "description": "The last name of the person. This is typically used in combination with the first_name parameter. Example: zheng",
        -  "type": "string"
        -}
      • removedInput schema / properties / linkedin_url
        Removed value: -{
        -  "description": "The URL for the person's LinkedIn profile. Example: http://www.linkedin.com/in/tim-zheng-677ba010",
        -  "type": "string"
        -}
      • removedInput schema / properties / name
        Removed value: -{
        -  "description": "The full name of the person. This will typically be a first name and last name separated by a space. If you use this parameter, you do not need to use the first_name and last_name parameters. Example: tim zheng",
        -  "type": "string"
        -}
      • removedInput schema / properties / organization_name
        Removed value: -{
        -  "description": "The name of the person's employer. This can be the current employer or a previous employer. Example: apollo",
        -  "type": "string"
        -}
      • removedInput schema / properties / reveal_personal_emails
        Removed value: -{
        -  "description": "Set to true if you want to enrich the person's data with personal emails. This potentially consumes credits as part of your Apollo pricing plan . The default value is false. If a person resides in a GDPR -compliant region, Apollo will not reveal their personal email.",
        -  "type": "boolean"
        -}
      • addedInput schema / properties / reveal_phone_number / default
        Added value: +false
      • removedInput schema / properties / reveal_phone_number / description
        Removed value: -"Set to true if you want to enrich the person's data with all available phone numbers, including mobile phone numbers. This potentially consumes credits as part of your Apollo pricing plan . The default value is false. If this parameter is set to true, you must enter a webhook URL for the webhook_url parameter. Apollo will asynchronously verify phone numbers for you, then send a JSON response that includes only details about the person's phone numbers to the webhook URL you provide. It can take several minutes for the phone numbers to be delivered."
      • addedInput schema / properties / run_waterfall_email / default
        Added value: +false
      • removedInput schema / properties / run_waterfall_email / description
        Removed value: -"Set to true to enable email waterfall enrichment"
      • addedInput schema / properties / run_waterfall_phone / default
        Added value: +false
      • removedInput schema / properties / run_waterfall_phone / description
        Removed value: -"Set to true to enable phone waterfall enrichment"
      • removedInput schema / properties / webhook_url / description
        Removed value: -"If you set the reveal_phone_number parameter to true, this parameter becomes mandatory. Otherwise, do not use this parameter. Enter the webhook URL that specifies where Apollo should send a JSON response that includes the phone number you requested. Apollo suggests testing this flow to ensure you receive the separate response with the phone number. If phone numbers are not revealed delivered to the webhook URL, try applying UTF-8 encoding to the webhook URL. Example: https://webhook.site/cc4cf44e-e047-4774-8dac-473d28474e40; https%3A%2F%2Fwebhook.site%2Fcc4cf44e-e047-4774-8dac-473d28474e40"
      • addedInput schema / properties / webhook_url / format
        Added value: +"https_url"
      • addedInput schema / properties / webhook_url / maxLength
        Added value: +2048
      • addedInput schema / properties / webhook_url / minLength
        Added value: +1
    • Changedpost_waveinflu_ai_search8 fields changed
      • changedInput schema / properties / limit / default
        Previous value: -40New value: +25
      • removedInput schema / properties / limit / description
        Removed value: -"Maximum number of creators to return. Default 40, range 1–100. Caps the billed count."
      • removedInput schema / properties / limit / example
        Removed value: -10
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / platform / default
        Added value: +"youtube"
      • removedInput schema / properties / platform / description
        Removed value: -"Target platform."
      • removedInput schema / properties / platform / example
        Removed value: -"instagram"
      • changedInput schema / required
        Previous value: -[
        -  "platform",
        -  "query"
        -]New value: +[
        +  "query"
        +]
    • Changedpost_waveinflu_email_lookup3 fields changed
      • removedInput schema / properties / profile_url / description
        Removed value: -"Instagram, TikTok, or YouTube creator profile URL."
      • removedInput schema / properties / profile_url / example
        Removed value: -"https://www.instagram.com/onkimia/"
      • changedInput schema / required
        Previous value: -[
        -  "profile_url"
        -]New value: +[]
    • Changedpost_waveinflu_similar_creators8 fields changed
      • changedInput schema / properties / limit / default
        Previous value: -40New value: +25
      • removedInput schema / properties / limit / description
        Removed value: -"Maximum number of creators to return. Default 40, range 1–100. Caps the billed count."
      • removedInput schema / properties / limit / example
        Removed value: -10
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / platform / default
        Added value: +"youtube"
      • removedInput schema / properties / platform / description
        Removed value: -"Target platform."
      • removedInput schema / properties / platform / example
        Removed value: -"instagram"
      • changedInput schema / required
        Previous value: -[
        -  "platform",
        -  "target_account"
        -]New value: +[
        +  "target_account"
        +]
    • Changedsearch17 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / properties / category / anyOf
        Removed value: -[
        -  {
        -    "enum": [
        -      "seo",
        -      "finance",
        -      "social",
        -      "search",
        -      "sales",
        -      "mail"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / category / default
        Removed value: -null
      • changedInput schema / properties / category / description
        Previous value: -"Restrict to one category (seo, finance, social, search, sales, mail). Omit to search everything."New value: +"Restrict retrieval to one category. Omit to search everything. (AIsa-only: tool-router has no equivalent.)"
      • addedInput schema / properties / category / enum
        Added value: +[
        +  "seo",
        +  "finance",
        +  "social",
        +  "search",
        +  "sales",
        +  "mail"
        +]
      • addedInput schema / properties / category / type
        Added value: +"string"
      • addedInput schema / properties / known_fields
        Added value: +{
        +  "additionalProperties": true,
        +  "default": {},
        +  "description": "Known values such as ticker, URL, provider, or identifier that improve retrieval.",
        +  "type": "object"
        +}
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum candidates, 1-10"New value: +"Maximum number of additional direct tool candidates."
      • addedInput schema / properties / limit / maximum
        Added value: +20
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • addedInput schema / properties / provider_filters
        Added value: +{
        +  "default": [],
        +  "description": "Optional exact catalog provider keys used to narrow retrieval (for example similarweb). Do not use display brands. Omit this field if the exact key is unknown.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "maxItems": 50,
        +  "type": "array",
        +  "uniqueItems": true
        +}
      • changedInput schema / properties / query / description
        Previous value: -"What you need, in plain language, e.g. 'backlinks of a domain', 'recent tweets by a user', 'insider trades for AAPL'. English works best."New value: +"Natural-language capability or task to discover."
      • addedInput schema / properties / query / maxLength
        Added value: +2000
      • addedInput schema / properties / query / minLength
        Added value: +1
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.",
        +  "maxLength": 128,
        +  "pattern": "^[A-Za-z0-9_-]*$",
        +  "type": "string"
        +}
      • addedOutput schema / properties
        Added value: +{
        +  "next_steps_guidance": {
        +    "anyOf": [
        +      {
        +        "type": "null"
        +      },
        +      {
        +        "type": "array"
        +      }
        +    ],
        +    "items": {
        +      "type": "string"
        +    }
        +  },
        +  "plan": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "type": "null"
        +      },
        +      {
        +        "type": "object"
        +      }
        +    ],
        +    "properties": {
        +      "canonical_use_case": {
        +        "type": "string"
        +      },
        +      "description": {
        +        "type": "string"
        +      },
        +      "known_pitfalls": {
        +        "anyOf": [
        +          {
        +            "type": "null"
        +          },
        +          {
        +            "type": "array"
        +          }
        +        ],
        +        "items": {
        +          "type": "string"
        +        }
        +      },
        +      "plan_ref": {
        +        "type": "string"
        +      },
        +      "primary_tools": {
        +        "anyOf": [
        +          {
        +            "type": "null"
        +          },
        +          {
        +            "type": "array"
        +          }
        +        ],
        +        "items": {
        +          "type": "string"
        +        }
        +      },
        +      "recommended_steps": {
        +        "anyOf": [
        +          {
        +            "type": "null"
        +          },
        +          {
        +            "type": "array"
        +          }
        +        ],
        +        "items": {
        +          "type": "string"
        +        }
        +      },
        +      "related_tools": {
        +        "anyOf": [
        +          {
        +            "type": "null"
        +          },
        +          {
        +            "type": "array"
        +          }
        +        ],
        +        "items": {
        +          "type": "string"
        +        }
        +      }
        +    },
        +    "required": [
        +      "canonical_use_case",
        +      "description",
        +      "known_pitfalls",
        +      "plan_ref",
        +      "primary_tools",
        +      "recommended_steps",
        +      "related_tools"
        +    ]
        +  },
        +  "retrieval_mode": {
        +    "anyOf": [
        +      {
        +        "type": "null"
        +      },
        +      {
        +        "type": "string"
        +      }
        +    ]
        +  },
        +  "search_id": {
        +    "type": "string"
        +  },
        +  "session_id": {
        +    "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.",
        +    "maxLength": 128,
        +    "minLength": 1,
        +    "pattern": "^[A-Za-z0-9_-]{1,128}$",
        +    "type": "string"
        +  },
        +  "tools": {
        +    "anyOf": [
        +      {
        +        "type": "null"
        +      },
        +      {
        +        "type": "array"
        +      }
        +    ],
        +    "items": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "arguments_schema": {
        +          "additionalProperties": true,
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "object"
        +            }
        +          ]
        +        },
        +        "description": {
        +          "type": "string"
        +        },
        +        "execution_supported": {
        +          "description": "Whether this router can execute and quote the operation; false retains documentation and discovery only.",
        +          "type": "boolean"
        +        },
        +        "execution_unsupported_reason": {
        +          "description": "Why execution and quoting remain unavailable through this router.",
        +          "type": "string"
        +        },
        +        "has_full_schema": {
        +          "type": "boolean"
        +        },
        +        "match_reasons": {
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "array"
        +            }
        +          ],
        +          "items": {
        +            "type": "string"
        +          }
        +        },
        +        "price": {
        +          "additionalProperties": true,
        +          "type": "object"
        +        },
        +        "retrieval_debug": {
        +          "additionalProperties": false,
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "object"
        +            }
        +          ],
        +          "properties": {
        +            "fused_rank": {
        +              "type": "integer"
        +            },
        +            "fused_score": {
        +              "type": "number"
        +            },
        +            "lexical_rank": {
        +              "type": "integer"
        +            },
        +            "lexical_score": {
        +              "type": "number"
        +            },
        +            "rerank_admission_rank": {
        +              "type": "integer"
        +            },
        +            "rerank_rank": {
        +              "type": "integer"
        +            },
        +            "rerank_score": {
        +              "anyOf": [
        +                {
        +                  "type": "null"
        +                },
        +                {
        +                  "type": "number"
        +                }
        +              ]
        +            },
        +            "runtime_availability": {
        +              "type": "string"
        +            },
        +            "vector_view_ranks": {
        +              "additionalProperties": {
        +                "type": "integer"
        +              },
        +              "type": "object"
        +            },
        +            "vector_view_scores": {
        +              "additionalProperties": {
        +                "type": "number"
        +              },
        +              "type": "object"
        +            }
        +          },
        +          "required": [
        +            "fused_rank",
        +            "fused_score",
        +            "lexical_rank",
        +            "lexical_score",
        +            "rerank_admission_rank",
        +            "rerank_rank",
        +            "runtime_availability",
        +            "vector_view_ranks",
        +            "vector_view_scores"
        +          ]
        +        },
        +        "summary": {
        +          "type": "string"
        +        },
        +        "tool": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "description",
        +        "has_full_schema",
        +        "price",
        +        "summary",
        +        "tool"
        +      ],
        +      "type": "object"
        +    }
        +  }
        +}
      • addedOutput schema / required
        Added value: +[
        +  "next_steps_guidance",
        +  "search_id",
        +  "session_id",
        +  "tools"
        +]
    • Changeduse1 field changed
      • changedInput schema / properties / max_price_usd / description
        Previous value: -"Refuse the call before any spend if it would cost more than this many USD"New value: +"Refuse the call before any spend if its quoted price is above this many USD"
  5. 1 tool update
    • Changedget_details1 field changed
      • addedInput schema / properties / include_documentation
        Added value: +{
        +  "default": false,
        +  "description": "Include the complete native public OpenAPI document, reference closure and scoped completeness. Existing execution schemas remain unchanged.",
        +  "type": "boolean"
        +}
  6. 3 tool updates
    • Addedpost_waveinflu_ai_search
    • Changedpost_waveinflu_email_lookup3 fields changed
      • addedInput schema / properties / profile_url
        Added value: +{
        +  "description": "Instagram, TikTok, or YouTube creator profile URL.",
        +  "example": "https://www.instagram.com/onkimia/",
        +  "type": "string"
        +}
      • removedInput schema / properties / url
        Removed value: -{
        -  "description": "TikTok, Instagram, or YouTube creator profile URL.",
        -  "example": "https://www.instagram.com/onkimia/",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "url"
        -]New value: +[
        +  "profile_url"
        +]
    • Changedpost_waveinflu_similar_creators21 fields changed
      • removedInput schema / properties / contentDirection
        Removed value: -{
        -  "description": "Natural-language description of the creator type you are looking for. Max 800 characters.",
        -  "example": "consumer tech creators covering AI apps, Android phones, productivity gadgets, and honest product reviews",
        -  "maxLength": 800,
        -  "type": "string"
        -}
      • addedInput schema / properties / filters / description
        Added value: +"Optional filters applied before matching. All fields are optional."
      • addedInput schema / properties / filters / properties / creatorTypes
        Added value: +{
        +  "description": "Creator account types, e.g. [\"individual\", \"brand\"].",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / filters / properties / ethnicities
        Added value: +{
        +  "description": "Inferred creator ethnicities.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / filters / properties / faceVisibilities
        Added value: +{
        +  "description": "Face-visibility classifications, e.g. [\"clear_face\", \"mixed\", \"no_face\"].",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / filters / properties / genders
        Added value: +{
        +  "description": "Inferred creator genders, e.g. [\"female\", \"male\"].",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / filters / properties / maxPlayCount
        Added value: +{
        +  "description": "Maximum play / view count, measured by `playCountMetric`.",
        +  "type": "number"
        +}
      • removedInput schema / properties / filters / properties / maxVideosAverageViews
        Removed value: -{
        -  "description": "Maximum average view / play count.",
        -  "type": "number"
        -}
      • addedInput schema / properties / filters / properties / minPlayCount
        Added value: +{
        +  "description": "Minimum play / view count, measured by `playCountMetric`.",
        +  "type": "number"
        +}
      • removedInput schema / properties / filters / properties / minVideosAverageViews
        Removed value: -{
        -  "description": "Minimum average view / play count.",
        -  "type": "number"
        -}
      • addedInput schema / properties / filters / properties / playCountMetric
        Added value: +{
        +  "description": "Whether `minPlayCount` / `maxPlayCount` are compared against the median or the average play count.",
        +  "enum": [
        +    "median",
        +    "average"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / filters / properties / regions / description
        Previous value: -"Creator regions, e.g. [\"US\", \"GB\", \"JP\"]."New value: +"Creator regions (ISO country codes), e.g. [\"US\", \"GB\", \"JP\"]."
      • addedInput schema / properties / filters / properties / workspaceDeduplicationEnabled
        Added value: +{
        +  "description": "When true, creators already saved in your workspace are excluded from the results.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / limit / default
        Previous value: -25New value: +40
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of creators to return. Default 25, range 1–100."New value: +"Maximum number of creators to return. Default 40, range 1–100. Caps the billed count."
      • changedInput schema / properties / platform / description
        Previous value: -"Target platform. Currently supports youtube and tiktok."New value: +"Target platform."
      • changedInput schema / properties / platform / enum
        Previous value: -[
        -  "youtube",
        -  "tiktok"
        -]New value: +[
        +  "instagram",
        +  "tiktok",
        +  "youtube"
        +]
      • changedInput schema / properties / platform / example
        Previous value: -"youtube"New value: +"instagram"
      • removedInput schema / properties / seedProfileUrl
        Removed value: -{
        -  "description": "YouTube or TikTok creator profile URL as the seed for matching.",
        -  "example": "https://www.youtube.com/@mkbhd",
        -  "type": "string"
        -}
      • addedInput schema / properties / target_account
        Added value: +{
        +  "description": "Seed account: a creator handle (with or without @) or profile URL to find similar creators for.",
        +  "example": "@onkimia",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "platform"
        -]New value: +[
        +  "platform",
        +  "target_account"
        +]
  7. 84 tool updates
    • First observedbatch_use
    • First observedget_apollo_account_stages
    • First observedget_apollo_accounts_id
    • First observedget_apollo_contact_stages
    • First observedget_apollo_contacts_contact_id
    • First observedget_apollo_email_accounts
    • First observedget_apollo_emailer_messages_id_activities
    • First observedget_apollo_emailer_messages_search
    • First observedget_apollo_fields
    • First observedget_apollo_labels
    • First observedget_apollo_notes
    • First observedget_apollo_opportunities_opportunity_id
    • First observedget_apollo_opportunities_search
    • First observedget_apollo_opportunity_stages
    • First observedget_apollo_organizations_enrich
    • First observedget_apollo_organizations_id
    • First observedget_apollo_organizations_organization_id_job_postings
    • First observedget_apollo_phone_calls_search
    • First observedget_apollo_typed_custom_fields
    • First observedget_apollo_users_search
    • First observedget_details
    • First observedget_similarweb_ad_networks
    • First observedget_similarweb_audience_interest
    • First observedget_similarweb_audience_overlap
    • First observedget_similarweb_deduplicated_audience
    • First observedget_similarweb_demographics
    • First observedget_similarweb_keyword_competitors
    • First observedget_similarweb_keywords
    • First observedget_similarweb_landing_pages
    • First observedget_similarweb_marketing_channel_sources_legacy
    • First observedget_similarweb_popular_pages
    • First observedget_similarweb_ppc_spend
    • First observedget_similarweb_ranking
    • First observedget_similarweb_referrals
    • First observedget_similarweb_serp_players_aggregated
    • First observedget_similarweb_serp_players_timeseries
    • First observedget_similarweb_similar_sites
    • First observedget_similarweb_subdomains
    • First observedget_similarweb_technologies
    • First observedget_similarweb_top_sites_ranking
    • First observedget_similarweb_traffic_engagement
    • First observedget_similarweb_website_top_geographies
    • First observedget_similarweb_website_traffic_snapshot
    • First observedget_similarweb_website_traffic_trend
    • First observedlist_categories
    • First observedpatch_apollo_accounts_account_id
    • First observedpatch_apollo_contacts_contact_id
    • First observedpatch_apollo_opportunities_opportunity_id
    • First observedpost_apollo_accounts
    • First observedpost_apollo_accounts_bulk_create
    • First observedpost_apollo_accounts_bulk_update
    • First observedpost_apollo_accounts_search
    • First observedpost_apollo_accounts_update_owners
    • First observedpost_apollo_contacts
    • First observedpost_apollo_contacts_bulk_create
    • First observedpost_apollo_contacts_bulk_update
    • First observedpost_apollo_contacts_search
    • First observedpost_apollo_contacts_update_owners
    • First observedpost_apollo_contacts_update_stages
    • First observedpost_apollo_emailer_campaigns_add_contact_ids
    • First observedpost_apollo_emailer_campaigns_remove_or_stop_contact_ids
    • First observedpost_apollo_emailer_campaigns_search
    • First observedpost_apollo_emailer_campaigns_sequence_id_abort
    • First observedpost_apollo_emailer_campaigns_sequence_id_approve
    • First observedpost_apollo_emailer_campaigns_sequence_id_archive
    • First observedpost_apollo_fields
    • First observedpost_apollo_mixed_companies_search
    • First observedpost_apollo_mixed_people_api_search
    • First observedpost_apollo_news_articles_search
    • First observedpost_apollo_opportunities
    • First observedpost_apollo_organizations_bulk_enrich
    • First observedpost_apollo_people_bulk_match
    • First observedpost_apollo_people_match
    • First observedpost_apollo_phone_calls
    • First observedpost_apollo_reports_sync_report
    • First observedpost_apollo_tasks
    • First observedpost_apollo_tasks_bulk_create
    • First observedpost_apollo_tasks_search
    • First observedpost_apollo_usage_stats_api_usage_stats
    • First observedpost_waveinflu_email_lookup
    • First observedpost_waveinflu_similar_creators
    • First observedput_apollo_phone_calls_id
    • First observedsearch
    • First observeduse

Publisher details

Operator
AIsa · Publisher source
Operator website
https://aisa.one
Vendor relationship
Independent
Trust center
Not available
Restrictions
No paid plan, admin approval, regional limit or custom OAuth app is needed to connect. Sign-in is OAuth against auth.aisa.one with dynamic client registration (RFC 7591), or an Authorization: Bearer AIsa API key. search, get_details and list_categories are free. use and batch_use are billed per call to the caller's own AIsa key, and max_price_usd refuses anything above a cap before any spend. Some operations are subscription-only on the gateway and answer 402 without the Hive GTM Growth plan.

Related MCP Connectors

  • Your agent needs B2B contacts and the pipeline objects around them — find the company, find the person, get the email, then write it back where your team works. **What you can ask for** • "Find heads of engineering at Series-B SaaS companies in the Nordics, with emails." • "Enrich these companies with headcount, industry and funding." • "What roles is this company hiring for right now?" • "Create an account and a contact, then log this opportunity." • "Search our sequences for messages sent to this domain." **How to use it** Point any MCP client at https://mcp.aisa.one/apollo/mcp and sign in with OAuth — there is no key to create or paste. 54 tools: people and organisation search and enrichment, job postings, accounts, contacts, opportunities and their stages, custom fields, labels, notes, users, email accounts, sequence messages and phone-call search — reads and writes. **Why this rather than the source** The full object model, not just a search endpoint, so an agent can finish the job rather than hand you a CSV. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Find the person here, then ask the same agent what their company's traffic looks like or what they rank for — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/sales/mcp adds Similarweb and creator discovery around it.

  • Your agent needs one go-to-market picture — the market, the companies in it, the people who decide, and what is being said about them — in a single set of tools. **What you can ask for** • "Size this market: who ranks, who gets the traffic, who advertises." • "Find the companies that fit and the people to email inside them." • "What is being said about these brands on X, Reddit and Instagram?" • "Which of these prospects is hiring for roles that imply budget?" • "Give me a competitor's keywords, backlinks and traffic mix in one pass." **How to use it** Point any MCP client at https://mcp.aisa.one/gtm/mcp and sign in with OAuth — there is no key to create or paste. 43 tools drawn from Apollo, Similarweb, Semrush, Ahrefs, X/Twitter, Instagram, Reddit and Pinterest — company enrichment and job postings, traffic and audience, keywords, backlinks and domain rating, and social search. **Why this rather than the source** The cross-source questions that usually need four tabs, answered in one conversation. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Start anywhere here, then keep going — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/sales/mcp for the pipeline side, https://mcp.aisa.one/seo/mcp for the search side, https://mcp.aisa.one/social/mcp for the conversation side.

  • Your agent needs live data — a competitor's traffic, who to contact there, what people are saying, what Google and ChatGPT answer about you, a company's filings. Normally that is six vendor accounts, six sets of keys and six SDKs. This is one URL. **What you can ask for** • "How much traffic does stripe.com get, where does it come from, and who competes for the same keywords?" • "Find 20 Series-B fintech companies in Germany and the heads of marketing there, with emails." • "Does ChatGPT mention our brand when someone asks for the best CRM — and what does it cite?" • "What is X saying about $NVDA today, and what did the stock actually do?" • "Search the web for this, then scrape the three best pages into markdown." **How to use it** Point any MCP client at https://mcp.aisa.one/mcp and sign in with OAuth — there is no key to create or paste. Then just ask: the agent calls search to find the right operation and use to run it. **Why this rather than the source** 26 sources behind one account and one bill — DataForSEO, Semrush, Ahrefs, Similarweb, Apollo, X/Twitter, Instagram, Reddit, Pinterest, YouTube, Tavily, Exa, Perplexity, Firecrawl, CoinGecko, Kalshi, Polymarket, AgentMail and more, 580+ operations. tools/list returns five tools, not 580, so the introduction does not eat your context window. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** One slice at a time: https://mcp.aisa.one/seo/mcp · /finance/mcp · /social/mcp · /search/mcp · /sales/mcp · /mail/mcp · /gtm/mcp, or a single provider like /twitter-api/mcp. Same account, fewer tools listed, and search still reaches everything. Full list at https://mcp.aisa.one/servers

  • Your agent needs X/Twitter data — who follows a competitor, what a community is posting, who quoted that tweet, what is trending in Japan. Normally that means applying for an X developer account, passing app review, and managing a quota per endpoint. **What you can ask for** • "Who follows @stripe, and which of them are verified?" • "Pull every reply and quote on this tweet and summarise what people object to." • "List this community's moderators and its posts this week." • "What is trending in Japan right now?" • "Give me the full thread context behind this link, including the long-form article." **How to use it** Point any MCP client at https://mcp.aisa.one/twitter-api/mcp and sign in with OAuth — there is no key to create or paste. 29 read tools: users (profile, about, batch lookup by id, search, followers, verified followers, followings, follow check), tweets (timeline, latest, mentions, advanced search, replies, quotes, retweeters, thread context, articles), communities, lists, Spaces and trends. **Why this rather than the source** No developer account to apply for, no app review, no per-endpoint quota to manage. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Ask for a handle's followers here, then ask the same agent for that brand's search traffic, its backlinks, or the people to contact — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/social/mcp for X plus Instagram, Reddit, Pinterest and YouTube; https://mcp.aisa.one/gtm/mcp for those plus Similarweb and Apollo.

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Apollo.io MCP server for prospecting, lead enrichment, sales intelligence, and outreach workflows. Integrates Apollo.io go-to-market data into MCP-compatible AI applications.
    30
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Give your AI agent access to 60M+ companies and 300M+ verified contacts. Enrich leads, find work emails, discover tech stacks, and identify buying intent — directly from Claude, Cursor, Windsurf, or any MCP-compatible AI agent.
    11
    6 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Argorant MCP Server — give your AI agent direct access to 614M verified B2B contacts. Query by industry, role, geography, and 100+ filters, then export emails verified by a live SMTP probe at request time (catch-alls flagged, invalids free). OAuth-secured. Works with Claude, ChatGPT, Cursor, and any MCP client. Endpoint: https://mcp.argorant.com/mcp
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A unified MCP server that connects HubSpot, Clay, Apollo, Slack, and email to enable AI agents to execute multi-step GTM workflows such as prospecting, enrichment, CRM updates, and notifications.
    6 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources