Generate Insights API retires on October 30, 2026: move to the Signal API
Effective date: October 30, 2026. On that date, every Generate Insights API version (
v1.0.0tov1.4) returns HTTP 410. The Signal API replaces it. The Generate Content API does not change.
We are retiring the Generate Insights API on October 30, 2026. The Signal API replaces it, and it does far more.
The Generate Insights API gave you a short list of insights for one contact. The Signal API gives you the full Autobound signal graph: 35+ signal types and 900+ subtypes on companies and people. You can enrich one record, search the whole market, track buyer intent, and use it all from your AI assistant through MCP. This page shows what you get and how to move in 5 steps.
What is changing
- On October 30, 2026, we retire every version of the Generate Insights API:
v1.0.0,v1.1,v1.2,v1.3andv1.4. - From that date, each call to
https://api.autobound.ai/api/external/generate-insights/...returns HTTP 410 with error code4006. - Until then, the Generate Insights API works as it does today.
Not affected: the Generate Content API (v3.5, v3.6), AI Studio, and the Signal API. You are affected only if your code calls a URL that starts with https://api.autobound.ai/api/external/generate-insights/.
Why the Signal API is a big upgrade
| You can | With the Signal API | Docs |
|---|---|---|
| Get signals for one company | By domain, name or LinkedIn URL. Works even when you only have a generic inbox like [email protected]. | Enrich a company |
| Get signals for one person | By email or LinkedIn URL | Enrich a contact |
| Find new accounts | Search the whole market for companies with fresh signals. Filter by industry, employee count and revenue. | Search companies |
| Find the right people | Search contacts by signal. Filter by seniority, department and job title. | Search contacts |
| Get only what you need | Filter by signal type, up to 25 subtypes, and date window. You pay only for what returns. | Subtype filtering |
| Search inside posts and podcasts | Match keywords, tech mentioned, competitors mentioned, pain points and initiatives in LinkedIn, Twitter/X, YouTube and podcast content. | Content filters |
| See who is in market | Companies and contacts that surge on your topics, with an intent timeline per company and bulk export. | Buyer intent: companies, contacts, topics |
| Watch your accounts | Add the companies and people you care about to your monitoring pool. | Add to monitoring pool |
| Check emails before you send | Real-time email verification, single or bulk (up to 1,000 per call). | Email verification |
| Use it in your AI assistant | Ask for signals in plain language in Claude, ChatGPT, Cursor or Claude Code. | Autobound MCP |
| Load it in bulk | Delivery to Google Cloud Storage in JSONL and Parquet. | Delivery |
Free discovery endpoints help you build fast: list signal types, list filters, signal type history, credit costs, account and request logs.
Simple pricing. You pay only for results. Enrichment costs 2 credits per returned signal. Zero-result requests are free. See Credits.
We add new signal types and parameters often. Follow the changelog to see each release.
Use it from your AI assistant (MCP)
The Autobound MCP server lets Claude, ChatGPT, Cursor, Claude Code and any MCP client query the Signal API in plain language.
- Server URL:
https://mcp.autobound.ai/mcp - Claude Code, in one line:
claude mcp add --transport http autobound https://mcp.autobound.ai/mcp- Example prompts: "What signal types do you have?" or "Which fintech companies announced layoffs in the last 30 days?"
Full setup for each client: Autobound MCP.
Core differences to prepare for
The Signal API is a new API, not a new version of Generate Insights. Plan for these 5 changes.
1. A new JSON shape. Your parser must change.
- Results come in
signals(company call) orcontact_signals(contact call), notinsights. - Each signal has
signal_type,signal_subtype,detected_atand adataobject. - The fields inside
datadepend on the signal type. Each type has its own guide in the signal catalog, and the schema page shows the shared envelope. - The response also has
company,contact,signal_summaryandcoverage.
2. Insight subtypes become signal types and signal subtypes. The old API used one flat insightSubtype. The Signal API uses two levels: a signal type (for example news) and a signal subtype (for example receives_award). Today there are 35+ signal types and 900+ subtypes. Get the live list from List all signal types. It is free.
Old insightSubtype | New signal_types | New signal_subtypes |
|---|---|---|
receives_award | news | receives_award |
receives_financing | news | receives_financing |
linkedInPost | linkedin-post-contact | linkedinPost |
jobChange | work-milestones | jobChange |
companyProductHuntLaunch | producthunt-launch | companyProductHuntLaunch |
Subtype matching ignores case. An unknown subtype returns zero results, not an error. So check your values against the live list.
3. Raw signals, not ready-made insights. The old API returned insight text, talking points, and (in v1.3 and v1.4) a ranking for your seller context. The Signal API returns structured signals with dates and source data. You pick and rank them. Many types include a data.summary. To turn signals into an email, use the Generate Content API.
4. Insight Control settings do not apply. Org settings and custom insights from Insight Control shaped the old API output. The Signal API ignores them. Use signal_types, signal_subtypes, detected_after and limit instead.
5. New pricing and a new key. The old API charged per request. The Signal API charges 2 credits per returned signal, and zero-result requests are free. It also uses its own API key.
How to move (5 steps)
1. Get a Signal API key
Sign in to the Signal API developer portal and create a key. You can also ask your account manager for one.
The Signal API key is separate from your current Autobound API key. Your current key keeps working for the Generate Content API.
2. Change the endpoint
| You want signals for | Old call | New call |
|---|---|---|
| A person | POST https://api.autobound.ai/api/external/generate-insights/v1.4 | POST https://signals.autobound.ai/v1/contacts/enrich |
| A company | POST https://api.autobound.ai/api/external/generate-insights/v1.4 | POST https://signals.autobound.ai/v1/companies/enrich |
Send the key in the X-API-KEY header, as today. Authorization: Bearer <key> also works.
3. Map the request fields
| Generate Insights (v1.x) | Signal API | Notes |
|---|---|---|
contactEmail | contact_email | Enrich a contact |
contactLinkedinUrl | contact_linkedin_url | Enrich a contact |
contactCompanyUrl | domain | Enrich a company. You can also send company_name or linkedin_url. |
insightSubtype | signal_types, signal_subtypes | Signal catalog, list signal types. Up to 25 subtypes per request. |
| (none) | detected_after | ISO-8601 date-time. Returns only newer signals. |
| (none) | limit | 1 to 500. Default 20. |
userEmail, userLinkedinUrl, userCompanyUrl | (none) | The Signal API does not rank signals for a seller. Use the filters to narrow the result. |
inputVariables | (none) | Not needed. |
4. Map the response fields
| Generate Insights (v1.x) | Signal API |
|---|---|
insights (array) | signals (company call) or contact_signals (contact call) |
insightId, id | signal_id |
type | signal_type |
subType | signal_subtype |
name | signal_name. This can be empty. Use signal_subtype or data.summary instead. |
association | association (company or contact) |
variables | data. The fields depend on the signal type. See the schema and the guide for each type in the signal catalog. |
| (none) | detected_at: when we detected the signal |
details.prospect... | company and contact objects, plus coverage |
5. Test before October 30
Run your main use case against the Signal API. Check the result count, the fields you read, and your credit use. The response headers x-credits-charged and x-credits-remaining show the credits for each call. The onboarding guide walks through a first integration.
Example
Before (Generate Insights):
curl -X POST "https://api.autobound.ai/api/external/generate-insights/v1.4" \
-H "X-API-KEY: $AUTOBOUND_API_KEY" \
-H "Content-Type: application/json" \
-d '{"contactEmail": "[email protected]", "contactCompanyUrl": "stripe.com"}'After (Signal API, company signals):
curl -X POST "https://signals.autobound.ai/v1/companies/enrich" \
-H "X-API-KEY: $SIGNAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"domain": "stripe.com", "signal_types": ["news", "hiring-trends"], "detected_after": "2026-07-01T00:00:00Z", "limit": 20}'After (Signal API, contact signals):
curl -X POST "https://signals.autobound.ai/v1/contacts/enrich" \
-H "X-API-KEY: $SIGNAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"contact_email": "[email protected]", "limit": 20}'New (find companies in market, not possible with Generate Insights):
curl -X POST "https://signals.autobound.ai/v1/companies/search" \
-H "X-API-KEY: $SIGNAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"signal_types": ["hiring-trends"], "industries": ["Software Development"], "employee_count_min": 200, "limit": 20}'Shortened response shape (company enrich):
{
"company": { "name": "...", "domain": "stripe.com", "linkedin_url": "...", "industries": ["..."] },
"signals": [
{
"signal_id": "...",
"signal_type": "news",
"signal_subtype": "...",
"signal_name": "...",
"detected_at": "2026-10-01T00:00:00Z",
"association": "company",
"contact": null,
"data": { "summary": "..." }
}
],
"signal_summary": { "news": 12 },
"coverage": { "total_before_filters": 40, "total_after_filters": 12 }
}Tip: contact-level coverage is lower than company-level coverage. If a contact call returns contact_not_found, call /v1/companies/enrich with the person's company domain. The 404 response lists this as a next_steps option. Entity resolution explains how we match records.
Errors you may see
| Situation | Response |
|---|---|
| No signals for the person or company | 404 contact_not_found or company_not_found, with hint and next_steps |
| No credits left | 402 credits_exhausted, with balance and action_cost |
| Too many requests | 429 rate_limit_exceeded (300 requests per minute), with Retry-After |
| Bad or missing key | 401 unauthorized |
| Old Generate Insights call on or after October 30 | 410, error code 4006 (below) |
The 410 response body:
{
"error": {
"code": 4006,
"message": "The Generate Insights API (v1.0.0 to v1.4) was retired on 2026-10-30. Use the Autobound Signal API: POST https://signals.autobound.ai/v1/contacts/enrich or POST https://signals.autobound.ai/v1/companies/enrich. Docs: https://autobound-api.readme.io/reference/enrichcontact. The Signal API needs its own API key: https://signalapi.autobound.ai"
}
}Timeline
| Date | What happens |
|---|---|
| Now | The Signal API and MCP server are live. Start your move. |
| Until October 29, 2026 | The Generate Insights API works as today. |
| October 30, 2026 | Every Generate Insights call returns 410. |
Questions
- Does my Generate Content API code change? No.
v3.5andv3.6keep the same request, response and key. - Do I need a new key? Yes, for the Signal API only. Get it at signalapi.autobound.ai.
- Can I use the Signal API in Claude or ChatGPT? Yes. Connect the Autobound MCP server.
- What about my plan and credits? Your account manager will help you set up Signal API credits that fit your use. See Credits, auto top-up and pay by invoice.
- Can I keep using Generate Insights after October 30? No. Every call returns
410. - Where do I start? Introduction, then the onboarding guide.
Need help? Reply to your account manager, or email [email protected]. We are happy to do a short call to help you switch.

