agentlyleads docs
Quotes API

GET /api/v1/quotes

Returns the workspace's quotes, newest first, each with its line items and total. Requires the read:quotes scope (or *).

Request

GET /api/v1/quotes?status=SENT HTTP/1.1
Host: agentlyleads.com
Authorization: Bearer alk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Query parameters

ParameterDescription
statusDRAFT, SENT, ACCEPTED or DECLINED
dealIdOnly quotes on this deal
contactIdOnly quotes for this contact
companyIdOnly quotes for this company
offeringIdOnly quotes with at least one line on this product
qFree text: matches the title, or the quote number (12 or #12)
updatedSinceISO 8601 datetime. Only quotes updated at or after this moment
limitPage size, 1 to 1000 (default 100)
cursorThe nextCursor value from the previous page

Filters that match nothing return an empty list, not a 404.

Response (200)

{
  "quotes": [
    {
      "id": "cmq2quot0alk34567890",
      "number": 12,
      "title": "Acme annual proposal",
      "status": "SENT",
      "total": 77.5,
      "validUntil": "2026-12-31T00:00:00.000Z",
      "notes": null,
      "deal": { "id": "cmq2deal0alk34567890", "name": "Acme 2026" },
      "contact": { "id": "cmq2cont0alk34567890", "name": "Ann Lee" },
      "company": null,
      "lineItems": [
        { "id": "cmq2line0alk34567890", "name": "Salt blocks", "offering": { "id": "cmq2offr0alk34567890", "name": "Lick salt" }, "quantity": 3, "unitPrice": 12.5, "total": 37.5 },
        { "id": "cmq2line1alk34567890", "name": "Delivery", "offering": null, "quantity": 1, "unitPrice": 40, "total": 40 }
      ],
      "createdAt": "2026-09-01T12:00:00.000Z",
      "updatedAt": "2026-09-02T09:00:00.000Z"
    }
  ],
  "nextCursor": null
}

On this page