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

# ListCatalog

> ListCatalog returns a page of the products the reseller may sell, each with
 the reseller's price. It is cursor-paginated: pass next_cursor from the
 previous page to fetch the next. A product's id is the identifier used to
 order it.



## OpenAPI

````yaml /api-reference/sodacards.yaml get /v1/catalog
openapi: 3.1.0
info:
  title: SODACARDS Developer API
  description: Sell gift cards and game top-ups from your own systems.
  version: 1.0.0
servers:
  - url: https://api.sodacards.com
security:
  - ApiKeyAuth: []
tags:
  - name: PublicAPIService
    description: >-
      PublicAPIService is the public developer API a reseller calls with an API
      key.
       It is served as REST (via HTTP transcoding) so developers use GET /v1/... and
       curl, and its OpenAPI 3.1 spec is generated from this one file. Every method is
       authenticated by the API-key gateway that fronts it.
paths:
  /v1/catalog:
    get:
      summary: ListCatalog
      description: >-
        ListCatalog returns a page of the products the reseller may sell, each
        with
         the reseller's price. It is cursor-paginated: pass next_cursor from the
         previous page to fetch the next. A product's id is the identifier used to
         order it.
      operationId: listCatalog
      parameters:
        - name: limit
          in: query
          description: >-
            limit is the maximum number of products to return (1..100). Zero
            applies the
             default page size.
          schema:
            type: integer
            title: limit
            format: int32
        - name: cursor
          in: query
          description: >-
            cursor is the next_cursor of the previous page. Empty for the first
            page.
          schema:
            type: string
            title: cursor
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/sodacards.devpublic.v1.ListCatalogResponse
      x-codeSamples:
        - lang: python
          label: Python
          source: |
            import os, sodacards

            config = sodacards.Configuration(host="https://api.sodacards.com")
            config.api_key["ApiKeyAuth"] = os.environ["SODACARDS_API_KEY"]
            client = sodacards.DefaultApi(sodacards.ApiClient(config))

            catalog = client.list_catalog()
        - lang: typescript
          label: TypeScript
          source: >
            import { Sodacards } from "@sodacards/sdk";


            const sodacards = new Sodacards({ apiKeyAuth:
            process.env.SODACARDS_API_KEY });


            const catalog = await sodacards.listCatalog();
        - lang: go
          label: Go
          source: >
            client := sodacards.NewAPIClient(sodacards.NewConfiguration())

            auth := context.WithValue(context.Background(),
            sodacards.ContextAPIKeys,
                map[string]sodacards.APIKey{"ApiKeyAuth": {Key: os.Getenv("SODACARDS_API_KEY")}})

            catalog, _, err := client.DefaultAPI.ListCatalog(auth).Execute()
        - lang: php
          label: PHP
          source: >
            $config = Sodacards\Configuration::getDefaultConfiguration()
                ->setApiKey('X-API-Key', getenv('SODACARDS_API_KEY'));
            $client = new Sodacards\Api\DefaultApi(new GuzzleHttp\Client(),
            $config);


            $catalog = $client->listCatalog();
components:
  schemas:
    sodacards.devpublic.v1.ListCatalogResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/sodacards.devpublic.v1.Product'
          title: data
          description: data is the page of products, priced for the calling reseller.
        hasMore:
          type: boolean
          title: has_more
          description: has_more is true when another page follows this one.
        nextCursor:
          type: string
          title: next_cursor
          description: next_cursor fetches the next page. Empty on the last page.
      title: ListCatalogResponse
      additionalProperties: false
    sodacards.devpublic.v1.Product:
      type: object
      properties:
        id:
          type: string
          title: id
          description: id identifies the product; use it to place an order for this item.
        name:
          type: string
          title: name
          description: name is the human-readable product name.
        faceValue:
          $ref: '#/components/schemas/sodacards.devpublic.v1.ProductFaceValue'
          title: face_value
          description: >-
            face_value is the nominal value printed on the item (e.g. a 10 USD
            card),
             which may differ from the currency the reseller pays in.
        price:
          $ref: '#/components/schemas/sodacards.devpublic.v1.Money'
          title: price
          description: >-
            price is what the reseller pays, in FCFA. It is absent when the item
            is not
             yet priced (listed but not purchasable).
        strikePrice:
          $ref: '#/components/schemas/sodacards.devpublic.v1.Money'
          title: strike_price
          description: >-
            strike_price is an optional reference (pre-discount) price, in FCFA,
            for
             display. Absent when there is none.
        bonus:
          type: string
          title: bonus
          description: >-
            bonus describes any extra value granted with the item, e.g. "+10%".
            Empty
             when there is none.
        minQuantity:
          type: integer
          title: min_quantity
          format: int32
          description: >-
            min_quantity and max_quantity bound how many units an order line may
            buy.
        maxQuantity:
          type: integer
          title: max_quantity
          format: int32
        purchasable:
          type: boolean
          title: purchasable
          description: >-
            purchasable is true when the item has a price and can be ordered
            now.
      title: Product
      additionalProperties: false
      description: >-
        Product is one sellable item in the reseller catalog. Its id is what an
        order
         line references. It never carries the supplier cost or routing.
    sodacards.devpublic.v1.ProductFaceValue:
      type: object
      properties:
        amount:
          type: string
          title: amount
          description: amount is the face value as an exact decimal string, e.g. "10.00".
        currency:
          type: string
          title: currency
          description: currency is the ISO-4217 code of the face value, e.g. "USD".
      title: ProductFaceValue
      additionalProperties: false
      description: >-
        ProductFaceValue is the nominal value printed on a product. amount is a
        decimal
         string (e.g. "10.00") so fractional face values are exact.
    sodacards.devpublic.v1.Money:
      type: object
      properties:
        amount:
          type:
            - integer
            - string
          title: amount
          format: int64
          description: amount is the value in the currency's minor units.
        currency:
          type: string
          title: currency
          description: currency is the ISO-4217 code, e.g. "XOF".
      title: Money
      additionalProperties: false
      description: >-
        Money is an amount in the currency's minor units together with its
        ISO-4217
         code. XOF (the West-African CFA franc) has no minor unit, so for XOF amount is
         the whole franc value.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      description: Your API key, prefixed sc_live_ or sc_test_.
      name: X-API-Key
      in: header

````