LegitGrailsLegitGrails
Status unavailable
  • Developers
  • API Reference
Information
Catalog
    List brandsgetList categoriesgetList answer timesgetList photo indexesgetList modelsget
Photos
    Upload photospostSubmit requested photospost
Balance
    Get credit balanceget
Orders
    List ordersgetCreate an orderpostGet an ordergetSubmit requested photospost
Audit
    List account audit eventsget
Webhooks
    List webhook endpointsgetCreate a webhook endpointpostDelete a webhook endpointdelete
Schemas
LegitGrails API
LegitGrails API

Catalog

Download schema

Discover stable codes, localized labels, prices, and photo requirements.


List brands

GET
https://api.legitgrails.com/v1/integrations
/catalog/brands
Bearer

Returns brands, optionally filtered by category or a search term. name_locale uses the requested locale and falls back to name when a translation is unavailable.

List brands › query Parameters

locale
​string · enum

Locale for *_locale fields. English is always returned separately in the corresponding non-suffixed field. Missing translations fall back to English.

Enum values:
en
ja
Default: en
page
​integer · min: 1

One-based catalog result page.

Default: 1
limit
​integer · min: 1 · max: 100

Catalog results per page. Maximum 100.

Default: 20
search
​string

Optional brand search term.

category_code
​IntegrationCode

Stable category code returned by the categories endpoint.

Catalog code returned by the API. Use it unchanged.

Example: overall-picture

List brands › Responses

A page of matching brands.

CatalogBrandsResponse
​CatalogBrand[] · required
page
​integer · min: 1 · required
limit
​integer · min: 1 · max: 100 · required
total
​integer · min: 0 · required

Total matching brands before pagination.

GET/catalog/brands
curl https://api.legitgrails.com/v1/integrations/catalog/brands \ --header 'Authorization: Bearer <token>'
Example Responses
{ "data": [ { "code": "gucci", "name": "Gucci", "name_locale": "グッチ", "categories": [ { "code": "bag", "name": "Bags", "name_locale": "バッグ", "icon_url": "https://media.example.com/catalog/categories/bag.png" } ] } ], "page": 1, "limit": 20, "total": 1 }
json
application/json

List categories

GET
https://api.legitgrails.com/v1/integrations
/catalog/categories
Bearer

Returns supported categories, optionally restricted to a brand. The key needs either orders:read or orders:write. The response is not paginated. An unknown brand_code returns 404.

List categories › query Parameters

locale
​string · enum

Locale for *_locale fields. English is always returned separately in the corresponding non-suffixed field. Missing translations fall back to English.

Enum values:
en
ja
Default: en
brand_code
​IntegrationCode

Restrict categories to a brand returned by the brands endpoint.

Catalog code returned by the API. Use it unchanged.

Example: overall-picture

List categories › Responses

Supported categories.

CatalogCategoriesResponse
​CatalogCategory[] · required
GET/catalog/categories
curl https://api.legitgrails.com/v1/integrations/catalog/categories \ --header 'Authorization: Bearer <token>'
Example Responses
{ "data": [ { "code": "bag", "name": "Bags", "name_locale": "バッグ", "icon_url": "https://media.example.com/catalog/categories/bag.png" } ] }
json
application/json

List answer times

GET
https://api.legitgrails.com/v1/integrations
/catalog/answer_times
Bearer

Returns the answer-time options currently available to the authenticated account for one brand/category combination. The key needs either orders:read or orders:write.

code is the integer duration in minutes and is the value accepted by POST /v1/integrations/orders as answer_time. Availability and price are account- and catalog-context-specific; refresh them before order creation.

List answer times › query Parameters

brand_code
​IntegrationCode · required

Stable brand code returned by the brands endpoint.

Catalog code returned by the API. Use it unchanged.

Example: overall-picture
category_code
​IntegrationCode · required

Stable category code returned by the categories endpoint.

Catalog code returned by the API. Use it unchanged.

Example: overall-picture
locale
​string · enum

