Gearment API integration (1.0.0)

Overview

Welcome to the Gearment Print-On-Demand (POD) Seller API! This API enables seamless integration between your stores, applications, and the Gearment platform. With our API, you can:

  • Manage products and variants

  • Sync inventory

  • Create and manage orders

  • Track fulfillment status

This documentation will guide you through authentication, rate limits, and how to start using the API.

Production API URL: https://api.gearment.com/integration-handler

Sandbox API URL: https://api.gearmentinc.com/integration-handler

Authentication

All API requests must be authenticated with an API Key. Unauthorized requests will be rejected.

How to obtain your API Key

  1. Navigate to your Team Settings inside the Gearment platform.
  2. Click on Developer Settings.
  3. Request and generate your API Key.

⚠️ Important: Keep your API key secure. Do not share it publicly or embed it directly in client-side applications. If your API Key is compromised, immediately revoke it and generate a new one.

Using API Key

Include your API key in the request headers:

X-Gearment-Client-Key: Your_Gearment_Client_Key

X-Gearment-Client-Secret: Your_Gearment_Client_Secret"

Rate Limiting

To ensure stable service for all users, the Gearment API enforces rate limiting.

Rate Limit TypeValue
Requests100 requests per 10 seconds, Block for 1 minute
Retry-AfterIf exceeded, Retry-After header will indicate when you can retry

If you exceed the rate limit, the API will respond with:

json{
  "error": {
    "code": 429,
    "message": "Rate limit exceeded. Please retry later."
  }
}

Best Practices:

  • Implement exponential backoff retries for 429 errors.
  • Monitor your API usage.
  • Optimize your integrations to avoid unnecessary requests (e.g., batch updates when possible).
Download OpenAPI description
Overview
Languages
Servers
Production Server

https://apiv2.gearment.com/integration-handler/

Sandbox Server

https://api.gearmentinc.com/integration-handler/

Version 3

VendorWebhookAPI provide an abstraction to all of read and write data access for webhook businesses

Operations

Version 2

LegacyVendorWebhookAPI provide an abstraction to support the legacy api call format

Operations

Version 3

VendorOrderAPI provide an abstraction to all of read and write data access for order businesses

Operations

List Order

Request

Query
filter.order_idsArray of strings(order_ids)
filter.statusesArray of strings(statuses)
Items Enum"VENDOR_ORDER_STATUS_UNKNOWN"0"VENDOR_ORDER_STATUS_ALL"1"VENDOR_ORDER_STATUS_AWAITING_PAYMENT"2"VENDOR_ORDER_STATUS_PAYMENT_FAILED"3"VENDOR_ORDER_STATUS_AWAITING_FULFILLMENT"4
filter.created_methodsArray of strings(created_methods)
Items Enum"VENDOR_CREATED_METHOD_UNKNOWN"0"VENDOR_CREATED_METHOD_ALL"1"VENDOR_CREATED_METHOD_SYNC"2"VENDOR_CREATED_METHOD_MANUAL"3"VENDOR_CREATED_METHOD_API"4
filter.created_at_min.secondsinteger or string(int64)(seconds)

Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.

filter.created_at_min.nanosinteger(int32)(nanos)

Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.

filter.payment_statusArray of strings(payment_status)

For API Legacy

Items Enum"VENDOR_ORDER_PAYMENT_STATUS_UNKNOWN"0"VENDOR_ORDER_PAYMENT_STATUS_ALL"1"VENDOR_ORDER_PAYMENT_STATUS_PENDING"2"VENDOR_ORDER_PAYMENT_STATUS_SUCCESS"3"VENDOR_ORDER_PAYMENT_STATUS_FAILED"4
paging.pageinteger(int32)(page)
paging.limitinteger(int32)(limit)
curl -i -X GET \
  'https://apiv2.gearment.com/integration-handler/api/v3/orders?filter.created_at_min.nanos=0&filter.created_at_min.seconds=0&filter.created_methods=VENDOR_CREATED_METHOD_UNKNOWN&filter.order_ids=string&filter.payment_status=VENDOR_ORDER_PAYMENT_STATUS_UNKNOWN&filter.statuses=VENDOR_ORDER_STATUS_UNKNOWN&paging.limit=0&paging.page=0'

Responses

Success

Bodyapplication/json
statusstring(status)
messagestring(message)
pagingobject(common.type.v1.PagingResponse)
dataArray of objects(data)
Response
application/json
{ "status": "string", "message": "string", "paging": { "total": 0, "total_page": 0, "page": 0, "limit": 0 }, "data": [ {} ] }

List Order Draft

Request

Query
filter.order_idsArray of strings(order_ids)
filter.statusesArray of strings(statuses)
Items Enum"VENDOR_ORDER_DRAFT_STATUS_UNKNOWN"0"VENDOR_ORDER_DRAFT_STATUS_ALL"1"VENDOR_ORDER_DRAFT_STATUS_DRAFT"2"VENDOR_ORDER_DRAFT_STATUS_AWAITING_CHECKOUT"3"VENDOR_ORDER_DRAFT_STATUS_CHECKED_OUT"4
filter.created_methodsArray of strings(created_methods)
Items Enum"VENDOR_CREATED_METHOD_UNKNOWN"0"VENDOR_CREATED_METHOD_ALL"1"VENDOR_CREATED_METHOD_SYNC"2"VENDOR_CREATED_METHOD_MANUAL"3"VENDOR_CREATED_METHOD_API"4
filter.created_at_min.secondsinteger or string(int64)(seconds)

Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.

