Gett Developer Portal
  • Welcome
  • Distribution Partners
  • Brand Partners
  • Commerce Partners
  • Ecosystem Partners
  • Errors
  • API Reference
Documentation
  • Get Started
  • Marketfront SDK
  • API Reference
Resources
  • Payments
Company
  • Gett
  • Terms of Service
  • Privacy Policy

Copyright 2026 Gett. All rights reserved.

Marketfront SDK
Marketfront API
    Getting StartedConventionsOrder LifecycleCatalogSet
    API Reference
Marketfront AI
Shared Guides
powered by Zuplo
Marketfront API

API Conventions

This section covers the core mechanics of the Marketfront API, including error handling, rate limiting, and caching.

Authentication

All requests require a Bearer token in the Authorization header. See the Authentication guide for key management, environment setup, and security best practices.

Error Handling

All error responses use RFC 9457 application/problem+json format. Every error includes machine-readable fields (errorCategory, retryable, retryAfter) for programmatic handling. Domain-specific errors include an errorCode field identifying the specific issue.

The API supports content negotiation via the Accept header — request text/markdown for a compact text representation suitable for AI agents and CLI tooling. See the Error Reference for full details.

HTTP Status Codes

StatusMeaning
400Invalid request body, missing fields, or domain-specific errors (see errorCode)
401Missing or invalid API key
404Resource does not exist
409Conflict (e.g., order token already used)
422Validation failed (see errors array)
429Rate limit exceeded
500Unexpected server error

Error Codes

Domain-specific errors include an errorCode field.

Cart & Item Errors

CodeDescriptionAction
CART_EMPTYCart has no itemsAdd items before validating
CATALOGSET_REQUIREDCart creation requires a catalogSetIdInclude catalogSetId when cart is null
ITEM_UNAVAILABLEItem no longer availableRemove from cart and re-validate
MODIFIER_REQUIREDRequired modifier group has no selectionPrompt user to select
ORDER_BELOW_MINIMUMBelow store's order minimumAdd more items

Store Errors

CodeDescriptionAction
STORE_CLOSEDStore is no longer openRe-discover stores
STORE_NOT_FOUNDStore does not existRe-discover stores
CATALOGSET_NOT_FOUNDCatalogSet does not existRe-discover for updated catalogSetId

Payment Errors

CodeDescriptionAction
PAYMENT_FAILEDTransient processing failureRetry with the same idempotency key
PAYMENT_METHOD_INVALIDPayment method payload not validRe-prompt the user for payment details
PAYMENT_DECLINEDDeclined by issuerUse a different payment method

Order Errors

CodeDescriptionAction
ORDER_TOTAL_DIFFERENTTotal changed since validationRe-validate the order
ORDER_ALREADY_PLACEDIdempotency-key conflictThis order was already placed

Address Errors

CodeDescriptionAction
ADDRESS_INVALIDCould not be validatedVerify the address
ADDRESS_OUT_OF_RANGEOutside store's delivery zoneChoose a different store

Authentication Errors

CodeHTTPDescriptionAction
SESSION_USER_REQUIRED401Endpoint requires an authenticated user identityEnsure the end user is signed in before making this request

Retry Strategy

CategoryRetryable?Strategy
401 UnauthorizedNoFix your API key
400 Bad RequestNoFix the request
404 Not FoundNoResource doesn't exist
429 Too Many RequestsYesWait for X-RateLimit-Reset, then retry
500 Internal ErrorYesExponential backoff (1s, 2s, 4s, max 30s)

Always include the requestId when contacting support about a specific error.

Rate Limits

Per-partner rate limits ensure fair usage and platform stability.

Endpoint TypeLimitExamples
Read operations1,000/min/stores/discover, /catalog-sets/{catalogSetId}
Write operations100/min/orders/validate, /orders/place
Store discovery60/min/stores/discover (also counted under reads)

Sandbox rate limits are 5x higher than production.

Rate limits are scoped to your partner organization — all keys belonging to the same organization share the same quota.

Every response includes rate limit headers:

HeaderDescription
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetUnix timestamp when the window resets

When rate limited, the API returns 429 Too Many Requests. Read the X-RateLimit-Reset header to know when to retry. If the header is missing, use exponential backoff starting at 1 second.

Caching Strategy

Data TypeStrategyWhy
Store resultsNever cacheStore status changes constantly
CatalogSetsCache aggressivelyImmutable — use catalogSetId as cache key
Validation tokensExpire in 15 minSecurity and price accuracy
Getting StartedOrder Lifecycle
On this page
  • Authentication
  • Error Handling
    • HTTP Status Codes
    • Error Codes
    • Retry Strategy
  • Rate Limits
  • Caching Strategy