Cobalt Docs
Api referenceTransactions

List transactions

Returns transactions across all of the user's accounts, newest first. Use `nextCursor` to page. **Note:** `amount` is signed — positive = money in (credit/refund/income), negative = money out (debit/spending).

GET
/transactions

Authorization

bearerAuth
AuthorizationBearer <token>

Cobalt API key (prefix ck_live_). Issue from dashboard → Settings → API keys.

In: header

Query Parameters

accountId?|array<string>

Restrict to one or more account ids. Repeat the param (?accountId=a&accountId=b) for multiple.

categoryGroup?|array<string>

Restrict to one or more category group systemKeys. Repeat the param (?categoryGroup=food_and_drink&categoryGroup=travel) for multiple.

cursor?string

Opaque cursor returned by the previous page. Omit for first page.

endDate?string
limit?integer
startDate?string

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/transactions"
{
  "hasMore": true,
  "items": [
    {
      "accountId": "string",
      "amount": 0,
      "category": "string",
      "date": "string",
      "id": "string",
      "location": {
        "address": "string",
        "city": "string",
        "country": "string",
        "lat": 0,
        "lon": 0,
        "postal_code": "string",
        "region": "string",
        "store_number": "string"
      },
      "merchant": "string",
      "name": "string",
      "notes": "**Reimbursable** — paid for team lunch, expense via Expensify",
      "pending": true,
      "tagIds": [
        "string"
      ]
    }
  ],
  "nextCursor": "string"
}
{
  "code": "string",
  "error": "string"
}
{
  "error": {
    "issues": [
      {
        "code": "string",
        "message": "string",
        "path": [
          "string"
        ]
      }
    ],
    "name": "string"
  },
  "success": true
}