Get app settings

Retrieve public-facing application settings that are safe and useful for external API consumers.

GET /api/v1/app-settings

Headers:
  Authorization: Bearer <api-key>
  Content-Type: application/json

Query parameters

ParameterTypeDescription
localestringOptional - ISO locale code (e.g., en, fr, es). If provided, only returns localized labels for that locale. If omitted, returns labels for the default locale (en).

Response example (200 success)

{
  "success": true,
  "data": {
    "settings": {
      "localizedLabels": {
        "unitPricePropertyName": "Price per",
        "unitPricePropertyValue": "kg",
        "netMeasurementLabel": "Net",
        "netMeasurementValue": "Weight"
      },
      "mergeMatchingLineItems": true
    }
  },
  "error": null,
  "meta": {},
  "requestId": "optional-request-id"
}

Response fields

FieldTypeDescription
successbooleanIndicates whether the request was successful
dataobjectResponse data object
data.settingsAppSettingsApplication settings object
data.settings.localizedLabelsLocalizedLabelsLocalized labels for the app. Structure depends on whether a locale query parameter is provided.
data.settings.mergeMatchingLineItemsboolean | undefinedIndicates whether the app is configured to merge matching line items in the cart. true means multiple cart additions with the same product/variant and options will be merged into a single line item.
errorobject | nullError object if the request failed, null if successful
metaobjectMetadata object
requestIdstring | undefinedOptional request identifier for tracking

Error responses

Status codeDescription
401Unauthorized - Invalid or missing API key
429Too Many Requests - Rate limit exceeded (if rate limiting enabled)
500Internal Server Error - Server-side error occurred

Note

  • The endpoint includes a Cache-Control header with a max-age of 300 seconds (5 minutes). Clients should respect this cache directive.
  • If a locale is specified but no labels exist for that locale, the endpoint will return undefined for localizedLabels.
  • If no locale is specified, the default locale (en) is used.
  • The API key should be in the format: {keyId}:{secret}
  • If the Authorization header is not provided, the API will attempt to read the key from form data with the key name key.
  • The endpoint automatically tracks API key usage by updating the lastUsedAt timestamp for the API key. This update is performed asynchronously and does not block the response.
  • The API key is associated with a specific Shopify shop. The endpoint returns settings for the shop associated with the provided API key.

Related:

See the AppSettings object documentation for details about the response structure. See the LocalizedLabels object for details about the localized labels structure.

Example: Get settings for specific locale

Request:

GET /api/v1/app-settings?locale=fr

Response:

{
  "success": true,
  "data": {
    "settings": {
      "localizedLabels": {
        "unitPricePropertyName": "Prix par",
        "unitPricePropertyValue": "kg",
        "netMeasurementLabel": "Net",
        "netMeasurementValue": "Poids"
      },
      "mergeMatchingLineItems": true
    }
  },
  "error": null
}