Your credential, your bill.
A connection is a vendor you already pay for, reached through your superagnt API key. You connect the account once in the dashboard, and every call after that rides the same auth, the same logs and the same tools as everything else on the platform. The vendor bills you directly, so the platform charges no data credits for it.
How this differs from a curated data source
There are two ways data reaches an agent here, and the difference is who holds the upstream relationship.
| Curated data source | Connection | |
|---|---|---|
| url | /v1/data/:source/* | /v1/connections/:vendor/* |
| account | Ours. We hold the upstream relationship. | Yours. You connected it. |
| billing | Priced per call in data credits. | No data credits. Calls are logged at zero cost. |
| 402 / 429 | Your credit balance, or our upstream capacity. | Your vendor plan. Nothing to do with your credit balance. |
consequence
Curated sources are documented in the API reference, which carries the per-call pricing for each one.
One pass-through route per vendor
Every HTTP method is accepted on /v1/connections/:vendor/*. Everything after the vendor segment is appended to the vendor's own base URL, so you address the vendor's API with the vendor's own paths. The method, the query string, the JSON body and its Content-Type all ride along, and we attach the credential for you.
curl -s "https://api.superagnt.com/v1/connections/hubspot/crm/v3/objects/contacts?limit=10" \
-H "Authorization: Bearer $AGNTDATA_API_KEY"Authentication is Authorization: Bearer <your superagnt API key>. Keys are minted and rotated in the dashboard at app.superagnt.com.
envelope
{ success, data, meta }, where meta carries vendor, cached and latencyMs. There is no costCents here, because there is no cost.Where the vendor ships a bundled OpenAPI spec, the request is validated against it before it leaves us. A bad parameter comes back as a 400 naming the field and where it was found, instead of as a confusing vendor error.
Two credential kinds, one catalog
Connections live on the Integrations page in the dashboard, split into Enabled (what this workspace has connected) and Available (everything else).
- 01
Pick the vendor
Open Integrations in the dashboard and choose the vendor from the Available list.
- 02
Authorize, or paste a key
An OAuth vendor opens a popup and you approve the install there. An API-key vendor shows a field you paste into once. Per-vendor setup notes render inline and tell you exactly where in the vendor's own settings to generate that key.
- 03
Done
The vendor moves to Enabled, its REST route starts answering, and its tools appear on the workspace MCP server.
keys are write-only
A few vendors accept either kind. When a vendor supports both and the workspace has an active OAuth install, the OAuth install wins and the pasted key is ignored.
You never handle an access token
OAuth access tokens are refreshed for you, just in time, before each call. If the vendor still answers 401, we force one refresh and retry the call exactly once. That covers the ordinary case of a token that expired mid-flight.
If the retry fails too, or the install has no refresh token, the install is marked revoked. Calls then return a 401 telling you to reconnect from the dashboard, and opening that connection in the dashboard shows a reconnect prompt naming the state it is in (revoked, expired, or needs attention). Nothing silently half-works.
What the proxy does with an upstream failure
Upstream statuses are translated into something a caller can act on, rather than passed through raw.
| Upstream | You get | Meaning |
|---|---|---|
| no credential | 400 | This workspace has not connected the vendor. Connect it in the dashboard first. |
401 | 401 | Reconnect the OAuth install, or update the API key. The message says which, because the fix differs. |
403 | 403 | The connected credential lacks permission for that operation. Widen the scopes on the vendor side. |
429 | 429 RATE_LIMITED | Names the vendor that rate limited you. It is their limit, on your plan. |
other 4xx | same status | Passed through, so your own error handling still works. |
5xx | 502 | The vendor is down or erroring. Retry. |
Failed calls are logged at zero cost, same as successful ones. A broken connection never costs you credits.
Connecting a vendor is the opt-in
Each vendor operation is also an MCP tool named connection_<vendor>_<operationId>. Curated data sources are on by default on a grouped server, which every workspace server is unless it was set up per operation, and a per-operation server switches them on family by family. A connection skips that step on every server: the moment the account is connected, its family (connection:<vendor>) joins the default server's always-on base and its tools show up. Disconnect it and they go away again.
A deployed agent that calls a connection tool for a vendor the workspace has not connected gets a structured tool result rather than a protocol error, carrying a dashboard link it can hand to a human:
{
"code": "INTEGRATION_NOT_CONNECTED",
"error": "INTEGRATION_NOT_CONNECTED",
"vendor": "hubspot",
"connect_url": "https://app.superagnt.com/dashboard/<workspace-id>/connections/hubspot"
}Synced vendors
Some vendors (Cal.com, HeyReach, Smartlead, EmailBison, Calendly, lemlist, RB2B, Apollo, La Growth Machine, Expandi, Instantly) can also be synced: their data is copied into tables in your workspace database and kept fresh, so an agent reads local tables instead of paging the vendor on every run. Turn it on from the Sync panel on the vendor's connection page, or with agnt_sync_enable. The connection tools keep working alongside it. See Vendor sync.
Vendors you can connect today
Each vendor is addressed by its slug at /v1/connections/<slug>/* and exposes the same operations as connection_<slug>_* MCP tools. Each has its own page: how to connect it, what to know, its MCP tools and every operation.
CRM and sales
HubSpot
Contacts, companies, deals, tickets, products and line items, plus notes, tasks, calls and meetings.
Attio
Records, lists, notes, tasks, meetings and workspace members.
Affinity
Persons, companies and opportunities, lists and their field values, notes, reminders, interactions and warm introduction paths.
Breakcold
Sales CRM records, schema and views, plus a unified email and social inbox.
Outbound and lead data
Apollo.io
Contacts, accounts and deals, sequences and outreach emails, tasks and calls, plus people and company search and enrichment.
Instantly AI
Cold email campaigns, leads, accounts and analytics.
Smartlead
Cold email campaigns and email steps, campaign leads, the master inbox, mailbox warmup, analytics, webhooks and agency clients.
EmailBison
Cold email on your own instance: campaigns, sequences, leads, the master inbox, mailboxes and warmup.
lemlist
Multichannel cold outreach: campaigns, sequences and schedules, leads, contacts and companies, the inbox, activity history, stats and webhooks.
HeyReach
LinkedIn outreach campaigns, lead lists, conversations and sender networks.
Expandi
LinkedIn outreach: senders and their status, campaigns, per-lead state, message threads, searches, and scheduled messages, connection requests and posts.
La Growth Machine
LinkedIn and email outreach: campaigns and sequences, per-lead stats, audiences, leads, the inbox, inbox webhooks and manual tasks.
RB2B
The website visitors RB2B identified in the last 90 days: who they are, where they work, the page they were on.
AI Ark
B2B people and company search with verified emails and mobile numbers.
SocialScraper
Public Instagram profile, follower and following data. Submit a scrape, then poll for the payload.
Dub
Short links, conversion tracking, partners and payouts.
Docs, sheets and scheduling
Notion
Pages (including page content as markdown), databases and data sources, comments and users.
Airtable
Records, comments, base schema and change webhooks.
Google Sheets
Read and edit spreadsheets through the Sheets v4 API.
Google Docs
Create, read and edit documents through the Docs v1 API.
Google Calendar
Calendars, events, free/busy queries and calendar sharing.
Calendly
Meetings and invitees, event types, availability, booking, single-use links, routing forms and webhooks.
Cal.com
Bookings and their lifecycle, availability, event types, schedules, out-of-office, teams, organizations and webhooks. Cloud or self-hosted.
Engineering, product and support
GitHub
Repositories, branches, file contents, issues, pull requests, releases and search.
Linear
The full Linear GraphQL API through one proxied endpoint.
PostHog
Persons, events, insights, feature flags, cohorts, annotations.
Intercom
Contacts, companies, conversations, tickets, tags, segments and help-center articles.
Supabase
Management API for your own Supabase organization. SQL goes through the scoped role instead, see Bring your own database.
Billing
Search, web and media
Exa
Neural and keyword web search, page contents, agentic answers.
Google Search Console
Search analytics, property and sitemap management, URL inspection.
AgentMail
Give an agent its own inbox. Send, receive, reply, forward, with threads, drafts and event webhooks.
X (Official API)
Post, delete, like, repost, follow, bookmark and DM from a connected X account.
Memelord
Image memes and captioned video memes, rendered asynchronously.
Search Console has its own setup guide: the Google Search Console MCP server page covers its 8 tools, which writes hosted agents stop on, and how to connect it from Claude Code, Codex or Cursor.
not on this list
Two different ceilings
The limit that produces a 429 from us is your plan's requests-per-minute figure, counted per workspace across every /v1 surface — see Errors and rate limits.
Separately, the integration registry records the ceiling each vendor declares for its own API, chosen to sit under what the vendor allows. The proxy does not throttle against these figures; they are published so you can size a burst of agent calls before the vendor's own limiter does it for you, with a 429 that is theirs rather than ours.
| Vendor | Req / sec | Req / min |
|---|---|---|
| attio, instantly | 100 | 6,000 |
| dub, google-docs, google-sheets | 60 | 300 to 600 |
| stripe | 25 | 1,500 |
| affinity, github | 15 | 900 |
| agentmail, exa, google-calendar, google-search-console, hubspot, intercom, lemlist, linear | 10 | 600 |
| calendly, posthog | 8 | 480 to 500 |
| ai-ark, airtable, breakcold, calcom, expandi, heyreach, memelord, social-scraper, supabase, x-official | 5 | 60 to 300 |
| apollo-io, emailbison, notion | 3 | 180 to 200 |
| lagrowthmachine | 2 | 120 |
| smartlead | 1 | 60 |
| rb2b | 0.33 | 20 |
Vendor sync
Copy a connected vendor's data into your workspace database and keep it fresh.
Bring your own database
Connect a Postgres you already run, or a Supabase account, with grants you write yourself.
Remote MCP servers
Point us at a third-party MCP server and its tools ride the same connection as everything else.