# GET Retrieve a quote

Returns one quote request or custom-design submission belonging to the authenticated Store. Requires `quotes:read`. The id is the submission's immutable identifier, as returned by the list operation. An id that belongs to another store, an id that never existed, and an id whose owning store the platform cannot prove all return the same 404, so a caller cannot use this operation to discover another store's data. The operation is read-only and always safe to retry.

- Source URL: https://www.signcustomiser.com/help/api/v3-get-retrieve-a-quote/
- Markdown URL: https://www.signcustomiser.com/help/api/v3-get-retrieve-a-quote.md
- Group: Quotes
- Method: GET
- Path: /api/v3/quotes/{quote_id}
- Auth: Bearer token
- Required scopes: `quotes:read`

## Path parameters

- quote_id (string, required): The submission id, from the list quotes operation. Example: 8123

## cURL example

```bash
curl https://web.signcustomiser.com/api/v3/quotes/8123 \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_TOKEN'
```

## Response examples

### 200 GET 200 example 1

```json
{
  "data": {
    "object": "quote",
    "id": 8123,
    "type": "quote",
    "submission_number": 14,
    "customiser_id": 42,
    "form_id": 7,
    "responses": [
      {
        "field_id": "3f2a9c1e-5d6b-4a7c-8e9f-0a1b2c3d4e5f",
        "label": "Email",
        "input_type": "email",
        "value": "ada@example.com"
      }
    ],
    "files": [
      {
        "field_id": "7c1d4b2a-9e8f-4c3d-b5a6-1f2e3d4c5b6a",
        "file_index": 0,
        "kind": "customer_upload",
        "original_filename": "artwork.pdf",
        "url": "https://assets.signcustomiser.com/form-files/Qp7Lm2.pdf"
      }
    ],
    "design": {
      "text": "OPEN",
      "text_align": "Centre",
      "text_orientation": "Horizontal",
      "font": "Brush Script",
      "colour": "Warm White",
      "backlight": null,
      "material": "Acrylic",
      "letter_type": "Front lit",
      "support": "Clear acrylic",
      "support_finish": "Frosted",
      "jacket": null,
      "mounting": "Wall screws",
      "mounting_colour": null,
      "size_display": "Medium / 80cm X 30cm",
      "final_dimensions": "80cm X 30cm / 31.5in X 11.8in",
      "quoted_price_amount": 29900,
      "quoted_price_display": "$299.00",
      "currency": "AUD"
    },
    "ad_click_ids": {
      "gclid": "CjwKCAjw7p6aBhAoBhAAEiwA"
    },
    "utm_params": {
      "utm_source": "google",
      "utm_medium": "cpc"
    },
    "created_at": "2026-07-19T01:00:00Z"
  },
  "links": {
    "self": "https://web.signcustomiser.com/api/v3/quotes/8123",
    "documentation": "https://www.signcustomiser.com/help/api/"
  },
  "meta": {
    "api_version": "v3",
    "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
  }
}
```

### 401 Missing API key

```json
{
  "type": "https://www.signcustomiser.com/help/api/problems/missing_api_key",
  "title": "Missing API key",
  "status": 401,
  "code": "missing_api_key",
  "detail": "Provide a store API key as a bearer token.",
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
```

### 403 Insufficient scope

```json
{
  "type": "https://www.signcustomiser.com/help/api/problems/insufficient_scope",
  "title": "Insufficient scope",
  "status": 403,
  "code": "insufficient_scope",
  "detail": "This operation requires the quotes:read scope.",
  "required_scopes": [
    "quotes:read"
  ],
  "granted_scopes": [
    "customisers:read"
  ],
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
```

### 404 Unknown quote

```json
{
  "type": "https://www.signcustomiser.com/help/api/problems/resource_not_found",
  "title": "Resource not found",
  "status": 404,
  "code": "resource_not_found",
  "detail": "The requested resource does not exist or does not belong to the authenticated store.",
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
```

### 422 Unknown query parameter

```json
{
  "type": "https://www.signcustomiser.com/help/api/problems/unknown_parameter",
  "title": "Unknown query parameter",
  "status": 422,
  "code": "unknown_parameter",
  "detail": "The request includes query parameters this endpoint does not support: include. This endpoint accepts no query parameters.",
  "errors": [
    {
      "parameter": "include",
      "code": "unknown_parameter",
      "detail": "The query parameter \"include\" is not supported by this endpoint."
    }
  ],
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
```

### 429 Rate limited

```json
{
  "type": "https://www.signcustomiser.com/help/api/problems/rate_limited",
  "title": "Too many requests",
  "status": 429,
  "code": "rate_limited",
  "detail": "You have exceeded the request limit for this API key.",
  "retry_after": 60,
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
```
