Download OpenAPI specification:Download
Public API endpoints for Gravy Connect
Retrieve get paginated account info for a connection with pagination, filtering, and sorting support
| connectionId required | string Connection ID |
| search | string Search term for filtering account info |
| name | string Filter by name |
string Filter by email | |
| phone | string Filter by phone |
| page | number Default: 1 Page number (1-based) |
| limit | number Default: 20 Items per page (1-100) |
| sortBy | string Enum: "createdAt" "updatedAt" "title" "type" Sort field |
| sortOrder | string Enum: "asc" "desc" Sort order |
{- "data": [
- {
- "id": "acc_info_123abc456def",
- "connectionId": "conn_789xyz123abc",
- "vendorId": "vendor_user_98765",
- "name": "John Doe",
- "email": "john.doe@example.com",
- "phone": "+1-555-123-4567",
- "metadata": {
- "accountType": "premium",
- "region": "us-east"
}, - "createdAt": "2024-01-15T10:30:00Z",
- "updatedAt": "2024-01-20T14:45:00Z"
}
], - "meta": {
- "page": 1,
- "limit": 20,
- "total": 150,
- "totalPages": 8,
- "hasNext": true,
- "hasPrev": false,
- "itemCount": 20
}, - "timestamp": "2024-01-15T10:30:00.000Z",
- "version": "v1"
}Retrieve get paginated balances for a connection with pagination, filtering, and sorting support
| connectionId required | string Connection ID |
| search | string Search term for filtering balances |
| type | string Enum: "gift_card" "points" "rewards" "cash" "credit" "store_credit" "loyalty_points" "miles" "other" Filter by balance type |
| currency | string Filter by currency |
| isActive | boolean Filter by active status |
| expiresFrom | string Filter by expiration date (from) |
| expiresTo | string Filter by expiration date (to) |
| amountMin | number Filter by minimum amount |
| amountMax | number Filter by maximum amount |
| page | number Default: 1 Page number (1-based) |
| limit | number Default: 20 Items per page (1-100) |
| sortBy | string Enum: "createdAt" "updatedAt" "title" "type" Sort field |
| sortOrder | string Enum: "asc" "desc" Sort order |
{- "data": [
- {
- "id": "bal_456def789ghi",
- "connectionId": "conn_789xyz123abc",
- "vendorId": "vendor_balance_54321",
- "type": "rewards",
- "amount": 25000,
- "currency": "points",
- "expiresAt": "2025-12-31T23:59:59Z",
- "description": "Rewards points earned from purchases",
- "isActive": true,
- "accountIdentifier": "acc_9876543210",
- "createdAt": "2024-01-10T08:15:00Z",
- "updatedAt": "2024-01-22T16:30:00Z"
}
], - "meta": {
- "page": 1,
- "limit": 20,
- "total": 150,
- "totalPages": 8,
- "hasNext": true,
- "hasPrev": false,
- "itemCount": 20
}, - "timestamp": "2024-01-15T10:30:00.000Z",
- "version": "v1"
}Retrieve get paginated billing statements for a connection with pagination, filtering, and sorting support
| connectionId required | string Connection ID |
| page | number Default: 1 Example: page=1 Page number (1-based) |
| limit | number [ 1 .. 100 ] Default: 20 Example: limit=20 Items per page (1-100) |
| sortBy | string Enum: "createdAt" "updatedAt" "title" "type" Sort field |
| sortOrder | string Enum: "asc" "desc" Sort order |
| search | string Search by external ID or vendor ID |
| status | string Enum: "open" "paid" "past_due" "adjusted" Filter by status |
| periodStart | string Filter by period start date (YYYY-MM-DD) |
| periodEnd | string Filter by period end date (YYYY-MM-DD) |
| amountDueMin | number Filter by minimum amount due |
| amountDueMax | number Filter by maximum amount due |
{- "data": [
- {
- "id": "bs_1234567890abcdef",
- "connectionId": "conn_abc123xyz789",
- "vendorId": "stmt_vendor_12345",
- "periodStart": "2024-01-01T00:00:00.000Z",
- "periodEnd": "2024-01-31T23:59:59.999Z",
- "statementDate": "2024-02-01T00:00:00.000Z",
- "dueDate": "2024-02-15T00:00:00.000Z",
- "amountDue": 125.5,
- "currency": "USD",
- "status": "open",
- "createdAt": "2024-02-01T10:00:00.000Z",
- "updatedAt": "2024-02-01T10:00:00.000Z"
}
], - "meta": {
- "page": 1,
- "limit": 20,
- "total": 150,
- "totalPages": 8,
- "hasNext": true,
- "hasPrev": false,
- "itemCount": 20
}, - "timestamp": "2024-01-15T10:30:00.000Z",
- "version": "v1"
}Retrieve get paginated generic history for a connection with pagination, filtering, and sorting support
| connectionId required | string Connection ID |
| search | string Search term for filtering history items |
| type | string Filter by type |
| startDate | string Filter by start date (ISO string) |
| endDate | string Filter by end date (ISO string) |
| page | number Default: 1 Page number (1-based) |
| limit | number Default: 20 Items per page (1-100) |
| sortBy | string Enum: "createdAt" "updatedAt" "title" "type" Sort field |
| sortOrder | string Enum: "asc" "desc" Sort order |
{- "data": [
- {
- "id": "hist_789ghi012jkl",
- "connectionId": "conn_789xyz123abc",
- "vendorId": "vendor_history_11223",
- "order": 1,
- "rawData": {
- "transaction_id": "tx_123",
- "timestamp": "2024-01-15T10:30:00Z",
- "raw_amount": "$45.67"
}, - "structuredData": {
- "transactionId": "tx_123",
- "date": "2024-01-15T10:30:00Z",
- "amount": 45.67,
- "currency": "USD"
}, - "enrichedData": {
- "merchantName": "Coffee Shop",
- "category": "Food & Dining",
- "location": {
- "city": "San Francisco",
- "state": "CA"
}
}, - "createdAt": "2024-01-15T10:35:00Z",
- "updatedAt": "2024-01-15T10:35:00Z"
}
], - "meta": {
- "page": 1,
- "limit": 20,
- "total": 150,
- "totalPages": 8,
- "hasNext": true,
- "hasPrev": false,
- "itemCount": 20
}, - "timestamp": "2024-01-15T10:30:00.000Z",
- "version": "v1"
}Retrieve get paginated loyalty for a connection with pagination, filtering, and sorting support
| connectionId required | string Connection ID |
| search | string Search term for filtering loyalty |
| loyaltyTier | string Filter by loyalty tier |
| page | number Default: 1 Page number (1-based) |
| limit | number Default: 20 Items per page (1-100) |
| sortBy | string Enum: "createdAt" "updatedAt" "title" "type" Sort field |
| sortOrder | string Enum: "asc" "desc" Sort order |
{- "data": [
- {
- "id": "loyalty_123abc456def",
- "connectionId": "conn_789xyz123abc",
- "vendorId": "vendor_user_98765",
- "loyaltyTier": "Gold",
- "metadata": {
- "program": "rewards",
- "points": 1000
}, - "createdAt": "2024-01-15T10:30:00Z",
- "updatedAt": "2024-01-20T14:45:00Z"
}
], - "meta": {
- "page": 1,
- "limit": 20,
- "total": 150,
- "totalPages": 8,
- "hasNext": true,
- "hasPrev": false,
- "itemCount": 20
}, - "timestamp": "2024-01-15T10:30:00.000Z",
- "version": "v1"
}Retrieve get paginated payment method for a connection with pagination, filtering, and sorting support
| connectionId required | string Connection ID |
| page | number Default: 1 Example: page=1 Page number (1-based) |
| limit | number [ 1 .. 100 ] Default: 20 Example: limit=20 Items per page (1-100) |
| sortBy | string Enum: "createdAt" "updatedAt" "title" "type" Sort field |
| sortOrder | string Enum: "asc" "desc" Sort order |
{- "data": [
- {
- "id": "pm_012jkl345mno",
- "connectionId": "conn_789xyz123abc",
- "vendorId": "vendor_pm_67890",
- "type": "credit_card",
- "brand": "Visa",
- "last4": "4242",
- "expirationDate": "12/2027",
- "nickname": "Personal Visa",
- "isDefault": true,
- "billingAddress": {
- "street": "123 Main St",
- "city": "New York",
- "state": "NY",
- "zipCode": "10001",
- "country": "US"
}, - "createdAt": "2024-01-05T09:00:00Z",
- "updatedAt": "2024-01-18T11:20:00Z"
}
], - "meta": {
- "page": 1,
- "limit": 20,
- "total": 150,
- "totalPages": 8,
- "hasNext": true,
- "hasPrev": false,
- "itemCount": 20
}, - "timestamp": "2024-01-15T10:30:00.000Z",
- "version": "v1"
}Retrieve get paginated reading history for a connection with pagination, filtering, and sorting support
| connectionId required | string Connection ID |
| page | number Default: 1 Example: page=1 Page number (1-based) |
| limit | number [ 1 .. 100 ] Default: 20 Example: limit=20 Items per page (1-100) |
| sortBy | string Enum: "createdAt" "updatedAt" "title" "type" Sort field |
| sortOrder | string Enum: "asc" "desc" Sort order |
| search | string Example: search=Harry Potter Search by title (case-insensitive) |
| author | string Example: author=J.K. Rowling Filter by author (case-insensitive) |
| read | boolean Example: read=true Filter by reading status |
| minProgress | number [ 0 .. 100 ] Example: minProgress=50 Filter by minimum progress percentage |
| maxProgress | number [ 0 .. 100 ] Example: maxProgress=100 Filter by maximum progress percentage |
| startDate | string Example: startDate=2024-01-01T00:00:00.000Z Filter by date range - start date (ISO string) |
| endDate | string Example: endDate=2024-12-31T23:59:59.999Z Filter by date range - end date (ISO string) |
{- "data": [
- {
- "id": "read_345mno678pqr",
- "vendorId": "vendor_book_24680",
- "title": "The Great Gatsby",
- "authors": [
- "F. Scott Fitzgerald"
], - "isbn13": "9780743273565",
- "isbn10": "0743273565",
- "asin": "B000FC0PDA",
- "progress": 75,
- "read": false,
- "description": "A classic American novel set in the Jazz Age",
- "createdAt": "2024-01-12T14:20:00.000Z",
- "updatedAt": "2024-01-20T09:15:00.000Z"
}
], - "meta": {
- "page": 1,
- "limit": 20,
- "total": 150,
- "totalPages": 8,
- "hasNext": true,
- "hasPrev": false,
- "itemCount": 20
}, - "timestamp": "2024-01-15T10:30:00.000Z",
- "version": "v1"
}Retrieve get paginated trips for a connection with pagination, filtering, and sorting support
| connectionId required | string Connection ID |
| search | string Search term for filtering trips |
| type | string Enum: "hotel" "flight" "rental_car" "train" "cruise" "package" "ride" "ground_transport" "wishlist" "other" Filter by trip type |
| bookingStatus | string Enum: "confirmed" "pending" "cancelled" "completed" "in_progress" "wishlist" "failed" "expired" "unknown" Filter by booking status |
| provider | string Filter by provider |
| locationCity | string Filter by location city |
| locationCountryCode | string Filter by location country code |
| checkInFrom | string Filter by check-in date (from) |
| checkInTo | string Filter by check-in date (to) |
| checkOutFrom | string Filter by check-out date (from) |
| checkOutTo | string Filter by check-out date (to) |
| amountMin | number Filter by minimum amount |
| amountMax | number Filter by maximum amount |
| currency | string Filter by currency |
| page | number Default: 1 Page number (1-based) |
| limit | number Default: 20 Items per page (1-100) |
| sortBy | string Enum: "createdAt" "updatedAt" "title" "type" Sort field |
| sortOrder | string Enum: "asc" "desc" Sort order |
{- "data": [
- {
- "id": "trip_678pqr901stu",
- "connectionId": "conn_789xyz123abc",
- "vendorId": "vendor_trip_13579",
- "type": "hotel",
- "bookingStatus": "confirmed",
- "name": "Grand Plaza Hotel - Downtown",
- "propertySlug": "grand-plaza-hotel-downtown",
- "provider": "expedia",
- "amount": 450,
- "amountFormatted": "$450.00",
- "currency": "USD",
- "baseAmount": 380,
- "taxesAndFees": 70,
- "checkInDate": "2024-02-15T15:00:00Z",
- "checkOutDate": "2024-02-17T11:00:00Z",
- "locationDisplayName": "Downtown San Francisco",
- "locationCity": "San Francisco",
- "locationState": "California",
- "locationCountry": "United States",
- "locationCountryCode": "US",
- "confirmationNumber": "CONF123456",
- "typeSpecificData": {
- "roomType": "Deluxe Suite",
- "bedConfiguration": "1 King Bed",
- "amenities": [
- "WiFi",
- "Pool",
- "Gym"
]
}, - "createdAt": "2024-01-25T12:00:00Z",
- "updatedAt": "2024-01-26T10:30:00Z"
}
], - "meta": {
- "page": 1,
- "limit": 20,
- "total": 150,
- "totalPages": 8,
- "hasNext": true,
- "hasPrev": false,
- "itemCount": 20
}, - "timestamp": "2024-01-15T10:30:00.000Z",
- "version": "v1"
}| x-passage-earn required | string |
| integrationId required | string The integration ID |
| products required | Array of strings Deprecated The products to be requested |
| operations required | Array of strings Deprecated The operations to be performed |
| userId required | string The client managed user ID |
required | Array of objects (PromptDto) Deprecated AI Prompts to be used for the connection. Each prompt contains a name (key) and value (instruction) that will be used to customize the AI behavior for this connection. |
| sessionArgs required | object Deprecated Additional arguments for the session |
| debug required | boolean Whether the intent token is for debug purposes |
| captureScreenshot required | boolean Whether to enable screenshot capture functionality |
| resources required | object Resources and operations to be performed. Each resource can have 'read' and/or 'write' operations with their respective arguments. Each operation can have an optional 'required' flag to indicate if the operation must succeed. |
| returnUrl required | string The URL the user will be redirected to after the connection is created. It will include the connectionId as a query parameter. |
| webhookUrl required | string Custom webhook URL for this connection. If provided, webhook notifications will be sent to this URL instead of the developer's default webhook URL. |
{- "integrationId": "audible",
- "products": [
- "history"
], - "operations": [
- "history"
], - "userId": "123",
- "prompts": [
- {
- "name": "roast",
- "value": "roast me in the style of Jeff Ross",
- "outputType": "text",
- "outputFormat": "{\n type: \"object\",\n additionalProperties: false,\n required: [\"data\"],\n properties: {\n data: {\n type: \"array\",\n items: {\n type: \"object\",\n required: [\"title\", \"author\", \"roast\"],\n properties: {\n title: { type: \"string\" },\n author: { type: \"string\" },\n roast: { type: \"string\" },\n },\n },\n },\n },\n }"
}
], - "sessionArgs": {
- "limit": 10
}, - "debug": false,
- "captureScreenshot": false,
- "resources": {
- "readingHistory": {
- "read": {
- "limit": 100,
- "required": true
}
}, - "accountBalance": {
- "read": {
- "required": false
}, - "write": {
- "primaryCode": "ABC123",
- "secondaryCode": "XYZ789",
- "required": true
}
}
}, - "returnUrl": "string",
}{- "intentToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.....",
- "connectionId": "uuid",
- "debug": false,
- "shortToken": "1234567890",
- "branding": {
- "integrationName": "Airbnb",
- "colorPrimary": "#2563EB",
- "colorBackground": "#000000",
- "colorCardBackground": "rgba(15, 16, 20, 0.85)",
- "colorText": "#ffffff",
- "colorTextSecondary": "rgba(255, 255, 255, 0.7)"
}
}| page | number Default: 1 Example: page=1 Page number (1-based) |
| limit | number [ 1 .. 100 ] Default: 20 Example: limit=20 Number of items per page |
| sortBy | string Default: "createdAt" Enum: "createdAt" "updatedAt" Sort by field |
| sortOrder | string Default: "desc" Enum: "asc" "desc" Sort order |
| status | string Example: status=connected Filter by status |
| integrationId | string Example: integrationId=spotify Filter by integration ID |
| userId | string Example: userId=1234567890 Filter by user ID |
{- "data": [
- {
- "id": "string",
- "integrationId": "string",
- "status": "pending",
- "failureReason": "string",
- "errorMessage": "string",
- "errorDetails": { },
- "connectionMetadata": { },
- "resources": [
- {
- "type": "string",
- "url": "string",
- "status": "pending",
- "operation": "read",
- "errorMessage": "string",
- "failureReason": "string",
- "startedAt": "string",
- "completedAt": "string"
}
], - "userId": "user_1234567890",
- "createdAt": "2024-01-15T10:30:00.000Z",
- "updatedAt": "2024-01-15T10:30:00.000Z"
}
], - "meta": {
- "page": 1,
- "limit": 20,
- "total": 150,
- "totalPages": 8,
- "hasNext": true,
- "hasPrev": false,
- "itemCount": 20
}, - "timestamp": "2024-01-15T10:30:00.000Z",
- "version": "v1"
}| connectionId required | string Connection ID |
{- "id": "string",
- "integrationId": "string",
- "status": "pending",
- "failureReason": "string",
- "errorMessage": "string",
- "errorDetails": { },
- "connectionMetadata": { },
- "resources": [
- {
- "type": "string",
- "url": "string",
- "status": "pending",
- "operation": "read",
- "errorMessage": "string",
- "failureReason": "string",
- "startedAt": "string",
- "completedAt": "string"
}
], - "userId": "user_1234567890",
- "createdAt": "2024-01-15T10:30:00.000Z",
- "updatedAt": "2024-01-15T10:30:00.000Z"
}[- {
- "slug": "string",
- "name": "string",
- "type": "string",
- "logoUrl": "string",
- "url": "string",
- "preAutomationSteps": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "component": "string",
- "integrationId": "string",
- "required": true
}
], - "description": "string",
- "active": true,
- "version": "string",
- "beta": true,
- "resources": [
- {
- "name": "readingHistory",
- "operations": {
- "read": {
- "description": "Read reading history",
- "arguments": {
- "type": "object",
- "properties": {
- "limit": {
- "type": "number"
}
}
}, - "response": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "title": {
- "type": "string"
}, - "authors": {
- "type": "array",
- "items": {
- "type": "string"
}
}, - "isbn13": {
- "type": "string"
}, - "isbn10": {
- "type": "string"
}, - "asin": {
- "type": "string"
}, - "progress": {
- "type": "number"
}, - "read": {
- "type": "boolean"
}, - "description": {
- "type": "string"
}, - "thumbnailUrl": {
- "type": "string"
}
}
}
}
}
}
}
]
}
]{- "slug": "string",
- "name": "string",
- "type": "string",
- "logoUrl": "string",
- "url": "string",
- "preAutomationSteps": [
- {
- "id": "string",
- "title": "string",
- "description": "string",
- "component": "string",
- "integrationId": "string",
- "required": true
}
], - "description": "string",
- "active": true,
- "version": "string",
- "beta": true,
- "resources": [
- {
- "name": "readingHistory",
- "operations": {
- "read": {
- "description": "Read reading history",
- "arguments": {
- "type": "object",
- "properties": {
- "limit": {
- "type": "number"
}
}
}, - "response": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "title": {
- "type": "string"
}, - "authors": {
- "type": "array",
- "items": {
- "type": "string"
}
}, - "isbn13": {
- "type": "string"
}, - "isbn10": {
- "type": "string"
}, - "asin": {
- "type": "string"
}, - "progress": {
- "type": "number"
}, - "read": {
- "type": "boolean"
}, - "description": {
- "type": "string"
}, - "thumbnailUrl": {
- "type": "string"
}
}
}
}
}
}
}
]
}Exchange client credentials for an access token using OAuth 2.0 client credentials flow
| grant_type required | string The grant type |
| client_id required | string The client ID |
| client_secret required | string The client secret |
| scope required | string The scope |
{- "grant_type": "client_credentials",
- "client_id": "123",
- "client_secret": "123",
- "scope": "read write"
}{- "access_token": "123",
- "token_type": "Bearer",
- "expires_in": 3600,
- "scope": "read write"
}