> ## Documentation Index
> Fetch the complete documentation index at: https://firespark.cloud/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get store

> Retrieve a single store by its external identifier.

Returns the full configuration for one store. Use this endpoint after the customer selects a location to load fulfillment options, channel availability, and payment methods for checkout.

<Note>
  Requires a Fire spark access token obtained through [token
  exchange](/docs/storefront-api/oauth/exchange/post).
</Note>

## Path parameters

| Parameter | Required | Description                                                                  |
| --------- | -------- | ---------------------------------------------------------------------------- |
| `id`      | Yes      | External store identifier. Alphanumeric, `_`, and `-` only. 1–64 characters. |

## Request

```bash theme={null}
curl "https://firespark.cloud/api/storefront/v1/stores/downtown-kitchen" \
  -H "Authorization: Bearer ACCESS_TOKEN"
```

## Response

The response wraps a single store object in `data`. The shape matches the [list stores](/docs/storefront-api/stores/get) endpoint.

<ResponseExample>
  ```json Success theme={null}
  {
    "data": {
      "id": "downtown-kitchen",
      "uid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "brand_id": "0001",
      "organization_id": "11111111-1111-1111-1111-111111111111",
      "merchant_id": "22222222-2222-2222-2222-222222222222",
      "name": "Downtown Kitchen",
      "status": "ACTIVE",
      "timezone": "America/Guayaquil",
      "contact": {
        "email": "downtown@merchant.com",
        "phone": "+593991234567"
      },
      "location": {
        "latitude": -2.1894,
        "longitude": -79.8891,
        "address_line_1": "Av. 9 de Octubre 123",
        "city": "Guayaquil",
        "country": "Ecuador",
        "postal_code": "090101",
        "business_name": "Downtown Kitchen S.A."
      },
      "channels": {
        "APP": {
          "id": "app",
          "uid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
          "name": "Mobile app",
          "fulfillment": {
            "PICKUP": {
              "uid": "c3d4e5f6-a7b8-9012-cdef-123456789012",
              "id": "pickup",
              "type": "PICKUP",
              "name": "Pickup",
              "pricing": {
                "is_tax_inclusive": true,
                "minimum_order_value": 0,
                "maximum_order_value": 500,
                "tax_rate": 0.15,
                "fees": []
              },
              "coverage_zones": [],
              "availability": {
                "status": "OPEN",
                "schedules": [
                  { "day_of_week": "monday", "periods": [{ "start_time": "09:00:00", "end_time": "22:00:00" }] },
                  { "day_of_week": "tuesday", "periods": [{ "start_time": "09:00:00", "end_time": "22:00:00" }] },
                  { "day_of_week": "wednesday", "periods": [{ "start_time": "09:00:00", "end_time": "22:00:00" }] },
                  { "day_of_week": "thursday", "periods": [{ "start_time": "09:00:00", "end_time": "22:00:00" }] },
                  { "day_of_week": "friday", "periods": [{ "start_time": "09:00:00", "end_time": "22:00:00" }] }
                ]
              }
            }
          }
        }
      },
      "payments": {
        "orderable": true,
        "methods": []
      },
      "cms_template_id": null,
      "cms": null,
      "overrides": []
    }
  }
  ```
</ResponseExample>

## Store fields

See the [list stores](/docs/storefront-api/stores/get) reference for the full schema, including `contact`, `location`, `channels`, `payments`, `cms_template_id`, `cms`, and `overrides`.

<Tip>
  Check `channels[channel].fulfillment[type].availability.status` before showing checkout. A store can be `OPEN` for one fulfillment type and `TEMPORARILY_CLOSED` for another.
</Tip>

## Error responses

| Status | Description                                                                                                      |
| ------ | ---------------------------------------------------------------------------------------------------------------- |
| `401`  | Missing or invalid access token.                                                                                 |
| `403`  | Token does not have access to this store.                                                                        |
| `404`  | No store found with the given `id`, or the store does not belong to the brand in the `brand_id` query parameter. |


## OpenAPI

````yaml GET /stores/{id}
openapi: 3.0.1
info:
  title: Fire spark Integrations API
  description: POS and RMS integration endpoints for Fire spark.
  version: 1.0.0
servers:
  - url: https://firespark.cloud/api/integrations/v1
security:
  - bearerAuth: []
paths:
  /stores/{id}:
    get:
      summary: Get store
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^[a-zA-Z0-9_-]+$
          description: External store identifier.
        - in: query
          name: brand_id
          required: false
          schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^[a-zA-Z0-9_-]+$
          description: >-
            Filter by brand. When set, returns 404 if the store does not belong
            to this brand.
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/StoreUpsert'
components:
  schemas:
    StoreUpsert:
      type: object
      required:
        - id
        - name
        - status
        - timezone
        - contact
        - location
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^[a-zA-Z0-9_-]+$
        brand_id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^[a-zA-Z0-9_-]+$
        name:
          type: string
        status:
          type: string
          enum:
            - ACTIVE
            - INACTIVE
        timezone:
          type: string
        contact:
          type: object
        location:
          type: object
        channels:
          type: object
          additionalProperties: true
        payments:
          type: object
        cms_template_id:
          type: string
          format: uuid
          nullable: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````