Catalog
The Catalog API provides information about all available integration types, their capabilities, required credentials, and configuration options.
List Integration Types
Retrieve all available integration types.
GET /api/v1/catalogExample Request
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://app.vendodata.com/api/v1/catalogExample Response
{
"data": [
{
"appType": "shopify",
"displayName": "Shopify",
"category": "platforms",
"description": "E-commerce platform for online stores and retail point-of-sale systems.",
"logoUrl": "/images/icons/shopify.jpeg",
"supportedRoles": ["source"],
"lifecycle": "live",
"selfServe": true,
"provider": "native"
},
{
"appType": "mixpanel",
"displayName": "Mixpanel",
"category": "analytics",
"description": "One-click Mixpanel setup for Shopify with no-code destination activation, full client/server event routing, and historical backfill.",
"logoUrl": "/images/mixpanel.svg",
"supportedRoles": ["source", "destination"],
"lifecycle": "live",
"selfServe": true,
"provider": "native"
},
{
"appType": "google_ads",
"displayName": "Google Ads",
"category": "advertising",
"description": "Advertising platform for Google search, Youtube and Display Network.",
"logoUrl": "/images/icons/google.svg",
"supportedRoles": ["source", "destination"],
"lifecycle": "live",
"selfServe": true,
"provider": "native"
},
{
"appType": "stripe",
"displayName": "Stripe",
"category": "payment",
"description": "Complete payment and subscription management platform that powers online businesses.",
"logoUrl": "/images/icons/stripe.jpeg",
"supportedRoles": ["source"],
"lifecycle": "live",
"selfServe": true,
"provider": "native"
}
]
}Get Integration Type Details
Retrieve detailed information about a specific integration type, including credential requirements and configuration schema.
GET /api/v1/catalog/{appType}Path Parameters
| Parameter | Type | Description |
|---|---|---|
appType | string | The integration type identifier (e.g., shopify, stripe) |
Example Request
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://app.vendodata.com/api/v1/catalog/stripeExample Response
{
"data": {
"appType": "stripe",
"displayName": "Stripe",
"category": "payment",
"description": "Complete payment and subscription management platform that powers online businesses with flexible payment processing, subscription billing, and financial operations.",
"logoUrl": "/images/icons/stripe.jpeg",
"supportedRoles": ["source"],
"lifecycle": "live",
"selfServe": true,
"provider": "native",
"authType": "api_key",
"credentialFields": [
{
"name": "api_key",
"label": "API Key",
"type": "password",
"description": "Your Stripe secret API key (starts with sk_live_ or sk_test_)"
}
],
"importTasks": [
{
"id": "charges",
"label": "Charges",
"description": "Payment transactions"
},
{
"id": "customers",
"label": "Customers",
"description": "Customer profiles and metadata"
},
{
"id": "subscriptions",
"label": "Subscriptions",
"description": "Recurring billing subscriptions"
},
{
"id": "invoices",
"label": "Invoices",
"description": "Invoice records"
}
]
}
}Response Fields
Integration Type Object
| Field | Type | Description |
|---|---|---|
appType | string | Unique identifier for this integration |
displayName | string | Human-readable name |
category | string | Category: platforms, analytics, advertising, payment, crm, messaging |
description | string | Description of the integration |
logoUrl | string | URL to the integration’s logo |
supportedRoles | array | Roles: source, destination |
lifecycle | string | Status: live, comingsoon, custom |
selfServe | boolean | Whether users can set up without assistance |
provider | string | Provider: native, airbyte, singer |
Credential Fields (Detail View)
| Field | Type | Description |
|---|---|---|
name | string | Field identifier |
label | string | Display label |
type | string | Input type: text, password, select |
description | string | Help text for the field |
Categories
| Category | Description | Examples |
|---|---|---|
platforms | E-commerce and website platforms | Shopify, WooCommerce, Magento |
analytics | Analytics and tracking tools | Mixpanel, Segment, GA4 |
advertising | Ad platforms | Google Ads, Meta Ads, TikTok |
payment | Payment processors | Stripe, PayPal |
crm | Customer relationship management | HubSpot, Salesforce |
messaging | Email and notification platforms | Customer.io, OneSignal |
data | Data warehouses and storage | BigQuery, S3, Redshift |
Lifecycle Statuses
| Status | Description |
|---|---|
live | Fully supported and available for self-service setup |
comingsoon | Coming soon, not yet available |
custom | Requires custom setup or enterprise plan |
Authentication Types
| Auth Type | Description |
|---|---|
api_key | Simple API key authentication |
oauth2 | OAuth 2.0 flow (requires web UI) |
basic | Username/password |
service_account | Service account JSON file |
Filtering by Category
To filter integrations by category, use the catalog list and filter client-side:
const response = await fetch('https://app.vendodata.com/api/v1/catalog', {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
const { data } = await response.json();
// Filter for advertising platforms
const adPlatforms = data.filter(app => app.category === 'advertising');
// Filter for live, self-serve integrations
const selfServe = data.filter(app =>
app.lifecycle === 'live' && app.selfServe === true
);
// Filter for destinations only
const destinations = data.filter(app =>
app.supportedRoles.includes('destination')
);Using Catalog Data
The catalog is useful for:
- Building dynamic UIs — Show available integrations based on capabilities
- Validating app types — Check if an
appTypeis valid before creating apps - Generating forms — Use
credentialFieldsto build credential input forms - Filtering options — Show only source or destination integrations as needed
Last updated on