/v3/... endpoints) is being retired. This guide walks you through moving your scripts, data pipelines, and connections to Conductor’s API.
Overview
Key dates
Why migrate now
- Simpler authentication. A single API token replaces the key, secret, and computed signature.
- AI Search data. Get brand mentions, citations, sentiment, responses, and query fan-out alongside your traditional rankings.
- One set of credentials. The same token works for the Data API, the Content API, and the configuration endpoints.
- Actively maintained. New endpoints and fields ship to Conductor’s API only.
Who needs to act
You need to migrate if anything in your organization callshttps://api.conductor.com/v3/... with the apiKey and sig query parameters. Check:
- Custom scripts and data warehouse ETL jobs
- Anything built on the
conductor-apiPython package - BI connectors, such as Domo or Looker Studio
- n8n, Zapier, or other automations
The base URL is still
https://api.conductor.com. Because the host doesn’t change, a legacy connection can look up to date when it isn’t. Check each integration’s request paths and how it authenticates, not just the host.What’s different at a glance
Before you start
- Access: you need a Conductor login to generate an API token. Not a Conductor user? Ask a Conductor admin to add you.
- An inventory: list every legacy endpoint you call and where its output goes downstream (tables, dashboards, reports).
- A parallel-run plan: keep the legacy connection running alongside the new one until the data matches, then cut over.
Migrate your integration
1
Switch authentication
Generate an API token in Conductor under Integrations > API > Create API Token. Copy it right away; the full token isn’t shown again. See Authentication for details.Then remove the signature logic and the
apiKey/sig query parameters, and send the token in the Authorization header instead.Conductor’s API still accepts the legacy key + signature method during the transition (see Support for legacy connections). We recommend switching to a token now so you only migrate once.
2
Map your endpoints
Use this table to find the replacement for each legacy endpoint you call.
3
Adopt the async query pattern
Every Data API and configuration endpoint is asynchronous. Instead of returning data immediately, each query follows a submit, poll, and paginate cycle:See Async Queries for the full walkthrough.
- Submit your query parameters. The API returns
202 Acceptedwith anexecutionId. - Poll by sending the
executionIdback to the same endpoint. You get202while the query runs and200with data when it’sCOMPLETED. - Paginate by sending the
executionIdwith thenextPageIdfrom the previous response, one page at a time, until nonextPageIdis returned.
4
Update your date logic
Conductor’s API doesn’t use
timePeriodId or CURRENT. Instead, you send an explicit date range that lines up with the endpoint’s collection_frequency:Requests with misaligned dates are rejected before the query runs. For example, a
WEEKLY request with start_date: "2026-10-05" (a Monday) fails.To reproduce the legacy CURRENT time period, compute the most recent complete week:Supported frequencies, maximum date ranges, and date field names vary by endpoint. Check each endpoint’s reference page before you build your requests.
5
Update parsing and storage
Legacy responses were named JSON objects. Conductor’s API returns two pieces instead: a Build your rows from If you load the data into a warehouse:
schema array listing each column’s name and type in order, and results, a list of positional rows.schema rather than hard-coding field positions. This snippet turns a completed response into a pandas DataFrame:- Remap your table columns to the new column names.
- Upsert on the new identifiers rather than the legacy IDs.
- Cast values to the types in
schema. Some endpoints return all values as strings.
6
Budget for rate limits
Limits are the same as before: 5,000 calls per day and 2 calls per second per key. What changes is how many calls a job takes, because every poll and every page counts.The number of calls depends on how many keywords you track. Each keyword returns roughly 30 to 40 rows, and each page holds up to 1,000 rows. For example, a web property with 100 keywords returns about 100 × 40 = 4,000 rows, which is 4,000 ÷ 1,000 = 4 calls to retrieve the data. A weekly sync across 10 web properties of this size takes roughly 10 × 4 = 40 calls.Use a polling interval of a few seconds rather than polling continuously.See Rate Limits for details.
7
Validate and cut over
Run the legacy and new connections side by side for one or two collection cycles, then compare:Data rounding and freshness are unchanged, so the numbers should match. Once they do:
- Ranks for a sample of keywords
- Comparison web properties
Note that row counts will not match across legacy and new API calls. The legacy endpoint returned only your ranks and your competitors’ ranks, while the new endpoint returns all ranking results for each keyword. To compare like for like, filter the new results down to your web property and its comparison web properties first.
- Point your downstream dashboards and reports at the new data.
- Turn off the legacy connection.
- Revoke the legacy API key and secret in Conductor.
Tool-specific notes
conductor-apiPython package: this package works only with the legacy API, and no updated version is planned. Replace it with direct HTTP requests, as shown in the examples above.- Domo and Looker Studio: update the connector’s authentication and endpoints. See Integrate Domo with the Conductor API.
- No-code tools: if you use n8n, Zapier, or a similar tool, see Conductor’s API for non-developers.
Take advantage of what’s new
Once you’ve migrated, the same token gives you access to:- AI Search data: track how your brand appears in AI engines with brands, citations, sentiments, responses, and query fan-out.
- The Content API: create drafts, generate insights, and score content inside your own workflows. See the Content API guide.
Troubleshooting and FAQ
My request is rejected because of the date range
My request is rejected because of the date range
Your dates don’t line up with
collection_frequency. Weekly ranges must run Sunday through Saturday; monthly ranges must run from the first to the last day of a month.I'm getting 429 Too Many Requests
I'm getting 429 Too Many Requests
You’re polling too fast or have used up your daily limit. Increase your polling interval and see Rate Limits.
My numbers don't match the legacy data
My numbers don't match the legacy data
Data rounding and freshness haven’t changed, so differences usually come from the request itself. Confirm you’re querying the same accounts, web properties, search engines, locales, devices, and date range in both connections.
Can I keep using my API key and secret?
Can I keep using my API key and secret?
Conductor’s API still accepts the key + signature method during the transition, but we recommend switching to an API token. The legacy
/v3/... endpoints stop working on January 15, 2027, regardless of how you authenticate.What happens on January 15, 2027?
What happens on January 15, 2027?
The legacy Reporting API reaches end of life, and calls to the
/v3/... endpoints fail. Any integration still using them will stop returning data.