Apideck
Apideck · Platform
Schedule a demo
The Apideck platform

One integration.
Every SaaS your customers use.

Build once against a unified API — Accounting, HRIS, CRM and more — and ship integrations to 200+ connectors. Apideck handles the auth, the data models and the edge cases.

The idea

Three ideas do all the work.

Integrations get hard because every vendor is different. Apideck collapses that difference into three primitives — then everything downstream is the same call, over and over.

One model per category

Accounting, HRIS, CRM — each is a single normalized schema. Learn the Invoice once; it maps to every ERP underneath.

One connection, managed

Apideck Vault stores, rotates and refreshes every token. Credentials never reach your servers.

One call, every connector

Change a serviceId, not your code. Request and response shapes stay identical across 200+ integrations.

The path

From a customer's login to an AI agent — four steps.

Scroll through the lifecycle. The panel follows along — watch the one line that changes when the connector does, and everything that doesn't.

01Connect
Apideck Vault

Your customer authorizes once.

Drop in the embedded Vault flow. They pick their tool and sign in on the provider's own screen — OAuth, an API key, whatever it needs. Apideck stores and refreshes the tokens. Secrets never touch your servers.

CustomerAikido
Connect
Call
Normalize
Automate
// 1 · CONNECT — your customer authorizes their tool, once
const session = await apideck.vault.sessionsCreate({
consumerId: "customer_42",
});
// → open session.data.session_uri in the Vault modal
 
// 2 · CALL — one unified endpoint per category
const { data: invoices } = await apideck.accounting.invoicesAll({
serviceId: "quickbooks",
consumerId: "customer_42",
});
 
// 3 · NORMALIZE — swap the connector, not your code
// → the SAME Invoice[] shape, every connector
 
// 4 · AUTOMATE — the same platform is an MCP server
// agent → execute_tool("accounting-invoices-all")
// …across 200+ connectors, on demand — no glue code
token stored · auto-refreshed
02Call
Unified API

Build against one API.

One unified endpoint per category — Accounting, HRIS, CRM and more. One request shape, one auth model, whether QuickBooks or NetSuite is behind it.

CustomerRound Treasury
Connect
Call
Normalize
Automate
// 1 · CONNECT — your customer authorizes their tool, once
const session = await apideck.vault.sessionsCreate({
consumerId: "customer_42",
});
// → open session.data.session_uri in the Vault modal
 
// 2 · CALL — one unified endpoint per category
const { data: invoices } = await apideck.accounting.invoicesAll({
serviceId: "quickbooks",
consumerId: "customer_42",
});
 
// 3 · NORMALIZE — swap the connector, not your code
// → the SAME Invoice[] shape, every connector
 
// 4 · AUTOMATE — the same platform is an MCP server
// agent → execute_tool("accounting-invoices-all")
// …across 200+ connectors, on demand — no glue code
200 · 50 invoices returned
03Normalize
One schema, every connector

Swap the connector. Your code doesn't.

Change a single serviceId and the response comes back in the exact same normalized shape — no per-vendor branching, no field remapping. The one field that changes is highlighted; nothing else does.

CustomerDerive
Connect
Call
Normalize
Automate
// 1 · CONNECT — your customer authorizes their tool, once
const session = await apideck.vault.sessionsCreate({
consumerId: "customer_42",
});
// → open session.data.session_uri in the Vault modal
 
// 2 · CALL — one unified endpoint per category
const { data: invoices } = await apideck.accounting.invoicesAll({
serviceId: "quickbooks",
consumerId: "customer_42",
});
 
// 3 · NORMALIZE — swap the connector, not your code
// → the SAME Invoice[] shape, every connector
 
// 4 · AUTOMATE — the same platform is an MCP server
// agent → execute_tool("accounting-invoices-all")
// …across 200+ connectors, on demand — no glue code
Invoice[] — identical shapequickbooks logoxero logonetsuite logoInvoice[]
04Automate
MCP server

Hand the platform to an agent.

