Skip to main content
GET
/
v1
/
credits
/
transactions
Transactions
curl --request GET \
  --url https://api.orthogonal.com/v1/credits/transactions \
  --header 'Authorization: Bearer <token>'
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch('https://api.orthogonal.com/v1/credits/transactions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
import requests

url = "https://api.orthogonal.com/v1/credits/transactions"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.text)
Returns your credit transaction history, including purchases, API call charges, and refunds.

Authentication

Requires a valid API key via Authorization: Bearer YOUR_API_KEY.

Query Parameters

limit
number
default:"50"
Maximum number of transactions to return.
offset
number
default:"0"
Offset for pagination.

Response

{
  "transactions": [
    {
      "id": "tx_abc123",
      "type": "api_call",
      "amountCents": -3000,
      "description": "API call: apollo /v1/people/match",
      "timestamp": "2026-02-27T10:30:00Z",
      "metadata": {
        "api": "apollo",
        "path": "/v1/people/match"
      }
    },
    {
      "id": "tx_def456",
      "type": "purchase",
      "amountCents": 1000000,
      "description": "Credit purchase: 10,000 credits",
      "timestamp": "2026-02-25T14:00:00Z"
    }
  ],
  "pagination": {
    "limit": 50,
    "offset": 0,
    "count": 2
  }
}

Response Fields

FieldTypeDescription
transactionsarrayList of transactions
transactions[].idstringTransaction ID
transactions[].typestringTransaction type (api_call, purchase, refund, etc.)
transactions[].amountCentsnumberAmount (negative for charges, positive for credits)
transactions[].descriptionstringHuman-readable description
transactions[].timestampstringISO 8601 timestamp
transactions[].metadataobjectAdditional context (API slug, path, etc.)

Example

curl 'https://api.orthogonal.com/v1/credits/transactions?limit=20' \
  -H 'Authorization: Bearer YOUR_API_KEY'
const response = await fetch('https://api.orthogonal.com/v1/credits/transactions?limit=20', {
  headers: {
    'Authorization': `Bearer ${process.env.ORTHOGONAL_API_KEY}`
  }
});

const { transactions } = await response.json();

// Separate charges and purchases
const charges = transactions.filter(t => t.amountCents < 0);
const purchases = transactions.filter(t => t.amountCents > 0);
console.log(`${charges.length} charges, ${purchases.length} purchases`);
import requests
import os

response = requests.get(
    'https://api.orthogonal.com/v1/credits/transactions',
    headers={'Authorization': f'Bearer {os.environ["ORTHOGONAL_API_KEY"]}'},
    params={'limit': 20}
)

transactions = response.json()['transactions']
for tx in transactions:
    amount = tx['amountCents'] / 100000
    print(f"{tx['type']:12} ${amount:+.4f}  {tx['description']}")