Connect Quickstart
Get up and running with Passage Connect in 5 minutes.
Prerequisites
- A Passage Connect API key
- A backend server (Node.js, Python, or any HTTP client)
Step 1: Create an API key
** Coming soon: Set up your app and generate an API key in the Passage dashboard. **
Today, reach out to the Passage team and get an API key.
Step 2: Create a link
From your backend, generate a link.
curl -X POST https://connect.getpassage.ai/v1/links \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"integrationId": "tmobile",
"operations": [
{ "resource": "mobileBillingStatement", "action": "read" }
],
"webhookUrl": "https://your-server.com/webhook"
}'Step 3: Present to user
Direct the user to the appClipUrl. They will log into their account. When finished, they will be redirected back to your application.
Step 4: Receive the result
There are two ways to get the result data.
Option A: Webhook (recommended)
If you provided a webhookUrl when creating the link, your endpoint receives a signed POST request when the automation completes:
Single operation — result contains the operation’s data directly:
{
"event": "link.complete",
"linkId": "link_abc123",
"status": "complete",
"result": {
"billing": [
{
"periodStart": "01/15/2025",
"periodEnd": "02/14/2025",
"amountDue": 85.0,
"currency": "USD"
}
]
},
"error": null,
"timestamp": 1704067200000
}Multiple operations — result wraps each operation’s output in an operations array:
{
"event": "link.complete",
"linkId": "link_abc123",
"status": "complete",
"result": {
"operations": [
{ "resource": "mobileBillingStatement", "action": "read", "data": { "billing": [...] } },
{ "resource": "paymentMethod", "action": "read", "data": { "paymentMethods": [...] } }
]
},
"error": null,
"timestamp": 1704067200000
}The shape of each operation’s data is defined by its JSON Schema — use GET /v1/providers to inspect the schema for every operation.
Verify the signature using the X-Passage-Signature header before trusting the payload. See the Webhook Verification guide.
Option B: Poll the link
Fetch the link status until it reaches complete or failed:
curl https://connect.getpassage.ai/v1/links/link_abc123 \
-H "Authorization: Bearer YOUR_API_KEY"The result field contains the same data that would be sent via webhook (same single-op vs multi-op format described above).
Next steps
- Authentication — Learn about API key auth
- Links — Understand the link lifecycle
- Webhook Verification — Verify webhook signatures
- List Providers API — Discover available operations and result schemas
- Migration Guide — Migrating from the legacy
@getpassage/react-jsSDK