This guide will get you up and running with Apideck. To get started on our platform, you need to:
- Create an account
- Enable Unified APIs and connectors
- Get your API key
- Create a consumer
- Connect integrations in Vault
You will finish by reading a page of invoices from the accounting account you connected. Evaluating Apideck? Start a free trial and use the POC checklist to compare the same workflow with an in-house integration or another provider.
Step 1: Create an account
Create your free trial account, then create an application in the Apideck dashboard. Apideck offers a 30-day free trial; see current trial and plan terms. You will also need access to a test account in the software you want to connect. Connector setup requirements still apply.
Step 2: Enable Unified APIs and connectors
Go to the Configuration page in the Apideck dashboard. For this walkthrough, enable the Accounting API. You'll see a list of the available connectors for each Unified API. Choose one accounting connector for a test company, such as QuickBooks Online or Xero. The Unified APIs and connectors you select become available to your users in Vault.
OAuth Apps
Authentication requirements depend on the connector. Some OAuth connectors provide an Apideck sandbox app for testing; others require your own OAuth app or credentials. Check the setup guide for the connector you enable before connecting an account.
Step 3: Get your API key
Go to the API Keys page in the Apideck dashboard. Copy your App ID and API key. If your API key ever gets compromised, you can regenerate it on this page.
Step 4: Create a consumer
Apideck supports creating multiple consumers per application. Vault lets your users (consumers in Apideck) easily connect and configure integrations. You can create a consumer through a Vault session.
Consumers need to have a unique ID. You can freely choose a consumer ID yourself. Most of the time, this is an ID of your internal data model that represents a user or account in your system (for example account:12345). If the consumer doesn't exist yet, Vault will upsert a consumer based on your ID.
Note ๐จ
Session creation should always happen server-side to prevent token leakage.
Replace {API_KEY}, {APP_ID}, and {CONSUMER_ID} in the request below. Choose a test consumer ID, such as account:12345, and use that same ID throughout this guide. The response contains data.session_uri for Hosted Vault and data.session_token for embedded Vault. Open the returned session URI to connect the account for this consumer.
curl --request POST \
--url 'https://unify.apideck.com/vault/sessions' \
--header 'Authorization: Bearer {API_KEY}' \
--header 'x-apideck-app-id: {APP_ID}' \
--header 'x-apideck-consumer-id: {CONSUMER_ID}' \
--header 'Content-Type: application/json' \
--data-raw '{}'Step 5: Connect integrations in Vault
Apideck Vault lets your users connect their integration accounts. It stores the credentials securely and lets you make authorized API calls on your users' behalf (consumers in Apideck).
Vault connections hold the credentials for a given connector (for example QuickBooks Online or Xero). A connection is always scoped to a consumer.
Apideck Vault
Your customer authorizes their accounts.
Acme, your customer
consumer_id: acme
QuickBooks Online
service_id: quickbooks
Xero
service_id: xero
Separate credentials for each connection
Each request identifies the consumer and the service to use.
Each customer has a consumer ID. Vault stores separate credentials for each of their connections. Your backend calls the Unified API with x-apideck-consumer-id and x-apideck-service-id to select the customer and connected service.
For this guide, use Hosted Vault with the session URI returned in step 4. The Vault dashboard also offers a demo, but a demo connection may belong to a different consumer.
Open data.session_uri from step 4. If the session has expired, create another session for the same consumer ID.
Go to the Integrations page in Hosted Vault. Search for a connector that you enabled in step 2 and click Add.
On the integration's page click Authorize, you will be redirected to the connector and asked to authorize Apideck. After you complete this flow, you will be redirected back to Hosted Vault.
Complete any required connection settings before making your first API call.
Note
Depending on the connector, you might need to complete some settings for a connection to be callable. This will be indicated in Hosted Vault with a "Needs configuration" badge. Fill in the settings and hit save.
First API call
Choose cURL, TypeScript, or Python in the first-call workspace for runnable examples and result checks.
You now have all the building blocks to make your first call. For an ERP or accounting integration, enable the Accounting API, authorize a connector in Vault, and read a page of invoices. Check that your connector supports listing invoices first.
This request reads existing data; it does not create an invoice or move money.
curl --request GET \
--url 'https://unify.apideck.com/accounting/invoices?limit=10' \
--header 'Authorization: Bearer {API_KEY}' \
--header 'x-apideck-app-id: {APP_ID}' \
--header 'x-apideck-consumer-id: {CONSUMER_ID}' \
--header 'x-apideck-service-id: {SERVICE_ID}'{APP_ID}and{API_KEY}are the values you copied in step 3.{SERVICE_ID}is the ID of the accounting connector you authorized (for examplequickbooksorxero). Find your connector in the Accounting connector catalog.{CONSUMER_ID}must be the same ID you used to create the Vault session in step 4. Keep one stable consumer ID per customer or tenant; a connection authorized for one consumer is not available to another.
Note ๐จ
API calls to Apideck APIs should always happen server-side to prevent token leakage.
Verify the result and choose your workflow
A successful response contains a data array. An empty array can be valid if the connected company has no invoices. Check the request logs to inspect the request and response; use the error reference if the request fails. Confirm that your App ID, consumer ID, and connector ID match the connection you authorized.
Next, follow the workflow for your product:
- Automate accounts payable: suppliers, bills, and bill payments.
- Sync invoices and payments: customers, invoices, and payment allocations.
- Build expense integrations: ledger mappings and approved spend.
- Power financial reporting: actuals, forecasts, and variance reporting.
- Explore all accounting use cases and demos.
Building with another API? The same authentication pattern applies. Choose a resource from the Unified API catalog.
Extend your working integration
Keep the same App ID, consumer ID, and connector from your first read. Do not create a new consumer for each tutorial. Store credentials and customer identifiers locally; they do not belong in shared documentation URLs.
| Next capability | Introduce it when | Done when |
|---|---|---|
| Build an invoice workflow | You need customers, invoices, and payment allocations | A read-back confirms the intended customer, totals, and balance |
| Read subsequent pages | The response includes a next cursor | You process every page and stop when no next cursor remains |
| Recover from a failed request | A call fails or a write outcome is uncertain | You identify the cause and check the outcome before retrying a write |
| React to changes | Your product needs ongoing updates | A verified event is persisted, acknowledged, and reconciled without duplicate processing |
| Handle connector-specific needs | The unified fields do not cover your requirement | Coverage and a test response confirm the connector behavior you rely on |
The first-call workspace keeps your chosen connector and workflow in its next-step links. A successful invoice read verifies that connection and operation, not every resource in the API.
Evaluate Apideck with a proof of concept
Put Apideck through your actual integration requirement before choosing how to build. Start with one workflow, one test company, and a small dataset whose expected result you already know. Use the same requirements and source records to compare Apideck, a direct in-house integration, and any other provider.
- Define the result. For example: import every invoice with its customer, currency, balance, and source ID. For CRM, HRIS, or Ecommerce, select the matching first-call example and use-case guide.
- Connect and read. Follow the setup above, then use API Explorer or your preferred SDK. Record hands-on setup time separately from waiting for credentials or an administrator's approval.
- Verify the workflow. Check required operations and fields against connector coverage, inspect real responses, and read every page. Compare IDs, counts, and values with the source account; a successful empty response is not proof of a complete import.
- Exercise recovery. Test a missing permission or disconnected test account, follow the error to its cause, and verify recovery. If your workflow writes data, use a disposable record, verify the result, and reconcile uncertain outcomes before retrying.
- Try a second connector. Reuse your application code and record the changes needed for authorization, fields, and provider-specific behavior. This tests the part of a unified API that a single-connector demo cannot show.
Use this scorecard for each approach. Fill it with measured results and links to sanitized evidence, including gaps and unresolved requirements.
| Compare | Evidence to record |
|---|---|
| Time to first correct result | Hands-on engineering time, setup steps, and external waiting time |
| Workflow coverage | Required operations and fields that work on each selected connector |
| Data correctness | Expected versus observed IDs, counts, amounts, dates, and pagination completion |
| Recovery effort | Failure, diagnosis, correction, and verified outcome; any manual intervention |
| Adding another connector | Code changes, new setup work, and connector-specific exceptions |
| Production fit | Expected usage and plan costs, operational ownership, and data-handling requirements |
If an agent is part of your product, include a verified MCP task: discover the right operation, complete an approved bounded read, and check the result. Keep simulated playground results separate from executed requests. Copying a prompt or connecting a server is not a completed task.
A useful POC ends with a decision: the workflow meets your acceptance criteria, needs a documented workaround, or has a blocking gap. Share your requirements with our team if you need help evaluating a connector or resolving a blocker.
Adapt onboarding for your product
You used Hosted Vault for the first connection. Once that works, embed Vault in your product or review the authorization guide for advanced connection management. These choices reuse the same consumer and connection model.
Configure optional consumer_metadata and Vault theme fields when you need customer labels and branding. They are not required for the first session. See the Vault session reference for available options.
Custom OAuth apps
Once you're ready to ship your integrations with Apideck, you should use your own OAuth apps. Apideck supports bringing your own OAuth clients for supported services by configuring them in our dashboard. This will make sure users see your brand instead of Apideck when they connect integrations.
Extras
Get notified when your users connect integrations
We offer Webhook support so you can get notified as soon as a consumer configures a connection. You can find more information about Webhooks in the Webhook API docs or configure webhooks in Apideck.
SDKs
Our SDKs are the easiest way to integrate our API into your codebase. Find out how to get started with it here.
Choose from TypeScript, Python, PHP, .NET, Java, and Go on the SDKs page.
AI & LLM Tools
Building with an AI coding agent? We offer API Skills that teach LLMs how to use the Apideck SDKs โ including methods, authentication patterns, and best practices. Install skills for your language with:
npx skills add apideck-libraries/api-skillsWe also serve plain-text documentation so AI tools get clean, parseable content. See the full Building with LLMs guide for IDE plugins, slash commands, and more.
API Tools
Use the Apideck API Explorer to send a request and inspect its response before writing code. Follow the API Explorer guide for credentials, connector selection, a first invoice read, and troubleshooting.
Tip ๐ก
From the Apideck dashboard, you can open the API Explorer with temporary credentials prefilled. Use the links in the sidebar.
We also offer integrations with Postman and Insomnia. Follow the Postman and Insomnia setup instructions to import an OpenAPI specification.
The OpenAPI specifications for all of our APIs are open source.
Review Zero Data Retention when planning data handling, including the boundaries for Vault credentials, optional logs and on-premises connectors.
Samples
Looking for inspiration? Take a look at our sample projects. All of our samples are completely open source.