The same unified layer is an MCP server. An AI agent discovers tools and runs execute_tool across every connector — four meta-tools keep its context window tiny.

CustomerOcta
Connect
Call
Normalize
Automate
// 1 · CONNECT — your customer authorizes their tool, once
const session = await apideck.vault.sessionsCreate({
consumerId: "customer_42",
});
// → open session.data.session_uri in the Vault modal
 
// 2 · CALL — one unified endpoint per category
const { data: invoices } = await apideck.accounting.invoicesAll({
serviceId: "quickbooks",
consumerId: "customer_42",
});
 
// 3 · NORMALIZE — swap the connector, not your code
// → the SAME Invoice[] shape, every connector
 
// 4 · AUTOMATE — the same platform is an MCP server
// agent → execute_tool("accounting-invoices-all")
// …across 200+ connectors, on demand — no glue code
agent · execute_tool ✓
Unified APIs

One schema per category. Every connector underneath.

Invoices, bills and the ledger — normalized across every ERP.

Normalized models
InvoicesBillsPaymentsLedger AccountsJournal EntriesBalance Sheet
45+connectors · one integration
quickbooks logoquickbooks
xero logoxero
netsuite logonetsuite
sage-intacct logosage intacct
freshbooks logofreshbooks
exact-online logoexact online
Interactive

The plumbing? We already built it.

Everything you'd own by building the integration layer yourself maps to a piece of Apideck that already handles it. Pick a concern to see how.

Handled by
Vault, managed OAuth

Vault stores and refreshes OAuth tokens across every connector. Your users authorize once and Apideck keeps each connection alive — you never build or babysit per-provider auth.

vault · connections
quickbooks logoQuickBooks Online token fresh
hubspot logoHubSpot token fresh
bamboohr logoBambooHRAuthorize

refreshed automatically · secrets never reach your servers

Coverage

200+ connectors, and counting. Add integrations without adding code.

quickbooks logoquickbooks
xero logoxero
netsuite logonetsuite
sage-intacct logosage intacct
freshbooks logofreshbooks
exact-online logoexact online
bamboohr logobamboohr
workday logoworkday
hibob logohibob
personio logopersonio
gusto logogusto
sage-hr logosage hr
deel logodeel
salesforce logosalesforce
hubspot logohubspot
pipedrive logopipedrive
zoho-crm logozoho crm
close logoclose
copper logocopper
microsoft-dynamics logomicrosoft dynamics
quickbooks logoquickbooks
xero logoxero
netsuite logonetsuite
sage-intacct logosage intacct
freshbooks logofreshbooks
exact-online logoexact online
bamboohr logobamboohr
workday logoworkday
hibob logohibob
personio logopersonio
gusto logogusto
sage-hr logosage hr
deel logodeel
salesforce logosalesforce
hubspot logohubspot
pipedrive logopipedrive
zoho-crm logozoho crm
close logoclose
copper logocopper
microsoft-dynamics logomicrosoft dynamics
greenhouse logogreenhouse
lever logolever
workable logoworkable
ashby logoashby
smartrecruiters logosmartrecruiters
google-drive logogoogle drive
dropbox logodropbox
box logobox
onedrive logoonedrive
sharepoint logosharepoint
shopify logoshopify
woocommerce logowoocommerce
bigcommerce logobigcommerce
squarespace logosquarespace
jira logojira
github logogithub
gitlab logogitlab
linear logolinear
asana logoasana
zendesk logozendesk
greenhouse logogreenhouse
lever logolever
workable logoworkable
ashby logoashby
smartrecruiters logosmartrecruiters
google-drive logogoogle drive
dropbox logodropbox
box logobox
onedrive logoonedrive
sharepoint logosharepoint
shopify logoshopify
woocommerce logowoocommerce
bigcommerce logobigcommerce
squarespace logosquarespace
jira logojira
github logogithub
gitlab logogitlab
linear logolinear
asana logoasana
zendesk logozendesk
Accounting · HRIS · CRM · ATS · File Storage · Ecommerce · Issue Tracking — and more.