Locale for *_locale fields. English is always returned separately in the corresponding non-suffixed field. Missing translations fall back to English.

Enum values:
en
ja
Default: en

List answer times › Responses

Answer-time options for the selected context.

CatalogAnswerTimesResponse
​CatalogAnswerTime[] · required
GET/catalog/answer_times
curl 'https://api.legitgrails.com/v1/integrations/catalog/answer_times?brand_code=gucci&category_code=bag' \ --header 'Authorization: Bearer <token>'
Example Responses
{ "data": [ { "code": 720, "name": "12 hours", "name_locale": "12時間", "price": 15, "default": true, "available": true, "next_available_at": null } ] }
json
application/json

List photo indexes

GET
https://api.legitgrails.com/v1/integrations
/catalog/photo_indexes
Bearer

Returns the photo indexes applicable to a category and, optionally, a brand and model. Providing more supported context produces more precise indexes and example images for the item. brand_code is required when model_code is supplied.

Use each index's code as photos[].index_code; submit every index marked required and no more than photo_limit images for one index.

List photo indexes › query Parameters

category_code
​IntegrationCode · required

Stable category code returned by the categories endpoint.

Catalog code returned by the API. Use it unchanged.

Example: overall-picture
locale
​string · enum

Locale for *_locale fields. English is always returned separately in the corresponding non-suffixed field. Missing translations fall back to English.

Enum values:
en
ja
Default: en
brand_code
​IntegrationCode

Optional brand code used to refine the photo guidance.

Catalog code returned by the API. Use it unchanged.

Example: overall-picture
model_code
​IntegrationCode

Optional model code used to refine the photo guidance. Requires brand_code and must belong to the submitted brand/category.

Catalog code returned by the API. Use it unchanged.

Example: overall-picture

List photo indexes › Responses

Photo indexes for the selected context.

CatalogPhotoIndexesResponse
​CatalogPhotoIndex[] · required
GET/catalog/photo_indexes
curl 'https://api.legitgrails.com/v1/integrations/catalog/photo_indexes?category_code=bag' \ --header 'Authorization: Bearer <token>'
Example Responses
{ "data": [ { "code": "overall-picture", "name": "Overall picture", "name_locale": "全体写真", "required": true, "photo_limit": 3, "icon_url": "https://media.example.com/catalog/indexes/overall-picture.png", "example_urls": [ "https://media.example.com/catalog/examples/overall-picture.jpg" ] } ] }
json
application/json

List models

GET
https://api.legitgrails.com/v1/integrations
/catalog/models
Bearer

Returns models for a brand and category, with optional search and pagination.

List models › query Parameters

brand_code
​IntegrationCode · required

Stable brand code returned by the brands endpoint.

Catalog code returned by the API. Use it unchanged.

Example: overall-picture
category_code
​IntegrationCode · required

Stable category code returned by the categories endpoint.

Catalog code returned by the API. Use it unchanged.

Example: overall-picture
locale
​string · enum

Locale for *_locale fields. English is always returned separately in the corresponding non-suffixed field. Missing translations fall back to English.

Enum values:
en
ja
Default: en
page
​integer · min: 1

One-based catalog result page.

Default: 1
limit
​integer · min: 1 · max: 100

Catalog results per page. Maximum 100.

Default: 20
search
​string

Optional model search term.

List models › Responses

A page of models.

CatalogModelsResponse
​CatalogModel[] · required
page
​integer · min: 1 · required
limit
​integer · min: 1 · max: 100 · required
total
​integer · min: 0 · required

Total matching models before pagination.

GET/catalog/models
curl 'https://api.legitgrails.com/v1/integrations/catalog/models?brand_code=gucci&category_code=bag' \ --header 'Authorization: Bearer <token>'
Example Responses
{ "data": [ { "code": "gucci-bag-gg-marmont", "name": "GG Marmont", "name_locale": "GGマーモント", "image_url": "https://media.example.com/catalog/models/gucci-bag-gg-marmont.png" } ], "page": 1, "limit": 20, "total": 1 }
json
application/json

Photos