Skip to main content
Glama

AIsa Technologies & Whois

Server Details

Your agent needs to know what a site is built on and who owns it — or to find every site running a given technology.

What you can ask for • "What is this site built on — CMS, analytics, payments, CDN?" • "Find every domain running Shopify in Germany." • "Who owns this domain, and when does it expire?" • "How many sites use this technology, and is that growing?" • "Find domains whose HTML contains this snippet."

How to use it Point any MCP client at https://mcp.aisa.one/seo-domains/mcp and sign in with OAuth — there is no key to create or paste. 12 tools: technology detection for one domain, domains by technology, domains by HTML term, technology stats and aggregations, plus whois overview and its filters.

Why this rather than the source Prospecting by tech stack and ownership lookup in the same call shape.

It is also a door to the rest The same login reaches 26 sources and 580+ operations. Find the stack here, then ask the same agent for that company's traffic and 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/sales/mcp turns a technology list into a contactable pipeline. https://mcp.aisa.one/seo/mcp for all of it at once — rankings, keywords, backlinks, site health and AI-answer visibility across DataForSEO, Semrush and Ahrefs.

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

TDQS

B3.2/5.0

Scored across 19 tools

Disambiguation3/5

Most DataForSEO tech endpoints are distinguishable by their descriptions, but the set mixes meta-tools and data endpoints in ways that can confuse selection. The deprecated `use` next to `batch_use`, plus overlapping-sounding tech endpoints such as aggregation, summary, and technology_stats, create avoidable ambiguity.

Naming Consistency2/5

All names are snake_case, but conventions vary widely: noun-like names (`account`, `search`), `batch_*` meta-tools, `list_categories`, and long `get_dataforseo_*` / `post_dataforseo_*_live` endpoint names. The deprecated `use` further breaks any predictable verb_noun pattern.

Tool Count4/5

At 19 tools, the surface is slightly heavy but reasonable for a router plus DataForSEO domains-tech and WHOIS endpoint coverage. Each endpoint appears to have a specific role, though the deprecated `use` tool should be removed.

Completeness4/5

The AIsa discovery, schema, quote, and execution workflow is covered, and the DataForSEO tech/WHOIS surface includes useful reference and live endpoints. Minor gaps remain around direct single-domain WHOIS convenience and task-result patterns, but core workflows are workable.

Available Tools

19 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_dataforseo_domains_tech_available_filtersFilters for Domain Analytics Technologies APIB
Read-onlyIdempotent
Inspect

‌‌ Here you will find all the necessary information about filters that can be used with Domain Analytics Technologies API endpoints.

Usage-based billing; Default request estimate: $0.012 USD (not a fixed price). 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 readOnly, idempotent, openWorld and non-destructive, and an output schema exists, so the safety profile is covered. The description adds a genuinely useful behavioral detail — usage-based billing (~$0.012 per request, non-fixed) — but does nothing else to characterize behavior beyond what structured fields supply.

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 short and front-loaded. However, the text opens with stray zero-width characters and is padded by a templated pricing block that, while useful, is boilerplate rather than tool-specific content.

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 parameterless read-only discovery tool with a defined output schema, the description supplies enough to call it correctly. Return values are covered by the output schema, so the only real omission is any hint of when in a workflow to use it.

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 to document and the 4 baseline applies. The empty schema is trivially complete and the description need not compensate.

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 the resource clearly: filters usable with Domain Analytics Technologies API endpoints. It is distinguishable from siblings like get_dataforseo_domains_tech_languages or _list, though it does not explicitly name or contrast an alternative. The verb is weak ('you will find') for a discovery tool, but purpose is still legible.

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 mentioned. The agent is left to infer that this is a discovery call made before issuing filtered queries against sibling endpoints.

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

get_dataforseo_domains_tech_languagesList of Languages for Domain Analytics Technologies APIB
Read-onlyIdempotent
Inspect

You will receive the list of languages by calling this API.   As a response of the API server, you will receive JSON-encoded data containing a tasks array with the information specific to the set tasks.

Usage-based billing; Default request estimate: $0.012 USD (not a fixed price). Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault

No parameters

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, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered structurally. The description adds one genuinely useful behavioral fact — usage-based billing with a ~$0.012 per-request estimate — but its response-shape sentence ('tasks array') merely duplicates what the existing output schema already provides.

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, but the second sentence about the API server returning JSON with a tasks array is filler given the output schema exists, and the pricing block is injected boilerplate. The useful content (what it returns, what it costs) is not clearly front-loaded.

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 list endpoint with a full output schema and read-only annotations, the description covers the essentials: what is returned and that billing applies. The missing piece is scope/usage context relative to sibling endpoints, which keeps it from being fully complete.

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 no parameter semantics to explain; the baseline for a no-param tool is 4. Nothing in the description misleads about inputs, and no compensating detail is required.

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 that the caller receives 'the list of languages', which matches the tool's name almost word-for-word, so the purpose is discernible but largely a restatement rather than an independent specification. It never distinguishes this from the closely-named sibling get_dataforseo_domains_tech_locations, nor does it say what the language list is scoped to. Adequate but thin.

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 statement of when to call this versus the sibling lookup endpoints (locations, available_filters, list) or the post_* analytics endpoints. The only 'guidance' is the tautological instruction to call the API. An agent must infer the use case entirely 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.

get_dataforseo_domains_tech_listList of Technologies for Domain Analytics Technologies APIA
Read-onlyIdempotent
Inspect

This endpoint will provide you with the full list of available technologies structured by technology groups and categories each particular technology belongs to.

Usage-based billing; Default request estimate: $0.012 USD (not a fixed price). 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, openWorldHint and destructiveHint=false, so the safety profile is fully covered. The description adds a genuinely useful behavioral detail not in annotations: usage-based billing with a ~$0.012 default request estimate and the caveat that final pricing may differ. It says nothing about auth needs or response shape, but the output schema covers the latter.

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. The trailing pricing block is template boilerplate rather than tool-specific prose, but it is short and informative, so it does not meaningfully dilute 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?

For a zero-parameter read-only reference endpoint with an output schema and full annotation coverage, the description supplies what the agent needs: what the list contains and how it is structured. Only the when-to-use routing to sibling endpoints 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 there is nothing for the description to disambiguate; the 4 baseline applies. The mention of grouping structure is a minor bonus but not a parameter concern.

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: returns the full list of available technologies, and adds the shape of the payload (grouped by technology groups and categories). An agent can distinguish it from the sibling languages/locations/filters endpoints. It stops short of explicitly naming those siblings as alternatives, so it is clear but not fully 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?

Usage is only implied: an agent can infer this is the reference lookup to call before using technology names in post_dataforseo_domains_tech_domains_by_technology_live, but the description never says when to use it or when not to. No prerequisites, no routing to alternatives such as available_filters or languages.

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

get_dataforseo_domains_tech_locationsList of Locations for Domain Analytics Technologies APIC
Read-onlyIdempotent
Inspect

You will receive the list of locations by this API call.

Usage-based billing; Default request estimate: $0.012 USD (not a fixed price). Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.5/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 behavior, so the safety profile is covered. The description adds essentially nothing behavioral except a usage-based pricing note, and says nothing about response size, caching, or how locations are scoped.

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 core sentence is short and front-loaded, but the bulk of the text is an auto-injected pricing block that is irrelevant to invoking the tool. It is not verbose in a harmful way, but the signal-to-noise ratio is poor.

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 no parameters and an output schema present, the description needn't explain return values, and annotations cover safety. However, it never explains what a 'location' is or how the returned values feed into the other domains/tech endpoints, which is the main thing an agent would need to use this tool 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?

The tool takes zero parameters, so the schema baseline of 4 applies; there is nothing for the description to clarify. No parameter-level value is added or needed.

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 that 'you will receive the list of locations by this API call,' which essentially restates the tool name and title without adding a verb+resource description of what the data represents. It makes no attempt to differentiate from near-identical siblings such as get_dataforseo_domains_tech_languages or get_dataforseo_domains_tech_available_filters.

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 tool, what it is a prerequisite for, or how it relates to the post_dataforseo_domains_tech_* siblings that presumably consume location values. The only added text is billing boilerplate, which does not help selection.

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

get_dataforseo_domains_whois_available_filtersFilters for Domain Analytics Whois APIC
Read-onlyIdempotent
Inspect

‌‌ Here you will find all the necessary information about filters that can be used with Domain Analytics Whois API.

Usage-based billing; Default request estimate: $0.012 USD (not a fixed price). Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault

No parameters

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, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds no behavioral context beyond that—no statement of what the response contains, whether results are static, or any rate/caching behavior.

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 core description is a single short sentence, which is appropriately brief, but 'Here you will find all the necessary information' is filler that does not earn its place. The injected pricing note is boilerplate, not tool semantics.

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 zero parameters and an output schema present, the description has little to carry and need not explain return values. Still, it never states what the filter reference includes or how it should be used, leaving a low-complexity tool only minimally covered.

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 no parameters, so per the rubric the baseline is 4. Schema coverage is 100% and there is nothing for the description to add on parameters.

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 indicates the tool surfaces filter information for the Domain Analytics Whois API, and the word 'Whois' loosely distinguishes it from the sibling 'tech' filters tool. However, 'all the necessary information about filters' is vague about what is actually returned (a reference list of filter fields?), so the purpose is only implied.

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 prerequisites, and no routing to alternatives such as the parallel tech filters tool. An agent must infer that this is a reference lookup to consult before querying the Whois API.

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.

post_dataforseo_domains_tech_aggregation_liveAggregation TechnologiesB
Destructive
Inspect

‌‌ The Aggregation Technologies endpoint will provide you with a list of the most popular technologies websites use alongside the technologies you specify. Alternatively, you can specify technology categories or groups to obtain wider stats.

Usage-based billing; Default request estimate: $0.012 USD (not a fixed price). Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyNo

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 safety profile is covered structurally. The description adds a genuinely new behavioral trait — usage-based billing with a ~$0.012 estimate — which is useful cost context. It does not, however, reconcile the surprising destructive/non-idempotent flags with what reads like a data-retrieval call, nor mention rate limits or result limits.

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 plus a billing note, with the core purpose front-loaded. The pricing disclosure earns its space. Minor deduction for leading zero-width artifacts and for spending words on billing while omitting routing/parameter context.

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 correctly need not be explained. But for an endpoint with 13 nested optional fields, pagination limits (limit/offset up to 10000/9999) and the destructive-flag mismatch, the description leaves meaningful gaps an agent would want covered before issuing a paid 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 reported at 0% and the single top-level body parameter is undocumented in the description; the description only alludes to the three mutually exclusive input fields (technology, category, group) without explaining their alternative semantics. The nested schema itself is richly documented per field, so the description neither compensates fully nor contradicts 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?

The description names the resource (technology aggregation data) and what it returns: a list of the most popular technologies alongside the ones specified, or wider stats for categories/groups. This is clear and non-tautological. It does not, however, differentiate itself from close siblings such as post_dataforseo_domains_tech_technology_stats_live or post_dataforseo_domains_tech_summary_live, which an agent must disambiguate on its own.

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?

It hints at two input modes ('specify technologies' vs 'specify categories or groups for wider stats') but never says when to prefer this tool over the numerous sibling aggregation/stats endpoints. There are no when-not-to-use conditions and no named alternatives, so an agent gets no routing guidance.

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

post_dataforseo_domains_tech_domains_by_html_terms_liveDomains by HTML TermsB
Destructive
Inspect

‌‌ This endpoint provides domains based on the HTML terms they use on their homepage. In addition to the list of domains, you will also get their technology profiles, the country and language they belong to, and other related data.

Usage-based billing; Default request estimate: $0.012 USD (not a fixed price). Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyNo

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, openWorldHint=true and idempotentHint=false, so safety behavior is delegated to structured data. The description adds value only by naming what comes back (technology profiles, country, language) and by disclosing usage-based billing with a ~$0.012 estimate, but it says nothing about rate limits, auth, or pagination via offset_token.

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: the purpose sentence comes first and is followed only by response-content and pricing notes. No padding in the prose itself, though the pricing block is boilerplate that consumes roughly half the text.

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 the annotations carry the safety profile. What remains missing is the usage/parameter layer — no indication that search_terms is required in practice and no routing versus the many sibling endpoints, which leaves the definition only minimally viable for a complex live query endpoint.

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%, so the description is expected to compensate and does not: it never mentions search_terms (the effective required field), filters, limit/offset, order_by, or mode. An agent must read the nested schema to learn that a search term such as 'data-attrid' is needed at all.

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 retrieval: domains selected by the HTML terms present on their homepage, plus their technology profiles, country and language. That is clear enough to separate it from the sibling post_dataforseo_domains_tech_domains_by_technology_live, though the distinction is implied by the 'HTML terms' criterion rather than stated explicitly against the sibling.

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: nothing says when to prefer HTML-term lookups over the technology, summary, or aggregation siblings, and no prerequisites or exclusions are given. The only usage signal is the tool name itself.

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

post_dataforseo_domains_tech_domains_by_technology_liveDomains by TechnologyC
Destructive
Inspect

‌‌ This endpoint provides domains based on the technology they use. In addition to the list of domains, you will also get their technology profiles, the country and language they belong to, and other related data.

Usage-based billing; Default request estimate: $0.012 USD (not a fixed price). Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior1/5

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

The description portrays a pure data retrieval ('This endpoint provides domains... you will also get their technology profiles'), yet the annotations declare destructiveHint=true and readOnlyHint=false. A retrieval endpoint described as destructive is a direct inconsistency an agent would notice. The only behavioral note offered is boilerplate pricing, which does not resolve the conflict.

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 what the tool returns, plus a brief pricing note. Minimal waste, though the pricing boilerplate is extraneous filler that does not help 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?

An output schema exists, so return values need no explanation, and the nested schema documents the filter fields. However, for a complex filtered-search endpoint the description is thin: it omits the one-of filter requirement, pagination via offset_token, and any routing to sibling endpoints, leaving 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?

