← Back to API Reference
/quotes
Tag: quotes
getAccount-scoped quotes for uniform customization requests from the builder
Parameters
| Name | In | Type | Format | Required | Description |
|---|---|---|---|---|---|
id | query | string | — | — | — |
account_id | query | string | — | — | The account (personal or team) that owns this quote |
quote_number | query | string | — | — | Human-readable reference number (e.g., QT-2026-00001) |
status | query | string | — | — | Workflow state: draft, submitted, quoted, approved, rejected, expired, ordered, cancelled |
product_id | query | string | — | — | FK to products — the product being customized |
design_id | query | string | — | — | FK to designs — the selected design template (nullable for draft state) |
sport | query | string | — | — | Sport category from builder route param (e.g., baseball, basketball) |
customization | query | string | — | — | Full BuilderData snapshot as JSONB — source of truth for colors, text, graphics, roster, number styling |
colors | query | string | — | — | Denormalized color selections {primary, secondary, accent, accent2, accent3} for quick display |
roster_count | query | string | — | — | Denormalized total number of players/units for sorting and pricing |
size_breakdown | query | string | — | — | Aggregated quantity per size, e.g., {"S": 3, "M": 5, "L": 4, "XL": 2} |
preview_front_url | query | string | — | — | S3 URL to rendered 2D front preview image |
preview_back_url | query | string | — | — | S3 URL to rendered 2D back preview image |
customer_notes | query | string | — | — | Free-text notes from the customer — special requests, delivery instructions |
internal_notes | query | string | — | — | Admin-only notes — never exposed to the customer |
unit_price | query | string | — | — | Quoted price per unit, filled when status moves to quoted |
total_price | query | string | — | — | Total quote price, filled when status moves to quoted |
currency | query | string | — | — | ISO 4217 currency code (default USD) |
submitted_at | query | string | — | — | Timestamp when the customer submitted the quote for review |
quoted_at | query | string | — | — | Timestamp when an admin assigned pricing |
quoted_by | query | string | — | — | FK to auth.users — which admin/sales user provided the pricing |
approved_at | query | string | — | — | Timestamp when the customer approved the quoted price |
expires_at | query | string | — | — | Quote expiration date — after this, status should transition to expired |
source | query | string | — | — | How the quote originated: builder, csv_import, duplicate, admin_created |
created_by | query | string | — | — | — |
created_at | query | string | — | — | — |
updated_at | query | string | — | — | — |
deleted_at | query | string | — | — | Soft delete timestamp |
fulfillment_status | query | string | — | — | Order fulfillment state: reviewing, preparing, shipping, delivered. Only set when status = ordered. |
estimated_delivery_at | query | string | — | — | Estimated delivery/arrival date for the order |
contact_name | query | string | — | — | Customer contact name for this quote |
contact_email | query | string | — | — | Customer contact email for this quote |
contact_phone | query | string | — | — | Customer contact phone number for this quote |
shipping_address | query | string | — | — | Shipping address as JSONB: { street, city, state, zip, country } |
company | query | string | — | — | Customer company name for this quote |
event_date | query | string | — | — | Event date — important for sports season deadlines |
rush_order | query | string | — | — | Whether this is a rush/priority order |
delivery_method | query | string | — | — | Delivery preference: standard, express, or pickup |
billing_address | query | string | — | — | Billing address as JSONB: { street, city, state, zip, country } |
canva_2d | query | string | — | — | — |
techpack_file | query | string | — | — | — |
avatar_preview | query | string | — | — | S3 URL of the AI-generated product fit (mannequin/avatar) image. |
select | query | string | — | — | Filtering Columns |
order | query | string | — | — | Ordering |
Range | header | string | — | — | Limiting and Pagination |
Range-Unit | header | string | — | — | Limiting and Pagination |
offset | query | string | — | — | Limiting and Pagination |
limit | query | string | — | — | Limiting and Pagination |
Prefer | header | string | — | — | Preference |
Example
bash
curl "https://szkofkgbqogzlbqtcrke.supabase.co/rest/v1/quotes?select=*&limit=10" \
-H "apikey: YOUR_API_KEY" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"Responses
200OK
206Partial Content
postAccount-scoped quotes for uniform customization requests from the builder
Parameters
| Name | In | Type | Format | Required | Description |
|---|---|---|---|---|---|
quotes | body | object | — | — | quotes |
select | query | string | — | — | Filtering Columns |
Prefer | header | string | — | — | Preference |
Example
bash
curl -X POST "https://szkofkgbqogzlbqtcrke.supabase.co/rest/v1/quotes" \
-H "apikey: YOUR_API_KEY" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-H "Prefer: return=representation" \
-d '{
"account_id": "00000000-0000-0000-0000-000000000000",
"quote_number": "example",
"status": "example",
"product_id": "00000000-0000-0000-0000-000000000000",
"sport": "example"
}'Responses
201Created
patchAccount-scoped quotes for uniform customization requests from the builder
Parameters
| Name | In | Type | Format | Required | Description |
|---|---|---|---|---|---|
id | query | string | — | — | — |
account_id | query | string | — | — | The account (personal or team) that owns this quote |
quote_number | query | string | — | — | Human-readable reference number (e.g., QT-2026-00001) |
status | query | string | — | — | Workflow state: draft, submitted, quoted, approved, rejected, expired, ordered, cancelled |
product_id | query | string | — | — | FK to products — the product being customized |
design_id | query | string | — | — | FK to designs — the selected design template (nullable for draft state) |
sport | query | string | — | — | Sport category from builder route param (e.g., baseball, basketball) |
customization | query | string | — | — | Full BuilderData snapshot as JSONB — source of truth for colors, text, graphics, roster, number styling |
colors | query | string | — | — | Denormalized color selections {primary, secondary, accent, accent2, accent3} for quick display |
roster_count | query | string | — | — | Denormalized total number of players/units for sorting and pricing |
size_breakdown | query | string | — | — | Aggregated quantity per size, e.g., {"S": 3, "M": 5, "L": 4, "XL": 2} |
preview_front_url | query | string | — | — | S3 URL to rendered 2D front preview image |
preview_back_url | query | string | — | — | S3 URL to rendered 2D back preview image |
customer_notes | query | string | — | — | Free-text notes from the customer — special requests, delivery instructions |
internal_notes | query | string | — | — | Admin-only notes — never exposed to the customer |
unit_price | query | string | — | — | Quoted price per unit, filled when status moves to quoted |
total_price | query | string | — | — | Total quote price, filled when status moves to quoted |
currency | query | string | — | — | ISO 4217 currency code (default USD) |
submitted_at | query | string | — | — | Timestamp when the customer submitted the quote for review |
quoted_at | query | string | — | — | Timestamp when an admin assigned pricing |
quoted_by | query | string | — | — | FK to auth.users — which admin/sales user provided the pricing |
approved_at | query | string | — | — | Timestamp when the customer approved the quoted price |
expires_at | query | string | — | — | Quote expiration date — after this, status should transition to expired |
source | query | string | — | — | How the quote originated: builder, csv_import, duplicate, admin_created |
created_by | query | string | — | — | — |
created_at | query | string | — | — | — |
updated_at | query | string | — | — | — |
deleted_at | query | string | — | — | Soft delete timestamp |
fulfillment_status | query | string | — | — | Order fulfillment state: reviewing, preparing, shipping, delivered. Only set when status = ordered. |
estimated_delivery_at | query | string | — | — | Estimated delivery/arrival date for the order |
contact_name | query | string | — | — | Customer contact name for this quote |
contact_email | query | string | — | — | Customer contact email for this quote |
contact_phone | query | string | — | — | Customer contact phone number for this quote |
shipping_address | query | string | — | — | Shipping address as JSONB: { street, city, state, zip, country } |
company | query | string | — | — | Customer company name for this quote |
event_date | query | string | — | — | Event date — important for sports season deadlines |
rush_order | query | string | — | — | Whether this is a rush/priority order |
delivery_method | query | string | — | — | Delivery preference: standard, express, or pickup |
billing_address | query | string | — | — | Billing address as JSONB: { street, city, state, zip, country } |
canva_2d | query | string | — | — | — |
techpack_file | query | string | — | — | — |
avatar_preview | query | string | — | — | S3 URL of the AI-generated product fit (mannequin/avatar) image. |
quotes | body | object | — | — | quotes |
Prefer | header | string | — | — | Preference |
Example
bash
curl -X PATCH "https://szkofkgbqogzlbqtcrke.supabase.co/rest/v1/quotes?id=eq.YOUR_ID" \
-H "apikey: YOUR_API_KEY" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-H "Prefer: return=representation" \
-d '{"account_id": "00000000-0000-0000-0000-000000000000"}'Responses
204No Content
deleteAccount-scoped quotes for uniform customization requests from the builder
Parameters
| Name | In | Type | Format | Required | Description |
|---|---|---|---|---|---|
id | query | string | — | — | — |
account_id | query | string | — | — | The account (personal or team) that owns this quote |
quote_number | query | string | — | — | Human-readable reference number (e.g., QT-2026-00001) |
status | query | string | — | — | Workflow state: draft, submitted, quoted, approved, rejected, expired, ordered, cancelled |
product_id | query | string | — | — | FK to products — the product being customized |
design_id | query | string | — | — | FK to designs — the selected design template (nullable for draft state) |
sport | query | string | — | — | Sport category from builder route param (e.g., baseball, basketball) |
customization | query | string | — | — | Full BuilderData snapshot as JSONB — source of truth for colors, text, graphics, roster, number styling |
colors | query | string | — | — | Denormalized color selections {primary, secondary, accent, accent2, accent3} for quick display |
roster_count | query | string | — | — | Denormalized total number of players/units for sorting and pricing |
size_breakdown | query | string | — | — | Aggregated quantity per size, e.g., {"S": 3, "M": 5, "L": 4, "XL": 2} |
preview_front_url | query | string | — | — | S3 URL to rendered 2D front preview image |
preview_back_url | query | string | — | — | S3 URL to rendered 2D back preview image |
customer_notes | query | string | — | — | Free-text notes from the customer — special requests, delivery instructions |
internal_notes | query | string | — | — | Admin-only notes — never exposed to the customer |
unit_price | query | string | — | — | Quoted price per unit, filled when status moves to quoted |
total_price | query | string | — | — | Total quote price, filled when status moves to quoted |
currency | query | string | — | — | ISO 4217 currency code (default USD) |
submitted_at | query | string | — | — | Timestamp when the customer submitted the quote for review |
quoted_at | query | string | — | — | Timestamp when an admin assigned pricing |
quoted_by | query | string | — | — | FK to auth.users — which admin/sales user provided the pricing |
approved_at | query | string | — | — | Timestamp when the customer approved the quoted price |
expires_at | query | string | — | — | Quote expiration date — after this, status should transition to expired |
source | query | string | — | — | How the quote originated: builder, csv_import, duplicate, admin_created |
created_by | query | string | — | — | — |
created_at | query | string | — | — | — |
updated_at | query | string | — | — | — |
deleted_at | query | string | — | — | Soft delete timestamp |
fulfillment_status | query | string | — | — | Order fulfillment state: reviewing, preparing, shipping, delivered. Only set when status = ordered. |
estimated_delivery_at | query | string | — | — | Estimated delivery/arrival date for the order |
contact_name | query | string | — | — | Customer contact name for this quote |
contact_email | query | string | — | — | Customer contact email for this quote |
contact_phone | query | string | — | — | Customer contact phone number for this quote |
shipping_address | query | string | — | — | Shipping address as JSONB: { street, city, state, zip, country } |
company | query | string | — | — | Customer company name for this quote |
event_date | query | string | — | — | Event date — important for sports season deadlines |
rush_order | query | string | — | — | Whether this is a rush/priority order |
delivery_method | query | string | — | — | Delivery preference: standard, express, or pickup |
billing_address | query | string | — | — | Billing address as JSONB: { street, city, state, zip, country } |
canva_2d | query | string | — | — | — |
techpack_file | query | string | — | — | — |
avatar_preview | query | string | — | — | S3 URL of the AI-generated product fit (mannequin/avatar) image. |
Prefer | header | string | — | — | Preference |
Example
bash
curl -X DELETE "https://szkofkgbqogzlbqtcrke.supabase.co/rest/v1/quotes?id=eq.YOUR_ID" \
-H "apikey: YOUR_API_KEY" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"Responses
204No Content
Schema
Account-scoped quotes for uniform customization requests from the builder
| Column | Type | Format | Nullable | Default | Notes |
|---|---|---|---|---|---|
idPK | string | uuid | — | extensions.uuid_generate_v4() | This is a Primary Key. |
account_id | string | uuid | — | — | FK → accounts.id |
quote_number | string | text | — | — | Human-readable reference number (e.g., QT-2026-00001) |
status | string | text | — | draft | Workflow state: draft, submitted, quoted, approved, rejected, expired, ordered, cancelled |
product_id | string | uuid | — | — | FK → products.id |
design_id | string | uuid | ✓ | — | FK → designs.id |
sport | string | text | — | — | Sport category from builder route param (e.g., baseball, basketball) |
customization | object | jsonb | — | — | Full BuilderData snapshot as JSONB — source of truth for colors, text, graphics, roster, number styling |
colors | object | jsonb | ✓ | — | Denormalized color selections {primary, secondary, accent, accent2, accent3} for quick display |
roster_count | integer | integer | ✓ | — | Denormalized total number of players/units for sorting and pricing |
size_breakdown | object | jsonb | ✓ | — | Aggregated quantity per size, e.g., {"S": 3, "M": 5, "L": 4, "XL": 2} |
preview_front_url | string | text | ✓ | — | S3 URL to rendered 2D front preview image |
preview_back_url | string | text | ✓ | — | S3 URL to rendered 2D back preview image |
customer_notes | string | text | ✓ | — | Free-text notes from the customer — special requests, delivery instructions |
internal_notes | string | text | ✓ | — | Admin-only notes — never exposed to the customer |
unit_price | number | numeric | ✓ | — | Quoted price per unit, filled when status moves to quoted |
total_price | number | numeric | ✓ | — | Total quote price, filled when status moves to quoted |
currency | string | character varying | — | USD | ISO 4217 currency code (default USD) |
submitted_at | string | timestamp with time zone | ✓ | — | Timestamp when the customer submitted the quote for review |
quoted_at | string | timestamp with time zone | ✓ | — | Timestamp when an admin assigned pricing |
quoted_by | string | uuid | ✓ | — | FK to auth.users — which admin/sales user provided the pricing |
approved_at | string | timestamp with time zone | ✓ | — | Timestamp when the customer approved the quoted price |
expires_at | string | timestamp with time zone | ✓ | — | Quote expiration date — after this, status should transition to expired |
source | string | text | — | builder | How the quote originated: builder, csv_import, duplicate, admin_created |
created_by | string | uuid | ✓ | — | — |
created_at | string | timestamp with time zone | ✓ | now() | — |
updated_at | string | timestamp with time zone | ✓ | now() | — |
deleted_at | string | timestamp with time zone | ✓ | — | Soft delete timestamp |
fulfillment_status | string | text | ✓ | — | Order fulfillment state: reviewing, preparing, shipping, delivered. Only set when status = ordered. |
estimated_delivery_at | string | timestamp with time zone | ✓ | — | Estimated delivery/arrival date for the order |
contact_name | string | text | ✓ | — | Customer contact name for this quote |
contact_email | string | text | ✓ | — | Customer contact email for this quote |
contact_phone | string | text | ✓ | — | Customer contact phone number for this quote |
shipping_address | object | jsonb | ✓ | — | Shipping address as JSONB: { street, city, state, zip, country } |
company | string | text | ✓ | — | Customer company name for this quote |
event_date | string | date | ✓ | — | Event date — important for sports season deadlines |
rush_order | boolean | boolean | ✓ | Whether this is a rush/priority order | |
delivery_method | string | text | ✓ | — | Delivery preference: standard, express, or pickup |
billing_address | object | jsonb | ✓ | — | Billing address as JSONB: { street, city, state, zip, country } |
canva_2d | string | text | ✓ | — | — |
techpack_file | string | text | ✓ | — | — |
avatar_preview | string | text | ✓ | — | S3 URL of the AI-generated product fit (mannequin/avatar) image. |