How do I use Quotify's API?
The Quotify REST API lets you pull quote requests and proposals out of Quotify and into your own systems — your CRM, your data warehouse, a custom dashboard, an automation tool, or anywhere else you need them.
This guide walks you through getting access, authenticating your requests, and using each available endpoint.
💡 The API is available on plans that include API access. If you don't see the API token option in your Integrations settings, you'll need to upgrade your plan first.
Getting Started
1. Generate your API token
- Open Quotify and go to Settings → Integrations
- Find the REST API section
- Click Generate token and copy the value somewhere safe — for security, you'll only see the full token once
2. Authenticate your requests
Every request must include your token in the Authorization header as a Bearer token:
Authorization: Bearer <Your API token>
3. Base URL
All endpoints live under:
https://quotify.dev/api
Endpoints
Method | Endpoint | Description |
|---|---|---|
| | List quote requests |
| | Retrieve a single quote |
| | List proposals |
| | Retrieve a single proposal |
All list endpoints are paginated. Quotes return 20 per page; proposals return 10 per page. Use the standard ?page=2 query parameter to page through results.
Quote Requests
List quote requests
curl "https://quotify.dev/api/quotes" \
-H "Authorization: Bearer <Your API token>"
Available filters:
Parameter | Type | Description |
|---|---|---|
| date | Only return quotes created after this date |
| date | Only return quotes created before this date |
| int | Page number for pagination |
Example:
curl "https://quotify.dev/api/quotes?created_after=2026-01-01&created_before=2026-04-01" \
-H "Authorization: Bearer <Your API token>"
Retrieve a single quote
curl "https://quotify.dev/api/quotes/abc123" \
-H "Authorization: Bearer <Your API token>"
Example response
{
"data": {
"id": "abc123",
"shopify_draft_order_id": null,
"shopify_customer_id": "9876543210",
"market": "US",
"language": "en",
"created_at": "2026-04-15T09:24:11+00:00",
"utm_parameters": {
"source": "google",
"medium": "cpc"
},
"fieldsets": [
{
"id": "fs7Yk",
"title": "Customer Details",
"fields": [
{ "id": "fX2qP", "name": "First Name", "type": "text", "value": "Jane" },
{ "id": "fA9bL", "name": "Email", "type": "email", "value": "jane@example.com" }
]
}
],
"products": [
{
"id": "pK4vR",
"shopify_product_id": "123456789",
"title": "Custom Office Desk",
"variants": [
{
"id": "vN8mT",
"shopify_product_variant_id": "987654321",
"variant_title": "Oak / Large",
"variant_sku": "DESK-OAK-L",
"variant_quantity": 2,
"price": 49900,
"properties": null
}
]
}
],
"notes": null,
"links": {
"self": "https://quotify.dev/api/quotes/abc123"
}
}
}
Proposals
List proposals
curl "https://quotify.dev/api/proposals" \
-H "Authorization: Bearer <Your API token>"
Available filters:
Parameter | Type | Description |
|---|---|---|
| date | Only return proposals created after this date |
| date | Only return proposals created before this date |
| string | Filter by status: |
| string | Return only proposals belonging to a specific quote (uses the quote's ID) |
| int | Page number for pagination |
Example — pull every accepted proposal from Q1:
curl "https://quotify.dev/api/proposals?status=accepted&created_after=2026-01-01&created_before=2026-04-01" \
-H "Authorization: Bearer <Your API token>"
Retrieve a single proposal
curl "https://quotify.dev/api/proposals/xyz789" \
-H "Authorization: Bearer <Your API token>"
Example response
{
"data": {
"id": "xyz789",
"number": "PROP-0042",
"status": "accepted",
"title": "Custom Office Furniture",
"currency": "USD",
"locale": "en_US",
"language": "en",
"recipient_name": "Jane Smith",
"recipient_email": "jane@example.com",
"display_name": "Jane Smith",
"shopify_customer_id": "9876543210",
"shopify_draft_order_id": "1122334455",
"customer_data": {
"company": "Acme Inc.",
"phone": "+1-555-0100"
},
"notes": "Delivery scheduled for May 1st.",
"secret": "a1b2c3d4e5",
"expires_at": "2026-05-01T00:00:00+00:00",
"sent_at": "2026-04-10T14:00:00+00:00",
"accepted_at": "2026-04-12T10:30:00+00:00",
"declined_at": null,
"created_at": "2026-04-09T09:00:00+00:00",
"updated_at": "2026-04-12T10:30:00+00:00",
"quote": { "id": "abc123" },
"totals": {
"discount": { "amount": 5000, "currency": "USD", "formatted": "$50.00" },
"shipping": { "amount": 1500, "currency": "USD", "formatted": "$15.00" },
"total": { "amount": 99800, "currency": "USD", "formatted": "$998.00" }
},
"lines": [
{
"name": "Custom Office Desk — Oak / Large",
"sku": "DESK-OAK-L",
"image_url": "https://cdn.shopify.com/.../desk-oak-large.jpg",
"shopify_product_id": "123456789",
"shopify_product_variant_id": "987654321",
"quantity": 2,
"taxable": true,
"requires_shipping": true,
"price": { "amount": 49900, "currency": "USD", "formatted": "$499.00" },
"total": { "amount": 99800, "currency": "USD", "formatted": "$998.00" },
"discount": null,
"properties": null
}
],
"links": {
"self": "https://quotify.dev/api/proposals/xyz789"
}
}
}
💰 About monetary values: All prices in proposal responses are objects containingamount(in the smallest currency unit, e.g. cents),currency(ISO 4217 code), and a localizedformattedstring ready to display.
Pagination
List endpoints return a paginated envelope:
{
"data": [ ... ],
"links": {
"first": "https://quotify.dev/api/proposals?page=1",
"last": "https://quotify.dev/api/proposals?page=5",
"prev": null,
"next": "https://quotify.dev/api/proposals?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 5,
"per_page": 10,
"to": 10,
"total": 47
}
}
Use the next link to walk through every page until it's null.
Error Responses
Status | Meaning |
|---|---|
| Your plan doesn't include API access |
| The quote or proposal ID could not be found |
| One of your filter parameters is invalid |
Common Use Cases
- 📊 Reporting & analytics — Pull every quote/proposal into your data warehouse on a nightly schedule
- 🔄 CRM sync — Push accepted proposals into HubSpot, Pipedrive, or Salesforce as deals
- 🤖 Automation — Use Zapier, Make, or n8n to trigger workflows when new quotes come in
- 📈 Custom dashboards — Build internal tools that surface the metrics that matter most to your business
Updated on: 23/04/2026
Thank you!