Knowledge center

Run billing with Floatless.

Product guides, billing concepts, operational playbooks, developer references, and security notes for teams running subscription revenue.

Pagination

Every list endpoint in the Public API uses the same offset-based pagination. There are no cursors to manage and no hidden defaults — the response tells you where you are.

Parameters

Parameter Type Range Default
limit integer 1–100 25
offset integer ≥ 0 0

Out-of-range values are rejected with 422 VALIDATION_ERROR.

curl "https://api.floatless.com/api/public/v1/invoices?limit=50&offset=100" \
  -H "Authorization: Bearer sk_live_..."

Response shape

{
  "data": [ "...resources..." ],
  "pagination": {
    "limit": 50,
    "offset": 100,
    "total": 237,
    "has_more": true
  }
}

has_more is exactly offset + limit < total. When it is false, you have the last page.

Ordering

All list endpoints sort by created_at descending — newest first. This is stable across resources (invoices, customers, products, subscriptions, webhook events), which makes "fetch what arrived since my last sync" a simple loop:

  1. Request page 1 (limit=100).
  2. Stop consuming records older than your high-water mark.
  3. Persist the newest created_at you saw as the next sync's watermark.
💡
For high-volume resources, prefer walking pages until `has_more: false` over guessing totals. `total` is a point-in-time count and may shift between pages while new records are created.

Filters available per resource

Resource Filters besides pagination
Invoices customer_id, status
Subscriptions customer_id, status
Products active
Webhook endpoints status (ACTIVE / DISABLED)
Webhook events endpoint_id, status (PENDING / SUCCESS / FAILED / RETRYING), event_type

Combine filters freely — they compose with limit/offset.

Next steps