Gooten Products API

Catalog products, per-region SKUs, supported countries and currencies.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/gooten-products-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

gooten-products-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Gooten Orders Products API
  description: 'The Gooten API is a REST interface for the Gooten print-on-demand and global manufacturing / fulfillment platform. It is hosted at api.print.io (the platform Gooten was built on) and lets you browse the product catalog and per-region SKUs, retrieve print templates, create print-ready products from artwork, quote shipping and order prices, and submit and manage manufacturing orders. The API is organized around resource-oriented URLs and standard HTTP verbs (GET, POST, PUT, DELETE) and returns JSON. All requests must use HTTPS.


    Authentication is by two credentials passed as query parameters. Every request requires a `RecipeID` (a public identifier for your integration). Order-writing and billing operations additionally require a `PartnerBillingKey` (a private key that must never be exposed client-side and must be URL-encoded). Most catalog endpoints live under the source API base `/api/v/5/source/api`; print-ready product (PRP) management lives under the versioned base `/api/v2/recipes/{recipeId}`.


    This description was authored by API Evangelist from Gooten''s public documentation. Field-level request/response shapes are modeled from the documented examples and are approximate; consult the Gooten docs for exact payloads.'
  version: '5'
  contact:
    name: Gooten
    url: https://www.gooten.com/api-documentation/getting-started/
servers:
- url: https://api.print.io
  description: Gooten API (hosted on the Print.io platform)
security:
- recipeId: []
tags:
- name: Products
  description: Catalog products, per-region SKUs, supported countries and currencies.
paths:
  /api/v/5/source/api/products:
    get:
      operationId: listProducts
      tags:
      - Products
      summary: List products
      description: Lists catalog products. In Gooten a "product" is a category (for example "Canvas Wraps") that has many SKUs / variants beneath it.
      parameters:
      - $ref: '#/components/parameters/RecipeID'
      - name: countryCode
        in: query
        required: false
        description: Two-character ISO 3166-1 alpha-2 country code for the shipping destination.
        schema:
          type: string
          example: US
      - name: all
        in: query
        required: false
        description: When true, returns the full catalog rather than only enabled products.
        schema:
          type: boolean
      responses:
        '200':
          description: A list of products.
          content:
            application/json:
              schema:
                type: object
                properties:
                  HadError:
                    type: boolean
                  Products:
                    type: array
                    items:
                      $ref: '#/components/schemas/Product'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /api/v/5/source/api/productvariants:
    get:
      operationId: listProductVariants
      tags:
      - Products
      summary: List product variants (SKUs)
      description: Lists the available variants (SKUs) and pricing for a product. SKUs can differ by region - for example US canvas wraps use inch formats and European ones use centimeter formats - so a country code is required.
      parameters:
      - $ref: '#/components/parameters/RecipeID'
      - name: productId
        in: query
        required: true
        description: The product identifier obtained from the products endpoint.
        schema:
          type: string
      - name: countryCode
        in: query
        required: true
        description: Two-character ISO 3166-1 alpha-2 country code for the shipping destination.
        schema:
          type: string
          example: US
      - name: currencyCode
        in: query
        required: false
        description: ISO currency code for returned pricing. Defaults to USD.
        schema:
          type: string
          default: USD
      - name: compression
        in: query
        required: false
        description: When true, reduces the response payload size.
        schema:
          type: boolean
      - name: pageSize
        in: query
        required: false
        schema:
          type: integer
      - name: page
        in: query
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: A list of product variants (SKUs) with pricing.
          content:
            application/json:
              schema:
                type: object
                properties:
                  HadError:
                    type: boolean
                  ProductVariants:
                    type: array
                    items:
                      $ref: '#/components/schemas/ProductVariant'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /api/v/5/source/api/countries:
    get:
      operationId: listCountries
      tags:
      - Products
      summary: List supported shipping countries
      description: Returns the countries Gooten can ship to, each with a name, ISO code, support flag, measurement system, flag image URL, and default currency.
      parameters:
      - $ref: '#/components/parameters/RecipeID'
      responses:
        '200':
          description: A list of supported shipping countries.
          content:
            application/json:
              schema:
                type: object
                properties:
                  HadError:
                    type: boolean
                  Countries:
                    type: array
                    items:
                      $ref: '#/components/schemas/Country'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /api/v/5/source/api/currencies:
    get:
      operationId: listCurrencies
      tags:
      - Products
      summary: List supported currencies
      description: Returns the currencies supported for pricing and order submission.
      parameters:
      - $ref: '#/components/parameters/RecipeID'
      responses:
        '200':
          description: A list of supported currencies.
          content:
            application/json:
              schema:
                type: object
                properties:
                  HadError:
                    type: boolean
                  Currencies:
                    type: array
                    items:
                      type: string
                      example: USD
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  parameters:
    RecipeID:
      name: RecipeID
      in: query
      required: true
      description: Your public RecipeID from the Gooten Admin.
      schema:
        type: string
  schemas:
    Product:
      type: object
      properties:
        Id:
          type: string
        Name:
          type: string
        CategoryName:
          type: string
    Error:
      type: object
      description: Gooten error envelope. Responses carry a HadError flag and error details.
      properties:
        HadError:
          type: boolean
        Errors:
          type: array
          items:
            type: object
            properties:
              Message:
                type: string
              PropertyName:
                type: string
              ErrorReference:
                type: string
    Country:
      type: object
      properties:
        Name:
          type: string
        Code:
          type: string
        IsSupported:
          type: boolean
        MeasurementCode:
          type: string
        FlagUrl:
          type: string
        DefaultCurrency:
          type: string
    ProductVariant:
      type: object
      properties:
        Sku:
          type: string
        ProductId:
          type: string
        Price:
          type: object
          properties:
            Price:
              type: number
            CurrencyCode:
              type: string
  responses:
    Unauthorized:
      description: Missing or invalid RecipeID / PartnerBillingKey.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    recipeId:
      type: apiKey
      in: query
      name: RecipeID
      description: Public RecipeID from the Gooten Admin, required on every request. Order-writing and billing endpoints additionally require a private PartnerBillingKey query parameter (URL-encoded).