The description contributes nothing about parameters, and the single top-level `body` parameter carries no schema description (coverage reported at 0%). The nested fields do have rich schema documentation, but per the low-coverage rule the description was expected to compensate and 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 names a specific retrieval ('provides domains') scoped by a clear criterion ('based on the technology they use') and even lists the returned payload (technology profiles, country, language). It is clear what the tool does, but it does not distinguish itself from close siblings such as domains_by_html_terms_live or for_domain_live, which also return domain sets filtered on a different dimension.

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 / when-not-to-use guidance and no alternative named. The description only narrates the output; it never tells the agent when this endpoint should be chosen over the sibling technology endpoints or what input it requires (the schema's one-of constraint on groups/technologies/categories/keywords/technology_paths is not surfaced).

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

post_dataforseo_domains_tech_for_domain_liveDomain TechnologiesC
Destructive
Inspect

‌‌ Using this endpoint you will get a list of technologies used in a particular domain.

Usage-based billing; Default request estimate: $0.012 USD (not a fixed price). Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior1/5

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

The description frames the tool as a read ('you will get a list of technologies'), while the annotations declare readOnlyHint=false and destructiveHint=true. This is a direct conflict about whether the call mutates or destroys data. The only behavior the description adds is the usage-based pricing estimate, which does not compensate for the safety-profile contradiction.

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 behavioral sentence is short and front-loaded with zero waste. The appended pricing block is boilerplate rather than tool semantics, but it is clearly delimited and does not obscure the purpose statement.

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 pricing note covers cost. However, for a live billed endpoint with no sibling differentiation and no parameter explanation, the definition is only minimally complete for correct selection and invocation.

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% and the single 'target' param is nested inside a body array, so the structured fields do not explain the parameter. The description only alludes to 'a particular domain' without naming the field, format, or that results are returned for the specified domain only. It adds almost nothing 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 and resource: 'get a list of technologies used in a particular domain.' An agent understands the operation, but the description never distinguishes it from close siblings such as post_dataforseo_domains_tech_domains_by_technology_live, post_dataforseo_domains_tech_summary_live, or the aggregation variant.

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 the conditions that select this tool over its many domains_tech siblings, and no prerequisites (API credentials, rate limits) noted. The only contextual hint is the pricing note, which is billing information rather than usage direction.

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

post_dataforseo_domains_tech_summary_liveTechnologies SummaryB
Destructive
Inspect

‌‌ The Technologies Summary endpoint will provide you with the number of domains across different countries and languages that use the specified technology names, technology groups, or technology categories.

Usage-based billing; Default request estimate: $0.012 USD (not a fixed price). Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyNo

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 (readOnly=false, destructive=true, openWorld=true, idempotent=false), and the description does not contradict them. It does add genuinely useful context the annotations lack: usage-based billing with a ~$0.012 default estimate and the note that pricing may differ. It says nothing about rate limits, latency, or what the query actually consumes, so it is only partially additive.

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?

One tight sentence stating the purpose, followed by the standard pricing block. Purpose is front-loaded with no filler. Minor deduction for the stray zero-width characters before the opening text and for the pricing boilerplate that is not really part of the tool's semantics.

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 structure needn't be explained. However, the schema marks no top-level fields required while conditionally requiring at least one of groups/technologies/categories/keywords/technology_paths; the description hints at this but never states the 'at least one selector' rule, which is the key thing an agent must know to call it successfully.

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?

Reported schema description coverage is 0% at the top level (the single 'body' parameter is undocumented), though the nested fields carry rich provider descriptions. The description partially compensates by naming the three selector dimensions (technology names, groups, categories) but omits keywords, technology_paths, mode, filters, and internal_list_limit. Baseline 3 for partial compensation.

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: it returns the count of domains by country/language that use given technology names, groups, or categories. This is far more informative than a restatement of the title. It does not, however, distinguish itself from siblings like post_dataforseo_domains_tech_technology_stats_live or post_dataforseo_domains_tech_aggregation_live, which sound very similar.

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 names the three input dimensions (technology names, groups, categories) but gives no when-to-use guidance, no exclusions, and no pointer to alternative endpoints. An agent cannot tell from this text why it should pick this tool over technology_stats_live or aggregation_live.

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

post_dataforseo_domains_tech_technology_stats_liveTechnology StatsC
Destructive
Inspect

‌‌ The Technology Stats endpoint will provide you with historical data on the number of domains across different countries and languages that use the specified technology.

Usage-based billing; Default request estimate: $0.012 USD (not a fixed price). Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior1/5

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

The description frames the endpoint purely as a data retrieval ('will provide you with historical data'), while annotations declare readOnlyHint=false and destructiveHint=true. That is the same read-versus-destructive mismatch flagged in the calibration for annotation contradictions. The only genuine added context is the pricing note, which does not offset the contradiction.

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?

Core purpose is a single front-loaded sentence, with pricing clearly separated into its own block. A stray leading zero-width character and the billing clamp add minor noise, but nothing is bloated.

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 needn't be described. However, for a POST data endpoint sitting among five overlapping tech siblings, the description supplies no selection criteria, no date-range defaults, and no note that 'technology' is mandatory inside the body array - gaps the schema alone does not close.

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' wrapper has no description (0% coverage on the reported metric) and the description adds no parameter information at all. The nested properties (tag, date_to, date_from, technology) do carry rich inline descriptions with formats, defaults, and examples, so the effective gap is narrower than the metric suggests, 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 resource and output: historical domain counts by country/language for a specified technology. That is far more informative than the bare title 'Technology Stats'. It does not, however, differentiate itself from closely named siblings like post_dataforseo_domains_tech_aggregation_live, summary_live, or domains_by_technology_live, which an agent would have to disambiguate on its own.

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 never says when to prefer this endpoint over the sibling tech endpoints (aggregation, summary, domains_by_technology) that clearly overlap. There is also no mention of defaults for the date range or that a technology must be supplied, despite the schema requiring it inside the body object.

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

post_dataforseo_domains_whois_overview_liveDomain Whois OverviewB
Destructive
Inspect

‌ This endpoint will provide you with Whois data enriched with backlink stats, and ranking and traffic info from organic and paid search results. Using this endpoint you will be able to get all these data for the domains matching the parameters you specify in the request.

Usage-based billing; Default request estimate: $0.012 USD (not a fixed price). Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
bodyNo

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 destructive=true, readOnlyHint=false, openWorldHint=true and idempotentHint=false, so the safety profile is covered. The description adds one genuinely non-derivable fact beyond the annotations: usage-based billing with a ~$0.012 default estimate, which explains why a data-retrieval-shaped call is billed/mutating. It says nothing about auth, rate limits, or the meaning of the 'live' 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 lean sentences with the returned-data payload front-loaded, followed by a clearly delimited pricing block. No filler or repetition; the only minor cost is that the pricing comment repeats what an annotation-style cost field might convey.

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 has an output schema, so return values need not be explained, and annotations carry the safety profile plus the description carries billing. What remains missing for a POST 'live' data endpoint is any indication of when to use it over its many siblings and any hint about the body structure. Adequate but with visible 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?

The description contributes no parameter meaning at all — it only says 'parameters you specify.' The top-level body param itself carries no description (reported coverage 0%), though the nested item schema internally documents limit/offset/filters/order_by/offset_token in detail, so the schema still does most of the work. Baseline 3 is appropriate given the internal documentation offsets the missing wrapper 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 resource and payload: 'Whois data enriched with backlink stats, and ranking and traffic info from organic and paid search results.' That is enough to know what the endpoint returns, but it never distinguishes itself from siblings such as get_dataforseo_domains_whois_available_filters or the tech/aggregation endpoints, so an agent cannot use it to disambiguate the family on its own.

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 prerequisites, and no named alternative. 'For the domains matching the parameters you specify in the request' restates the obvious rather than telling the agent when this endpoint is preferable to the sibling Whois/tech tools.

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. 9 tool updates
    • Addedaccount
    • Removedget_details
    • Changedpost_dataforseo_domains_tech_aggregation_live3 fields changed
      • addedInput schema / $defs
        Added value: +{
        +  "Provider0A3E90081762_AisaDataforseoFilterJsonValue": {
        +    "anyOf": [
        +      {
        +        "type": "string"
        +      },
        +      {
        +        "type": "number"
        +      },
        +      {
        +        "type": "boolean"
        +      },
        +      {
        +        "additionalProperties": {
        +          "$ref": "#/$defs/Provider0A3E90081762_AisaDataforseoFilterJsonValue"
        +        },
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      {
        +        "items": {
        +          "$ref": "#/$defs/Provider0A3E90081762_AisaDataforseoFilterJsonValue"
        +        },
        +        "type": "array"
        +      }
        +    ],
        +    "description": "JSON representation of filter values and nested expressions. Field names, operators, condition counts and operand compatibility remain provider-validated as documented for each endpoint; this is not a complete filter-language validator."
        +  }
        +}
      • addedInput schema / properties / body / items / anyOf
        Added value: +[
        +  {
        +    "properties": {
        +      "category": {
        +        "description": "<em>id of the target technology category</em><br><strong>required field if you don't specify <code>group</code>, <code>keyword</code> or <code>technology</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>you can find the full list of technology category ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"crm\"</code>",
        +        "type": "string"
        +      },
        +      "filters": {
        +        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>,<code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>you can use the following parameters to filter the results: <code>domain_rank</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br><strong>Note:</strong> all filtering parameters are taken from the <code>domain_technology_item</code> of the <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">domain_technologies</a> endpoint;<br>example:<br><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\"&gt;\",800]]</code>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        +        "items": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "additionalProperties": {
        +                "$ref": "#/$defs/Provider0A3E90081762_AisaDataforseoFilterJsonValue"
        +              },
        +              "type": [
        +                "object",
        +                "null"
        +              ]
        +            },
        +            {
        +              "items": {
        +                "$ref": "#/$defs/Provider0A3E90081762_AisaDataforseoFilterJsonValue"
        +              },
        +              "type": "array"
        +            }
        +          ],
        +          "description": "JSON representation of filter values and nested expressions. Field names, operators, condition counts and operand compatibility remain provider-validated as documented for each endpoint; this is not a complete filter-language validator."
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "group": {
        +        "description": "<em>id of the target technology group</em><br><strong>required field if you don't specify <code>technology</code>, <code>category</code> or <code>keyword</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>you can find the full list of technology group ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"marketing\"</code>",
        +        "type": "string"
        +      },
        +      "internal_categories_list_limit": {
        +        "description": "<em>maximum number of returned technology categories within the same group</em><br>optional field<br>you can use this field to limit the number of items with identical <code>\"category\"</code> in the results<br>default value: <code>5</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "internal_groups_list_limit": {
        +        "description": "<em>maximum number of returned technology groups</em><br>optional field<br>you can use this field to limit the number of items with identical <code>\"group\"</code> in the results<br>default value: <code>5</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "internal_list_limit": {
        +        "description": "<em>maximum number of items with identical <code>\"category\"</code>, <code>\"group\"</code>, and <code>\"technology\"</code></em><br>optional field<br>if you use this field, the values specified in <code>internal_groups_list_limit</code>, <code>internal_categories_list_limit</code> and <code>internal_technologies_list_limit</code> will be ignored;<br>you can use this field to limit the number of items with identical <code>\"category\"</code>, <code>\"group\"</code>, or <code>\"technology\"</code><br>default value: <code>10</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "internal_technologies_list_limit": {
        +        "description": "<em>maximum number of returned technologies within the same category</em><br>optional field<br>you can use this field to limit the number of items with identical <code>\"technology\"</code> in the results<br>default value: <code>10</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "keyword": {
        +        "description": "<em>target keyword in the domain's meta keywords</em><br><strong>required field if you don't specify <code>group</code>, <code>category</code> or <code>technology</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>UTF-8 encoding<br>example:<br><code>\"seo\"</code>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" target=\"_blank\" rel=\"noopener noreferrer\">Help Center article</a>",
        +        "type": "string"
        +      },
        +      "limit": {
        +        "description": "<em>the maximum number of returned technologies</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "mode": {
        +        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>as_is</code> - search for results exactly matching the specified group ids, category ids, or technology names<br><code>entry</code> - search for results matching a part of the specified group ids, category ids, or technology names<br>default value: <code>as_is</code>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "offset": {
        +        "description": "<em>offset in the results array of returned domains</em><br>optional field<br>default value: <code>0</code><br>maximum value: <code>9999</code><br>if you specify the <code>10</code> value, the first ten technologies in the results array will be omitted and the data will be provided for the successive technologies",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "order_by": {
        +        "description": "<em>results sorting rules</em><br>optional field<br>you can use the following values to sort the results: <code>groups_count</code>, <code>categories_count</code>, <code>technologies_count</code><br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"groups_count,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"groups_count,desc\",\"technologies_count,desc\"]</code><br>default value:<br><code>[\"groups_count,desc\",\"categories_count,desc\",\"technologies_count,desc\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "tag": {
        +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "technology": {
        +        "description": "<em>target technology</em><br><strong>required field if you don't specify <code>group</code>, <code>keyword</code> or <code>category</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>you can find the full list of technologies <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"Salesforce\"</code>",
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / body / items / oneOf
        Removed value: -[
        -  {
        -    "example": [
        -      {
        -        "filters": [
        -          [
        -            "country_iso_code",
        -            "=",
        -            "US"
        -          ],
        -          "and",
        -          [
        -            "domain_rank",
        -            ">",
        -            800
        -          ]
        -        ],
        -        "keyword": "WordPress",
        -        "limit": 10,
        -        "mode": "entry",
        -        "order_by": [
        -          "groups_count,desc"
        -        ],
        -        "technology": "Nginx"
        -      }
        -    ],
        -    "properties": {
        -      "category": {
        -        "description": "<em>id of the target technology category</em><br><strong>required field if you don't specify <code>group</code>, <code>keyword</code> or <code>technology</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>you can find the full list of technology category ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"crm\"</code>",
        -        "type": "string"
        -      },
        -      "filters": {
        -        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>,<code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>you can use the following parameters to filter the results: <code>domain_rank</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br><strong>Note:</strong> all filtering parameters are taken from the <code>domain_technology_item</code> of the <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">domain_technologies</a> endpoint;<br>example:<br><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\"&gt;\",800]]</code>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        -        "items": {
        -          "type": [
        -            "object",
        -            "null"
        -          ]
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "group": {
        -        "description": "<em>id of the target technology group</em><br><strong>required field if you don't specify <code>technology</code>, <code>category</code> or <code>keyword</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>you can find the full list of technology group ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"marketing\"</code>",
        -        "type": "string"
        -      },
        -      "internal_categories_list_limit": {
        -        "description": "<em>maximum number of returned technology categories within the same group</em><br>optional field<br>you can use this field to limit the number of items with identical <code>\"category\"</code> in the results<br>default value: <code>5</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "internal_groups_list_limit": {
        -        "description": "<em>maximum number of returned technology groups</em><br>optional field<br>you can use this field to limit the number of items with identical <code>\"group\"</code> in the results<br>default value: <code>5</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "internal_list_limit": {
        -        "description": "<em>maximum number of items with identical <code>\"category\"</code>, <code>\"group\"</code>, and <code>\"technology\"</code></em><br>optional field<br>if you use this field, the values specified in <code>internal_groups_list_limit</code>, <code>internal_categories_list_limit</code> and <code>internal_technologies_list_limit</code> will be ignored;<br>you can use this field to limit the number of items with identical <code>\"category\"</code>, <code>\"group\"</code>, or <code>\"technology\"</code><br>default value: <code>10</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "internal_technologies_list_limit": {
        -        "description": "<em>maximum number of returned technologies within the same category</em><br>optional field<br>you can use this field to limit the number of items with identical <code>\"technology\"</code> in the results<br>default value: <code>10</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "keyword": {
        -        "description": "<em>target keyword in the domain's meta keywords</em><br><strong>required field if you don't specify <code>group</code>, <code>category</code> or <code>technology</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>UTF-8 encoding<br>example:<br><code>\"seo\"</code>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" target=\"_blank\" rel=\"noopener noreferrer\">Help Center article</a>",
        -        "type": "string"
        -      },
        -      "limit": {
        -        "description": "<em>the maximum number of returned technologies</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>10000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "mode": {
        -        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>as_is</code> - search for results exactly matching the specified group ids, category ids, or technology names<br><code>entry</code> - search for results matching a part of the specified group ids, category ids, or technology names<br>default value: <code>as_is</code>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "offset": {
        -        "description": "<em>offset in the results array of returned domains</em><br>optional field<br>default value: <code>0</code><br>maximum value: <code>9999</code><br>if you specify the <code>10</code> value, the first ten technologies in the results array will be omitted and the data will be provided for the successive technologies",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "order_by": {
        -        "description": "<em>results sorting rules</em><br>optional field<br>you can use the following values to sort the results: <code>groups_count</code>, <code>categories_count</code>, <code>technologies_count</code><br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"groups_count,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"groups_count,desc\",\"technologies_count,desc\"]</code><br>default value:<br><code>[\"groups_count,desc\",\"categories_count,desc\",\"technologies_count,desc\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "tag": {
        -        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "technology": {
        -        "description": "<em>target technology</em><br><strong>required field if you don't specify <code>group</code>, <code>keyword</code> or <code>category</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>you can find the full list of technologies <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"Salesforce\"</code>",
        -        "type": "string"
        -      }
        -    },
        -    "type": "object"
        -  }
        -]
    • Changedpost_dataforseo_domains_tech_domains_by_html_terms_live3 fields changed
      • addedInput schema / $defs
        Added value: +{
        +  "Provider0A3E90081762_AisaDataforseoFilterJsonValue": {
        +    "anyOf": [
        +      {
        +        "type": "string"
        +      },
        +      {
        +        "type": "number"
        +      },
        +      {
        +        "type": "boolean"
        +      },
        +      {
        +        "additionalProperties": {
        +          "$ref": "#/$defs/Provider0A3E90081762_AisaDataforseoFilterJsonValue"
        +        },
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      {
        +        "items": {
        +          "$ref": "#/$defs/Provider0A3E90081762_AisaDataforseoFilterJsonValue"
        +        },
        +        "type": "array"
        +      }
        +    ],
        +    "description": "JSON representation of filter values and nested expressions. Field names, operators, condition counts and operand compatibility remain provider-validated as documented for each endpoint; this is not a complete filter-language validator."
        +  }
        +}
      • addedInput schema / properties / body / items / anyOf
        Added value: +[
        +  {
        +    "properties": {
        +      "filters": {
        +        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>, <code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>example:<br><code>[\"domain\",\"like\",\"%seo%\"]</code><p><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\"&gt;\",100]]</code><p><code>[[\"domain_rank\",\"&gt;\",100],<br>\"and\",<br>[[\"country_iso_code\",\"=\",\"US\"],\"or\",[\"country_iso_code\",\"=\",\"CA\"]]]</code><p>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        +        "items": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "additionalProperties": {
        +                "$ref": "#/$defs/Provider0A3E90081762_AisaDataforseoFilterJsonValue"
        +              },
        +              "type": [
        +                "object",
        +                "null"
        +              ]
        +            },
        +            {
        +              "items": {
        +                "$ref": "#/$defs/Provider0A3E90081762_AisaDataforseoFilterJsonValue"
        +              },
        +              "type": "array"
        +            }
        +          ],
        +          "description": "JSON representation of filter values and nested expressions. Field names, operators, condition counts and operand compatibility remain provider-validated as documented for each endpoint; this is not a complete filter-language validator."
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "keywords": {
        +        "description": "<em>target keywords in the domain's title, description or meta keywords</em><br>optional field<br>UTF-8 encoding<br>maximum number of keywords you can specify: 10 <br>example:<br><code>[\"seo\",\"software\"]</code><p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "limit": {
        +        "description": "<em>the maximum number of returned domains</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "mode": {
        +        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>strict_entry</code> - search for results exactly matching the order, intervals and separators in the specified search terms<br><code>entry</code> - search for results ignoring the order, intervals and separators in the specified search terms<br>default value: <code>entry</code>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "offset": {
        +        "description": "<em>offset in the results array of returned domains</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten domains in the results array will be omitted and the data will be provided for the successive domains;<br><strong>Note:</strong> the maximum value is <code>9999</code>, the sum of <code>limit</code> and <code>offset</code> must not exceed <code>10000</code>;<br>use the <code>offset_token</code> if you would like to offset more results",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "offset_token": {
        +        "description": "<em>token for subsequent requests</em><br>optional field<br>provided in the identical filed of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task <br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters should be identical to the previous request<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "order_by": {
        +        "description": "<em>results sorting rules</em><br>optional field<br>available fields: <br><code>domain_rank</code>, <code>domain</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"last_visited,desc\"]</code><br>default rule:<br><code>[\"domain_rank,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"last_visited,desc\",\"domain_rank,desc\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "search_terms": {
        +        "description": "<em>target search terms</em><br><strong>required field</strong><br>specify target HTML elements, tags, attributes, their content or all of the above<br>if you specify more than one search term, you will receive only the domains containing all of the specified terms in the HTML code of their homepage<br>maximum number of search terms you can specify: 10<br>example:<br><code>[\"data-attrid\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / body / items / oneOf
        Removed value: -[
        -  {
        -    "example": [
        -      {
        -        "limit": 10,
        -        "offset": 0,
        -        "order_by": [
        -          "last_visited,desc"
        -        ],
        -        "search_terms": [
        -          "data-attrid"
        -        ]
        -      }
        -    ],
        -    "properties": {
        -      "filters": {
        -        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>, <code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>example:<br><code>[\"domain\",\"like\",\"%seo%\"]</code><p><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\"&gt;\",100]]</code><p><code>[[\"domain_rank\",\"&gt;\",100],<br>\"and\",<br>[[\"country_iso_code\",\"=\",\"US\"],\"or\",[\"country_iso_code\",\"=\",\"CA\"]]]</code><p>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        -        "items": {
        -          "type": [
        -            "object",
        -            "null"
        -          ]
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "keywords": {
        -        "description": "<em>target keywords in the domain's title, description or meta keywords</em><br>optional field<br>UTF-8 encoding<br>maximum number of keywords you can specify: 10 <br>example:<br><code>[\"seo\",\"software\"]</code><p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "limit": {
        -        "description": "<em>the maximum number of returned domains</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>10000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "mode": {
        -        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>strict_entry</code> - search for results exactly matching the order, intervals and separators in the specified search terms<br><code>entry</code> - search for results ignoring the order, intervals and separators in the specified search terms<br>default value: <code>entry</code>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "offset": {
        -        "description": "<em>offset in the results array of returned domains</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten domains in the results array will be omitted and the data will be provided for the successive domains;<br><strong>Note:</strong> the maximum value is <code>9999</code>, the sum of <code>limit</code> and <code>offset</code> must not exceed <code>10000</code>;<br>use the <code>offset_token</code> if you would like to offset more results",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "offset_token": {
        -        "description": "<em>token for subsequent requests</em><br>optional field<br>provided in the identical filed of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task <br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters should be identical to the previous request<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "order_by": {
        -        "description": "<em>results sorting rules</em><br>optional field<br>available fields: <br><code>domain_rank</code>, <code>domain</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"last_visited,desc\"]</code><br>default rule:<br><code>[\"domain_rank,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"last_visited,desc\",\"domain_rank,desc\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "search_terms": {
        -        "description": "<em>target search terms</em><br><strong>required field</strong><br>specify target HTML elements, tags, attributes, their content or all of the above<br>if you specify more than one search term, you will receive only the domains containing all of the specified terms in the HTML code of their homepage<br>maximum number of search terms you can specify: 10<br>example:<br><code>[\"data-attrid\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      }
        -    },
        -    "type": "object"
        -  }
        -]
    • Changedpost_dataforseo_domains_tech_domains_by_technology_live3 fields changed
      • addedInput schema / $defs
        Added value: +{
        +  "Provider0A3E90081762_AisaDataforseoFilterJsonValue": {
        +    "anyOf": [
        +      {
        +        "type": "string"
        +      },
        +      {
        +        "type": "number"
        +      },
        +      {
        +        "type": "boolean"
        +      },
        +      {
        +        "additionalProperties": {
        +          "$ref": "#/$defs/Provider0A3E90081762_AisaDataforseoFilterJsonValue"
        +        },
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      {
        +        "items": {
        +          "$ref": "#/$defs/Provider0A3E90081762_AisaDataforseoFilterJsonValue"
        +        },
        +        "type": "array"
        +      }
        +    ],
        +    "description": "JSON representation of filter values and nested expressions. Field names, operators, condition counts and operand compatibility remain provider-validated as documented for each endpoint; this is not a complete filter-language validator."
        +  }
        +}
      • addedInput schema / properties / body / items / anyOf
        Added value: +[
        +  {
        +    "properties": {
        +      "categories": {
        +        "description": "<em>ids of the target technology categories</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>keywords</code> or <code>technologies</code></strong><br>you can find the full list of technology category ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology categories in this array<br>example:<br><code>[\"payment_processors\",\"crm\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "filters": {
        +        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>, <code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>example:<br><code>[\"country_iso_code\",\"=\",\"US\"]</code><p><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\"&gt;\",100]]</code><p><code>[[\"domain_rank\",\"&gt;\",100],<br>\"and\",<br>[[\"country_iso_code\",\"=\",\"US\"],\"or\",[\"country_iso_code\",\"=\",\"CA\"]]]</code><p>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        +        "items": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "additionalProperties": {
        +                "$ref": "#/$defs/Provider0A3E90081762_AisaDataforseoFilterJsonValue"
        +              },
        +              "type": [
        +                "object",
        +                "null"
        +              ]
        +            },
        +            {
        +              "items": {
        +                "$ref": "#/$defs/Provider0A3E90081762_AisaDataforseoFilterJsonValue"
        +              },
        +              "type": "array"
        +            }
        +          ],
        +          "description": "JSON representation of filter values and nested expressions. Field names, operators, condition counts and operand compatibility remain provider-validated as documented for each endpoint; this is not a complete filter-language validator."
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "groups": {
        +        "description": "<em>ids of the target technology groups</em><br><strong>required field if you don't specify <code>technologies</code>, <code>technology_paths</code>, <code>keywords</code> or <code>categories</code></strong><br>you can find the full list of technology group ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology groups in this array<br>example:<br><code>[\"sales\", \"marketing\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "keywords": {
        +        "description": "<em>target keywords in the domain's title, description or meta keywords</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>technologies</code> or <code>categories</code></strong><br>optional field<br>you can specify the maximum of 10 keywords;<br>UTF-8 encoding;<br>example:<br><code>[\"seo\",\"software\"]</code><p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "limit": {
        +        "description": "<em>the maximum number of returned domains</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "mode": {
        +        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>as_is</code> - search for results exactly matching the specified group ids, category ids, or technology names<br><code>entry</code> - search for results matching a part of the specified group ids, category ids, or technology names<br>default value: <code>as_is</code>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "offset": {
        +        "description": "<em>offset in the results array of returned domains</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten domains in the results array will be omitted and the data will be provided for the successive domains;<br><strong>Note:</strong> the maximum value is <code>9999</code>, the sum of <code>limit</code> and <code>offset</code> must not exceed <code>10000</code>;<br>use the <code>offset_token</code> if you would like to offset more results",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "offset_token": {
        +        "description": "<em>token for subsequent requests</em><br>optional field<br>provided in the identical filed of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task <br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters should be identical to the previous request<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "order_by": {
        +        "description": "<em>results sorting rules</em><br>optional field<br>available fields: <br><code>domain_rank</code>, <code>domain</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"last_visited,desc\"]</code><br>default rule:<br><code>[\"domain_rank,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"last_visited,desc\",\"domain_rank,desc\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "technologies": {
        +        "description": "<em>target technologies</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>keywords</code> or <code>categories</code></strong><br>you can find the full list of technologies you can specify here <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technologies in this array<br>example:<br><code>[\"Google Pay\",\"Salesforce\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "technology_paths": {
        +        "description": "<em>target technology paths</em><br><strong>required field if you don't specify <code>groups</code>, <code>technologies</code>, <code>keywords</code> or <code>categories</code></strong><br>at least one field (<code>technology_paths</code>, <code>groups</code>, <code>technologies</code>, <code>keywords</code> or <code>categories</code>) must be set;<br>each technology path should be specified as a separate object containing \"path\" and \"name\", where \"path\" is specified as \"$group_id.$category_id\" and \"name\" - as the name of the target technology; <br>each object with a technology path should be separated with a comma<br>you can find the full list of technology group ids, category ids and technology names <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology paths in this array<br>example:<br><code>[{\"path\": \"content.cms\",\"name\": \"wordpress\"}, {\"path\": \"marketing.crm\",\"name\": \"salesforce\"}]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / body / items / oneOf
        Removed value: -[
        -  {
        -    "example": [
        -      {
        -        "filters": [
        -          [
        -            "country_iso_code",
        -            "=",
        -            "US"
        -          ],
        -          "and",
        -          [
        -            "domain_rank",
        -            ">",
        -            800
        -          ]
        -        ],
        -        "limit": 10,
        -        "order_by": [
        -          "last_visited,desc"
        -        ],
        -        "technologies": [
        -          "Nginx"
        -        ]
        -      }
        -    ],
        -    "properties": {
        -      "categories": {
        -        "description": "<em>ids of the target technology categories</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>keywords</code> or <code>technologies</code></strong><br>you can find the full list of technology category ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology categories in this array<br>example:<br><code>[\"payment_processors\",\"crm\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "filters": {
        -        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>, <code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>example:<br><code>[\"country_iso_code\",\"=\",\"US\"]</code><p><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\"&gt;\",100]]</code><p><code>[[\"domain_rank\",\"&gt;\",100],<br>\"and\",<br>[[\"country_iso_code\",\"=\",\"US\"],\"or\",[\"country_iso_code\",\"=\",\"CA\"]]]</code><p>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        -        "items": {
        -          "type": [
        -            "object",
        -            "null"
        -          ]
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "groups": {
        -        "description": "<em>ids of the target technology groups</em><br><strong>required field if you don't specify <code>technologies</code>, <code>technology_paths</code>, <code>keywords</code> or <code>categories</code></strong><br>you can find the full list of technology group ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology groups in this array<br>example:<br><code>[\"sales\", \"marketing\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "keywords": {
        -        "description": "<em>target keywords in the domain's title, description or meta keywords</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>technologies</code> or <code>categories</code></strong><br>optional field<br>you can specify the maximum of 10 keywords;<br>UTF-8 encoding;<br>example:<br><code>[\"seo\",\"software\"]</code><p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "limit": {
        -        "description": "<em>the maximum number of returned domains</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>10000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "mode": {
        -        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>as_is</code> - search for results exactly matching the specified group ids, category ids, or technology names<br><code>entry</code> - search for results matching a part of the specified group ids, category ids, or technology names<br>default value: <code>as_is</code>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "offset": {
        -        "description": "<em>offset in the results array of returned domains</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten domains in the results array will be omitted and the data will be provided for the successive domains;<br><strong>Note:</strong> the maximum value is <code>9999</code>, the sum of <code>limit</code> and <code>offset</code> must not exceed <code>10000</code>;<br>use the <code>offset_token</code> if you would like to offset more results",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "offset_token": {
        -        "description": "<em>token for subsequent requests</em><br>optional field<br>provided in the identical filed of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task <br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters should be identical to the previous request<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "order_by": {
        -        "description": "<em>results sorting rules</em><br>optional field<br>available fields: <br><code>domain_rank</code>, <code>domain</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"last_visited,desc\"]</code><br>default rule:<br><code>[\"domain_rank,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"last_visited,desc\",\"domain_rank,desc\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "technologies": {
        -        "description": "<em>target technologies</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>keywords</code> or <code>categories</code></strong><br>you can find the full list of technologies you can specify here <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technologies in this array<br>example:<br><code>[\"Google Pay\",\"Salesforce\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "technology_paths": {
        -        "description": "<em>target technology paths</em><br><strong>required field if you don't specify <code>groups</code>, <code>technologies</code>, <code>keywords</code> or <code>categories</code></strong><br>at least one field (<code>technology_paths</code>, <code>groups</code>, <code>technologies</code>, <code>keywords</code> or <code>categories</code>) must be set;<br>each technology path should be specified as a separate object containing \"path\" and \"name\", where \"path\" is specified as \"$group_id.$category_id\" and \"name\" - as the name of the target technology; <br>each object with a technology path should be separated with a comma<br>you can find the full list of technology group ids, category ids and technology names <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology paths in this array<br>example:<br><code>[{\"path\": \"content.cms\",\"name\": \"wordpress\"}, {\"path\": \"marketing.crm\",\"name\": \"salesforce\"}]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      }
        -    },
        -    "type": "object"
        -  }
        -]
    • Changedpost_dataforseo_domains_tech_for_domain_live1 field changed
      • changedInput schema / properties / body / items / oneOf
        Previous value: -[
        -  {
        -    "example": [
        -      {
        -        "target": "dataforseo.com"
        -      }
        -    ],
        -    "properties": {
        -      "target": {
        -        "description": "<em>target domain</em><br><strong>required field</strong><br>domain name of the website to analyze<br><strong>Note:</strong> results will be returned for the specified domain only",
        -        "type": "string"
        -      }
        -    },
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "properties": {
        +      "target": {
        +        "description": "<em>target domain</em><br><strong>required field</strong><br>domain name of the website to analyze<br><strong>Note:</strong> results will be returned for the specified domain only",
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
    • Changedpost_dataforseo_domains_tech_summary_live3 fields changed
      • addedInput schema / $defs
        Added value: +{
        +  "Provider0A3E90081762_AisaDataforseoFilterJsonValue": {
        +    "anyOf": [
        +      {
        +        "type": "string"
        +      },
        +      {
        +        "type": "number"
        +      },
        +      {
        +        "type": "boolean"
        +      },
        +      {
        +        "additionalProperties": {
        +          "$ref": "#/$defs/Provider0A3E90081762_AisaDataforseoFilterJsonValue"
        +        },
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      {
        +        "items": {
        +          "$ref": "#/$defs/Provider0A3E90081762_AisaDataforseoFilterJsonValue"
        +        },
        +        "type": "array"
        +      }
        +    ],
        +    "description": "JSON representation of filter values and nested expressions. Field names, operators, condition counts and operand compatibility remain provider-validated as documented for each endpoint; this is not a complete filter-language validator."
        +  }
        +}
      • addedInput schema / properties / body / items / anyOf
        Added value: +[
        +  {
        +    "properties": {
        +      "categories": {
        +        "description": "<em>ids of the target technology categories</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>technologies</code>, or <code>keywords</code></strong><br>you can find the full list of technology category ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology categories in this array<br>example:<br><code>[\"payment_processors\",\"crm\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "filters": {
        +        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>,<code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>you can use the following parameters to filter the results: <code>domain_rank</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br>example:<br><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\">\",800]]</code><p>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        +        "items": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "additionalProperties": {
        +                "$ref": "#/$defs/Provider0A3E90081762_AisaDataforseoFilterJsonValue"
        +              },
        +              "type": [
        +                "object",
        +                "null"
        +              ]
        +            },
        +            {
        +              "items": {
        +                "$ref": "#/$defs/Provider0A3E90081762_AisaDataforseoFilterJsonValue"
        +              },
        +              "type": "array"
        +            }
        +          ],
        +          "description": "JSON representation of filter values and nested expressions. Field names, operators, condition counts and operand compatibility remain provider-validated as documented for each endpoint; this is not a complete filter-language validator."
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "groups": {
        +        "description": "<em>ids of the target technology groups</em><br><strong>required field if you don't specify <code>technologies</code>, <code>technology_paths</code>, <code>categories</code>, or <code>keywords</code></strong><br>you can find the full list of technology group ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology groups in this array<br>example:<br><code>[\"sales\", \"marketing\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "internal_list_limit": {
        +        "description": "<em>maximum number of elements within internal arrays</em><br>optional field<br>you can use this field to limit the number of elements within the following arrays:<br><code>countries</code>, <code>languages</code>, <code>content_languages</code>, <code>keywords</code><br>default value: <code>10</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "keywords": {
        +        "description": "<em>target keywords in the domain's title, description or meta keywords</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>categories</code>, or <code>technologies</code></strong><br>you can specify the maximum of 10 keywords;<br>UTF-8 encoding;<br>example:<br><code>[\"seo\",\"software\"]</code><p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "mode": {
        +        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>as_is</code> - search for results exactly matching the specified group ids, category ids, or technology names<br><code>entry</code> - search for results matching a part of the specified group ids, category ids, or technology names<br>default value: <code>as_is</code>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "tag": {
        +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "technologies": {
        +        "description": "<em>target technologies</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>categories</code>, or <code>keywords</code></strong><br>you can find the full list of technologies you can specify here <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technologies in this array<br>example:<br><code>[\"Google Pay\",\"Salesforce\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "technology_paths": {
        +        "description": "<em>target technology paths</em><br><strong>required field if you don't specify <code>groups</code>, <code>technologies</code> and <code>categories</code></strong><br>each technology path should be specified as a separate object containing \"path\" and \"name\", where \"path\" is specified as \"$group_id.$category_id\" and \"name\" - as the name of the target technology; <br>each object with a technology path should be separated with a comma<br>you can find the full list of technology group ids, category ids and technology names <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology paths in this array<br>example:<br><code>[{\"path\": \"content.cms\",\"name\": \"wordpress\"}, {\"path\": \"marketing.crm\",\"name\": \"salesforce\"}]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / body / items / oneOf
        Removed value: -[
        -  {
        -    "example": [
        -      {
        -        "filters": [
        -          [
        -            "country_iso_code",
        -            "=",
        -            "US"
        -          ],
        -          "and",
        -          [
        -            "domain_rank",
        -            ">",
        -            800
        -          ]
        -        ],
        -        "keywords": [
        -          "WordPress"
        -        ],
        -        "mode": "entry",
        -        "technologies": [
        -          "Ngi"
        -        ]
        -      }
        -    ],
        -    "properties": {
        -      "categories": {
        -        "description": "<em>ids of the target technology categories</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>technologies</code>, or <code>keywords</code></strong><br>you can find the full list of technology category ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology categories in this array<br>example:<br><code>[\"payment_processors\",\"crm\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "filters": {
        -        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>,<code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>you can use the following parameters to filter the results: <code>domain_rank</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br>example:<br><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\">\",800]]</code><p>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        -        "items": {
        -          "type": [
        -            "object",
        -            "null"
        -          ]
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "groups": {
        -        "description": "<em>ids of the target technology groups</em><br><strong>required field if you don't specify <code>technologies</code>, <code>technology_paths</code>, <code>categories</code>, or <code>keywords</code></strong><br>you can find the full list of technology group ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology groups in this array<br>example:<br><code>[\"sales\", \"marketing\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "internal_list_limit": {
        -        "description": "<em>maximum number of elements within internal arrays</em><br>optional field<br>you can use this field to limit the number of elements within the following arrays:<br><code>countries</code>, <code>languages</code>, <code>content_languages</code>, <code>keywords</code><br>default value: <code>10</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "keywords": {
        -        "description": "<em>target keywords in the domain's title, description or meta keywords</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>categories</code>, or <code>technologies</code></strong><br>you can specify the maximum of 10 keywords;<br>UTF-8 encoding;<br>example:<br><code>[\"seo\",\"software\"]</code><p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "mode": {
        -        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>as_is</code> - search for results exactly matching the specified group ids, category ids, or technology names<br><code>entry</code> - search for results matching a part of the specified group ids, category ids, or technology names<br>default value: <code>as_is</code>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "tag": {
        -        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "technologies": {
        -        "description": "<em>target technologies</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>categories</code>, or <code>keywords</code></strong><br>you can find the full list of technologies you can specify here <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technologies in this array<br>example:<br><code>[\"Google Pay\",\"Salesforce\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "technology_paths": {
        -        "description": "<em>target technology paths</em><br><strong>required field if you don't specify <code>groups</code>, <code>technologies</code> and <code>categories</code></strong><br>each technology path should be specified as a separate object containing \"path\" and \"name\", where \"path\" is specified as \"$group_id.$category_id\" and \"name\" - as the name of the target technology; <br>each object with a technology path should be separated with a comma<br>you can find the full list of technology group ids, category ids and technology names <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology paths in this array<br>example:<br><code>[{\"path\": \"content.cms\",\"name\": \"wordpress\"}, {\"path\": \"marketing.crm\",\"name\": \"salesforce\"}]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      }
        -    },
        -    "type": "object"
        -  }
        -]
    • Changedpost_dataforseo_domains_tech_technology_stats_live1 field changed
      • changedInput schema / properties / body / items / oneOf
        Previous value: -[
        -  {
        -    "example": [
        -      {
        -        "date_from": "2022-10-31",
        -        "date_to": "2023-06-01",
        -        "technology": "jQuery"
        -      }
        -    ],
        -    "properties": {
        -      "date_from": {
        -        "description": "<em>starting date of the time range</em><br>optional field<br>minimum value: <code>2022-10-31</code><br>if you don't specify this field, the minimum value will be used by default<br>date format: <code>\"yyyy-mm-dd\"</code><br>example:<br><code>\"2023-06-01\"</code>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "date_to": {
        -        "description": "<em>ending date of the time range</em><br>optional field<br>if you don't specify this field, the today's date will be used by default<br>date format: <code>\"yyyy-mm-dd\"</code><br>example:<br><code>\"2023-01-15\"</code>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "tag": {
        -        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "technology": {
        -        "description": "<em>target technology</em><br><strong>required field</strong><br>you can find the full list of technologies you can specify here <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"Salesforce\"</code>",
        -        "type": "string"
        -      }
        -    },
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "properties": {
        +      "date_from": {
        +        "description": "<em>starting date of the time range</em><br>optional field<br>minimum value: <code>2022-10-31</code><br>if you don't specify this field, the minimum value will be used by default<br>date format: <code>\"yyyy-mm-dd\"</code><br>example:<br><code>\"2023-06-01\"</code>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "date_to": {
        +        "description": "<em>ending date of the time range</em><br>optional field<br>if you don't specify this field, the today's date will be used by default<br>date format: <code>\"yyyy-mm-dd\"</code><br>example:<br><code>\"2023-01-15\"</code>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "tag": {
        +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "technology": {
        +        "description": "<em>target technology</em><br><strong>required field</strong><br>you can find the full list of technologies you can specify here <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"Salesforce\"</code>",
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
    • Changedpost_dataforseo_domains_whois_overview_live3 fields changed
      • addedInput schema / $defs
        Added value: +{
        +  "Provider0A3E90081762_AisaDataforseoFilterJsonValue": {
        +    "anyOf": [
        +      {
        +        "type": "string"
        +      },
        +      {
        +        "type": "number"
        +      },
        +      {
        +        "type": "boolean"
        +      },
        +      {
        +        "additionalProperties": {
        +          "$ref": "#/$defs/Provider0A3E90081762_AisaDataforseoFilterJsonValue"
        +        },
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      {
        +        "items": {
        +          "$ref": "#/$defs/Provider0A3E90081762_AisaDataforseoFilterJsonValue"
        +        },
        +        "type": "array"
        +      }
        +    ],
        +    "description": "JSON representation of filter values and nested expressions. Field names, operators, condition counts and operand compatibility remain provider-validated as documented for each endpoint; this is not a complete filter-language validator."
        +  }
        +}
      • addedInput schema / properties / body / items / anyOf
        Added value: +[
        +  {
        +    "properties": {
        +      "filters": {
        +        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>regex</code>, <code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>, <code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters",
        +        "items": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "additionalProperties": {
        +                "$ref": "#/$defs/Provider0A3E90081762_AisaDataforseoFilterJsonValue"
        +              },
        +              "type": [
        +                "object",
        +                "null"
        +              ]
        +            },
        +            {
        +              "items": {
        +                "$ref": "#/$defs/Provider0A3E90081762_AisaDataforseoFilterJsonValue"
        +              },
        +              "type": "array"
        +            }
        +          ],
        +          "description": "JSON representation of filter values and nested expressions. Field names, operators, condition counts and operand compatibility remain provider-validated as documented for each endpoint; this is not a complete filter-language validator."
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "limit": {
        +        "description": "<em>the maximum number of returned domains</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>1000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "offset": {
        +        "description": "<em>offset in the results array of returned items</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten <code>items</code> in the results array will be omitted and the data will be provided for the successive items;<br><strong>Note:</strong> we recommend using this parameter only when retrieving up to 10,000 results for retrieving over 10,000 results, use the <code>offset_token</code> instead",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "offset_token": {
        +        "description": "<em>token for subsequent requests</em><br>optional field<br>provided in the identical filed of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task<br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters should be identical to the previous request<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "order_by": {
        +        "description": "<em>results sorting rules</em><br>optional field<br>you can use the same values as in the <code>filters</code> array to sort the results<br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>the comma is used as a separator<br>example:<br><code>[\"metrics.organic.pos_1,desc\"]</code><br>default rule:<br><code>[\"metrics.organic.count,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"expiration_datetime,asc\",\"metrics.organic.etv,desc\",\"metrics.organic.pos_1,desc\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "tag": {
        +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / body / items / oneOf
        Removed value: -[
        -  {
        -    "example": [
        -      {
        -        "filters": [
        -          [
        -            "epp_status_codes",
        -            "in",
        -            [
        -              "client_transfer_prohibited",
        -              "client_update_prohibited"
        -            ]
        -          ]
        -        ],
        -        "limit": 2
        -      }
        -    ],
        -    "properties": {
        -      "filters": {
        -        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>regex</code>, <code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>, <code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters",
        -        "items": {
        -          "type": [
        -            "object",
        -            "null"
        -          ]
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "limit": {
        -        "description": "<em>the maximum number of returned domains</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>1000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "offset": {
        -        "description": "<em>offset in the results array of returned items</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten <code>items</code> in the results array will be omitted and the data will be provided for the successive items;<br><strong>Note:</strong> we recommend using this parameter only when retrieving up to 10,000 results for retrieving over 10,000 results, use the <code>offset_token</code> instead",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "offset_token": {
        -        "description": "<em>token for subsequent requests</em><br>optional field<br>provided in the identical filed of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task<br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters should be identical to the previous request<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "order_by": {
        -        "description": "<em>results sorting rules</em><br>optional field<br>you can use the same values as in the <code>filters</code> array to sort the results<br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>the comma is used as a separator<br>example:<br><code>[\"metrics.organic.pos_1,desc\"]</code><br>default rule:<br><code>[\"metrics.organic.count,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"expiration_datetime,asc\",\"metrics.organic.etv,desc\",\"metrics.organic.pos_1,desc\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "tag": {
        -        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "type": "object"
        -  }
        -]
  2. 7 tool updates
    • Changedpost_dataforseo_domains_tech_aggregation_live2 fields changed
      • removedInput schema / properties / body / items / anyOf
        Removed value: -[
        -  {
        -    "example": [
        -      {
        -        "filters": [
        -          [
        -            "country_iso_code",
        -            "=",
        -            "US"
        -          ],
        -          "and",
        -          [
        -            "domain_rank",
        -            ">",
        -            800
        -          ]
        -        ],
        -        "keyword": "WordPress",
        -        "limit": 10,
        -        "mode": "entry",
        -        "order_by": [
        -          "groups_count,desc"
        -        ],
        -        "technology": "Nginx"
        -      }
        -    ],
        -    "properties": {
        -      "category": {
        -        "description": "<em>id of the target technology category</em><br><strong>required field if you don't specify <code>group</code>, <code>keyword</code> or <code>technology</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>you can find the full list of technology category ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"crm\"</code>",
        -        "type": "string"
        -      },
        -      "filters": {
        -        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>,<code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>you can use the following parameters to filter the results: <code>domain_rank</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br><strong>Note:</strong> all filtering parameters are taken from the <code>domain_technology_item</code> of the <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">domain_technologies</a> endpoint;<br>example:<br><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\"&gt;\",800]]</code>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        -        "items": {
        -          "type": [
        -            "object",
        -            "null"
        -          ]
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "group": {
        -        "description": "<em>id of the target technology group</em><br><strong>required field if you don't specify <code>technology</code>, <code>category</code> or <code>keyword</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>you can find the full list of technology group ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"marketing\"</code>",
        -        "type": "string"
        -      },
        -      "internal_categories_list_limit": {
        -        "description": "<em>maximum number of returned technology categories within the same group</em><br>optional field<br>you can use this field to limit the number of items with identical <code>\"category\"</code> in the results<br>default value: <code>5</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "internal_groups_list_limit": {
        -        "description": "<em>maximum number of returned technology groups</em><br>optional field<br>you can use this field to limit the number of items with identical <code>\"group\"</code> in the results<br>default value: <code>5</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "internal_list_limit": {
        -        "description": "<em>maximum number of items with identical <code>\"category\"</code>, <code>\"group\"</code>, and <code>\"technology\"</code></em><br>optional field<br>if you use this field, the values specified in <code>internal_groups_list_limit</code>, <code>internal_categories_list_limit</code> and <code>internal_technologies_list_limit</code> will be ignored;<br>you can use this field to limit the number of items with identical <code>\"category\"</code>, <code>\"group\"</code>, or <code>\"technology\"</code><br>default value: <code>10</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "internal_technologies_list_limit": {
        -        "description": "<em>maximum number of returned technologies within the same category</em><br>optional field<br>you can use this field to limit the number of items with identical <code>\"technology\"</code> in the results<br>default value: <code>10</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "keyword": {
        -        "description": "<em>target keyword in the domain's meta keywords</em><br><strong>required field if you don't specify <code>group</code>, <code>category</code> or <code>technology</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>UTF-8 encoding<br>example:<br><code>\"seo\"</code>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" target=\"_blank\" rel=\"noopener noreferrer\">Help Center article</a>",
        -        "type": "string"
        -      },
        -      "limit": {
        -        "description": "<em>the maximum number of returned technologies</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>10000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "mode": {
        -        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>as_is</code> - search for results exactly matching the specified group ids, category ids, or technology names<br><code>entry</code> - search for results matching a part of the specified group ids, category ids, or technology names<br>default value: <code>as_is</code>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "offset": {
        -        "description": "<em>offset in the results array of returned domains</em><br>optional field<br>default value: <code>0</code><br>maximum value: <code>9999</code><br>if you specify the <code>10</code> value, the first ten technologies in the results array will be omitted and the data will be provided for the successive technologies",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "order_by": {
        -        "description": "<em>results sorting rules</em><br>optional field<br>you can use the following values to sort the results: <code>groups_count</code>, <code>categories_count</code>, <code>technologies_count</code><br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"groups_count,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"groups_count,desc\",\"technologies_count,desc\"]</code><br>default value:<br><code>[\"groups_count,desc\",\"categories_count,desc\",\"technologies_count,desc\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "tag": {
        -        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "technology": {
        -        "description": "<em>target technology</em><br><strong>required field if you don't specify <code>group</code>, <code>keyword</code> or <code>category</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>you can find the full list of technologies <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"Salesforce\"</code>",
        -        "type": "string"
        -      }
        -    },
        -    "type": "object"
        -  }
        -]
      • addedInput schema / properties / body / items / oneOf
        Added value: +[
        +  {
        +    "example": [
        +      {
        +        "filters": [
        +          [
        +            "country_iso_code",
        +            "=",
        +            "US"
        +          ],
        +          "and",
        +          [
        +            "domain_rank",
        +            ">",
        +            800
        +          ]
        +        ],
        +        "keyword": "WordPress",
        +        "limit": 10,
        +        "mode": "entry",
        +        "order_by": [
        +          "groups_count,desc"
        +        ],
        +        "technology": "Nginx"
        +      }
        +    ],
        +    "properties": {
        +      "category": {
        +        "description": "<em>id of the target technology category</em><br><strong>required field if you don't specify <code>group</code>, <code>keyword</code> or <code>technology</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>you can find the full list of technology category ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"crm\"</code>",
        +        "type": "string"
        +      },
        +      "filters": {
        +        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>,<code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>you can use the following parameters to filter the results: <code>domain_rank</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br><strong>Note:</strong> all filtering parameters are taken from the <code>domain_technology_item</code> of the <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">domain_technologies</a> endpoint;<br>example:<br><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\"&gt;\",800]]</code>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        +        "items": {
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "group": {
        +        "description": "<em>id of the target technology group</em><br><strong>required field if you don't specify <code>technology</code>, <code>category</code> or <code>keyword</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>you can find the full list of technology group ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"marketing\"</code>",
        +        "type": "string"
        +      },
        +      "internal_categories_list_limit": {
        +        "description": "<em>maximum number of returned technology categories within the same group</em><br>optional field<br>you can use this field to limit the number of items with identical <code>\"category\"</code> in the results<br>default value: <code>5</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "internal_groups_list_limit": {
        +        "description": "<em>maximum number of returned technology groups</em><br>optional field<br>you can use this field to limit the number of items with identical <code>\"group\"</code> in the results<br>default value: <code>5</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "internal_list_limit": {
        +        "description": "<em>maximum number of items with identical <code>\"category\"</code>, <code>\"group\"</code>, and <code>\"technology\"</code></em><br>optional field<br>if you use this field, the values specified in <code>internal_groups_list_limit</code>, <code>internal_categories_list_limit</code> and <code>internal_technologies_list_limit</code> will be ignored;<br>you can use this field to limit the number of items with identical <code>\"category\"</code>, <code>\"group\"</code>, or <code>\"technology\"</code><br>default value: <code>10</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "internal_technologies_list_limit": {
        +        "description": "<em>maximum number of returned technologies within the same category</em><br>optional field<br>you can use this field to limit the number of items with identical <code>\"technology\"</code> in the results<br>default value: <code>10</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "keyword": {
        +        "description": "<em>target keyword in the domain's meta keywords</em><br><strong>required field if you don't specify <code>group</code>, <code>category</code> or <code>technology</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>UTF-8 encoding<br>example:<br><code>\"seo\"</code>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" target=\"_blank\" rel=\"noopener noreferrer\">Help Center article</a>",
        +        "type": "string"
        +      },
        +      "limit": {
        +        "description": "<em>the maximum number of returned technologies</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "mode": {
        +        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>as_is</code> - search for results exactly matching the specified group ids, category ids, or technology names<br><code>entry</code> - search for results matching a part of the specified group ids, category ids, or technology names<br>default value: <code>as_is</code>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "offset": {
        +        "description": "<em>offset in the results array of returned domains</em><br>optional field<br>default value: <code>0</code><br>maximum value: <code>9999</code><br>if you specify the <code>10</code> value, the first ten technologies in the results array will be omitted and the data will be provided for the successive technologies",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "order_by": {
        +        "description": "<em>results sorting rules</em><br>optional field<br>you can use the following values to sort the results: <code>groups_count</code>, <code>categories_count</code>, <code>technologies_count</code><br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"groups_count,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"groups_count,desc\",\"technologies_count,desc\"]</code><br>default value:<br><code>[\"groups_count,desc\",\"categories_count,desc\",\"technologies_count,desc\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "tag": {
        +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "technology": {
        +        "description": "<em>target technology</em><br><strong>required field if you don't specify <code>group</code>, <code>keyword</code> or <code>category</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>you can find the full list of technologies <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"Salesforce\"</code>",
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
    • Changedpost_dataforseo_domains_tech_domains_by_html_terms_live2 fields changed
      • removedInput schema / properties / body / items / anyOf
        Removed value: -[
        -  {
        -    "example": [
        -      {
        -        "limit": 10,
        -        "offset": 0,
        -        "order_by": [
        -          "last_visited,desc"
        -        ],
        -        "search_terms": [
        -          "data-attrid"
        -        ]
        -      }
        -    ],
        -    "properties": {
        -      "filters": {
        -        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>, <code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>example:<br><code>[\"domain\",\"like\",\"%seo%\"]</code><p><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\"&gt;\",100]]</code><p><code>[[\"domain_rank\",\"&gt;\",100],<br>\"and\",<br>[[\"country_iso_code\",\"=\",\"US\"],\"or\",[\"country_iso_code\",\"=\",\"CA\"]]]</code><p>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        -        "items": {
        -          "type": [
        -            "object",
        -            "null"
        -          ]
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "keywords": {
        -        "description": "<em>target keywords in the domain's title, description or meta keywords</em><br>optional field<br>UTF-8 encoding<br>maximum number of keywords you can specify: 10 <br>example:<br><code>[\"seo\",\"software\"]</code><p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "limit": {
        -        "description": "<em>the maximum number of returned domains</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>10000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "mode": {
        -        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>strict_entry</code> - search for results exactly matching the order, intervals and separators in the specified search terms<br><code>entry</code> - search for results ignoring the order, intervals and separators in the specified search terms<br>default value: <code>entry</code>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "offset": {
        -        "description": "<em>offset in the results array of returned domains</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten domains in the results array will be omitted and the data will be provided for the successive domains;<br><strong>Note:</strong> the maximum value is <code>9999</code>, the sum of <code>limit</code> and <code>offset</code> must not exceed <code>10000</code>;<br>use the <code>offset_token</code> if you would like to offset more results",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "offset_token": {
        -        "description": "<em>token for subsequent requests</em><br>optional field<br>provided in the identical filed of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task <br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters should be identical to the previous request<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "order_by": {
        -        "description": "<em>results sorting rules</em><br>optional field<br>available fields: <br><code>domain_rank</code>, <code>domain</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"last_visited,desc\"]</code><br>default rule:<br><code>[\"domain_rank,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"last_visited,desc\",\"domain_rank,desc\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "search_terms": {
        -        "description": "<em>target search terms</em><br><strong>required field</strong><br>specify target HTML elements, tags, attributes, their content or all of the above<br>if you specify more than one search term, you will receive only the domains containing all of the specified terms in the HTML code of their homepage<br>maximum number of search terms you can specify: 10<br>example:<br><code>[\"data-attrid\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      }
        -    },
        -    "type": "object"
        -  }
        -]
      • addedInput schema / properties / body / items / oneOf
        Added value: +[
        +  {
        +    "example": [
        +      {
        +        "limit": 10,
        +        "offset": 0,
        +        "order_by": [
        +          "last_visited,desc"
        +        ],
        +        "search_terms": [
        +          "data-attrid"
        +        ]
        +      }
        +    ],
        +    "properties": {
        +      "filters": {
        +        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>, <code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>example:<br><code>[\"domain\",\"like\",\"%seo%\"]</code><p><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\"&gt;\",100]]</code><p><code>[[\"domain_rank\",\"&gt;\",100],<br>\"and\",<br>[[\"country_iso_code\",\"=\",\"US\"],\"or\",[\"country_iso_code\",\"=\",\"CA\"]]]</code><p>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        +        "items": {
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "keywords": {
        +        "description": "<em>target keywords in the domain's title, description or meta keywords</em><br>optional field<br>UTF-8 encoding<br>maximum number of keywords you can specify: 10 <br>example:<br><code>[\"seo\",\"software\"]</code><p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "limit": {
        +        "description": "<em>the maximum number of returned domains</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "mode": {
        +        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>strict_entry</code> - search for results exactly matching the order, intervals and separators in the specified search terms<br><code>entry</code> - search for results ignoring the order, intervals and separators in the specified search terms<br>default value: <code>entry</code>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "offset": {
        +        "description": "<em>offset in the results array of returned domains</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten domains in the results array will be omitted and the data will be provided for the successive domains;<br><strong>Note:</strong> the maximum value is <code>9999</code>, the sum of <code>limit</code> and <code>offset</code> must not exceed <code>10000</code>;<br>use the <code>offset_token</code> if you would like to offset more results",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "offset_token": {
        +        "description": "<em>token for subsequent requests</em><br>optional field<br>provided in the identical filed of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task <br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters should be identical to the previous request<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "order_by": {
        +        "description": "<em>results sorting rules</em><br>optional field<br>available fields: <br><code>domain_rank</code>, <code>domain</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"last_visited,desc\"]</code><br>default rule:<br><code>[\"domain_rank,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"last_visited,desc\",\"domain_rank,desc\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "search_terms": {
        +        "description": "<em>target search terms</em><br><strong>required field</strong><br>specify target HTML elements, tags, attributes, their content or all of the above<br>if you specify more than one search term, you will receive only the domains containing all of the specified terms in the HTML code of their homepage<br>maximum number of search terms you can specify: 10<br>example:<br><code>[\"data-attrid\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
    • Changedpost_dataforseo_domains_tech_domains_by_technology_live2 fields changed
      • removedInput schema / properties / body / items / anyOf
        Removed value: -[
        -  {
        -    "example": [
        -      {
        -        "filters": [
        -          [
        -            "country_iso_code",
        -            "=",
        -            "US"
        -          ],
        -          "and",
        -          [
        -            "domain_rank",
        -            ">",
        -            800
        -          ]
        -        ],
        -        "limit": 10,
        -        "order_by": [
        -          "last_visited,desc"
        -        ],
        -        "technologies": [
        -          "Nginx"
        -        ]
        -      }
        -    ],
        -    "properties": {
        -      "categories": {
        -        "description": "<em>ids of the target technology categories</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>keywords</code> or <code>technologies</code></strong><br>you can find the full list of technology category ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology categories in this array<br>example:<br><code>[\"payment_processors\",\"crm\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "filters": {
        -        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>, <code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>example:<br><code>[\"country_iso_code\",\"=\",\"US\"]</code><p><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\"&gt;\",100]]</code><p><code>[[\"domain_rank\",\"&gt;\",100],<br>\"and\",<br>[[\"country_iso_code\",\"=\",\"US\"],\"or\",[\"country_iso_code\",\"=\",\"CA\"]]]</code><p>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        -        "items": {
        -          "type": [
        -            "object",
        -            "null"
        -          ]
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "groups": {
        -        "description": "<em>ids of the target technology groups</em><br><strong>required field if you don't specify <code>technologies</code>, <code>technology_paths</code>, <code>keywords</code> or <code>categories</code></strong><br>you can find the full list of technology group ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology groups in this array<br>example:<br><code>[\"sales\", \"marketing\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "keywords": {
        -        "description": "<em>target keywords in the domain's title, description or meta keywords</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>technologies</code> or <code>categories</code></strong><br>optional field<br>you can specify the maximum of 10 keywords;<br>UTF-8 encoding;<br>example:<br><code>[\"seo\",\"software\"]</code><p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "limit": {
        -        "description": "<em>the maximum number of returned domains</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>10000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "mode": {
        -        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>as_is</code> - search for results exactly matching the specified group ids, category ids, or technology names<br><code>entry</code> - search for results matching a part of the specified group ids, category ids, or technology names<br>default value: <code>as_is</code>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "offset": {
        -        "description": "<em>offset in the results array of returned domains</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten domains in the results array will be omitted and the data will be provided for the successive domains;<br><strong>Note:</strong> the maximum value is <code>9999</code>, the sum of <code>limit</code> and <code>offset</code> must not exceed <code>10000</code>;<br>use the <code>offset_token</code> if you would like to offset more results",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "offset_token": {
        -        "description": "<em>token for subsequent requests</em><br>optional field<br>provided in the identical filed of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task <br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters should be identical to the previous request<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "order_by": {
        -        "description": "<em>results sorting rules</em><br>optional field<br>available fields: <br><code>domain_rank</code>, <code>domain</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"last_visited,desc\"]</code><br>default rule:<br><code>[\"domain_rank,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"last_visited,desc\",\"domain_rank,desc\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "technologies": {
        -        "description": "<em>target technologies</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>keywords</code> or <code>categories</code></strong><br>you can find the full list of technologies you can specify here <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technologies in this array<br>example:<br><code>[\"Google Pay\",\"Salesforce\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "technology_paths": {
        -        "description": "<em>target technology paths</em><br><strong>required field if you don't specify <code>groups</code>, <code>technologies</code>, <code>keywords</code> or <code>categories</code></strong><br>at least one field (<code>technology_paths</code>, <code>groups</code>, <code>technologies</code>, <code>keywords</code> or <code>categories</code>) must be set;<br>each technology path should be specified as a separate object containing \"path\" and \"name\", where \"path\" is specified as \"$group_id.$category_id\" and \"name\" - as the name of the target technology; <br>each object with a technology path should be separated with a comma<br>you can find the full list of technology group ids, category ids and technology names <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology paths in this array<br>example:<br><code>[{\"path\": \"content.cms\",\"name\": \"wordpress\"}, {\"path\": \"marketing.crm\",\"name\": \"salesforce\"}]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      }
        -    },
        -    "type": "object"
        -  }
        -]
      • addedInput schema / properties / body / items / oneOf
        Added value: +[
        +  {
        +    "example": [
        +      {
        +        "filters": [
        +          [
        +            "country_iso_code",
        +            "=",
        +            "US"
        +          ],
        +          "and",
        +          [
        +            "domain_rank",
        +            ">",
        +            800
        +          ]
        +        ],
        +        "limit": 10,
        +        "order_by": [
        +          "last_visited,desc"
        +        ],
        +        "technologies": [
        +          "Nginx"
        +        ]
        +      }
        +    ],
        +    "properties": {
        +      "categories": {
        +        "description": "<em>ids of the target technology categories</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>keywords</code> or <code>technologies</code></strong><br>you can find the full list of technology category ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology categories in this array<br>example:<br><code>[\"payment_processors\",\"crm\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "filters": {
        +        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>, <code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>example:<br><code>[\"country_iso_code\",\"=\",\"US\"]</code><p><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\"&gt;\",100]]</code><p><code>[[\"domain_rank\",\"&gt;\",100],<br>\"and\",<br>[[\"country_iso_code\",\"=\",\"US\"],\"or\",[\"country_iso_code\",\"=\",\"CA\"]]]</code><p>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        +        "items": {
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "groups": {
        +        "description": "<em>ids of the target technology groups</em><br><strong>required field if you don't specify <code>technologies</code>, <code>technology_paths</code>, <code>keywords</code> or <code>categories</code></strong><br>you can find the full list of technology group ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology groups in this array<br>example:<br><code>[\"sales\", \"marketing\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "keywords": {
        +        "description": "<em>target keywords in the domain's title, description or meta keywords</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>technologies</code> or <code>categories</code></strong><br>optional field<br>you can specify the maximum of 10 keywords;<br>UTF-8 encoding;<br>example:<br><code>[\"seo\",\"software\"]</code><p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "limit": {
        +        "description": "<em>the maximum number of returned domains</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "mode": {
        +        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>as_is</code> - search for results exactly matching the specified group ids, category ids, or technology names<br><code>entry</code> - search for results matching a part of the specified group ids, category ids, or technology names<br>default value: <code>as_is</code>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "offset": {
        +        "description": "<em>offset in the results array of returned domains</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten domains in the results array will be omitted and the data will be provided for the successive domains;<br><strong>Note:</strong> the maximum value is <code>9999</code>, the sum of <code>limit</code> and <code>offset</code> must not exceed <code>10000</code>;<br>use the <code>offset_token</code> if you would like to offset more results",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "offset_token": {
        +        "description": "<em>token for subsequent requests</em><br>optional field<br>provided in the identical filed of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task <br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters should be identical to the previous request<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "order_by": {
        +        "description": "<em>results sorting rules</em><br>optional field<br>available fields: <br><code>domain_rank</code>, <code>domain</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"last_visited,desc\"]</code><br>default rule:<br><code>[\"domain_rank,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"last_visited,desc\",\"domain_rank,desc\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "technologies": {
        +        "description": "<em>target technologies</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>keywords</code> or <code>categories</code></strong><br>you can find the full list of technologies you can specify here <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technologies in this array<br>example:<br><code>[\"Google Pay\",\"Salesforce\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "technology_paths": {
        +        "description": "<em>target technology paths</em><br><strong>required field if you don't specify <code>groups</code>, <code>technologies</code>, <code>keywords</code> or <code>categories</code></strong><br>at least one field (<code>technology_paths</code>, <code>groups</code>, <code>technologies</code>, <code>keywords</code> or <code>categories</code>) must be set;<br>each technology path should be specified as a separate object containing \"path\" and \"name\", where \"path\" is specified as \"$group_id.$category_id\" and \"name\" - as the name of the target technology; <br>each object with a technology path should be separated with a comma<br>you can find the full list of technology group ids, category ids and technology names <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology paths in this array<br>example:<br><code>[{\"path\": \"content.cms\",\"name\": \"wordpress\"}, {\"path\": \"marketing.crm\",\"name\": \"salesforce\"}]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
    • Changedpost_dataforseo_domains_tech_for_domain_live2 fields changed
      • removedInput schema / properties / body / items / anyOf
        Removed value: -[
        -  {
        -    "example": [
        -      {
        -        "target": "dataforseo.com"
        -      }
        -    ],
        -    "properties": {
        -      "target": {
        -        "description": "<em>target domain</em><br><strong>required field</strong><br>domain name of the website to analyze<br><strong>Note:</strong> results will be returned for the specified domain only",
        -        "type": "string"
        -      }
        -    },
        -    "type": "object"
        -  }
        -]
      • addedInput schema / properties / body / items / oneOf
        Added value: +[
        +  {
        +    "example": [
        +      {
        +        "target": "dataforseo.com"
        +      }
        +    ],
        +    "properties": {
        +      "target": {
        +        "description": "<em>target domain</em><br><strong>required field</strong><br>domain name of the website to analyze<br><strong>Note:</strong> results will be returned for the specified domain only",
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
    • Changedpost_dataforseo_domains_tech_summary_live2 fields changed
      • removedInput schema / properties / body / items / anyOf
        Removed value: -[
        -  {
        -    "example": [
        -      {
        -        "filters": [
        -          [
        -            "country_iso_code",
        -            "=",
        -            "US"
        -          ],
        -          "and",
        -          [
        -            "domain_rank",
        -            ">",
        -            800
        -          ]
        -        ],
        -        "keywords": [
        -          "WordPress"
        -        ],
        -        "mode": "entry",
        -        "technologies": [
        -          "Ngi"
        -        ]
        -      }
        -    ],
        -    "properties": {
        -      "categories": {
        -        "description": "<em>ids of the target technology categories</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>technologies</code>, or <code>keywords</code></strong><br>you can find the full list of technology category ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology categories in this array<br>example:<br><code>[\"payment_processors\",\"crm\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "filters": {
        -        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>,<code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>you can use the following parameters to filter the results: <code>domain_rank</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br>example:<br><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\">\",800]]</code><p>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        -        "items": {
        -          "type": [
        -            "object",
        -            "null"
        -          ]
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "groups": {
        -        "description": "<em>ids of the target technology groups</em><br><strong>required field if you don't specify <code>technologies</code>, <code>technology_paths</code>, <code>categories</code>, or <code>keywords</code></strong><br>you can find the full list of technology group ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology groups in this array<br>example:<br><code>[\"sales\", \"marketing\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "internal_list_limit": {
        -        "description": "<em>maximum number of elements within internal arrays</em><br>optional field<br>you can use this field to limit the number of elements within the following arrays:<br><code>countries</code>, <code>languages</code>, <code>content_languages</code>, <code>keywords</code><br>default value: <code>10</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "keywords": {
        -        "description": "<em>target keywords in the domain's title, description or meta keywords</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>categories</code>, or <code>technologies</code></strong><br>you can specify the maximum of 10 keywords;<br>UTF-8 encoding;<br>example:<br><code>[\"seo\",\"software\"]</code><p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "mode": {
        -        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>as_is</code> - search for results exactly matching the specified group ids, category ids, or technology names<br><code>entry</code> - search for results matching a part of the specified group ids, category ids, or technology names<br>default value: <code>as_is</code>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "tag": {
        -        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "technologies": {
        -        "description": "<em>target technologies</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>categories</code>, or <code>keywords</code></strong><br>you can find the full list of technologies you can specify here <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technologies in this array<br>example:<br><code>[\"Google Pay\",\"Salesforce\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "technology_paths": {
        -        "description": "<em>target technology paths</em><br><strong>required field if you don't specify <code>groups</code>, <code>technologies</code> and <code>categories</code></strong><br>each technology path should be specified as a separate object containing \"path\" and \"name\", where \"path\" is specified as \"$group_id.$category_id\" and \"name\" - as the name of the target technology; <br>each object with a technology path should be separated with a comma<br>you can find the full list of technology group ids, category ids and technology names <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology paths in this array<br>example:<br><code>[{\"path\": \"content.cms\",\"name\": \"wordpress\"}, {\"path\": \"marketing.crm\",\"name\": \"salesforce\"}]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      }
        -    },
        -    "type": "object"
        -  }
        -]
      • addedInput schema / properties / body / items / oneOf
        Added value: +[
        +  {
        +    "example": [
        +      {
        +        "filters": [
        +          [
        +            "country_iso_code",
        +            "=",
        +            "US"
        +          ],
        +          "and",
        +          [
        +            "domain_rank",
        +            ">",
        +            800
        +          ]
        +        ],
        +        "keywords": [
        +          "WordPress"
        +        ],
        +        "mode": "entry",
        +        "technologies": [
        +          "Ngi"
        +        ]
        +      }
        +    ],
        +    "properties": {
        +      "categories": {
        +        "description": "<em>ids of the target technology categories</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>technologies</code>, or <code>keywords</code></strong><br>you can find the full list of technology category ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology categories in this array<br>example:<br><code>[\"payment_processors\",\"crm\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "filters": {
        +        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>,<code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>you can use the following parameters to filter the results: <code>domain_rank</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br>example:<br><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\">\",800]]</code><p>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        +        "items": {
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "groups": {
        +        "description": "<em>ids of the target technology groups</em><br><strong>required field if you don't specify <code>technologies</code>, <code>technology_paths</code>, <code>categories</code>, or <code>keywords</code></strong><br>you can find the full list of technology group ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology groups in this array<br>example:<br><code>[\"sales\", \"marketing\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "internal_list_limit": {
        +        "description": "<em>maximum number of elements within internal arrays</em><br>optional field<br>you can use this field to limit the number of elements within the following arrays:<br><code>countries</code>, <code>languages</code>, <code>content_languages</code>, <code>keywords</code><br>default value: <code>10</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "keywords": {
        +        "description": "<em>target keywords in the domain's title, description or meta keywords</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>categories</code>, or <code>technologies</code></strong><br>you can specify the maximum of 10 keywords;<br>UTF-8 encoding;<br>example:<br><code>[\"seo\",\"software\"]</code><p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "mode": {
        +        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>as_is</code> - search for results exactly matching the specified group ids, category ids, or technology names<br><code>entry</code> - search for results matching a part of the specified group ids, category ids, or technology names<br>default value: <code>as_is</code>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "tag": {
        +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "technologies": {
        +        "description": "<em>target technologies</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>categories</code>, or <code>keywords</code></strong><br>you can find the full list of technologies you can specify here <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technologies in this array<br>example:<br><code>[\"Google Pay\",\"Salesforce\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "technology_paths": {
        +        "description": "<em>target technology paths</em><br><strong>required field if you don't specify <code>groups</code>, <code>technologies</code> and <code>categories</code></strong><br>each technology path should be specified as a separate object containing \"path\" and \"name\", where \"path\" is specified as \"$group_id.$category_id\" and \"name\" - as the name of the target technology; <br>each object with a technology path should be separated with a comma<br>you can find the full list of technology group ids, category ids and technology names <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology paths in this array<br>example:<br><code>[{\"path\": \"content.cms\",\"name\": \"wordpress\"}, {\"path\": \"marketing.crm\",\"name\": \"salesforce\"}]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
    • Changedpost_dataforseo_domains_tech_technology_stats_live2 fields changed
      • removedInput schema / properties / body / items / anyOf
        Removed value: -[
        -  {
        -    "example": [
        -      {
        -        "date_from": "2022-10-31",
        -        "date_to": "2023-06-01",
        -        "technology": "jQuery"
        -      }
        -    ],
        -    "properties": {
        -      "date_from": {
        -        "description": "<em>starting date of the time range</em><br>optional field<br>minimum value: <code>2022-10-31</code><br>if you don't specify this field, the minimum value will be used by default<br>date format: <code>\"yyyy-mm-dd\"</code><br>example:<br><code>\"2023-06-01\"</code>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "date_to": {
        -        "description": "<em>ending date of the time range</em><br>optional field<br>if you don't specify this field, the today's date will be used by default<br>date format: <code>\"yyyy-mm-dd\"</code><br>example:<br><code>\"2023-01-15\"</code>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "tag": {
        -        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "technology": {
        -        "description": "<em>target technology</em><br><strong>required field</strong><br>you can find the full list of technologies you can specify here <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"Salesforce\"</code>",
        -        "type": "string"
        -      }
        -    },
        -    "type": "object"
        -  }
        -]
      • addedInput schema / properties / body / items / oneOf
        Added value: +[
        +  {
        +    "example": [
        +      {
        +        "date_from": "2022-10-31",
        +        "date_to": "2023-06-01",
        +        "technology": "jQuery"
        +      }
        +    ],
        +    "properties": {
        +      "date_from": {
        +        "description": "<em>starting date of the time range</em><br>optional field<br>minimum value: <code>2022-10-31</code><br>if you don't specify this field, the minimum value will be used by default<br>date format: <code>\"yyyy-mm-dd\"</code><br>example:<br><code>\"2023-06-01\"</code>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "date_to": {
        +        "description": "<em>ending date of the time range</em><br>optional field<br>if you don't specify this field, the today's date will be used by default<br>date format: <code>\"yyyy-mm-dd\"</code><br>example:<br><code>\"2023-01-15\"</code>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "tag": {
        +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "technology": {
        +        "description": "<em>target technology</em><br><strong>required field</strong><br>you can find the full list of technologies you can specify here <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"Salesforce\"</code>",
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
    • Changedpost_dataforseo_domains_whois_overview_live2 fields changed
      • removedInput schema / properties / body / items / anyOf
        Removed value: -[
        -  {
        -    "example": [
        -      {
        -        "filters": [
        -          [
        -            "epp_status_codes",
        -            "in",
        -            [
        -              "client_transfer_prohibited",
        -              "client_update_prohibited"
        -            ]
        -          ]
        -        ],
        -        "limit": 2
        -      }
        -    ],
        -    "properties": {
        -      "filters": {
        -        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>regex</code>, <code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>, <code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters",
        -        "items": {
        -          "type": [
        -            "object",
        -            "null"
        -          ]
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "limit": {
        -        "description": "<em>the maximum number of returned domains</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>1000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "offset": {
        -        "description": "<em>offset in the results array of returned items</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten <code>items</code> in the results array will be omitted and the data will be provided for the successive items;<br><strong>Note:</strong> we recommend using this parameter only when retrieving up to 10,000 results for retrieving over 10,000 results, use the <code>offset_token</code> instead",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "offset_token": {
        -        "description": "<em>token for subsequent requests</em><br>optional field<br>provided in the identical filed of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task<br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters should be identical to the previous request<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "order_by": {
        -        "description": "<em>results sorting rules</em><br>optional field<br>you can use the same values as in the <code>filters</code> array to sort the results<br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>the comma is used as a separator<br>example:<br><code>[\"metrics.organic.pos_1,desc\"]</code><br>default rule:<br><code>[\"metrics.organic.count,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"expiration_datetime,asc\",\"metrics.organic.etv,desc\",\"metrics.organic.pos_1,desc\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "tag": {
        -        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "type": "object"
        -  }
        -]
      • addedInput schema / properties / body / items / oneOf
        Added value: +[
        +  {
        +    "example": [
        +      {
        +        "filters": [
        +          [
        +            "epp_status_codes",
        +            "in",
        +            [
        +              "client_transfer_prohibited",
        +              "client_update_prohibited"
        +            ]
        +          ]
        +        ],
        +        "limit": 2
        +      }
        +    ],
        +    "properties": {
        +      "filters": {
        +        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>regex</code>, <code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>, <code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters",
        +        "items": {
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "limit": {
        +        "description": "<em>the maximum number of returned domains</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>1000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "offset": {
        +        "description": "<em>offset in the results array of returned items</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten <code>items</code> in the results array will be omitted and the data will be provided for the successive items;<br><strong>Note:</strong> we recommend using this parameter only when retrieving up to 10,000 results for retrieving over 10,000 results, use the <code>offset_token</code> instead",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "offset_token": {
        +        "description": "<em>token for subsequent requests</em><br>optional field<br>provided in the identical filed of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task<br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters should be identical to the previous request<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "order_by": {
        +        "description": "<em>results sorting rules</em><br>optional field<br>you can use the same values as in the <code>filters</code> array to sort the results<br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>the comma is used as a separator<br>example:<br><code>[\"metrics.organic.pos_1,desc\"]</code><br>default rule:<br><code>[\"metrics.organic.count,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"expiration_datetime,asc\",\"metrics.organic.etv,desc\",\"metrics.organic.pos_1,desc\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "tag": {
        +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
  3. 18 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_dataforseo_domains_tech_available_filters1 field changed
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • Changedget_dataforseo_domains_tech_languages1 field changed
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • Changedget_dataforseo_domains_tech_list1 field changed
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • Changedget_dataforseo_domains_tech_locations1 field changed
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • Changedget_dataforseo_domains_whois_available_filters1 field changed
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • 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"
        +]
    • Changedpost_dataforseo_domains_tech_aggregation_live7 fields changed
      • addedInput schema / properties / body / example
        Added value: +[
        +  {
        +    "filters": [
        +      [
        +        "country_iso_code",
        +        "=",
        +        "US"
        +      ],
        +      "and",
        +      [
        +        "domain_rank",
        +        ">",
        +        800
        +      ]
        +    ],
        +    "keyword": "WordPress",
        +    "limit": 10,
        +    "mode": "entry",
        +    "order_by": [
        +      "groups_count,desc"
        +    ],
        +    "technology": "Nginx"
        +  }
        +]
      • removedInput schema / properties / body / items / allOf
        Removed value: -[
        -  {
        -    "anyOf": [
        -      {
        -        "required": [
        -          "group"
        -        ]
        -      },
        -      {
        -        "required": [
        -          "category"
        -        ]
        -      },
        -      {
        -        "required": [
        -          "technology"
        -        ]
        -      },
        -      {
        -        "required": [
        -          "keyword"
        -        ]
        -      }
        -    ]
        -  }
        -]
      • addedInput schema / properties / body / items / anyOf
        Added value: +[
        +  {
        +    "example": [
        +      {
        +        "filters": [
        +          [
        +            "country_iso_code",
        +            "=",
        +            "US"
        +          ],
        +          "and",
        +          [
        +            "domain_rank",
        +            ">",
        +            800
        +          ]
        +        ],
        +        "keyword": "WordPress",
        +        "limit": 10,
        +        "mode": "entry",
        +        "order_by": [
        +          "groups_count,desc"
        +        ],
        +        "technology": "Nginx"
        +      }
        +    ],
        +    "properties": {
        +      "category": {
        +        "description": "<em>id of the target technology category</em><br><strong>required field if you don't specify <code>group</code>, <code>keyword</code> or <code>technology</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>you can find the full list of technology category ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"crm\"</code>",
        +        "type": "string"
        +      },
        +      "filters": {
        +        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>,<code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>you can use the following parameters to filter the results: <code>domain_rank</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br><strong>Note:</strong> all filtering parameters are taken from the <code>domain_technology_item</code> of the <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">domain_technologies</a> endpoint;<br>example:<br><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\"&gt;\",800]]</code>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        +        "items": {
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "group": {
        +        "description": "<em>id of the target technology group</em><br><strong>required field if you don't specify <code>technology</code>, <code>category</code> or <code>keyword</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>you can find the full list of technology group ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"marketing\"</code>",
        +        "type": "string"
        +      },
        +      "internal_categories_list_limit": {
        +        "description": "<em>maximum number of returned technology categories within the same group</em><br>optional field<br>you can use this field to limit the number of items with identical <code>\"category\"</code> in the results<br>default value: <code>5</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "internal_groups_list_limit": {
        +        "description": "<em>maximum number of returned technology groups</em><br>optional field<br>you can use this field to limit the number of items with identical <code>\"group\"</code> in the results<br>default value: <code>5</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "internal_list_limit": {
        +        "description": "<em>maximum number of items with identical <code>\"category\"</code>, <code>\"group\"</code>, and <code>\"technology\"</code></em><br>optional field<br>if you use this field, the values specified in <code>internal_groups_list_limit</code>, <code>internal_categories_list_limit</code> and <code>internal_technologies_list_limit</code> will be ignored;<br>you can use this field to limit the number of items with identical <code>\"category\"</code>, <code>\"group\"</code>, or <code>\"technology\"</code><br>default value: <code>10</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "internal_technologies_list_limit": {
        +        "description": "<em>maximum number of returned technologies within the same category</em><br>optional field<br>you can use this field to limit the number of items with identical <code>\"technology\"</code> in the results<br>default value: <code>10</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "keyword": {
        +        "description": "<em>target keyword in the domain's meta keywords</em><br><strong>required field if you don't specify <code>group</code>, <code>category</code> or <code>technology</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>UTF-8 encoding<br>example:<br><code>\"seo\"</code>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" target=\"_blank\" rel=\"noopener noreferrer\">Help Center article</a>",
        +        "type": "string"
        +      },
        +      "limit": {
        +        "description": "<em>the maximum number of returned technologies</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "mode": {
        +        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>as_is</code> - search for results exactly matching the specified group ids, category ids, or technology names<br><code>entry</code> - search for results matching a part of the specified group ids, category ids, or technology names<br>default value: <code>as_is</code>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "offset": {
        +        "description": "<em>offset in the results array of returned domains</em><br>optional field<br>default value: <code>0</code><br>maximum value: <code>9999</code><br>if you specify the <code>10</code> value, the first ten technologies in the results array will be omitted and the data will be provided for the successive technologies",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "order_by": {
        +        "description": "<em>results sorting rules</em><br>optional field<br>you can use the following values to sort the results: <code>groups_count</code>, <code>categories_count</code>, <code>technologies_count</code><br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"groups_count,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"groups_count,desc\",\"technologies_count,desc\"]</code><br>default value:<br><code>[\"groups_count,desc\",\"categories_count,desc\",\"technologies_count,desc\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "tag": {
        +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "technology": {
        +        "description": "<em>target technology</em><br><strong>required field if you don't specify <code>group</code>, <code>keyword</code> or <code>category</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>you can find the full list of technologies <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"Salesforce\"</code>",
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / body / items / properties
        Removed value: -{
        -  "category": {
        -    "description": "id of the target technology category required field if you don’t specify group, keyword or technology at least one field (group, category, keyword, technology) must be set you can find the full list of technology category ids on this page example: \"crm\"",
        -    "type": "string"
        -  },
        -  "filters": {
        -    "description": "array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: , , >, >=, =, , in, not_in, like,not_like you can use the % operator with like and not_like to match any string of zero or more characters you can use the following parameters to filter the results: domain_rank, last_visited, country_iso_code, language_code, content_language_code Note: all filtering parameters are taken from the domain_technology_item of the domain_technologies endpoint; example: [[\"country_iso_code\",\"=\",\"US\"], \"and\", [\"domain_rank\",\">\",800]]for more information about filters, please refer to Domain Analytics Technologies API – Filters",
        -    "items": {},
        -    "type": "array"
        -  },
        -  "group": {
        -    "description": "id of the target technology group required field if you don’t specify technology, category or keyword at least one field (group, category, keyword, technology) must be set you can find the full list of technology group ids on this page example: \"marketing\"",
        -    "type": "string"
        -  },
        -  "internal_categories_list_limit": {
        -    "description": "maximum number of returned technology categories within the same group optional field you can use this field to limit the number of items with identical \"category\" in the results default value: 5 minimum value: 1 maximum value: 10000",
        -    "type": "integer"
        -  },
        -  "internal_groups_list_limit": {
        -    "description": "maximum number of returned technology groups optional field you can use this field to limit the number of items with identical \"group\" in the results default value: 5 minimum value: 1 maximum value: 10000",
        -    "type": "integer"
        -  },
        -  "internal_list_limit": {
        -    "description": "maximum number of items with identical \"category\", \"group\", and \"technology\" optional field if you use this field, the values specified in internal_groups_list_limit, internal_categories_list_limit and internal_technologies_list_limit will be ignored; you can use this field to limit the number of items with identical \"category\", \"group\", or \"technology\" default value: 10 minimum value: 1 maximum value: 10000",
        -    "type": "integer"
        -  },
        -  "internal_technologies_list_limit": {
        -    "description": "maximum number of returned technologies within the same category optional field you can use this field to limit the number of items with identical \"technology\" in the results default value: 10 minimum value: 1 maximum value: 10000",
        -    "type": "integer"
        -  },
        -  "keyword": {
        -    "description": "target keyword in the domain’s meta keywords required field if you don’t specify group, category or technology at least one field (group, category, keyword, technology) must be set UTF-8 encoding example: \"seo\"learn more about rules and limitations of keyword and keywords fields in DataForSEO APIs in this Help Center article",
        -    "type": "string"
        -  },
        -  "limit": {
        -    "description": "the maximum number of returned technologies optional field default value: 100 maximum value: 10000",
        -    "type": "integer"
        -  },
        -  "mode": {
        -    "description": "search mode optional field possible search mode types: as_is – search for results exactly matching the specified group ids, category ids, or technology names entry – search for results matching a part of the specified group ids, category ids, or technology names default value: as_is",
        -    "type": "string"
        -  },
        -  "offset": {
        -    "description": "offset in the results array of returned domains optional field default value: 0 maximum value: 9999 if you specify the 10 value, the first ten technologies in the results array will be omitted and the data will be provided for the successive technologies",
        -    "type": "integer"
        -  },
        -  "order_by": {
        -    "description": "results sorting rules optional field you can use the following values to sort the results: groups_count, categories_count, technologies_count possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: [\"groups_count,desc\"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: [\"groups_count,desc\",\"technologies_count,desc\"] default value: [\"groups_count,desc\",\"categories_count,desc\",\"technologies_count,desc\"]",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "tag": {
        -    "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
        -    "type": "string"
        -  },
        -  "technology": {
        -    "description": "target technology required field if you don’t specify group, keyword or category at least one field (group, category, keyword, technology) must be set you can find the full list of technologies on this page example: \"Salesforce\"",
        -    "type": "string"
        -  }
        -}
      • changedInput schema / properties / body / items / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedInput schema / required
        Previous value: -[
        -  "body"
        -]New value: +[]
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • Changedpost_dataforseo_domains_tech_domains_by_html_terms_live7 fields changed
      • addedInput schema / properties / body / example
        Added value: +[
        +  {
        +    "limit": 10,
        +    "offset": 0,
        +    "order_by": [
        +      "last_visited,desc"
        +    ],
        +    "search_terms": [
        +      "data-attrid"
        +    ]
        +  }
        +]
      • addedInput schema / properties / body / items / anyOf
        Added value: +[
        +  {
        +    "example": [
        +      {
        +        "limit": 10,
        +        "offset": 0,
        +        "order_by": [
        +          "last_visited,desc"
        +        ],
        +        "search_terms": [
        +          "data-attrid"
        +        ]
        +      }
        +    ],
        +    "properties": {
        +      "filters": {
        +        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>, <code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>example:<br><code>[\"domain\",\"like\",\"%seo%\"]</code><p><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\"&gt;\",100]]</code><p><code>[[\"domain_rank\",\"&gt;\",100],<br>\"and\",<br>[[\"country_iso_code\",\"=\",\"US\"],\"or\",[\"country_iso_code\",\"=\",\"CA\"]]]</code><p>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        +        "items": {
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "keywords": {
        +        "description": "<em>target keywords in the domain's title, description or meta keywords</em><br>optional field<br>UTF-8 encoding<br>maximum number of keywords you can specify: 10 <br>example:<br><code>[\"seo\",\"software\"]</code><p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "limit": {
        +        "description": "<em>the maximum number of returned domains</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "mode": {
        +        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>strict_entry</code> - search for results exactly matching the order, intervals and separators in the specified search terms<br><code>entry</code> - search for results ignoring the order, intervals and separators in the specified search terms<br>default value: <code>entry</code>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "offset": {
        +        "description": "<em>offset in the results array of returned domains</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten domains in the results array will be omitted and the data will be provided for the successive domains;<br><strong>Note:</strong> the maximum value is <code>9999</code>, the sum of <code>limit</code> and <code>offset</code> must not exceed <code>10000</code>;<br>use the <code>offset_token</code> if you would like to offset more results",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "offset_token": {
        +        "description": "<em>token for subsequent requests</em><br>optional field<br>provided in the identical filed of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task <br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters should be identical to the previous request<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "order_by": {
        +        "description": "<em>results sorting rules</em><br>optional field<br>available fields: <br><code>domain_rank</code>, <code>domain</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"last_visited,desc\"]</code><br>default rule:<br><code>[\"domain_rank,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"last_visited,desc\",\"domain_rank,desc\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "search_terms": {
        +        "description": "<em>target search terms</em><br><strong>required field</strong><br>specify target HTML elements, tags, attributes, their content or all of the above<br>if you specify more than one search term, you will receive only the domains containing all of the specified terms in the HTML code of their homepage<br>maximum number of search terms you can specify: 10<br>example:<br><code>[\"data-attrid\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / body / items / properties
        Removed value: -{
        -  "filters": {
        -    "description": "array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: , , >, >=, =, , in, not_in, like, not_like you can use the % operator with like and not_like to match any string of zero or more characters example: [\"domain\",\"like\",\"%seo%\"] [[\"country_iso_code\",\"=\",\"US\"], \"and\", [\"domain_rank\",\">\",100]] [[\"domain_rank\",\">\",100], \"and\", [[\"country_iso_code\",\"=\",\"US\"],\"or\",[\"country_iso_code\",\"=\",\"CA\"]]] for more information about filters, please refer to Domain Analytics Technologies API – Filters",
        -    "items": {},
        -    "type": "array"
        -  },
        -  "keywords": {
        -    "description": "target keywords in the domain’s title, description or meta keywords optional field UTF-8 encoding maximum number of keywords you can specify: 10 example: [\"seo\",\"software\"] learn more about rules and limitations of keyword and keywords fields in DataForSEO APIs in this Help Center article",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "limit": {
        -    "description": "the maximum number of returned domains optional field default value: 100 maximum value: 10000",
        -    "type": "integer"
        -  },
        -  "mode": {
        -    "description": "search mode optional field possible search mode types: strict_entry – search for results exactly matching the order, intervals and separators in the specified search terms entry – search for results ignoring the order, intervals and separators in the specified search terms default value: entry",
        -    "type": "string"
        -  },
        -  "offset": {
        -    "description": "offset in the results array of returned domains optional field default value: 0 if you specify the 10 value, the first ten domains in the results array will be omitted and the data will be provided for the successive domains; Note: the maximum value is 9999, the sum of limit and offset must not exceed 10000; use the offset_token if you would like to offset more results",
        -    "type": "integer"
        -  },
        -  "offset_token": {
        -    "description": "token for subsequent requests optional field provided in the identical filed of the response to each request; use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request; by specifying the unique offset_token value from the response array, you will get the subsequent results of the initial task; offset_token values are unique for each subsequent task Note: if the offset_token is specified in the request, all other parameters should be identical to the previous request learn more about this parameter on our Help Center",
        -    "type": "string"
        -  },
        -  "order_by": {
        -    "description": "results sorting rules optional field available fields: domain_rank, domain, last_visited, country_iso_code, language_code, content_language_code possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: [\"last_visited,desc\"] default rule: [\"domain_rank,desc\"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: [\"last_visited,desc\",\"domain_rank,desc\"]",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "search_terms": {
        -    "description": "target search terms required field specify target HTML elements, tags, attributes, their content or all of the above if you specify more than one search term, you will receive only the domains containing all of the specified terms in the HTML code of their homepage maximum number of search terms you can specify: 10 example: [\"data-attrid\"]",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  }
        -}
      • removedInput schema / properties / body / items / required
        Removed value: -[
        -  "search_terms"
        -]
      • changedInput schema / properties / body / items / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedInput schema / required
        Previous value: -[
        -  "body"
        -]New value: +[]
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • Changedpost_dataforseo_domains_tech_domains_by_technology_live7 fields changed
      • addedInput schema / properties / body / example
        Added value: +[
        +  {
        +    "filters": [
        +      [
        +        "country_iso_code",
        +        "=",
        +        "US"
        +      ],
        +      "and",
        +      [
        +        "domain_rank",
        +        ">",
        +        800
        +      ]
        +    ],
        +    "limit": 10,
        +    "order_by": [
        +      "last_visited,desc"
        +    ],
        +    "technologies": [
        +      "Nginx"
        +    ]
        +  }
        +]
      • removedInput schema / properties / body / items / allOf
        Removed value: -[
        -  {
        -    "anyOf": [
        -      {
        -        "required": [
        -          "technology_paths"
        -        ]
        -      },
        -      {
        -        "required": [
        -          "groups"
        -        ]
        -      },
        -      {
        -        "required": [
        -          "categories"
        -        ]
        -      },
        -      {
        -        "required": [
        -          "technologies"
        -        ]
        -      },
        -      {
        -        "required": [
        -          "keywords"
        -        ]
        -      }
        -    ]
        -  }
        -]
      • addedInput schema / properties / body / items / anyOf
        Added value: +[
        +  {
        +    "example": [
        +      {
        +        "filters": [
        +          [
        +            "country_iso_code",
        +            "=",
        +            "US"
        +          ],
        +          "and",
        +          [
        +            "domain_rank",
        +            ">",
        +            800
        +          ]
        +        ],
        +        "limit": 10,
        +        "order_by": [
        +          "last_visited,desc"
        +        ],
        +        "technologies": [
        +          "Nginx"
        +        ]
        +      }
        +    ],
        +    "properties": {
        +      "categories": {
        +        "description": "<em>ids of the target technology categories</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>keywords</code> or <code>technologies</code></strong><br>you can find the full list of technology category ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology categories in this array<br>example:<br><code>[\"payment_processors\",\"crm\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "filters": {
        +        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>, <code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>example:<br><code>[\"country_iso_code\",\"=\",\"US\"]</code><p><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\"&gt;\",100]]</code><p><code>[[\"domain_rank\",\"&gt;\",100],<br>\"and\",<br>[[\"country_iso_code\",\"=\",\"US\"],\"or\",[\"country_iso_code\",\"=\",\"CA\"]]]</code><p>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        +        "items": {
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "groups": {
        +        "description": "<em>ids of the target technology groups</em><br><strong>required field if you don't specify <code>technologies</code>, <code>technology_paths</code>, <code>keywords</code> or <code>categories</code></strong><br>you can find the full list of technology group ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology groups in this array<br>example:<br><code>[\"sales\", \"marketing\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "keywords": {
        +        "description": "<em>target keywords in the domain's title, description or meta keywords</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>technologies</code> or <code>categories</code></strong><br>optional field<br>you can specify the maximum of 10 keywords;<br>UTF-8 encoding;<br>example:<br><code>[\"seo\",\"software\"]</code><p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "limit": {
        +        "description": "<em>the maximum number of returned domains</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "mode": {
        +        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>as_is</code> - search for results exactly matching the specified group ids, category ids, or technology names<br><code>entry</code> - search for results matching a part of the specified group ids, category ids, or technology names<br>default value: <code>as_is</code>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "offset": {
        +        "description": "<em>offset in the results array of returned domains</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten domains in the results array will be omitted and the data will be provided for the successive domains;<br><strong>Note:</strong> the maximum value is <code>9999</code>, the sum of <code>limit</code> and <code>offset</code> must not exceed <code>10000</code>;<br>use the <code>offset_token</code> if you would like to offset more results",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "offset_token": {
        +        "description": "<em>token for subsequent requests</em><br>optional field<br>provided in the identical filed of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task <br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters should be identical to the previous request<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "order_by": {
        +        "description": "<em>results sorting rules</em><br>optional field<br>available fields: <br><code>domain_rank</code>, <code>domain</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"last_visited,desc\"]</code><br>default rule:<br><code>[\"domain_rank,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"last_visited,desc\",\"domain_rank,desc\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "technologies": {
        +        "description": "<em>target technologies</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>keywords</code> or <code>categories</code></strong><br>you can find the full list of technologies you can specify here <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technologies in this array<br>example:<br><code>[\"Google Pay\",\"Salesforce\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "technology_paths": {
        +        "description": "<em>target technology paths</em><br><strong>required field if you don't specify <code>groups</code>, <code>technologies</code>, <code>keywords</code> or <code>categories</code></strong><br>at least one field (<code>technology_paths</code>, <code>groups</code>, <code>technologies</code>, <code>keywords</code> or <code>categories</code>) must be set;<br>each technology path should be specified as a separate object containing \"path\" and \"name\", where \"path\" is specified as \"$group_id.$category_id\" and \"name\" - as the name of the target technology; <br>each object with a technology path should be separated with a comma<br>you can find the full list of technology group ids, category ids and technology names <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology paths in this array<br>example:<br><code>[{\"path\": \"content.cms\",\"name\": \"wordpress\"}, {\"path\": \"marketing.crm\",\"name\": \"salesforce\"}]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / body / items / properties
        Removed value: -{
        -  "categories": {
        -    "description": "ids of the target technology categories required field if you don’t specify groups, technology_paths, keywords or technologies you can find the full list of technology category ids on this page note: you can specify up to 10 technology categories in this array example: [\"payment_processors\",\"crm\"]",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "filters": {
        -    "description": "array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: , , >, >=, =, , in, not_in, like, not_like you can use the % operator with like and not_like to match any string of zero or more characters example: [\"country_iso_code\",\"=\",\"US\"] [[\"country_iso_code\",\"=\",\"US\"], \"and\", [\"domain_rank\",\">\",100]] [[\"domain_rank\",\">\",100], \"and\", [[\"country_iso_code\",\"=\",\"US\"],\"or\",[\"country_iso_code\",\"=\",\"CA\"]]] for more information about filters, please refer to Domain Analytics Technologies API – Filters",
        -    "items": {},
        -    "type": "array"
        -  },
        -  "groups": {
        -    "description": "ids of the target technology groups required field if you don’t specify technologies, technology_paths, keywords or categories you can find the full list of technology group ids on this page note: you can specify up to 10 technology groups in this array example: [\"sales\", \"marketing\"]",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "keywords": {
        -    "description": "target keywords in the domain’s title, description or meta keywords required field if you don’t specify groups, technology_paths, technologies or categories optional field you can specify the maximum of 10 keywords; UTF-8 encoding; example: [\"seo\",\"software\"] learn more about rules and limitations of keyword and keywords fields in DataForSEO APIs in this Help Center article",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "limit": {
        -    "description": "the maximum number of returned domains optional field default value: 100 maximum value: 10000",
        -    "type": "integer"
        -  },
        -  "mode": {
        -    "description": "search mode optional field possible search mode types: as_is – search for results exactly matching the specified group ids, category ids, or technology names entry – search for results matching a part of the specified group ids, category ids, or technology names default value: as_is",
        -    "type": "string"
        -  },
        -  "offset": {
        -    "description": "offset in the results array of returned domains optional field default value: 0 if you specify the 10 value, the first ten domains in the results array will be omitted and the data will be provided for the successive domains; Note: the maximum value is 9999, the sum of limit and offset must not exceed 10000; use the offset_token if you would like to offset more results",
        -    "type": "integer"
        -  },
        -  "offset_token": {
        -    "description": "token for subsequent requests optional field provided in the identical filed of the response to each request; use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request; by specifying the unique offset_token value from the response array, you will get the subsequent results of the initial task; offset_token values are unique for each subsequent task Note: if the offset_token is specified in the request, all other parameters should be identical to the previous request learn more about this parameter on our Help Center",
        -    "type": "string"
        -  },
        -  "order_by": {
        -    "description": "results sorting rules optional field available fields: domain_rank, domain, last_visited, country_iso_code, language_code, content_language_code possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: [\"last_visited,desc\"] default rule: [\"domain_rank,desc\"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: [\"last_visited,desc\",\"domain_rank,desc\"]",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "technologies": {
        -    "description": "target technologies required field if you don’t specify groups, technology_paths, keywords or categories you can find the full list of technologies you can specify here on this page note: you can specify up to 10 technologies in this array example: [\"Google Pay\",\"Salesforce\"]",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "technology_paths": {
        -    "description": "target technology paths required field if you don’t specify groups, technologies, keywords or categories at least one field (technology_paths, groups, technologies, keywords or categories) must be set; each technology path should be specified as a separate object containing “path” and “name”, where “path” is specified as “$group_id.$category_id” and “name” – as the name of the target technology; each object with a technology path should be separated with a comma you can find the full list of technology group ids, category ids and technology names on this page note: you can specify up to 10 technology paths in this array example: [{\"path\": \"content.cms\",\"name\": \"wordpress\"}, {\"path\": \"marketing.crm\",\"name\": \"salesforce\"}]",
        -    "items": {
        -      "properties": {
        -        "name": {
        -          "type": "string"
        -        },
        -        "path": {
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "path",
        -        "name"
        -      ],
        -      "type": "object"
        -    },
        -    "type": "array"
        -  }
        -}
      • changedInput schema / properties / body / items / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedInput schema / required
        Previous value: -[
        -  "body"
        -]New value: +[]
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • Changedpost_dataforseo_domains_tech_for_domain_live7 fields changed
      • addedInput schema / properties / body / example
        Added value: +[
        +  {
        +    "target": "dataforseo.com"
        +  }
        +]
      • addedInput schema / properties / body / items / anyOf
        Added value: +[
        +  {
        +    "example": [
        +      {
        +        "target": "dataforseo.com"
        +      }
        +    ],
        +    "properties": {
        +      "target": {
        +        "description": "<em>target domain</em><br><strong>required field</strong><br>domain name of the website to analyze<br><strong>Note:</strong> results will be returned for the specified domain only",
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / body / items / properties
        Removed value: -{
        -  "target": {
        -    "description": "target domain required field domain name of the website to analyze Note: results will be returned for the specified domain only",
        -    "type": "string"
        -  }
        -}
      • removedInput schema / properties / body / items / required
        Removed value: -[
        -  "target"
        -]
      • changedInput schema / properties / body / items / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedInput schema / required
        Previous value: -[
        -  "body"
        -]New value: +[]
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • Changedpost_dataforseo_domains_tech_summary_live7 fields changed
      • addedInput schema / properties / body / example
        Added value: +[
        +  {
        +    "filters": [
        +      [
        +        "country_iso_code",
        +        "=",
        +        "US"
        +      ],
        +      "and",
        +      [
        +        "domain_rank",
        +        ">",
        +        800
        +      ]
        +    ],
        +    "keywords": [
        +      "WordPress"
        +    ],
        +    "mode": "entry",
        +    "technologies": [
        +      "Ngi"
        +    ]
        +  }
        +]
      • removedInput schema / properties / body / items / allOf
        Removed value: -[
        -  {
        -    "anyOf": [
        -      {
        -        "required": [
        -          "technology_paths"
        -        ]
        -      },
        -      {
        -        "required": [
        -          "groups"
        -        ]
        -      },
        -      {
        -        "required": [
        -          "categories"
        -        ]
        -      },
        -      {
        -        "required": [
        -          "technologies"
        -        ]
        -      },
        -      {
        -        "required": [
        -          "keywords"
        -        ]
        -      }
        -    ]
        -  }
        -]
      • addedInput schema / properties / body / items / anyOf
        Added value: +[
        +  {
        +    "example": [
        +      {
        +        "filters": [
        +          [
        +            "country_iso_code",
        +            "=",
        +            "US"
        +          ],
        +          "and",
        +          [
        +            "domain_rank",
        +            ">",
        +            800
        +          ]
        +        ],
        +        "keywords": [
        +          "WordPress"
        +        ],
        +        "mode": "entry",
        +        "technologies": [
        +          "Ngi"
        +        ]
        +      }
        +    ],
        +    "properties": {
        +      "categories": {
        +        "description": "<em>ids of the target technology categories</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>technologies</code>, or <code>keywords</code></strong><br>you can find the full list of technology category ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology categories in this array<br>example:<br><code>[\"payment_processors\",\"crm\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "filters": {
        +        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>,<code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>you can use the following parameters to filter the results: <code>domain_rank</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br>example:<br><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\">\",800]]</code><p>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        +        "items": {
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "groups": {
        +        "description": "<em>ids of the target technology groups</em><br><strong>required field if you don't specify <code>technologies</code>, <code>technology_paths</code>, <code>categories</code>, or <code>keywords</code></strong><br>you can find the full list of technology group ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology groups in this array<br>example:<br><code>[\"sales\", \"marketing\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "internal_list_limit": {
        +        "description": "<em>maximum number of elements within internal arrays</em><br>optional field<br>you can use this field to limit the number of elements within the following arrays:<br><code>countries</code>, <code>languages</code>, <code>content_languages</code>, <code>keywords</code><br>default value: <code>10</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "keywords": {
        +        "description": "<em>target keywords in the domain's title, description or meta keywords</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>categories</code>, or <code>technologies</code></strong><br>you can specify the maximum of 10 keywords;<br>UTF-8 encoding;<br>example:<br><code>[\"seo\",\"software\"]</code><p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "mode": {
        +        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>as_is</code> - search for results exactly matching the specified group ids, category ids, or technology names<br><code>entry</code> - search for results matching a part of the specified group ids, category ids, or technology names<br>default value: <code>as_is</code>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "tag": {
        +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "technologies": {
        +        "description": "<em>target technologies</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>categories</code>, or <code>keywords</code></strong><br>you can find the full list of technologies you can specify here <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technologies in this array<br>example:<br><code>[\"Google Pay\",\"Salesforce\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "technology_paths": {
        +        "description": "<em>target technology paths</em><br><strong>required field if you don't specify <code>groups</code>, <code>technologies</code> and <code>categories</code></strong><br>each technology path should be specified as a separate object containing \"path\" and \"name\", where \"path\" is specified as \"$group_id.$category_id\" and \"name\" - as the name of the target technology; <br>each object with a technology path should be separated with a comma<br>you can find the full list of technology group ids, category ids and technology names <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology paths in this array<br>example:<br><code>[{\"path\": \"content.cms\",\"name\": \"wordpress\"}, {\"path\": \"marketing.crm\",\"name\": \"salesforce\"}]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / body / items / properties
        Removed value: -{
        -  "categories": {
        -    "description": "ids of the target technology categories required field if you don’t specify groups, technology_paths, technologies, or keywords you can find the full list of technology category ids on this page note: you can specify up to 10 technology categories in this array example: [\"payment_processors\",\"crm\"]",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "filters": {
        -    "description": "array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: , , >, >=, =, , in, not_in, like,not_like you can use the % operator with like and not_like to match any string of zero or more characters you can use the following parameters to filter the results: domain_rank, last_visited, country_iso_code, language_code, content_language_code example: [[\"country_iso_code\",\"=\",\"US\"], \"and\", [\"domain_rank\",\">\",800]] for more information about filters, please refer to Domain Analytics Technologies API – Filters",
        -    "items": {},
        -    "type": "array"
        -  },
        -  "groups": {
        -    "description": "ids of the target technology groups required field if you don’t specify technologies, technology_paths, categories, or keywords you can find the full list of technology group ids on this page note: you can specify up to 10 technology groups in this array example: [\"sales\", \"marketing\"]",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "internal_list_limit": {
        -    "description": "maximum number of elements within internal arrays optional field you can use this field to limit the number of elements within the following arrays: countries, languages, content_languages, keywords default value: 10 minimum value: 1 maximum value: 10000",
        -    "type": "integer"
        -  },
        -  "keywords": {
        -    "description": "target keywords in the domain’s title, description or meta keywords required field if you don’t specify groups, technology_paths, categories, or technologies you can specify the maximum of 10 keywords; UTF-8 encoding; example: [\"seo\",\"software\"] learn more about rules and limitations of keyword and keywords fields in DataForSEO APIs in this Help Center article",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "mode": {
        -    "description": "search mode optional field possible search mode types: as_is – search for results exactly matching the specified group ids, category ids, or technology names entry – search for results matching a part of the specified group ids, category ids, or technology names default value: as_is",
        -    "type": "string"
        -  },
        -  "tag": {
        -    "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
        -    "type": "string"
        -  },
        -  "technologies": {
        -    "description": "target technologies required field if you don’t specify groups, technology_paths, categories, or keywords you can find the full list of technologies you can specify here on this page note: you can specify up to 10 technologies in this array example: [\"Google Pay\",\"Salesforce\"]",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "technology_paths": {
        -    "description": "target technology paths required field if you don’t specify groups, technologies and categories each technology path should be specified as a separate object containing “path” and “name”, where “path” is specified as “$group_id.$category_id” and “name” – as the name of the target technology; each object with a technology path should be separated with a comma you can find the full list of technology group ids, category ids and technology names on this page note: you can specify up to 10 technology paths in this array example: [{\"path\": \"content.cms\",\"name\": \"wordpress\"}, {\"path\": \"marketing.crm\",\"name\": \"salesforce\"}]",
        -    "items": {
        -      "properties": {
        -        "name": {
        -          "type": "string"
        -        },
        -        "path": {
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "path",
        -        "name"
        -      ],
        -      "type": "object"
        -    },
        -    "type": "array"
        -  }
        -}
      • changedInput schema / properties / body / items / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedInput schema / required
        Previous value: -[
        -  "body"
        -]New value: +[]
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • Changedpost_dataforseo_domains_tech_technology_stats_live7 fields changed
      • addedInput schema / properties / body / example
        Added value: +[
        +  {
        +    "date_from": "2022-10-31",
        +    "date_to": "2023-06-01",
        +    "technology": "jQuery"
        +  }
        +]
      • addedInput schema / properties / body / items / anyOf
        Added value: +[
        +  {
        +    "example": [
        +      {
        +        "date_from": "2022-10-31",
        +        "date_to": "2023-06-01",
        +        "technology": "jQuery"
        +      }
        +    ],
        +    "properties": {
        +      "date_from": {
        +        "description": "<em>starting date of the time range</em><br>optional field<br>minimum value: <code>2022-10-31</code><br>if you don't specify this field, the minimum value will be used by default<br>date format: <code>\"yyyy-mm-dd\"</code><br>example:<br><code>\"2023-06-01\"</code>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "date_to": {
        +        "description": "<em>ending date of the time range</em><br>optional field<br>if you don't specify this field, the today's date will be used by default<br>date format: <code>\"yyyy-mm-dd\"</code><br>example:<br><code>\"2023-01-15\"</code>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "tag": {
        +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "technology": {
        +        "description": "<em>target technology</em><br><strong>required field</strong><br>you can find the full list of technologies you can specify here <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"Salesforce\"</code>",
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / body / items / properties
        Removed value: -{
        -  "date_from": {
        -    "description": "starting date of the time range optional field minimum value: 2022-10-31 if you don’t specify this field, the minimum value will be used by default date format: \"yyyy-mm-dd\" example: \"2023-06-01\"",
        -    "type": "string"
        -  },
        -  "date_to": {
        -    "description": "ending date of the time range optional field if you don’t specify this field, the today’s date will be used by default date format: \"yyyy-mm-dd\" example: \"2023-01-15\"",
        -    "type": "string"
        -  },
        -  "tag": {
        -    "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
        -    "type": "string"
        -  },
        -  "technology": {
        -    "description": "target technology required field you can find the full list of technologies you can specify here on this page example: \"Salesforce\"",
        -    "type": "string"
        -  }
        -}
      • removedInput schema / properties / body / items / required
        Removed value: -[
        -  "technology"
        -]
      • changedInput schema / properties / body / items / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedInput schema / required
        Previous value: -[
        -  "body"
        -]New value: +[]
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • Changedpost_dataforseo_domains_whois_overview_live5 fields changed
      • addedInput schema / properties / body / example
        Added value: +[
        +  {
        +    "filters": [
        +      [
        +        "epp_status_codes",
        +        "in",
        +        [
        +          "client_transfer_prohibited",
        +          "client_update_prohibited"
        +        ]
        +      ]
        +    ],
        +    "limit": 2
        +  }
        +]
      • addedInput schema / properties / body / items / anyOf
        Added value: +[
        +  {
        +    "example": [
        +      {
        +        "filters": [
        +          [
        +            "epp_status_codes",
        +            "in",
        +            [
        +              "client_transfer_prohibited",
        +              "client_update_prohibited"
        +            ]
        +          ]
        +        ],
        +        "limit": 2
        +      }
        +    ],
        +    "properties": {
        +      "filters": {
        +        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>regex</code>, <code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>, <code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters",
        +        "items": {
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "limit": {
        +        "description": "<em>the maximum number of returned domains</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>1000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "offset": {
        +        "description": "<em>offset in the results array of returned items</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten <code>items</code> in the results array will be omitted and the data will be provided for the successive items;<br><strong>Note:</strong> we recommend using this parameter only when retrieving up to 10,000 results for retrieving over 10,000 results, use the <code>offset_token</code> instead",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "offset_token": {
        +        "description": "<em>token for subsequent requests</em><br>optional field<br>provided in the identical filed of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task<br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters should be identical to the previous request<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "order_by": {
        +        "description": "<em>results sorting rules</em><br>optional field<br>you can use the same values as in the <code>filters</code> array to sort the results<br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>the comma is used as a separator<br>example:<br><code>[\"metrics.organic.pos_1,desc\"]</code><br>default rule:<br><code>[\"metrics.organic.count,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"expiration_datetime,asc\",\"metrics.organic.etv,desc\",\"metrics.organic.pos_1,desc\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "tag": {
        +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / body / items / properties
        Removed value: -{
        -  "filters": {
        -    "description": "array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, , , >, >=, =, , in, not_in, like, not_like you can use the % operator with like and not_like to match any string of zero or more characters",
        -    "items": {},
        -    "type": "array"
        -  },
        -  "limit": {
        -    "description": "the maximum number of returned domains optional field default value: 100 maximum value: 1000",
        -    "type": "integer"
        -  },
        -  "offset": {
        -    "description": "offset in the results array of returned items optional field default value: 0 if you specify the 10 value, the first ten items in the results array will be omitted and the data will be provided for the successive items; Note: we recommend using this parameter only when retrieving up to 10,000 results for retrieving over 10,000 results, use the offset_token instead",
        -    "type": "integer"
        -  },
        -  "offset_token": {
        -    "description": "token for subsequent requests optional field provided in the identical filed of the response to each request; use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request; by specifying the unique offset_token value from the response array, you will get the subsequent results of the initial task; offset_token values are unique for each subsequent task Note: if the offset_token is specified in the request, all other parameters should be identical to the previous request learn more about this parameter on our Help Center",
        -    "type": "string"
        -  },
        -  "order_by": {
        -    "description": "results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc - results will be sorted in the ascending order desc - results will be sorted in the descending order the comma is used as a separator example: [\"metrics.organic.pos_1,desc\"] default rule: [\"metrics.organic.count,desc\"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: [\"expiration_datetime,asc\",\"metrics.organic.etv,desc\",\"metrics.organic.pos_1,desc\"]",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "tag": {
        -    "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
        -    "type": "string"
        -  }
        -}
      • changedInput schema / properties / body / items / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • 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"
  4. 18 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_dataforseo_domains_tech_available_filters1 field changed
      • removedOutput schema / x-fastmcp-wrap-result
        Removed value: -true
    • Changedget_dataforseo_domains_tech_languages1 field changed
      • removedOutput schema / x-fastmcp-wrap-result
        Removed value: -true
    • Changedget_dataforseo_domains_tech_list1 field changed
      • removedOutput schema / x-fastmcp-wrap-result
        Removed value: -true
    • Changedget_dataforseo_domains_tech_locations1 field changed
      • removedOutput schema / x-fastmcp-wrap-result
        Removed value: -true
    • Changedget_dataforseo_domains_whois_available_filters1 field changed
      • removedOutput schema / x-fastmcp-wrap-result
        Removed value: -true
    • 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"
        -]
    • Changedpost_dataforseo_domains_tech_aggregation_live7 fields changed
      • removedInput schema / properties / body / example
        Removed value: -[
        -  {
        -    "filters": [
        -      [
        -        "country_iso_code",
        -        "=",
        -        "US"
        -      ],
        -      "and",
        -      [
        -        "domain_rank",
        -        ">",
        -        800
        -      ]
        -    ],
        -    "keyword": "WordPress",
        -    "limit": 10,
        -    "mode": "entry",
        -    "order_by": [
        -      "groups_count,desc"
        -    ],
        -    "technology": "Nginx"
        -  }
        -]
      • addedInput schema / properties / body / items / allOf
        Added value: +[
        +  {
        +    "anyOf": [
        +      {
        +        "required": [
        +          "group"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "category"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "technology"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "keyword"
        +        ]
        +      }
        +    ]
        +  }
        +]
      • removedInput schema / properties / body / items / anyOf
        Removed value: -[
        -  {
        -    "example": [
        -      {
        -        "filters": [
        -          [
        -            "country_iso_code",
        -            "=",
        -            "US"
        -          ],
        -          "and",
        -          [
        -            "domain_rank",
        -            ">",
        -            800
        -          ]
        -        ],
        -        "keyword": "WordPress",
        -        "limit": 10,
        -        "mode": "entry",
        -        "order_by": [
        -          "groups_count,desc"
        -        ],
        -        "technology": "Nginx"
        -      }
        -    ],
        -    "properties": {
        -      "category": {
        -        "description": "<em>id of the target technology category</em><br><strong>required field if you don't specify <code>group</code>, <code>keyword</code> or <code>technology</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>you can find the full list of technology category ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"crm\"</code>",
        -        "type": "string"
        -      },
        -      "filters": {
        -        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>,<code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>you can use the following parameters to filter the results: <code>domain_rank</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br><strong>Note:</strong> all filtering parameters are taken from the <code>domain_technology_item</code> of the <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">domain_technologies</a> endpoint;<br>example:<br><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\"&gt;\",800]]</code>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        -        "items": {
        -          "type": [
        -            "object",
        -            "null"
        -          ]
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "group": {
        -        "description": "<em>id of the target technology group</em><br><strong>required field if you don't specify <code>technology</code>, <code>category</code> or <code>keyword</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>you can find the full list of technology group ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"marketing\"</code>",
        -        "type": "string"
        -      },
        -      "internal_categories_list_limit": {
        -        "description": "<em>maximum number of returned technology categories within the same group</em><br>optional field<br>you can use this field to limit the number of items with identical <code>\"category\"</code> in the results<br>default value: <code>5</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "internal_groups_list_limit": {
        -        "description": "<em>maximum number of returned technology groups</em><br>optional field<br>you can use this field to limit the number of items with identical <code>\"group\"</code> in the results<br>default value: <code>5</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "internal_list_limit": {
        -        "description": "<em>maximum number of items with identical <code>\"category\"</code>, <code>\"group\"</code>, and <code>\"technology\"</code></em><br>optional field<br>if you use this field, the values specified in <code>internal_groups_list_limit</code>, <code>internal_categories_list_limit</code> and <code>internal_technologies_list_limit</code> will be ignored;<br>you can use this field to limit the number of items with identical <code>\"category\"</code>, <code>\"group\"</code>, or <code>\"technology\"</code><br>default value: <code>10</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "internal_technologies_list_limit": {
        -        "description": "<em>maximum number of returned technologies within the same category</em><br>optional field<br>you can use this field to limit the number of items with identical <code>\"technology\"</code> in the results<br>default value: <code>10</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "keyword": {
        -        "description": "<em>target keyword in the domain's meta keywords</em><br><strong>required field if you don't specify <code>group</code>, <code>category</code> or <code>technology</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>UTF-8 encoding<br>example:<br><code>\"seo\"</code>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" target=\"_blank\" rel=\"noopener noreferrer\">Help Center article</a>",
        -        "type": "string"
        -      },
        -      "limit": {
        -        "description": "<em>the maximum number of returned technologies</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>10000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "mode": {
        -        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>as_is</code> - search for results exactly matching the specified group ids, category ids, or technology names<br><code>entry</code> - search for results matching a part of the specified group ids, category ids, or technology names<br>default value: <code>as_is</code>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "offset": {
        -        "description": "<em>offset in the results array of returned domains</em><br>optional field<br>default value: <code>0</code><br>maximum value: <code>9999</code><br>if you specify the <code>10</code> value, the first ten technologies in the results array will be omitted and the data will be provided for the successive technologies",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "order_by": {
        -        "description": "<em>results sorting rules</em><br>optional field<br>you can use the following values to sort the results: <code>groups_count</code>, <code>categories_count</code>, <code>technologies_count</code><br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"groups_count,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"groups_count,desc\",\"technologies_count,desc\"]</code><br>default value:<br><code>[\"groups_count,desc\",\"categories_count,desc\",\"technologies_count,desc\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "tag": {
        -        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "technology": {
        -        "description": "<em>target technology</em><br><strong>required field if you don't specify <code>group</code>, <code>keyword</code> or <code>category</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>you can find the full list of technologies <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"Salesforce\"</code>",
        -        "type": "string"
        -      }
        -    },
        -    "type": "object"
        -  }
        -]
      • addedInput schema / properties / body / items / properties
        Added value: +{
        +  "category": {
        +    "description": "id of the target technology category required field if you don’t specify group, keyword or technology at least one field (group, category, keyword, technology) must be set you can find the full list of technology category ids on this page example: \"crm\"",
        +    "type": "string"
        +  },
        +  "filters": {
        +    "description": "array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: , , >, >=, =, , in, not_in, like,not_like you can use the % operator with like and not_like to match any string of zero or more characters you can use the following parameters to filter the results: domain_rank, last_visited, country_iso_code, language_code, content_language_code Note: all filtering parameters are taken from the domain_technology_item of the domain_technologies endpoint; example: [[\"country_iso_code\",\"=\",\"US\"], \"and\", [\"domain_rank\",\">\",800]]for more information about filters, please refer to Domain Analytics Technologies API – Filters",
        +    "items": {},
        +    "type": "array"
        +  },
        +  "group": {
        +    "description": "id of the target technology group required field if you don’t specify technology, category or keyword at least one field (group, category, keyword, technology) must be set you can find the full list of technology group ids on this page example: \"marketing\"",
        +    "type": "string"
        +  },
        +  "internal_categories_list_limit": {
        +    "description": "maximum number of returned technology categories within the same group optional field you can use this field to limit the number of items with identical \"category\" in the results default value: 5 minimum value: 1 maximum value: 10000",
        +    "type": "integer"
        +  },
        +  "internal_groups_list_limit": {
        +    "description": "maximum number of returned technology groups optional field you can use this field to limit the number of items with identical \"group\" in the results default value: 5 minimum value: 1 maximum value: 10000",
        +    "type": "integer"
        +  },
        +  "internal_list_limit": {
        +    "description": "maximum number of items with identical \"category\", \"group\", and \"technology\" optional field if you use this field, the values specified in internal_groups_list_limit, internal_categories_list_limit and internal_technologies_list_limit will be ignored; you can use this field to limit the number of items with identical \"category\", \"group\", or \"technology\" default value: 10 minimum value: 1 maximum value: 10000",
        +    "type": "integer"
        +  },
        +  "internal_technologies_list_limit": {
        +    "description": "maximum number of returned technologies within the same category optional field you can use this field to limit the number of items with identical \"technology\" in the results default value: 10 minimum value: 1 maximum value: 10000",
        +    "type": "integer"
        +  },
        +  "keyword": {
        +    "description": "target keyword in the domain’s meta keywords required field if you don’t specify group, category or technology at least one field (group, category, keyword, technology) must be set UTF-8 encoding example: \"seo\"learn more about rules and limitations of keyword and keywords fields in DataForSEO APIs in this Help Center article",
        +    "type": "string"
        +  },
        +  "limit": {
        +    "description": "the maximum number of returned technologies optional field default value: 100 maximum value: 10000",
        +    "type": "integer"
        +  },
        +  "mode": {
        +    "description": "search mode optional field possible search mode types: as_is – search for results exactly matching the specified group ids, category ids, or technology names entry – search for results matching a part of the specified group ids, category ids, or technology names default value: as_is",
        +    "type": "string"
        +  },
        +  "offset": {
        +    "description": "offset in the results array of returned domains optional field default value: 0 maximum value: 9999 if you specify the 10 value, the first ten technologies in the results array will be omitted and the data will be provided for the successive technologies",
        +    "type": "integer"
        +  },
        +  "order_by": {
        +    "description": "results sorting rules optional field you can use the following values to sort the results: groups_count, categories_count, technologies_count possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: [\"groups_count,desc\"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: [\"groups_count,desc\",\"technologies_count,desc\"] default value: [\"groups_count,desc\",\"categories_count,desc\",\"technologies_count,desc\"]",
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "tag": {
        +    "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
        +    "type": "string"
        +  },
        +  "technology": {
        +    "description": "target technology required field if you don’t specify group, keyword or category at least one field (group, category, keyword, technology) must be set you can find the full list of technologies on this page example: \"Salesforce\"",
        +    "type": "string"
        +  }
        +}
      • changedInput schema / properties / body / items / type
        Previous value: -[
        -  "object",
        -  "null"
        -]New value: +"object"
      • changedInput schema / required
        Previous value: -[]New value: +[
        +  "body"
        +]
      • removedOutput schema / x-fastmcp-wrap-result
        Removed value: -true
    • Changedpost_dataforseo_domains_tech_domains_by_html_terms_live7 fields changed
      • removedInput schema / properties / body / example
        Removed value: -[
        -  {
        -    "limit": 10,
        -    "offset": 0,
        -    "order_by": [
        -      "last_visited,desc"
        -    ],
        -    "search_terms": [
        -      "data-attrid"
        -    ]
        -  }
        -]
      • removedInput schema / properties / body / items / anyOf
        Removed value: -[
        -  {
        -    "example": [
        -      {
        -        "limit": 10,
        -        "offset": 0,
        -        "order_by": [
        -          "last_visited,desc"
        -        ],
        -        "search_terms": [
        -          "data-attrid"
        -        ]
        -      }
        -    ],
        -    "properties": {
        -      "filters": {
        -        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>, <code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>example:<br><code>[\"domain\",\"like\",\"%seo%\"]</code><p><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\"&gt;\",100]]</code><p><code>[[\"domain_rank\",\"&gt;\",100],<br>\"and\",<br>[[\"country_iso_code\",\"=\",\"US\"],\"or\",[\"country_iso_code\",\"=\",\"CA\"]]]</code><p>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        -        "items": {
        -          "type": [
        -            "object",
        -            "null"
        -          ]
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "keywords": {
        -        "description": "<em>target keywords in the domain's title, description or meta keywords</em><br>optional field<br>UTF-8 encoding<br>maximum number of keywords you can specify: 10 <br>example:<br><code>[\"seo\",\"software\"]</code><p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "limit": {
        -        "description": "<em>the maximum number of returned domains</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>10000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "mode": {
        -        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>strict_entry</code> - search for results exactly matching the order, intervals and separators in the specified search terms<br><code>entry</code> - search for results ignoring the order, intervals and separators in the specified search terms<br>default value: <code>entry</code>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "offset": {
        -        "description": "<em>offset in the results array of returned domains</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten domains in the results array will be omitted and the data will be provided for the successive domains;<br><strong>Note:</strong> the maximum value is <code>9999</code>, the sum of <code>limit</code> and <code>offset</code> must not exceed <code>10000</code>;<br>use the <code>offset_token</code> if you would like to offset more results",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "offset_token": {
        -        "description": "<em>token for subsequent requests</em><br>optional field<br>provided in the identical filed of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task <br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters should be identical to the previous request<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "order_by": {
        -        "description": "<em>results sorting rules</em><br>optional field<br>available fields: <br><code>domain_rank</code>, <code>domain</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"last_visited,desc\"]</code><br>default rule:<br><code>[\"domain_rank,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"last_visited,desc\",\"domain_rank,desc\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "search_terms": {
        -        "description": "<em>target search terms</em><br><strong>required field</strong><br>specify target HTML elements, tags, attributes, their content or all of the above<br>if you specify more than one search term, you will receive only the domains containing all of the specified terms in the HTML code of their homepage<br>maximum number of search terms you can specify: 10<br>example:<br><code>[\"data-attrid\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      }
        -    },
        -    "type": "object"
        -  }
        -]
      • addedInput schema / properties / body / items / properties
        Added value: +{
        +  "filters": {
        +    "description": "array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: , , >, >=, =, , in, not_in, like, not_like you can use the % operator with like and not_like to match any string of zero or more characters example: [\"domain\",\"like\",\"%seo%\"] [[\"country_iso_code\",\"=\",\"US\"], \"and\", [\"domain_rank\",\">\",100]] [[\"domain_rank\",\">\",100], \"and\", [[\"country_iso_code\",\"=\",\"US\"],\"or\",[\"country_iso_code\",\"=\",\"CA\"]]] for more information about filters, please refer to Domain Analytics Technologies API – Filters",
        +    "items": {},
        +    "type": "array"
        +  },
        +  "keywords": {
        +    "description": "target keywords in the domain’s title, description or meta keywords optional field UTF-8 encoding maximum number of keywords you can specify: 10 example: [\"seo\",\"software\"] learn more about rules and limitations of keyword and keywords fields in DataForSEO APIs in this Help Center article",
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "limit": {
        +    "description": "the maximum number of returned domains optional field default value: 100 maximum value: 10000",
        +    "type": "integer"
        +  },
        +  "mode": {
        +    "description": "search mode optional field possible search mode types: strict_entry – search for results exactly matching the order, intervals and separators in the specified search terms entry – search for results ignoring the order, intervals and separators in the specified search terms default value: entry",
        +    "type": "string"
        +  },
        +  "offset": {
        +    "description": "offset in the results array of returned domains optional field default value: 0 if you specify the 10 value, the first ten domains in the results array will be omitted and the data will be provided for the successive domains; Note: the maximum value is 9999, the sum of limit and offset must not exceed 10000; use the offset_token if you would like to offset more results",
        +    "type": "integer"
        +  },
        +  "offset_token": {
        +    "description": "token for subsequent requests optional field provided in the identical filed of the response to each request; use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request; by specifying the unique offset_token value from the response array, you will get the subsequent results of the initial task; offset_token values are unique for each subsequent task Note: if the offset_token is specified in the request, all other parameters should be identical to the previous request learn more about this parameter on our Help Center",
        +    "type": "string"
        +  },
        +  "order_by": {
        +    "description": "results sorting rules optional field available fields: domain_rank, domain, last_visited, country_iso_code, language_code, content_language_code possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: [\"last_visited,desc\"] default rule: [\"domain_rank,desc\"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: [\"last_visited,desc\",\"domain_rank,desc\"]",
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "search_terms": {
        +    "description": "target search terms required field specify target HTML elements, tags, attributes, their content or all of the above if you specify more than one search term, you will receive only the domains containing all of the specified terms in the HTML code of their homepage maximum number of search terms you can specify: 10 example: [\"data-attrid\"]",
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +}
      • addedInput schema / properties / body / items / required
        Added value: +[
        +  "search_terms"
        +]
      • changedInput schema / properties / body / items / type
        Previous value: -[
        -  "object",
        -  "null"
        -]New value: +"object"
      • changedInput schema / required
        Previous value: -[]New value: +[
        +  "body"
        +]
      • removedOutput schema / x-fastmcp-wrap-result
        Removed value: -true
    • Changedpost_dataforseo_domains_tech_domains_by_technology_live7 fields changed
      • removedInput schema / properties / body / example
        Removed value: -[
        -  {
        -    "filters": [
        -      [
        -        "country_iso_code",
        -        "=",
        -        "US"
        -      ],
        -      "and",
        -      [
        -        "domain_rank",
        -        ">",
        -        800
        -      ]
        -    ],
        -    "limit": 10,
        -    "order_by": [
        -      "last_visited,desc"
        -    ],
        -    "technologies": [
        -      "Nginx"
        -    ]
        -  }
        -]
      • addedInput schema / properties / body / items / allOf
        Added value: +[
        +  {
        +    "anyOf": [
        +      {
        +        "required": [
        +          "technology_paths"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "groups"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "categories"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "technologies"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "keywords"
        +        ]
        +      }
        +    ]
        +  }
        +]
      • removedInput schema / properties / body / items / anyOf
        Removed value: -[
        -  {
        -    "example": [
        -      {
        -        "filters": [
        -          [
        -            "country_iso_code",
        -            "=",
        -            "US"
        -          ],
        -          "and",
        -          [
        -            "domain_rank",
        -            ">",
        -            800
        -          ]
        -        ],
        -        "limit": 10,
        -        "order_by": [
        -          "last_visited,desc"
        -        ],
        -        "technologies": [
        -          "Nginx"
        -        ]
        -      }
        -    ],
        -    "properties": {
        -      "categories": {
        -        "description": "<em>ids of the target technology categories</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>keywords</code> or <code>technologies</code></strong><br>you can find the full list of technology category ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology categories in this array<br>example:<br><code>[\"payment_processors\",\"crm\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "filters": {
        -        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>, <code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>example:<br><code>[\"country_iso_code\",\"=\",\"US\"]</code><p><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\"&gt;\",100]]</code><p><code>[[\"domain_rank\",\"&gt;\",100],<br>\"and\",<br>[[\"country_iso_code\",\"=\",\"US\"],\"or\",[\"country_iso_code\",\"=\",\"CA\"]]]</code><p>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        -        "items": {
        -          "type": [
        -            "object",
        -            "null"
        -          ]
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "groups": {
        -        "description": "<em>ids of the target technology groups</em><br><strong>required field if you don't specify <code>technologies</code>, <code>technology_paths</code>, <code>keywords</code> or <code>categories</code></strong><br>you can find the full list of technology group ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology groups in this array<br>example:<br><code>[\"sales\", \"marketing\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "keywords": {
        -        "description": "<em>target keywords in the domain's title, description or meta keywords</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>technologies</code> or <code>categories</code></strong><br>optional field<br>you can specify the maximum of 10 keywords;<br>UTF-8 encoding;<br>example:<br><code>[\"seo\",\"software\"]</code><p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "limit": {
        -        "description": "<em>the maximum number of returned domains</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>10000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "mode": {
        -        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>as_is</code> - search for results exactly matching the specified group ids, category ids, or technology names<br><code>entry</code> - search for results matching a part of the specified group ids, category ids, or technology names<br>default value: <code>as_is</code>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "offset": {
        -        "description": "<em>offset in the results array of returned domains</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten domains in the results array will be omitted and the data will be provided for the successive domains;<br><strong>Note:</strong> the maximum value is <code>9999</code>, the sum of <code>limit</code> and <code>offset</code> must not exceed <code>10000</code>;<br>use the <code>offset_token</code> if you would like to offset more results",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "offset_token": {
        -        "description": "<em>token for subsequent requests</em><br>optional field<br>provided in the identical filed of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task <br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters should be identical to the previous request<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "order_by": {
        -        "description": "<em>results sorting rules</em><br>optional field<br>available fields: <br><code>domain_rank</code>, <code>domain</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"last_visited,desc\"]</code><br>default rule:<br><code>[\"domain_rank,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"last_visited,desc\",\"domain_rank,desc\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "technologies": {
        -        "description": "<em>target technologies</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>keywords</code> or <code>categories</code></strong><br>you can find the full list of technologies you can specify here <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technologies in this array<br>example:<br><code>[\"Google Pay\",\"Salesforce\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "technology_paths": {
        -        "description": "<em>target technology paths</em><br><strong>required field if you don't specify <code>groups</code>, <code>technologies</code>, <code>keywords</code> or <code>categories</code></strong><br>at least one field (<code>technology_paths</code>, <code>groups</code>, <code>technologies</code>, <code>keywords</code> or <code>categories</code>) must be set;<br>each technology path should be specified as a separate object containing \"path\" and \"name\", where \"path\" is specified as \"$group_id.$category_id\" and \"name\" - as the name of the target technology; <br>each object with a technology path should be separated with a comma<br>you can find the full list of technology group ids, category ids and technology names <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology paths in this array<br>example:<br><code>[{\"path\": \"content.cms\",\"name\": \"wordpress\"}, {\"path\": \"marketing.crm\",\"name\": \"salesforce\"}]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      }
        -    },
        -    "type": "object"
        -  }
        -]
      • addedInput schema / properties / body / items / properties
        Added value: +{
        +  "categories": {
        +    "description": "ids of the target technology categories required field if you don’t specify groups, technology_paths, keywords or technologies you can find the full list of technology category ids on this page note: you can specify up to 10 technology categories in this array example: [\"payment_processors\",\"crm\"]",
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "filters": {
        +    "description": "array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: , , >, >=, =, , in, not_in, like, not_like you can use the % operator with like and not_like to match any string of zero or more characters example: [\"country_iso_code\",\"=\",\"US\"] [[\"country_iso_code\",\"=\",\"US\"], \"and\", [\"domain_rank\",\">\",100]] [[\"domain_rank\",\">\",100], \"and\", [[\"country_iso_code\",\"=\",\"US\"],\"or\",[\"country_iso_code\",\"=\",\"CA\"]]] for more information about filters, please refer to Domain Analytics Technologies API – Filters",
        +    "items": {},
        +    "type": "array"
        +  },
        +  "groups": {
        +    "description": "ids of the target technology groups required field if you don’t specify technologies, technology_paths, keywords or categories you can find the full list of technology group ids on this page note: you can specify up to 10 technology groups in this array example: [\"sales\", \"marketing\"]",
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "keywords": {
        +    "description": "target keywords in the domain’s title, description or meta keywords required field if you don’t specify groups, technology_paths, technologies or categories optional field you can specify the maximum of 10 keywords; UTF-8 encoding; example: [\"seo\",\"software\"] learn more about rules and limitations of keyword and keywords fields in DataForSEO APIs in this Help Center article",
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "limit": {
        +    "description": "the maximum number of returned domains optional field default value: 100 maximum value: 10000",
        +    "type": "integer"
        +  },
        +  "mode": {
        +    "description": "search mode optional field possible search mode types: as_is – search for results exactly matching the specified group ids, category ids, or technology names entry – search for results matching a part of the specified group ids, category ids, or technology names default value: as_is",
        +    "type": "string"
        +  },
        +  "offset": {
        +    "description": "offset in the results array of returned domains optional field default value: 0 if you specify the 10 value, the first ten domains in the results array will be omitted and the data will be provided for the successive domains; Note: the maximum value is 9999, the sum of limit and offset must not exceed 10000; use the offset_token if you would like to offset more results",
        +    "type": "integer"
        +  },
        +  "offset_token": {
        +    "description": "token for subsequent requests optional field provided in the identical filed of the response to each request; use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request; by specifying the unique offset_token value from the response array, you will get the subsequent results of the initial task; offset_token values are unique for each subsequent task Note: if the offset_token is specified in the request, all other parameters should be identical to the previous request learn more about this parameter on our Help Center",
        +    "type": "string"
        +  },
        +  "order_by": {
        +    "description": "results sorting rules optional field available fields: domain_rank, domain, last_visited, country_iso_code, language_code, content_language_code possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: [\"last_visited,desc\"] default rule: [\"domain_rank,desc\"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: [\"last_visited,desc\",\"domain_rank,desc\"]",
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "technologies": {
        +    "description": "target technologies required field if you don’t specify groups, technology_paths, keywords or categories you can find the full list of technologies you can specify here on this page note: you can specify up to 10 technologies in this array example: [\"Google Pay\",\"Salesforce\"]",
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "technology_paths": {
        +    "description": "target technology paths required field if you don’t specify groups, technologies, keywords or categories at least one field (technology_paths, groups, technologies, keywords or categories) must be set; each technology path should be specified as a separate object containing “path” and “name”, where “path” is specified as “$group_id.$category_id” and “name” – as the name of the target technology; each object with a technology path should be separated with a comma you can find the full list of technology group ids, category ids and technology names on this page note: you can specify up to 10 technology paths in this array example: [{\"path\": \"content.cms\",\"name\": \"wordpress\"}, {\"path\": \"marketing.crm\",\"name\": \"salesforce\"}]",
        +    "items": {
        +      "properties": {
        +        "name": {
        +          "type": "string"
        +        },
        +        "path": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "path",
        +        "name"
        +      ],
        +      "type": "object"
        +    },
        +    "type": "array"
        +  }
        +}
      • changedInput schema / properties / body / items / type
        Previous value: -[
        -  "object",
        -  "null"
        -]New value: +"object"
      • changedInput schema / required
        Previous value: -[]New value: +[
        +  "body"
        +]
      • removedOutput schema / x-fastmcp-wrap-result
        Removed value: -true
    • Changedpost_dataforseo_domains_tech_for_domain_live7 fields changed
      • removedInput schema / properties / body / example
        Removed value: -[
        -  {
        -    "target": "dataforseo.com"
        -  }
        -]
      • removedInput schema / properties / body / items / anyOf
        Removed value: -[
        -  {
        -    "example": [
        -      {
        -        "target": "dataforseo.com"
        -      }
        -    ],
        -    "properties": {
        -      "target": {
        -        "description": "<em>target domain</em><br><strong>required field</strong><br>domain name of the website to analyze<br><strong>Note:</strong> results will be returned for the specified domain only",
        -        "type": "string"
        -      }
        -    },
        -    "type": "object"
        -  }
        -]
      • addedInput schema / properties / body / items / properties
        Added value: +{
        +  "target": {
        +    "description": "target domain required field domain name of the website to analyze Note: results will be returned for the specified domain only",
        +    "type": "string"
        +  }
        +}
      • addedInput schema / properties / body / items / required
        Added value: +[
        +  "target"
        +]
      • changedInput schema / properties / body / items / type
        Previous value: -[
        -  "object",
        -  "null"
        -]New value: +"object"
      • changedInput schema / required
        Previous value: -[]New value: +[
        +  "body"
        +]
      • removedOutput schema / x-fastmcp-wrap-result
        Removed value: -true
    • Changedpost_dataforseo_domains_tech_summary_live7 fields changed
      • removedInput schema / properties / body / example
        Removed value: -[
        -  {
        -    "filters": [
        -      [
        -        "country_iso_code",
        -        "=",
        -        "US"
        -      ],
        -      "and",
        -      [
        -        "domain_rank",
        -        ">",
        -        800
        -      ]
        -    ],
        -    "keywords": [
        -      "WordPress"
        -    ],
        -    "mode": "entry",
        -    "technologies": [
        -      "Ngi"
        -    ]
        -  }
        -]
      • addedInput schema / properties / body / items / allOf
        Added value: +[
        +  {
        +    "anyOf": [
        +      {
        +        "required": [
        +          "technology_paths"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "groups"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "categories"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "technologies"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "keywords"
        +        ]
        +      }
        +    ]
        +  }
        +]
      • removedInput schema / properties / body / items / anyOf
        Removed value: -[
        -  {
        -    "example": [
        -      {
        -        "filters": [
        -          [
        -            "country_iso_code",
        -            "=",
        -            "US"
        -          ],
        -          "and",
        -          [
        -            "domain_rank",
        -            ">",
        -            800
        -          ]
        -        ],
        -        "keywords": [
        -          "WordPress"
        -        ],
        -        "mode": "entry",
        -        "technologies": [
        -          "Ngi"
        -        ]
        -      }
        -    ],
        -    "properties": {
        -      "categories": {
        -        "description": "<em>ids of the target technology categories</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>technologies</code>, or <code>keywords</code></strong><br>you can find the full list of technology category ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology categories in this array<br>example:<br><code>[\"payment_processors\",\"crm\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "filters": {
        -        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>,<code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>you can use the following parameters to filter the results: <code>domain_rank</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br>example:<br><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\">\",800]]</code><p>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        -        "items": {
        -          "type": [
        -            "object",
        -            "null"
        -          ]
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "groups": {
        -        "description": "<em>ids of the target technology groups</em><br><strong>required field if you don't specify <code>technologies</code>, <code>technology_paths</code>, <code>categories</code>, or <code>keywords</code></strong><br>you can find the full list of technology group ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology groups in this array<br>example:<br><code>[\"sales\", \"marketing\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "internal_list_limit": {
        -        "description": "<em>maximum number of elements within internal arrays</em><br>optional field<br>you can use this field to limit the number of elements within the following arrays:<br><code>countries</code>, <code>languages</code>, <code>content_languages</code>, <code>keywords</code><br>default value: <code>10</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "keywords": {
        -        "description": "<em>target keywords in the domain's title, description or meta keywords</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>categories</code>, or <code>technologies</code></strong><br>you can specify the maximum of 10 keywords;<br>UTF-8 encoding;<br>example:<br><code>[\"seo\",\"software\"]</code><p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "mode": {
        -        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>as_is</code> - search for results exactly matching the specified group ids, category ids, or technology names<br><code>entry</code> - search for results matching a part of the specified group ids, category ids, or technology names<br>default value: <code>as_is</code>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "tag": {
        -        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "technologies": {
        -        "description": "<em>target technologies</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>categories</code>, or <code>keywords</code></strong><br>you can find the full list of technologies you can specify here <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technologies in this array<br>example:<br><code>[\"Google Pay\",\"Salesforce\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "technology_paths": {
        -        "description": "<em>target technology paths</em><br><strong>required field if you don't specify <code>groups</code>, <code>technologies</code> and <code>categories</code></strong><br>each technology path should be specified as a separate object containing \"path\" and \"name\", where \"path\" is specified as \"$group_id.$category_id\" and \"name\" - as the name of the target technology; <br>each object with a technology path should be separated with a comma<br>you can find the full list of technology group ids, category ids and technology names <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology paths in this array<br>example:<br><code>[{\"path\": \"content.cms\",\"name\": \"wordpress\"}, {\"path\": \"marketing.crm\",\"name\": \"salesforce\"}]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      }
        -    },
        -    "type": "object"
        -  }
        -]
      • addedInput schema / properties / body / items / properties
        Added value: +{
        +  "categories": {
        +    "description": "ids of the target technology categories required field if you don’t specify groups, technology_paths, technologies, or keywords you can find the full list of technology category ids on this page note: you can specify up to 10 technology categories in this array example: [\"payment_processors\",\"crm\"]",
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "filters": {
        +    "description": "array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: , , >, >=, =, , in, not_in, like,not_like you can use the % operator with like and not_like to match any string of zero or more characters you can use the following parameters to filter the results: domain_rank, last_visited, country_iso_code, language_code, content_language_code example: [[\"country_iso_code\",\"=\",\"US\"], \"and\", [\"domain_rank\",\">\",800]] for more information about filters, please refer to Domain Analytics Technologies API – Filters",
        +    "items": {},
        +    "type": "array"
        +  },
        +  "groups": {
        +    "description": "ids of the target technology groups required field if you don’t specify technologies, technology_paths, categories, or keywords you can find the full list of technology group ids on this page note: you can specify up to 10 technology groups in this array example: [\"sales\", \"marketing\"]",
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "internal_list_limit": {
        +    "description": "maximum number of elements within internal arrays optional field you can use this field to limit the number of elements within the following arrays: countries, languages, content_languages, keywords default value: 10 minimum value: 1 maximum value: 10000",
        +    "type": "integer"
        +  },
        +  "keywords": {
        +    "description": "target keywords in the domain’s title, description or meta keywords required field if you don’t specify groups, technology_paths, categories, or technologies you can specify the maximum of 10 keywords; UTF-8 encoding; example: [\"seo\",\"software\"] learn more about rules and limitations of keyword and keywords fields in DataForSEO APIs in this Help Center article",
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "mode": {
        +    "description": "search mode optional field possible search mode types: as_is – search for results exactly matching the specified group ids, category ids, or technology names entry – search for results matching a part of the specified group ids, category ids, or technology names default value: as_is",
        +    "type": "string"
        +  },
        +  "tag": {
        +    "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
        +    "type": "string"
        +  },
        +  "technologies": {
        +    "description": "target technologies required field if you don’t specify groups, technology_paths, categories, or keywords you can find the full list of technologies you can specify here on this page note: you can specify up to 10 technologies in this array example: [\"Google Pay\",\"Salesforce\"]",
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "technology_paths": {
        +    "description": "target technology paths required field if you don’t specify groups, technologies and categories each technology path should be specified as a separate object containing “path” and “name”, where “path” is specified as “$group_id.$category_id” and “name” – as the name of the target technology; each object with a technology path should be separated with a comma you can find the full list of technology group ids, category ids and technology names on this page note: you can specify up to 10 technology paths in this array example: [{\"path\": \"content.cms\",\"name\": \"wordpress\"}, {\"path\": \"marketing.crm\",\"name\": \"salesforce\"}]",
        +    "items": {
        +      "properties": {
        +        "name": {
        +          "type": "string"
        +        },
        +        "path": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "path",
        +        "name"
        +      ],
        +      "type": "object"
        +    },
        +    "type": "array"
        +  }
        +}
      • changedInput schema / properties / body / items / type
        Previous value: -[
        -  "object",
        -  "null"
        -]New value: +"object"
      • changedInput schema / required
        Previous value: -[]New value: +[
        +  "body"
        +]
      • removedOutput schema / x-fastmcp-wrap-result
        Removed value: -true
    • Changedpost_dataforseo_domains_tech_technology_stats_live7 fields changed
      • removedInput schema / properties / body / example
        Removed value: -[
        -  {
        -    "date_from": "2022-10-31",
        -    "date_to": "2023-06-01",
        -    "technology": "jQuery"
        -  }
        -]
      • removedInput schema / properties / body / items / anyOf
        Removed value: -[
        -  {
        -    "example": [
        -      {
        -        "date_from": "2022-10-31",
        -        "date_to": "2023-06-01",
        -        "technology": "jQuery"
        -      }
        -    ],
        -    "properties": {
        -      "date_from": {
        -        "description": "<em>starting date of the time range</em><br>optional field<br>minimum value: <code>2022-10-31</code><br>if you don't specify this field, the minimum value will be used by default<br>date format: <code>\"yyyy-mm-dd\"</code><br>example:<br><code>\"2023-06-01\"</code>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "date_to": {
        -        "description": "<em>ending date of the time range</em><br>optional field<br>if you don't specify this field, the today's date will be used by default<br>date format: <code>\"yyyy-mm-dd\"</code><br>example:<br><code>\"2023-01-15\"</code>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "tag": {
        -        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "technology": {
        -        "description": "<em>target technology</em><br><strong>required field</strong><br>you can find the full list of technologies you can specify here <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"Salesforce\"</code>",
        -        "type": "string"
        -      }
        -    },
        -    "type": "object"
        -  }
        -]
      • addedInput schema / properties / body / items / properties
        Added value: +{
        +  "date_from": {
        +    "description": "starting date of the time range optional field minimum value: 2022-10-31 if you don’t specify this field, the minimum value will be used by default date format: \"yyyy-mm-dd\" example: \"2023-06-01\"",
        +    "type": "string"
        +  },
        +  "date_to": {
        +    "description": "ending date of the time range optional field if you don’t specify this field, the today’s date will be used by default date format: \"yyyy-mm-dd\" example: \"2023-01-15\"",
        +    "type": "string"
        +  },
        +  "tag": {
        +    "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
        +    "type": "string"
        +  },
        +  "technology": {
        +    "description": "target technology required field you can find the full list of technologies you can specify here on this page example: \"Salesforce\"",
        +    "type": "string"
        +  }
        +}
      • addedInput schema / properties / body / items / required
        Added value: +[
        +  "technology"
        +]
      • changedInput schema / properties / body / items / type
        Previous value: -[
        -  "object",
        -  "null"
        -]New value: +"object"
      • changedInput schema / required
        Previous value: -[]New value: +[
        +  "body"
        +]
      • removedOutput schema / x-fastmcp-wrap-result
        Removed value: -true
    • Changedpost_dataforseo_domains_whois_overview_live5 fields changed
      • removedInput schema / properties / body / example
        Removed value: -[
        -  {
        -    "filters": [
        -      [
        -        "epp_status_codes",
        -        "in",
        -        [
        -          "client_transfer_prohibited",
        -          "client_update_prohibited"
        -        ]
        -      ]
        -    ],
        -    "limit": 2
        -  }
        -]
      • removedInput schema / properties / body / items / anyOf
        Removed value: -[
        -  {
        -    "example": [
        -      {
        -        "filters": [
        -          [
        -            "epp_status_codes",
        -            "in",
        -            [
        -              "client_transfer_prohibited",
        -              "client_update_prohibited"
        -            ]
        -          ]
        -        ],
        -        "limit": 2
        -      }
        -    ],
        -    "properties": {
        -      "filters": {
        -        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>regex</code>, <code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>, <code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters",
        -        "items": {
        -          "type": [
        -            "object",
        -            "null"
        -          ]
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "limit": {
        -        "description": "<em>the maximum number of returned domains</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>1000</code>",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "offset": {
        -        "description": "<em>offset in the results array of returned items</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten <code>items</code> in the results array will be omitted and the data will be provided for the successive items;<br><strong>Note:</strong> we recommend using this parameter only when retrieving up to 10,000 results for retrieving over 10,000 results, use the <code>offset_token</code> instead",
        -        "type": [
        -          "integer",
        -          "null"
        -        ]
        -      },
        -      "offset_token": {
        -        "description": "<em>token for subsequent requests</em><br>optional field<br>provided in the identical filed of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task<br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters should be identical to the previous request<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "order_by": {
        -        "description": "<em>results sorting rules</em><br>optional field<br>you can use the same values as in the <code>filters</code> array to sort the results<br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>the comma is used as a separator<br>example:<br><code>[\"metrics.organic.pos_1,desc\"]</code><br>default rule:<br><code>[\"metrics.organic.count,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"expiration_datetime,asc\",\"metrics.organic.etv,desc\",\"metrics.organic.pos_1,desc\"]</code>",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": [
        -          "array",
        -          "null"
        -        ]
        -      },
        -      "tag": {
        -        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "type": "object"
        -  }
        -]
      • addedInput schema / properties / body / items / properties
        Added value: +{
        +  "filters": {
        +    "description": "array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, , , >, >=, =, , in, not_in, like, not_like you can use the % operator with like and not_like to match any string of zero or more characters",
        +    "items": {},
        +    "type": "array"
        +  },
        +  "limit": {
        +    "description": "the maximum number of returned domains optional field default value: 100 maximum value: 1000",
        +    "type": "integer"
        +  },
        +  "offset": {
        +    "description": "offset in the results array of returned items optional field default value: 0 if you specify the 10 value, the first ten items in the results array will be omitted and the data will be provided for the successive items; Note: we recommend using this parameter only when retrieving up to 10,000 results for retrieving over 10,000 results, use the offset_token instead",
        +    "type": "integer"
        +  },
        +  "offset_token": {
        +    "description": "token for subsequent requests optional field provided in the identical filed of the response to each request; use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request; by specifying the unique offset_token value from the response array, you will get the subsequent results of the initial task; offset_token values are unique for each subsequent task Note: if the offset_token is specified in the request, all other parameters should be identical to the previous request learn more about this parameter on our Help Center",
        +    "type": "string"
        +  },
        +  "order_by": {
        +    "description": "results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc - results will be sorted in the ascending order desc - results will be sorted in the descending order the comma is used as a separator example: [\"metrics.organic.pos_1,desc\"] default rule: [\"metrics.organic.count,desc\"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: [\"expiration_datetime,asc\",\"metrics.organic.etv,desc\",\"metrics.organic.pos_1,desc\"]",
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "tag": {
        +    "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
        +    "type": "string"
        +  }
        +}
      • changedInput schema / properties / body / items / type
        Previous value: -[
        -  "object",
        -  "null"
        -]New value: +"object"
      • removedOutput schema / x-fastmcp-wrap-result
        Removed value: -true
    • 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"
  5. 18 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_dataforseo_domains_tech_available_filters1 field changed
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • Changedget_dataforseo_domains_tech_languages1 field changed
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • Changedget_dataforseo_domains_tech_list1 field changed
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • Changedget_dataforseo_domains_tech_locations1 field changed
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • Changedget_dataforseo_domains_whois_available_filters1 field changed
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • 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"
        +]
    • Changedpost_dataforseo_domains_tech_aggregation_live7 fields changed
      • addedInput schema / properties / body / example
        Added value: +[
        +  {
        +    "filters": [
        +      [
        +        "country_iso_code",
        +        "=",
        +        "US"
        +      ],
        +      "and",
        +      [
        +        "domain_rank",
        +        ">",
        +        800
        +      ]
        +    ],
        +    "keyword": "WordPress",
        +    "limit": 10,
        +    "mode": "entry",
        +    "order_by": [
        +      "groups_count,desc"
        +    ],
        +    "technology": "Nginx"
        +  }
        +]
      • removedInput schema / properties / body / items / allOf
        Removed value: -[
        -  {
        -    "anyOf": [
        -      {
        -        "required": [
        -          "group"
        -        ]
        -      },
        -      {
        -        "required": [
        -          "category"
        -        ]
        -      },
        -      {
        -        "required": [
        -          "technology"
        -        ]
        -      },
        -      {
        -        "required": [
        -          "keyword"
        -        ]
        -      }
        -    ]
        -  }
        -]
      • addedInput schema / properties / body / items / anyOf
        Added value: +[
        +  {
        +    "example": [
        +      {
        +        "filters": [
        +          [
        +            "country_iso_code",
        +            "=",
        +            "US"
        +          ],
        +          "and",
        +          [
        +            "domain_rank",
        +            ">",
        +            800
        +          ]
        +        ],
        +        "keyword": "WordPress",
        +        "limit": 10,
        +        "mode": "entry",
        +        "order_by": [
        +          "groups_count,desc"
        +        ],
        +        "technology": "Nginx"
        +      }
        +    ],
        +    "properties": {
        +      "category": {
        +        "description": "<em>id of the target technology category</em><br><strong>required field if you don't specify <code>group</code>, <code>keyword</code> or <code>technology</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>you can find the full list of technology category ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"crm\"</code>",
        +        "type": "string"
        +      },
        +      "filters": {
        +        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>,<code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>you can use the following parameters to filter the results: <code>domain_rank</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br><strong>Note:</strong> all filtering parameters are taken from the <code>domain_technology_item</code> of the <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">domain_technologies</a> endpoint;<br>example:<br><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\"&gt;\",800]]</code>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        +        "items": {
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "group": {
        +        "description": "<em>id of the target technology group</em><br><strong>required field if you don't specify <code>technology</code>, <code>category</code> or <code>keyword</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>you can find the full list of technology group ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"marketing\"</code>",
        +        "type": "string"
        +      },
        +      "internal_categories_list_limit": {
        +        "description": "<em>maximum number of returned technology categories within the same group</em><br>optional field<br>you can use this field to limit the number of items with identical <code>\"category\"</code> in the results<br>default value: <code>5</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "internal_groups_list_limit": {
        +        "description": "<em>maximum number of returned technology groups</em><br>optional field<br>you can use this field to limit the number of items with identical <code>\"group\"</code> in the results<br>default value: <code>5</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "internal_list_limit": {
        +        "description": "<em>maximum number of items with identical <code>\"category\"</code>, <code>\"group\"</code>, and <code>\"technology\"</code></em><br>optional field<br>if you use this field, the values specified in <code>internal_groups_list_limit</code>, <code>internal_categories_list_limit</code> and <code>internal_technologies_list_limit</code> will be ignored;<br>you can use this field to limit the number of items with identical <code>\"category\"</code>, <code>\"group\"</code>, or <code>\"technology\"</code><br>default value: <code>10</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "internal_technologies_list_limit": {
        +        "description": "<em>maximum number of returned technologies within the same category</em><br>optional field<br>you can use this field to limit the number of items with identical <code>\"technology\"</code> in the results<br>default value: <code>10</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "keyword": {
        +        "description": "<em>target keyword in the domain's meta keywords</em><br><strong>required field if you don't specify <code>group</code>, <code>category</code> or <code>technology</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>UTF-8 encoding<br>example:<br><code>\"seo\"</code>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" target=\"_blank\" rel=\"noopener noreferrer\">Help Center article</a>",
        +        "type": "string"
        +      },
        +      "limit": {
        +        "description": "<em>the maximum number of returned technologies</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "mode": {
        +        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>as_is</code> - search for results exactly matching the specified group ids, category ids, or technology names<br><code>entry</code> - search for results matching a part of the specified group ids, category ids, or technology names<br>default value: <code>as_is</code>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "offset": {
        +        "description": "<em>offset in the results array of returned domains</em><br>optional field<br>default value: <code>0</code><br>maximum value: <code>9999</code><br>if you specify the <code>10</code> value, the first ten technologies in the results array will be omitted and the data will be provided for the successive technologies",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "order_by": {
        +        "description": "<em>results sorting rules</em><br>optional field<br>you can use the following values to sort the results: <code>groups_count</code>, <code>categories_count</code>, <code>technologies_count</code><br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"groups_count,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"groups_count,desc\",\"technologies_count,desc\"]</code><br>default value:<br><code>[\"groups_count,desc\",\"categories_count,desc\",\"technologies_count,desc\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "tag": {
        +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "technology": {
        +        "description": "<em>target technology</em><br><strong>required field if you don't specify <code>group</code>, <code>keyword</code> or <code>category</code></strong><br>at least one field (<code>group</code>, <code>category</code>, <code>keyword</code>, <code>technology</code>) must be set<br>you can find the full list of technologies <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"Salesforce\"</code>",
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / body / items / properties
        Removed value: -{
        -  "category": {
        -    "description": "id of the target technology category required field if you don’t specify group, keyword or technology at least one field (group, category, keyword, technology) must be set you can find the full list of technology category ids on this page example: \"crm\"",
        -    "type": "string"
        -  },
        -  "filters": {
        -    "description": "array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: , , >, >=, =, , in, not_in, like,not_like you can use the % operator with like and not_like to match any string of zero or more characters you can use the following parameters to filter the results: domain_rank, last_visited, country_iso_code, language_code, content_language_code Note: all filtering parameters are taken from the domain_technology_item of the domain_technologies endpoint; example: [[\"country_iso_code\",\"=\",\"US\"], \"and\", [\"domain_rank\",\">\",800]]for more information about filters, please refer to Domain Analytics Technologies API – Filters",
        -    "items": {},
        -    "type": "array"
        -  },
        -  "group": {
        -    "description": "id of the target technology group required field if you don’t specify technology, category or keyword at least one field (group, category, keyword, technology) must be set you can find the full list of technology group ids on this page example: \"marketing\"",
        -    "type": "string"
        -  },
        -  "internal_categories_list_limit": {
        -    "description": "maximum number of returned technology categories within the same group optional field you can use this field to limit the number of items with identical \"category\" in the results default value: 5 minimum value: 1 maximum value: 10000",
        -    "type": "integer"
        -  },
        -  "internal_groups_list_limit": {
        -    "description": "maximum number of returned technology groups optional field you can use this field to limit the number of items with identical \"group\" in the results default value: 5 minimum value: 1 maximum value: 10000",
        -    "type": "integer"
        -  },
        -  "internal_list_limit": {
        -    "description": "maximum number of items with identical \"category\", \"group\", and \"technology\" optional field if you use this field, the values specified in internal_groups_list_limit, internal_categories_list_limit and internal_technologies_list_limit will be ignored; you can use this field to limit the number of items with identical \"category\", \"group\", or \"technology\" default value: 10 minimum value: 1 maximum value: 10000",
        -    "type": "integer"
        -  },
        -  "internal_technologies_list_limit": {
        -    "description": "maximum number of returned technologies within the same category optional field you can use this field to limit the number of items with identical \"technology\" in the results default value: 10 minimum value: 1 maximum value: 10000",
        -    "type": "integer"
        -  },
        -  "keyword": {
        -    "description": "target keyword in the domain’s meta keywords required field if you don’t specify group, category or technology at least one field (group, category, keyword, technology) must be set UTF-8 encoding example: \"seo\"learn more about rules and limitations of keyword and keywords fields in DataForSEO APIs in this Help Center article",
        -    "type": "string"
        -  },
        -  "limit": {
        -    "description": "the maximum number of returned technologies optional field default value: 100 maximum value: 10000",
        -    "type": "integer"
        -  },
        -  "mode": {
        -    "description": "search mode optional field possible search mode types: as_is – search for results exactly matching the specified group ids, category ids, or technology names entry – search for results matching a part of the specified group ids, category ids, or technology names default value: as_is",
        -    "type": "string"
        -  },
        -  "offset": {
        -    "description": "offset in the results array of returned domains optional field default value: 0 maximum value: 9999 if you specify the 10 value, the first ten technologies in the results array will be omitted and the data will be provided for the successive technologies",
        -    "type": "integer"
        -  },
        -  "order_by": {
        -    "description": "results sorting rules optional field you can use the following values to sort the results: groups_count, categories_count, technologies_count possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: [\"groups_count,desc\"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: [\"groups_count,desc\",\"technologies_count,desc\"] default value: [\"groups_count,desc\",\"categories_count,desc\",\"technologies_count,desc\"]",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "tag": {
        -    "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
        -    "type": "string"
        -  },
        -  "technology": {
        -    "description": "target technology required field if you don’t specify group, keyword or category at least one field (group, category, keyword, technology) must be set you can find the full list of technologies on this page example: \"Salesforce\"",
        -    "type": "string"
        -  }
        -}
      • changedInput schema / properties / body / items / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedInput schema / required
        Previous value: -[
        -  "body"
        -]New value: +[]
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • Changedpost_dataforseo_domains_tech_domains_by_html_terms_live7 fields changed
      • addedInput schema / properties / body / example
        Added value: +[
        +  {
        +    "limit": 10,
        +    "offset": 0,
        +    "order_by": [
        +      "last_visited,desc"
        +    ],
        +    "search_terms": [
        +      "data-attrid"
        +    ]
        +  }
        +]
      • addedInput schema / properties / body / items / anyOf
        Added value: +[
        +  {
        +    "example": [
        +      {
        +        "limit": 10,
        +        "offset": 0,
        +        "order_by": [
        +          "last_visited,desc"
        +        ],
        +        "search_terms": [
        +          "data-attrid"
        +        ]
        +      }
        +    ],
        +    "properties": {
        +      "filters": {
        +        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>, <code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>example:<br><code>[\"domain\",\"like\",\"%seo%\"]</code><p><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\"&gt;\",100]]</code><p><code>[[\"domain_rank\",\"&gt;\",100],<br>\"and\",<br>[[\"country_iso_code\",\"=\",\"US\"],\"or\",[\"country_iso_code\",\"=\",\"CA\"]]]</code><p>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        +        "items": {
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "keywords": {
        +        "description": "<em>target keywords in the domain's title, description or meta keywords</em><br>optional field<br>UTF-8 encoding<br>maximum number of keywords you can specify: 10 <br>example:<br><code>[\"seo\",\"software\"]</code><p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "limit": {
        +        "description": "<em>the maximum number of returned domains</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "mode": {
        +        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>strict_entry</code> - search for results exactly matching the order, intervals and separators in the specified search terms<br><code>entry</code> - search for results ignoring the order, intervals and separators in the specified search terms<br>default value: <code>entry</code>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "offset": {
        +        "description": "<em>offset in the results array of returned domains</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten domains in the results array will be omitted and the data will be provided for the successive domains;<br><strong>Note:</strong> the maximum value is <code>9999</code>, the sum of <code>limit</code> and <code>offset</code> must not exceed <code>10000</code>;<br>use the <code>offset_token</code> if you would like to offset more results",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "offset_token": {
        +        "description": "<em>token for subsequent requests</em><br>optional field<br>provided in the identical filed of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task <br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters should be identical to the previous request<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "order_by": {
        +        "description": "<em>results sorting rules</em><br>optional field<br>available fields: <br><code>domain_rank</code>, <code>domain</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"last_visited,desc\"]</code><br>default rule:<br><code>[\"domain_rank,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"last_visited,desc\",\"domain_rank,desc\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "search_terms": {
        +        "description": "<em>target search terms</em><br><strong>required field</strong><br>specify target HTML elements, tags, attributes, their content or all of the above<br>if you specify more than one search term, you will receive only the domains containing all of the specified terms in the HTML code of their homepage<br>maximum number of search terms you can specify: 10<br>example:<br><code>[\"data-attrid\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / body / items / properties
        Removed value: -{
        -  "filters": {
        -    "description": "array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: , , >, >=, =, , in, not_in, like, not_like you can use the % operator with like and not_like to match any string of zero or more characters example: [\"domain\",\"like\",\"%seo%\"] [[\"country_iso_code\",\"=\",\"US\"], \"and\", [\"domain_rank\",\">\",100]] [[\"domain_rank\",\">\",100], \"and\", [[\"country_iso_code\",\"=\",\"US\"],\"or\",[\"country_iso_code\",\"=\",\"CA\"]]] for more information about filters, please refer to Domain Analytics Technologies API – Filters",
        -    "items": {},
        -    "type": "array"
        -  },
        -  "keywords": {
        -    "description": "target keywords in the domain’s title, description or meta keywords optional field UTF-8 encoding maximum number of keywords you can specify: 10 example: [\"seo\",\"software\"] learn more about rules and limitations of keyword and keywords fields in DataForSEO APIs in this Help Center article",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "limit": {
        -    "description": "the maximum number of returned domains optional field default value: 100 maximum value: 10000",
        -    "type": "integer"
        -  },
        -  "mode": {
        -    "description": "search mode optional field possible search mode types: strict_entry – search for results exactly matching the order, intervals and separators in the specified search terms entry – search for results ignoring the order, intervals and separators in the specified search terms default value: entry",
        -    "type": "string"
        -  },
        -  "offset": {
        -    "description": "offset in the results array of returned domains optional field default value: 0 if you specify the 10 value, the first ten domains in the results array will be omitted and the data will be provided for the successive domains; Note: the maximum value is 9999, the sum of limit and offset must not exceed 10000; use the offset_token if you would like to offset more results",
        -    "type": "integer"
        -  },
        -  "offset_token": {
        -    "description": "token for subsequent requests optional field provided in the identical filed of the response to each request; use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request; by specifying the unique offset_token value from the response array, you will get the subsequent results of the initial task; offset_token values are unique for each subsequent task Note: if the offset_token is specified in the request, all other parameters should be identical to the previous request learn more about this parameter on our Help Center",
        -    "type": "string"
        -  },
        -  "order_by": {
        -    "description": "results sorting rules optional field available fields: domain_rank, domain, last_visited, country_iso_code, language_code, content_language_code possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: [\"last_visited,desc\"] default rule: [\"domain_rank,desc\"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: [\"last_visited,desc\",\"domain_rank,desc\"]",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "search_terms": {
        -    "description": "target search terms required field specify target HTML elements, tags, attributes, their content or all of the above if you specify more than one search term, you will receive only the domains containing all of the specified terms in the HTML code of their homepage maximum number of search terms you can specify: 10 example: [\"data-attrid\"]",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  }
        -}
      • removedInput schema / properties / body / items / required
        Removed value: -[
        -  "search_terms"
        -]
      • changedInput schema / properties / body / items / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedInput schema / required
        Previous value: -[
        -  "body"
        -]New value: +[]
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • Changedpost_dataforseo_domains_tech_domains_by_technology_live7 fields changed
      • addedInput schema / properties / body / example
        Added value: +[
        +  {
        +    "filters": [
        +      [
        +        "country_iso_code",
        +        "=",
        +        "US"
        +      ],
        +      "and",
        +      [
        +        "domain_rank",
        +        ">",
        +        800
        +      ]
        +    ],
        +    "limit": 10,
        +    "order_by": [
        +      "last_visited,desc"
        +    ],
        +    "technologies": [
        +      "Nginx"
        +    ]
        +  }
        +]
      • removedInput schema / properties / body / items / allOf
        Removed value: -[
        -  {
        -    "anyOf": [
        -      {
        -        "required": [
        -          "technology_paths"
        -        ]
        -      },
        -      {
        -        "required": [
        -          "groups"
        -        ]
        -      },
        -      {
        -        "required": [
        -          "categories"
        -        ]
        -      },
        -      {
        -        "required": [
        -          "technologies"
        -        ]
        -      },
        -      {
        -        "required": [
        -          "keywords"
        -        ]
        -      }
        -    ]
        -  }
        -]
      • addedInput schema / properties / body / items / anyOf
        Added value: +[
        +  {
        +    "example": [
        +      {
        +        "filters": [
        +          [
        +            "country_iso_code",
        +            "=",
        +            "US"
        +          ],
        +          "and",
        +          [
        +            "domain_rank",
        +            ">",
        +            800
        +          ]
        +        ],
        +        "limit": 10,
        +        "order_by": [
        +          "last_visited,desc"
        +        ],
        +        "technologies": [
        +          "Nginx"
        +        ]
        +      }
        +    ],
        +    "properties": {
        +      "categories": {
        +        "description": "<em>ids of the target technology categories</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>keywords</code> or <code>technologies</code></strong><br>you can find the full list of technology category ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology categories in this array<br>example:<br><code>[\"payment_processors\",\"crm\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "filters": {
        +        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>, <code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>example:<br><code>[\"country_iso_code\",\"=\",\"US\"]</code><p><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\"&gt;\",100]]</code><p><code>[[\"domain_rank\",\"&gt;\",100],<br>\"and\",<br>[[\"country_iso_code\",\"=\",\"US\"],\"or\",[\"country_iso_code\",\"=\",\"CA\"]]]</code><p>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        +        "items": {
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "groups": {
        +        "description": "<em>ids of the target technology groups</em><br><strong>required field if you don't specify <code>technologies</code>, <code>technology_paths</code>, <code>keywords</code> or <code>categories</code></strong><br>you can find the full list of technology group ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology groups in this array<br>example:<br><code>[\"sales\", \"marketing\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "keywords": {
        +        "description": "<em>target keywords in the domain's title, description or meta keywords</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>technologies</code> or <code>categories</code></strong><br>optional field<br>you can specify the maximum of 10 keywords;<br>UTF-8 encoding;<br>example:<br><code>[\"seo\",\"software\"]</code><p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "limit": {
        +        "description": "<em>the maximum number of returned domains</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "mode": {
        +        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>as_is</code> - search for results exactly matching the specified group ids, category ids, or technology names<br><code>entry</code> - search for results matching a part of the specified group ids, category ids, or technology names<br>default value: <code>as_is</code>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "offset": {
        +        "description": "<em>offset in the results array of returned domains</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten domains in the results array will be omitted and the data will be provided for the successive domains;<br><strong>Note:</strong> the maximum value is <code>9999</code>, the sum of <code>limit</code> and <code>offset</code> must not exceed <code>10000</code>;<br>use the <code>offset_token</code> if you would like to offset more results",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "offset_token": {
        +        "description": "<em>token for subsequent requests</em><br>optional field<br>provided in the identical filed of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task <br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters should be identical to the previous request<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "order_by": {
        +        "description": "<em>results sorting rules</em><br>optional field<br>available fields: <br><code>domain_rank</code>, <code>domain</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>you should use a comma to set up a sorting type<br>example:<br><code>[\"last_visited,desc\"]</code><br>default rule:<br><code>[\"domain_rank,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"last_visited,desc\",\"domain_rank,desc\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "technologies": {
        +        "description": "<em>target technologies</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>keywords</code> or <code>categories</code></strong><br>you can find the full list of technologies you can specify here <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technologies in this array<br>example:<br><code>[\"Google Pay\",\"Salesforce\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "technology_paths": {
        +        "description": "<em>target technology paths</em><br><strong>required field if you don't specify <code>groups</code>, <code>technologies</code>, <code>keywords</code> or <code>categories</code></strong><br>at least one field (<code>technology_paths</code>, <code>groups</code>, <code>technologies</code>, <code>keywords</code> or <code>categories</code>) must be set;<br>each technology path should be specified as a separate object containing \"path\" and \"name\", where \"path\" is specified as \"$group_id.$category_id\" and \"name\" - as the name of the target technology; <br>each object with a technology path should be separated with a comma<br>you can find the full list of technology group ids, category ids and technology names <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology paths in this array<br>example:<br><code>[{\"path\": \"content.cms\",\"name\": \"wordpress\"}, {\"path\": \"marketing.crm\",\"name\": \"salesforce\"}]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / body / items / properties
        Removed value: -{
        -  "categories": {
        -    "description": "ids of the target technology categories required field if you don’t specify groups, technology_paths, keywords or technologies you can find the full list of technology category ids on this page note: you can specify up to 10 technology categories in this array example: [\"payment_processors\",\"crm\"]",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "filters": {
        -    "description": "array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: , , >, >=, =, , in, not_in, like, not_like you can use the % operator with like and not_like to match any string of zero or more characters example: [\"country_iso_code\",\"=\",\"US\"] [[\"country_iso_code\",\"=\",\"US\"], \"and\", [\"domain_rank\",\">\",100]] [[\"domain_rank\",\">\",100], \"and\", [[\"country_iso_code\",\"=\",\"US\"],\"or\",[\"country_iso_code\",\"=\",\"CA\"]]] for more information about filters, please refer to Domain Analytics Technologies API – Filters",
        -    "items": {},
        -    "type": "array"
        -  },
        -  "groups": {
        -    "description": "ids of the target technology groups required field if you don’t specify technologies, technology_paths, keywords or categories you can find the full list of technology group ids on this page note: you can specify up to 10 technology groups in this array example: [\"sales\", \"marketing\"]",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "keywords": {
        -    "description": "target keywords in the domain’s title, description or meta keywords required field if you don’t specify groups, technology_paths, technologies or categories optional field you can specify the maximum of 10 keywords; UTF-8 encoding; example: [\"seo\",\"software\"] learn more about rules and limitations of keyword and keywords fields in DataForSEO APIs in this Help Center article",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "limit": {
        -    "description": "the maximum number of returned domains optional field default value: 100 maximum value: 10000",
        -    "type": "integer"
        -  },
        -  "mode": {
        -    "description": "search mode optional field possible search mode types: as_is – search for results exactly matching the specified group ids, category ids, or technology names entry – search for results matching a part of the specified group ids, category ids, or technology names default value: as_is",
        -    "type": "string"
        -  },
        -  "offset": {
        -    "description": "offset in the results array of returned domains optional field default value: 0 if you specify the 10 value, the first ten domains in the results array will be omitted and the data will be provided for the successive domains; Note: the maximum value is 9999, the sum of limit and offset must not exceed 10000; use the offset_token if you would like to offset more results",
        -    "type": "integer"
        -  },
        -  "offset_token": {
        -    "description": "token for subsequent requests optional field provided in the identical filed of the response to each request; use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request; by specifying the unique offset_token value from the response array, you will get the subsequent results of the initial task; offset_token values are unique for each subsequent task Note: if the offset_token is specified in the request, all other parameters should be identical to the previous request learn more about this parameter on our Help Center",
        -    "type": "string"
        -  },
        -  "order_by": {
        -    "description": "results sorting rules optional field available fields: domain_rank, domain, last_visited, country_iso_code, language_code, content_language_code possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: [\"last_visited,desc\"] default rule: [\"domain_rank,desc\"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: [\"last_visited,desc\",\"domain_rank,desc\"]",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "technologies": {
        -    "description": "target technologies required field if you don’t specify groups, technology_paths, keywords or categories you can find the full list of technologies you can specify here on this page note: you can specify up to 10 technologies in this array example: [\"Google Pay\",\"Salesforce\"]",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "technology_paths": {
        -    "description": "target technology paths required field if you don’t specify groups, technologies, keywords or categories at least one field (technology_paths, groups, technologies, keywords or categories) must be set; each technology path should be specified as a separate object containing “path” and “name”, where “path” is specified as “$group_id.$category_id” and “name” – as the name of the target technology; each object with a technology path should be separated with a comma you can find the full list of technology group ids, category ids and technology names on this page note: you can specify up to 10 technology paths in this array example: [{\"path\": \"content.cms\",\"name\": \"wordpress\"}, {\"path\": \"marketing.crm\",\"name\": \"salesforce\"}]",
        -    "items": {
        -      "properties": {
        -        "name": {
        -          "type": "string"
        -        },
        -        "path": {
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "path",
        -        "name"
        -      ],
        -      "type": "object"
        -    },
        -    "type": "array"
        -  }
        -}
      • changedInput schema / properties / body / items / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedInput schema / required
        Previous value: -[
        -  "body"
        -]New value: +[]
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • Changedpost_dataforseo_domains_tech_for_domain_live7 fields changed
      • addedInput schema / properties / body / example
        Added value: +[
        +  {
        +    "target": "dataforseo.com"
        +  }
        +]
      • addedInput schema / properties / body / items / anyOf
        Added value: +[
        +  {
        +    "example": [
        +      {
        +        "target": "dataforseo.com"
        +      }
        +    ],
        +    "properties": {
        +      "target": {
        +        "description": "<em>target domain</em><br><strong>required field</strong><br>domain name of the website to analyze<br><strong>Note:</strong> results will be returned for the specified domain only",
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / body / items / properties
        Removed value: -{
        -  "target": {
        -    "description": "target domain required field domain name of the website to analyze Note: results will be returned for the specified domain only",
        -    "type": "string"
        -  }
        -}
      • removedInput schema / properties / body / items / required
        Removed value: -[
        -  "target"
        -]
      • changedInput schema / properties / body / items / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedInput schema / required
        Previous value: -[
        -  "body"
        -]New value: +[]
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • Changedpost_dataforseo_domains_tech_summary_live7 fields changed
      • addedInput schema / properties / body / example
        Added value: +[
        +  {
        +    "filters": [
        +      [
        +        "country_iso_code",
        +        "=",
        +        "US"
        +      ],
        +      "and",
        +      [
        +        "domain_rank",
        +        ">",
        +        800
        +      ]
        +    ],
        +    "keywords": [
        +      "WordPress"
        +    ],
        +    "mode": "entry",
        +    "technologies": [
        +      "Ngi"
        +    ]
        +  }
        +]
      • removedInput schema / properties / body / items / allOf
        Removed value: -[
        -  {
        -    "anyOf": [
        -      {
        -        "required": [
        -          "technology_paths"
        -        ]
        -      },
        -      {
        -        "required": [
        -          "groups"
        -        ]
        -      },
        -      {
        -        "required": [
        -          "categories"
        -        ]
        -      },
        -      {
        -        "required": [
        -          "technologies"
        -        ]
        -      },
        -      {
        -        "required": [
        -          "keywords"
        -        ]
        -      }
        -    ]
        -  }
        -]
      • addedInput schema / properties / body / items / anyOf
        Added value: +[
        +  {
        +    "example": [
        +      {
        +        "filters": [
        +          [
        +            "country_iso_code",
        +            "=",
        +            "US"
        +          ],
        +          "and",
        +          [
        +            "domain_rank",
        +            ">",
        +            800
        +          ]
        +        ],
        +        "keywords": [
        +          "WordPress"
        +        ],
        +        "mode": "entry",
        +        "technologies": [
        +          "Ngi"
        +        ]
        +      }
        +    ],
        +    "properties": {
        +      "categories": {
        +        "description": "<em>ids of the target technology categories</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>technologies</code>, or <code>keywords</code></strong><br>you can find the full list of technology category ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology categories in this array<br>example:<br><code>[\"payment_processors\",\"crm\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "filters": {
        +        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>,<code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters<br>you can use the following parameters to filter the results: <code>domain_rank</code>, <code>last_visited</code>, <code>country_iso_code</code>, <code>language_code</code>, <code>content_language_code</code><br>example:<br><code>[[\"country_iso_code\",\"=\",\"US\"],<br>\"and\",<br>[\"domain_rank\",\">\",800]]</code><p>for more information about filters, please refer to <a href=\"/v3/domain_analytics/technologies/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Domain Analytics Technologies API - Filters</a>",
        +        "items": {
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "groups": {
        +        "description": "<em>ids of the target technology groups</em><br><strong>required field if you don't specify <code>technologies</code>, <code>technology_paths</code>, <code>categories</code>, or <code>keywords</code></strong><br>you can find the full list of technology group ids <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology groups in this array<br>example:<br><code>[\"sales\", \"marketing\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "internal_list_limit": {
        +        "description": "<em>maximum number of elements within internal arrays</em><br>optional field<br>you can use this field to limit the number of elements within the following arrays:<br><code>countries</code>, <code>languages</code>, <code>content_languages</code>, <code>keywords</code><br>default value: <code>10</code><br>minimum value: <code>1</code><br>maximum value: <code>10000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "keywords": {
        +        "description": "<em>target keywords in the domain's title, description or meta keywords</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>categories</code>, or <code>technologies</code></strong><br>you can specify the maximum of 10 keywords;<br>UTF-8 encoding;<br>example:<br><code>[\"seo\",\"software\"]</code><p>learn more about rules and limitations of <code>keyword</code> and <code>keywords</code> fields in DataForSEO APIs in this <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">Help Center article</a>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "mode": {
        +        "description": "<em>search mode</em><br>optional field<br>possible search mode types:<br><code>as_is</code> - search for results exactly matching the specified group ids, category ids, or technology names<br><code>entry</code> - search for results matching a part of the specified group ids, category ids, or technology names<br>default value: <code>as_is</code>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "tag": {
        +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "technologies": {
        +        "description": "<em>target technologies</em><br><strong>required field if you don't specify <code>groups</code>, <code>technology_paths</code>, <code>categories</code>, or <code>keywords</code></strong><br>you can find the full list of technologies you can specify here <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technologies in this array<br>example:<br><code>[\"Google Pay\",\"Salesforce\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "technology_paths": {
        +        "description": "<em>target technology paths</em><br><strong>required field if you don't specify <code>groups</code>, <code>technologies</code> and <code>categories</code></strong><br>each technology path should be specified as a separate object containing \"path\" and \"name\", where \"path\" is specified as \"$group_id.$category_id\" and \"name\" - as the name of the target technology; <br>each object with a technology path should be separated with a comma<br>you can find the full list of technology group ids, category ids and technology names <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br><strong>note:</strong> you can specify up to 10 technology paths in this array<br>example:<br><code>[{\"path\": \"content.cms\",\"name\": \"wordpress\"}, {\"path\": \"marketing.crm\",\"name\": \"salesforce\"}]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / body / items / properties
        Removed value: -{
        -  "categories": {
        -    "description": "ids of the target technology categories required field if you don’t specify groups, technology_paths, technologies, or keywords you can find the full list of technology category ids on this page note: you can specify up to 10 technology categories in this array example: [\"payment_processors\",\"crm\"]",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "filters": {
        -    "description": "array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: , , >, >=, =, , in, not_in, like,not_like you can use the % operator with like and not_like to match any string of zero or more characters you can use the following parameters to filter the results: domain_rank, last_visited, country_iso_code, language_code, content_language_code example: [[\"country_iso_code\",\"=\",\"US\"], \"and\", [\"domain_rank\",\">\",800]] for more information about filters, please refer to Domain Analytics Technologies API – Filters",
        -    "items": {},
        -    "type": "array"
        -  },
        -  "groups": {
        -    "description": "ids of the target technology groups required field if you don’t specify technologies, technology_paths, categories, or keywords you can find the full list of technology group ids on this page note: you can specify up to 10 technology groups in this array example: [\"sales\", \"marketing\"]",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "internal_list_limit": {
        -    "description": "maximum number of elements within internal arrays optional field you can use this field to limit the number of elements within the following arrays: countries, languages, content_languages, keywords default value: 10 minimum value: 1 maximum value: 10000",
        -    "type": "integer"
        -  },
        -  "keywords": {
        -    "description": "target keywords in the domain’s title, description or meta keywords required field if you don’t specify groups, technology_paths, categories, or technologies you can specify the maximum of 10 keywords; UTF-8 encoding; example: [\"seo\",\"software\"] learn more about rules and limitations of keyword and keywords fields in DataForSEO APIs in this Help Center article",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "mode": {
        -    "description": "search mode optional field possible search mode types: as_is – search for results exactly matching the specified group ids, category ids, or technology names entry – search for results matching a part of the specified group ids, category ids, or technology names default value: as_is",
        -    "type": "string"
        -  },
        -  "tag": {
        -    "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
        -    "type": "string"
        -  },
        -  "technologies": {
        -    "description": "target technologies required field if you don’t specify groups, technology_paths, categories, or keywords you can find the full list of technologies you can specify here on this page note: you can specify up to 10 technologies in this array example: [\"Google Pay\",\"Salesforce\"]",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "technology_paths": {
        -    "description": "target technology paths required field if you don’t specify groups, technologies and categories each technology path should be specified as a separate object containing “path” and “name”, where “path” is specified as “$group_id.$category_id” and “name” – as the name of the target technology; each object with a technology path should be separated with a comma you can find the full list of technology group ids, category ids and technology names on this page note: you can specify up to 10 technology paths in this array example: [{\"path\": \"content.cms\",\"name\": \"wordpress\"}, {\"path\": \"marketing.crm\",\"name\": \"salesforce\"}]",
        -    "items": {
        -      "properties": {
        -        "name": {
        -          "type": "string"
        -        },
        -        "path": {
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "path",
        -        "name"
        -      ],
        -      "type": "object"
        -    },
        -    "type": "array"
        -  }
        -}
      • changedInput schema / properties / body / items / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedInput schema / required
        Previous value: -[
        -  "body"
        -]New value: +[]
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • Changedpost_dataforseo_domains_tech_technology_stats_live7 fields changed
      • addedInput schema / properties / body / example
        Added value: +[
        +  {
        +    "date_from": "2022-10-31",
        +    "date_to": "2023-06-01",
        +    "technology": "jQuery"
        +  }
        +]
      • addedInput schema / properties / body / items / anyOf
        Added value: +[
        +  {
        +    "example": [
        +      {
        +        "date_from": "2022-10-31",
        +        "date_to": "2023-06-01",
        +        "technology": "jQuery"
        +      }
        +    ],
        +    "properties": {
        +      "date_from": {
        +        "description": "<em>starting date of the time range</em><br>optional field<br>minimum value: <code>2022-10-31</code><br>if you don't specify this field, the minimum value will be used by default<br>date format: <code>\"yyyy-mm-dd\"</code><br>example:<br><code>\"2023-06-01\"</code>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "date_to": {
        +        "description": "<em>ending date of the time range</em><br>optional field<br>if you don't specify this field, the today's date will be used by default<br>date format: <code>\"yyyy-mm-dd\"</code><br>example:<br><code>\"2023-01-15\"</code>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "tag": {
        +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "technology": {
        +        "description": "<em>target technology</em><br><strong>required field</strong><br>you can find the full list of technologies you can specify here <a href=\"/v3/domain_analytics/technologies/technologies\" target=\"_blank\" rel=\"noopener noreferrer\">on this page</a><br>example:<br><code>\"Salesforce\"</code>",
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / body / items / properties
        Removed value: -{
        -  "date_from": {
        -    "description": "starting date of the time range optional field minimum value: 2022-10-31 if you don’t specify this field, the minimum value will be used by default date format: \"yyyy-mm-dd\" example: \"2023-06-01\"",
        -    "type": "string"
        -  },
        -  "date_to": {
        -    "description": "ending date of the time range optional field if you don’t specify this field, the today’s date will be used by default date format: \"yyyy-mm-dd\" example: \"2023-01-15\"",
        -    "type": "string"
        -  },
        -  "tag": {
        -    "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
        -    "type": "string"
        -  },
        -  "technology": {
        -    "description": "target technology required field you can find the full list of technologies you can specify here on this page example: \"Salesforce\"",
        -    "type": "string"
        -  }
        -}
      • removedInput schema / properties / body / items / required
        Removed value: -[
        -  "technology"
        -]
      • changedInput schema / properties / body / items / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedInput schema / required
        Previous value: -[
        -  "body"
        -]New value: +[]
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • Changedpost_dataforseo_domains_whois_overview_live5 fields changed
      • addedInput schema / properties / body / example
        Added value: +[
        +  {
        +    "filters": [
        +      [
        +        "epp_status_codes",
        +        "in",
        +        [
        +          "client_transfer_prohibited",
        +          "client_update_prohibited"
        +        ]
        +      ]
        +    ],
        +    "limit": 2
        +  }
        +]
      • addedInput schema / properties / body / items / anyOf
        Added value: +[
        +  {
        +    "example": [
        +      {
        +        "filters": [
        +          [
        +            "epp_status_codes",
        +            "in",
        +            [
        +              "client_transfer_prohibited",
        +              "client_update_prohibited"
        +            ]
        +          ]
        +        ],
        +        "limit": 2
        +      }
        +    ],
        +    "properties": {
        +      "filters": {
        +        "description": "<em>array of results filtering parameters</em><br>optional field<br><strong>you can add several filters at once (8 filters maximum)</strong><br>you should set a logical operator <code>and</code>, <code>or</code> between the conditions<br>the following operators are supported:<br><code>regex</code>, <code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>, <code>not_like</code><br>you can use the <code>%</code> operator with <code>like</code> and <code>not_like</code> to match any string of zero or more characters",
        +        "items": {
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "limit": {
        +        "description": "<em>the maximum number of returned domains</em><br>optional field<br>default value: <code>100</code><br>maximum value: <code>1000</code>",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "offset": {
        +        "description": "<em>offset in the results array of returned items</em><br>optional field<br>default value: <code>0</code><br>if you specify the <code>10</code> value, the first ten <code>items</code> in the results array will be omitted and the data will be provided for the successive items;<br><strong>Note:</strong> we recommend using this parameter only when retrieving up to 10,000 results for retrieving over 10,000 results, use the <code>offset_token</code> instead",
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "offset_token": {
        +        "description": "<em>token for subsequent requests</em><br>optional field<br>provided in the identical filed of the response to each request;<br>use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request;<br>by specifying the unique <code>offset_token</code> value from the response array, you will get the subsequent results of the initial task;<br><code>offset_token</code> values are unique for each subsequent task<br><strong>Note:</strong> if the <code>offset_token</code> is specified in the request, all other parameters should be identical to the previous request<br>learn more about this parameter on our <a href=\"https://dataforseo.com/help-center/what-is-the-difference-between-the-offset-and-offset_token-parameters#offset_token\" target=\"_blank\">Help Center</a>",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "order_by": {
        +        "description": "<em>results sorting rules</em><br>optional field<br>you can use the same values as in the <code>filters</code> array to sort the results<br>possible sorting types:<br><code>asc</code> - results will be sorted in the ascending order<br><code>desc</code> - results will be sorted in the descending order<br>the comma is used as a separator<br>example:<br><code>[\"metrics.organic.pos_1,desc\"]</code><br>default rule:<br><code>[\"metrics.organic.count,desc\"]</code><br><strong>note that you can set no more than three sorting rules in a single request</strong><br>you should use a comma to separate several sorting rules<br>example:<br><code>[\"expiration_datetime,asc\",\"metrics.organic.etv,desc\",\"metrics.organic.pos_1,desc\"]</code>",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": [
        +          "array",
        +          "null"
        +        ]
        +      },
        +      "tag": {
        +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / body / items / properties
        Removed value: -{
        -  "filters": {
        -    "description": "array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, , , >, >=, =, , in, not_in, like, not_like you can use the % operator with like and not_like to match any string of zero or more characters",
        -    "items": {},
        -    "type": "array"
        -  },
        -  "limit": {
        -    "description": "the maximum number of returned domains optional field default value: 100 maximum value: 1000",
        -    "type": "integer"
        -  },
        -  "offset": {
        -    "description": "offset in the results array of returned items optional field default value: 0 if you specify the 10 value, the first ten items in the results array will be omitted and the data will be provided for the successive items; Note: we recommend using this parameter only when retrieving up to 10,000 results for retrieving over 10,000 results, use the offset_token instead",
        -    "type": "integer"
        -  },
        -  "offset_token": {
        -    "description": "token for subsequent requests optional field provided in the identical filed of the response to each request; use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request; by specifying the unique offset_token value from the response array, you will get the subsequent results of the initial task; offset_token values are unique for each subsequent task Note: if the offset_token is specified in the request, all other parameters should be identical to the previous request learn more about this parameter on our Help Center",
        -    "type": "string"
        -  },
        -  "order_by": {
        -    "description": "results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc - results will be sorted in the ascending order desc - results will be sorted in the descending order the comma is used as a separator example: [\"metrics.organic.pos_1,desc\"] default rule: [\"metrics.organic.count,desc\"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: [\"expiration_datetime,asc\",\"metrics.organic.etv,desc\",\"metrics.organic.pos_1,desc\"]",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "tag": {
        -    "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
        -    "type": "string"
        -  }
        -}
      • changedInput schema / properties / body / items / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • 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"
  6. 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"
        +}
  7. 17 tool updates
    • First observedbatch_use
    • First observedget_dataforseo_domains_tech_available_filters
    • First observedget_dataforseo_domains_tech_languages
    • First observedget_dataforseo_domains_tech_list
    • First observedget_dataforseo_domains_tech_locations
    • First observedget_dataforseo_domains_whois_available_filters
    • First observedget_details
    • First observedlist_categories
    • First observedpost_dataforseo_domains_tech_aggregation_live
    • First observedpost_dataforseo_domains_tech_domains_by_html_terms_live
    • First observedpost_dataforseo_domains_tech_domains_by_technology_live
    • First observedpost_dataforseo_domains_tech_for_domain_live
    • First observedpost_dataforseo_domains_tech_summary_live
    • First observedpost_dataforseo_domains_tech_technology_stats_live
    • First observedpost_dataforseo_domains_whois_overview_live
    • 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 the derived numbers — domain authority, what a site ranks for, related and relevant keywords, search intent, and who the real competitors are — for Google, Amazon and the app stores. **What you can ask for** • "What is this domain's authority, and how has its rank history moved?" • "Which keywords does this site rank for, and with what intent?" • "Who are this domain's organic competitors, and where do we overlap?" • "Which keywords does this Amazon product rank for?" • "Compare these two domains keyword by keyword." **How to use it** Point any MCP client at https://mcp.aisa.one/seo-labs/mcp and sign in with OAuth — there is no key to create or paste. 46 tools: ranked, related and relevant keywords, keyword ideas and intent, domain authority and rank history, competitor and intersection analysis, bulk metrics, plus the same shapes for Amazon products and Apple and Google Play apps. **Why this rather than the source** Ahrefs domain rating, Semrush rank history and DataForSEO Labs answering the same questions side by side. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Size the competitor here, then ask the same agent for their traffic mix or their contacts — 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/seo/mcp for all of it at once — rankings, keywords, backlinks, site health and AI-answer visibility across DataForSEO, Semrush and Ahrefs.

  • Your agent needs the whole search picture — what you rank for, who outranks you, who links to them, what is broken on the site, and whether ChatGPT names you at all. Normally that is three SEO vendors and three subscriptions. **What you can ask for** • "What does this domain rank for, and which competitors take the same keywords?" • "Who links to my competitor and not to me?" • "Crawl this site and list the pages with broken tags or duplicate content." • "Does Perplexity cite us when asked about this category?" • "How hard is this keyword, and what does the SERP look like today?" **How to use it** Point any MCP client at https://mcp.aisa.one/seo/mcp and sign in with OAuth — there is no key to create or paste. 60 tools spanning DataForSEO, Semrush and Ahrefs: SERPs, keywords and difficulty, backlinks and referring domains, on-page crawling, domain authority, and answers from ChatGPT, Claude, Gemini and Perplexity. **Why this rather than the source** Three indexes behind one account, so you can cross-check a number instead of trusting one vendor's version of it. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Check the ranking here, then ask the same agent for that competitor's traffic mix, its ad spend, or the person to email — 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** Narrower endpoints: https://mcp.aisa.one/seo-serp/mcp · /seo-keywords/mcp · /seo-backlinks/mcp · /seo-onpage/mcp · /seo-labs/mcp · /seo-ai-visibility/mcp · /seo-content/mcp · /seo-domains/mcp · /seo-business/mcp · /seo-merchant/mcp · /seo-apps/mcp · /seo-serp-other-engines/mcp

  • 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 to crawl a site and say what is wrong with it — broken tags, duplicate content, pages nothing can index, resources that never load. **What you can ask for** • "Crawl this site and list every page with a duplicate title or missing description." • "Which pages are non-indexable, and why?" • "Run Lighthouse on these URLs and give me the failing audits." • "Show the internal link graph and the orphan pages." • "Give me this page's raw HTML and its microdata." **How to use it** Point any MCP client at https://mcp.aisa.one/seo-onpage/mcp and sign in with OAuth — there is no key to create or paste. 20 tools: submit a crawl and read its summary, pages, resources, links and waterfall; duplicate content and duplicate tags; keyword density; non-indexable and uncrawlable resources; parsed content, raw HTML, microdata, screenshots and Lighthouse. **Why this rather than the source** A crawler you drive from the agent, with the audit results as structured data rather than a PDF. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Find the broken pages here, then ask the same agent what those pages used to 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/seo/mcp for all of it at once — rankings, keywords, backlinks, site health and AI-answer visibility across DataForSEO, Semrush and Ahrefs.

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Company technographics: search 760,000+ companies by the technologies they use — with direction of change (adopting / replacing / evaluating) — enrich any domain with firmographics and hiring signals, and browse a 10,000+ technology catalog. Remote server at https://api.echoloc.ai/mcp (Streamable HTTP); free API key: 100 requests/month, no card. Docs: https://echoloc.ai/for-agents
    3
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides AI agents with tools to detect Shopify apps, WordPress plugins, DNS/email/SaaS footprint, and estimate SaaS spend for competitive intelligence and vendor research.
    -
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server for domain intelligence — WHOIS, DNS records, SSL certificate inspection, SPF/DMARC validation, security-header audits, and blacklist/reputation checks, callable by AI agents. Powered by domainintel.app; runs server-side, no local setup.
    7
    17 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources