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

# Retrieve store

> Returns the store profile behind the API key: branding, contact details,
categories, tax configuration, and which fulfilment methods are enabled.

Read `delivery_enabled`, `manual_delivery_enabled`, and
`express_delivery_enabled` to decide which checkout options to render.
Pickup availability is expressed through `pickup_location` and
`pickup_schedules`.




## OpenAPI

````yaml /openapi.yaml get /api/public/v1/store
openapi: 3.1.0
info:
  title: Leyyow Public Commerce API
  version: 1.0.0
  summary: Build a custom storefront on top of a Leyyow store.
  description: >
    The Public Commerce API lets a merchant's own website or application read
    their

    Leyyow catalog, calculate delivery, create an order, and receive a Paystack

    payment link.


    ## Authentication


    Every request requires an API key created in the Leyyow suite under

    **Settings → Public API**, sent as a bearer token:


    ```

    Authorization: Bearer lyw_live_xxxxxxxxxxxxxxxx

    ```


    The key identifies exactly one store. Any product, variant, delivery option,

    shipping quote, or order that does not belong to that store returns `404`,

    regardless of whether the identifier exists elsewhere in Leyyow.


    Keys used in browser code are visible to anyone who opens the network

    inspector. Keep the key server-side where possible, and rotate it from the

    suite if it is abused.


    ## Response envelope


    Every response — success or failure — uses the same envelope:


    ```json

    { "error": null, "message": "Products retrieved.", "data": {} }

    ```


    On success `error` is `null` and `data` carries the payload. On failure

    `error` holds a human-readable reason, `data` is `null`, and the HTTP status

    carries the machine-readable meaning.


    ## Server-calculated amounts


    Prices, taxes, delivery fees, and totals are calculated by Leyyow. Order

    requests carry the customer's *choices* — variants, quantities, fulfilment

    method — never amounts. Any amount submitted in a request body is ignored.


    ## Rate limits


    Order creation and shipping quotes are rate limited more strictly than

    catalog reads. Exceeding a limit returns `429`.
  contact:
    name: Leyyow API support
    email: support@leyyow.com
servers:
  - url: https://sandbox.api.leyyow.com
    description: Sandbox — test keys, seeded data, no real orders
  - url: https://api.leyyow.com
    description: Production — live merchant data
security:
  - bearerAuth: []
tags:
  - name: Store
    description: Store profile, theme, categories, and fulfilment configuration.
  - name: Products
    description: Customer-facing catalog.
  - name: Delivery
    description: Fulfilment options and managed-delivery quotes.
  - name: Orders
    description: Order creation and status.
paths:
  /api/public/v1/store:
    get:
      tags:
        - Store
      summary: Retrieve store
      description: |
        Returns the store profile behind the API key: branding, contact details,
        categories, tax configuration, and which fulfilment methods are enabled.

        Read `delivery_enabled`, `manual_delivery_enabled`, and
        `express_delivery_enabled` to decide which checkout options to render.
        Pickup availability is expressed through `pickup_location` and
        `pickup_schedules`.
      operationId: getStore
      responses:
        '200':
          description: Store retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Envelope'
                  - type: object
                    properties:
                      data:
                        $ref: '#/components/schemas/Store'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  schemas:
    Envelope:
      type: object
      required:
        - error
        - message
        - data
      properties:
        error:
          type:
            - string
            - 'null'
          description: Human-readable failure reason, or `null` on success.
          examples:
            - null
        message:
          type: string
          description: Short status message.
          examples:
            - Request successful.
        data:
          description: Response payload. `null` on failure.
    Store:
      type: object
      properties:
        uid:
          type: string
          format: uuid
        slug:
          type: string
          examples:
            - ada-fabrics
        store_uid:
          type: string
          format: uuid
        store_name:
          type: string
          examples:
            - Ada Fabrics
        size_chart:
          type:
            - string
            - 'null'
        applied_theme:
          type: object
          properties:
            uid:
              type: string
              format: uuid
            name:
              type: string
            description:
              type: string
            preview_image:
              type: string
              format: uri
            in_use:
              type: boolean
        color_scheme:
          type: object
          properties:
            primary:
              type: string
              examples:
                - '#1D9E75'
            secondary:
              type: string
            tertiary:
              type: string
        typography:
          type: string
        button:
          type: string
        button_text_color:
          type: string
        show_button_outline:
          type: boolean
        footer_email:
          type: string
          format: email
        footer_phone:
          type: string
        terms_and_conditions_url:
          type: string
        instagram_url:
          type: string
        facebook_url:
          type: string
        x_url:
          type: string
        tiktok_url:
          type: string
        show_live_status_banner:
          type: boolean
        logo:
          type: string
          format: uri
        favicon:
          type: string
          format: uri
        is_published:
          type: boolean
        published_at:
          type:
            - string
            - 'null'
          format: date-time
        pickup_location:
          type:
            - string
            - 'null'
          description: Pickup address, or `null` if pickup is not offered.
        pickup_schedules:
          type: array
          description: Per-weekday pickup windows.
          items:
            type: object
            properties:
              uid:
                type: string
                format: uuid
              day_of_week:
                type: integer
                minimum: 0
                maximum: 6
              day_of_week_display:
                type: string
                examples:
                  - Monday
              is_enabled:
                type: boolean
              start_time:
                type:
                  - string
                  - 'null'
                examples:
                  - '09:00:00'
              end_time:
                type:
                  - string
                  - 'null'
                examples:
                  - '17:00:00'
              updated_at:
                type: string
                format: date-time
        delivery_enabled:
          type: boolean
          description: Managed Delivery (ShipBubble) is available.
        manual_delivery_enabled:
          type: boolean
        express_delivery_enabled:
          type: boolean
        add_tax_to_product_price:
          type: boolean
          description: |
            When `true`, displayed product prices already include tax. When
            `false`, tax is added at checkout.
        tax_collection_enabled:
          type: boolean
        tax_rate:
          type: string
          examples:
            - '7.50'
        sections:
          type: array
          description: Storefront layout sections.
          items:
            type: object
            additionalProperties: true
        categories:
          type: array
          items:
            type: object
            properties:
              uid:
                type: string
                format: uuid
              name:
                type: string
              description:
                type: string
              is_active:
                type: boolean
              image:
                type:
                  - string
                  - 'null'
                format: uri
              created_at:
                type: string
                format: date-time
              updated_at:
                type: string
                format: date-time
        is_live:
          type: boolean
        has_subscription:
          type: boolean
        plan_name:
          type: string
        custom_domain:
          type: string
    ErrorResponse:
      type: object
      required:
        - error
        - message
        - data
      properties:
        error:
          type: string
          description: Human-readable failure reason.
        message:
          type: string
        data:
          type: 'null'
  responses:
    Unauthorized:
      description: API key missing, malformed, or revoked.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: Invalid or revoked API key.
            message: Authentication failed.
            data: null
    RateLimited:
      description: Too many requests. Retry after the window resets.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: Rate limit exceeded.
            message: Too many requests.
            data: null
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: |
        Store API key created in the Leyyow suite under Settings → Public API.
        Sent as `Authorization: Bearer <key>`.

````