Competitive switch API
Find domains that replaced one technology with a competing technology in the same category, with a destination flow chart. Costs 1 credit per request.
Frequently asked questions
What counts as a switch?
What counts as a switch?
What is the flow array?
What is the flow array?
limit — the “247 left this technology, 69 went to WooCommerce” chart. Under a firmographic filter the flow shrinks to the matched cohort too. It is best-effort: on very large categories it can degrade to null rather than failing the request.How do I read gap_days?
How do I read gap_days?
confidence is graded from gap_days together with the churn side’s detection rate.What is the difference between direction=from and direction=to?
What is the difference between direction=from and direction=to?
from returns who left your anchor technology and where they went — the save-play list. to returns who arrived at your anchor and which competitor they left — the win list and case-study source. Direction is ignored on a category scope, which returns every migration inside the category.Why is a switch I expected missing?
Why is a switch I expected missing?
window, so widen it. Or the churn side may fall below min_confidence. Note also that a switch whose from-side is a known flapper on that host is downgraded to low confidence rather than dropped, so check the confidence field before assuming it is absent.Authorizations
API key in format tapi_live_[32-char] (live) or tapi_test_[32-char] (test)
Query Parameters
Scope by BuiltWith technology id. Provide exactly one of technology_id, technology or category_id.
Scope by exact technology name. The technology must be detectable.
Scope by category — fans out to every detectable technology whose primary category is this one.
Technology scope only. from returns who left the anchor and where they went; to returns who came to the anchor and from where. Ignored for category scope.
from, to Look-back window in days. Both the churn and the adoption must fall inside it. Clamped to 1–365.
Minimum detection_rate on the churn side.
Rows returned. Clamped to 1–1000.
1 <= x <= 1000Filter to companies in this country (case-insensitive).
Filter to companies in this city (case-insensitive).
Filter to companies in this state or region (case-insensitive).
Filter to companies in this industry (case-insensitive).
Filter by exact LinkedIn industry code.
Filter by exact LinkedIn employee band. Unknown bands are rejected with INVALID_EMPLOYEE_BAND and the allowed list.
Filter by exact company type.
Only companies founded in or after this year.
1800 <= x <= 2025Only companies founded in or before this year.
1800 <= x <= 2025Set to true to attach the company card without filtering results (enrich-only mode).
Filter to domains where the crawler found (or did not find) an email address. false is a real filter, not a no-op.
Filter to domains where the crawler found (or did not find) a phone number.
Filter to domains publishing a profile on this platform.
linkedin, x, facebook, instagram, youtube, github, tiktok, discord, reddit, crunchbase, slack Filter by the site's primary language.
Filter by the country the site declares in its schema.org markup. Accepts ISO-2, English name or common variants.
Apply a saved audience instead of inline filters. Filter audiences replay their firmographic predicates; list audiences restrict rows to their member domains. Mutually exclusive with inline firmographic parameters.