Expensicat
API Reference

Customers

GET
/v1/customers

List customers with search and pagination

Authorization

bearerAuth
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Query Parameters

cursor?string

Pagination cursor

limit?integer

Number of items per page (1-100)

q?string

Search by name

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/customers"
{
  "data": [
    {
      "id": "string",
      "organization_id": "string",
      "name": "string",
      "email": "string",
      "phone": "string",
      "website": "string",
      "contact_person": "string",
      "address_line1": "string",
      "address_line2": "string",
      "country": "string",
      "city": "string",
      "state": "string",
      "postal_code": "string",
      "tax_id": "string",
      "notes": "string",
      "created_at": "string",
      "updated_at": "string",
      "country_code": "string"
    }
  ],
  "meta": {
    "count": 0,
    "next_cursor": "string"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
POST
/v1/customers

Create a new customer

Authorization

bearerAuth
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/customers" \  -H "Content-Type: application/json" \  -d '{    "name": "string"  }'
{
  "data": {
    "id": "string",
    "organization_id": "string",
    "name": "string",
    "email": "string",
    "phone": "string",
    "website": "string",
    "contact_person": "string",
    "address_line1": "string",
    "address_line2": "string",
    "country": "string",
    "city": "string",
    "state": "string",
    "postal_code": "string",
    "tax_id": "string",
    "notes": "string",
    "created_at": "string",
    "updated_at": "string",
    "country_code": "string"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
GET
/v1/customers/{id}

Get a single customer 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/customers/string"
{
  "data": {
    "id": "string",
    "organization_id": "string",
    "name": "string",
    "email": "string",
    "phone": "string",
    "website": "string",
    "contact_person": "string",
    "address_line1": "string",
    "address_line2": "string",
    "country": "string",
    "city": "string",
    "state": "string",
    "postal_code": "string",
    "tax_id": "string",
    "notes": "string",
    "created_at": "string",
    "updated_at": "string",
    "country_code": "string"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
PATCH
/v1/customers/{id}

Update customer fields

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/customers/string" \  -H "Content-Type: application/json" \  -d '{}'
{
  "data": {
    "id": "string",
    "organization_id": "string",
    "name": "string",
    "email": "string",
    "phone": "string",
    "website": "string",
    "contact_person": "string",
    "address_line1": "string",
    "address_line2": "string",
    "country": "string",
    "city": "string",
    "state": "string",
    "postal_code": "string",
    "tax_id": "string",
    "notes": "string",
    "created_at": "string",
    "updated_at": "string",
    "country_code": "string"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}