Expensicat
API Reference

Integrations

GET
/v1/integrations/available

List all available integrations in the catalog

Authorization

bearerAuth
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/integrations/available"
{  "data": [    {      "id": "string",      "name": "string",      "slug": "string",      "description": "string",      "logo_url": "string",      "is_active": true,      "created_at": "string"    }  ]}
GET
/v1/integrations

List all integrations enabled for the current team

Authorization

bearerAuth
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/integrations"
{  "data": [    {      "id": "string",      "organization_id": "string",      "integration_id": "string",      "is_enabled": true,      "metadata": {        "property1": null,        "property2": null      },      "created_at": "string",      "updated_at": "string",      "integration": {        "id": "string",        "name": "string",        "slug": "string",        "description": "string",        "logo_url": "string",        "is_active": true      }    }  ],  "meta": {    "count": 0,    "next_cursor": "string"  }}
GET
/v1/integrations/{id}

Get a single team integration by ID

Authorization

bearerAuth
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Path Parameters

id*string

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/v1/integrations/string"
{  "data": {    "id": "string",    "organization_id": "string",    "integration_id": "string",    "is_enabled": true,    "metadata": {      "property1": null,      "property2": null    },    "created_at": "string",    "updated_at": "string",    "integration": {      "id": "string",      "name": "string",      "slug": "string",      "description": "string",      "logo_url": "string",      "is_active": true    }  }}
PATCH
/v1/integrations/{id}

Update a team integration (enable/disable or update metadata)

Authorization

bearerAuth
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X PATCH "https://example.com/v1/integrations/string" \  -H "Content-Type: application/json" \  -d '{}'
{  "data": {    "id": "string",    "organization_id": "string",    "integration_id": "string",    "is_enabled": true,    "metadata": {      "property1": null,      "property2": null    },    "created_at": "string",    "updated_at": "string",    "integration": {      "id": "string",      "name": "string",      "slug": "string",      "description": "string",      "logo_url": "string",      "is_active": true    }  }}