filter.created_at_min.nanosinteger(int32)(nanos)

Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.

paging.pageinteger(int32)(page)
paging.limitinteger(int32)(limit)
curl -i -X GET \
  'https://apiv2.gearment.com/integration-handler/api/v3/orders/draft?filter.created_at_min.nanos=0&filter.created_at_min.seconds=0&filter.created_methods=VENDOR_CREATED_METHOD_UNKNOWN&filter.order_ids=string&filter.statuses=VENDOR_ORDER_DRAFT_STATUS_UNKNOWN&paging.limit=0&paging.page=0'

Responses

Success

Bodyapplication/json
statusstring(status)
messagestring(message)
pagingobject(common.type.v1.PagingResponse)
dataArray of objects(data)
Response
application/json
{ "status": "string", "message": "string", "paging": { "total": 0, "total_page": 0, "page": 0, "limit": 0 }, "data": [ {} ] }

Create Order Draft

Request

Bodyapplication/jsonrequired
dataobject(api.order.v1.VendorOrderDraftManualCreationParams)
curl -i -X POST \
  https://apiv2.gearment.com/integration-handler/api/v3/orders/draft \
  -H 'Content-Type: application/json' \
  -d '{
    "data": {
      "reference_id": "string",
      "platform": "MARKETPLACE_PLATFORM_UNSPECIFIED",
      "store_id": "string",
      "agree_at_risk": true,
      "address": {
        "first_name": "string",
        "last_name": "string",
        "company": "string",
        "contact_pronoun": "string",
        "street_1": "string",
        "street_2": "string",
        "state_code": "string",
        "state_name": "string",
        "city": "string",
        "zip_code": "string",
        "country_code": "string",
        "country_name": "string",
        "phone_no": "string",
        "email": "string",
        "type": "TYPE_UNKNOWN"
      },
      "shipping_method": "METHOD_UNKNOWN",
      "billing_option": {
        "ioss_number": "string",
        "ioss_value": {
          "currency_code": "string",
          "units": 0,
          "nanos": 0
        },
        "tax_number": "string",
        "tax_value": {
          "currency_code": "string",
          "units": 0,
          "nanos": 0
        }
      },
      "gift_message_body": "string",
      "line_items": [
        {
          "variant_id": "string",
          "legacy_id": 0,
          "quantity": 1000,
          "printing_options": [
            {
              "location_code": "PRINT_LOCATION_CODE_UNKNOWN",
              "url": "string"
            }
          ],
          "barcode_url": "string"
        }
      ]
    }
  }'

Responses

Success

Bodyapplication/json
statusstring(status)
messagestring(message)
dataobject(api.order.v1.VendorOrderDraft)
Response
application/json
{ "status": "string", "message": "string", "data": { "order_id": "string", "team_id": "string", "store_id": "string", "store_name": "string", "platform_ref": "string", "order_platform": "MARKETPLACE_PLATFORM_UNSPECIFIED", "import_id": "string", "pull_id": "string", "request_id": "string", "created_method": "VENDOR_CREATED_METHOD_UNKNOWN", "fulfillment_vendor": "VENDOR_FULFILLMENT_VENDOR_UNKNOWN", "priority": "VENDOR_FULFILLMENT_PRIORITY_UNKNOWN", "fulfillment_option": {}, "shipping_option": {}, "billing_option": {}, "order_date": "2019-08-24T14:15:22Z", "status": "VENDOR_ORDER_DRAFT_STATUS_UNKNOWN", "order_tracking_code": "string", "shipping_labels": [], "is_label_attached": true, "shipping_verification_status": "VENDOR_SHIPPING_VERIFICATION_STATUS_UNKNOWN", "product_matching_status": "VENDOR_PRODUCT_MATCHING_STATUS_UNKNOWN", "is_shipping_verification_bypassed": true, "is_approved": true, "approved_at": "2019-08-24T14:15:22Z", "origin_draft_id": "string", "origin_order_id": "string", "addresses": [], "line_items": [], "gift_messages": [], "legacy_external_id": "string", "fulfilment_order": "string", "payment_status": "string", "order_subtotal": {}, "order_shipping_fee": {}, "order_handle_fee": {}, "order_tax": {}, "order_fee": {}, "order_discount": {}, "order_total": {}, "verify_address": "VENDOR_SHIPPING_VERIFICATION_STATUS_UNKNOWN", "print_option": {} } }

Version 2

LegacyVendorOrderAPI provide an abstraction to support the legacy api call format

Operations

Version 3

VendorCatalogAPI provide an abstraction to all of read data access for catalog businesses

Operations

Version 2

LegacyVendorCatalogAPI provide an abstraction to support the legacy api call format

Operations