Skip to main content
GET
/
api
/
lists
/
{id}
/
rows
List rows in a list
curl --request GET \
  --url https://app.puffle.ai/api/lists/{id}/rows \
  --header 'Authorization: Bearer <token>'
{
  "rows": [
    {
      "id": "r1111111-1111-1111-1111-111111111111",
      "listId": "a1111111-1111-1111-1111-111111111111",
      "linkedinUrl": "https://linkedin.com/in/jane-doe",
      "profileData": {
        "firstName": "Jane",
        "lastName": "Doe",
        "currentCompany": "Acme Capital"
      },
      "source": "sales_nav",
      "addedAt": "2026-04-20T10:05:00Z",
      "companyRowId": null,
      "companyDomain": "acme.com",
      "cells": []
    }
  ],
  "total": 42,
  "limit": 100,
  "offset": 0,
  "hasMore": false
}

Overview

Paginated rows with their full cell payload. Use limit (max 500, default 100) + offset and stop when hasMore is false. Cells are fetched in batches to stay within Supabase’s 1000-row and 16 KB header limits, so counts and cell coverage are exact even for multi-thousand-row lists.
This operation shares the URL path /api/lists/{id}/rows with other verbs. See Create a list row to add a person with dedup, or Delete list rows to bulk-remove rows by ID.

AI agent notes

Pagination. limit defaults to 100, max 500. The response includes hasMore plus the exact total count — iterate until hasMore === false.Cell coverage. Every row in the response comes with its full cell payload — there is no separate per-cell fetch. The server batches internally to work around Supabase’s 1000-row page cap.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

id
string<uuid>
required

List UUID.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$

Query Parameters

limit
integer

Page size. Capped at 500. Defaults to 100.

Required range: 1 <= x <= 500
offset
integer

Number of rows to skip. Defaults to 0.

Required range: 0 <= x <= 9007199254740991

Response

Page of rows with their cells.

rows
object[]
required
total
integer
required

Total number of rows in the list (across all pages).

Required range: 0 <= x <= 9007199254740991
limit
integer
required
Required range: 0 < x <= 9007199254740991
offset
integer
required
Required range: 0 <= x <= 9007199254740991
hasMore
boolean
required

True when offset + rows.length < total.