Product
The `Product` model represents an individual item of your store. It includes essential attributes such as product title, price, variants, SKU, and so on. This model is crucial for cataloging and managing the store's inventory effectively.
Properties
| Name | Type | Description |
|---|---|---|
| id | string | The unique identifier of the product. If a custom ID was provided in the request, that value is used; otherwise, a system-generated UUID is assigned. You can use this ID to manage this resource in rel |
| store | object | Indicate which store the product belongs to. |
| title | string | The title of the product. |
| slug | string | URL friendly unique identifier for the product. |
| categories | array | The categories associated with the product, used for filtering and search purposes. |
| tags | array | The tags associated with the product, used for filtering and search purposes. |
| image_urls | array | URLs of the product images. |
| url | string | The URL of the product page in your online storefront. |
| published | boolean | To indicate whether the product has been published. |
| description | string | Description of the product. |
| variants | array | Product variant information. |
| source_created_at | string | The date and time, formatted in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), indicating when the product was created in your e-commerce system. |
| source_updated_at | string | The date and time, formatted in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), indicating when the product was updated in your e-commerce system. |
| created_at | string | The date and time, formatted in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), indicating when the product was created in AfterShip system. |
| updated_at | string | The date and time, formatted in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), indicating when the product was updated in AfterShip system. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/aftership/main/json-schema/aftership-product-v1-schema.json",
"title": "Product",
"description": "The `Product` model represents an individual item of your store. It includes essential attributes such as product title, price, variants, SKU, and so on. This model is crucial for cataloging and managing the store's inventory effectively.",
"x-generated": "2026-10-12",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/aftership-products-api-openapi.yml#/components/schemas/Product.v1",
"x-stoplight": {
"id": "180c3db461386"
},
"type": "object",
"x-tags": [
"Resource"
],
"additionalProperties": false,
"required": [
"id",
"title",
"image_urls",
"variants"
],
"properties": {
"id": {
"type": "string",
"description": "The unique identifier of the product. If a custom ID was provided in the request, that value is used; otherwise, a system-generated UUID is assigned. You can use this ID to manage this resource in related API calls.",
"readOnly": true
},
"store": {
"type": "object",
"x-stoplight": {
"id": "1m62f1y5411hp"
},
"description": "Indicate which store the product belongs to.",
"properties": {
"id": {
"type": "string",
"x-stoplight": {
"id": "nzslg67cs6zdb"
},
"description": "The store ID by AfterShip. Please refer to the store resource for the details.",
"readOnly": true
}
}
},
"title": {
"type": "string",
"description": "The title of the product."
},
"slug": {
"type": "string",
"description": "URL friendly unique identifier for the product."
},
"categories": {
"type": "array",
"description": "The categories associated with the product, used for filtering and search purposes.",
"items": {
"type": "string"
}
},
"tags": {
"type": "array",
"description": "The tags associated with the product, used for filtering and search purposes.",
"items": {
"type": "string"
}
},
"image_urls": {
"type": "array",
"description": "URLs of the product images.",
"items": {
"type": "string"
}
},
"url": {
"type": "string",
"description": "The URL of the product page in your online storefront."
},
"published": {
"type": "boolean",
"description": "To indicate whether the product has been published.",
"default": true
},
"description": {
"type": "string",
"description": "Description of the product."
},
"variants": {
"type": "array",
"uniqueItems": true,
"minItems": 1,
"description": "Product variant information.",
"items": {
"$ref": "#/$defs/Product_variant.v1"
}
},
"source_created_at": {
"type": "string",
"description": "The date and time, formatted in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), indicating when the product was created in your e-commerce system."
},
"source_updated_at": {
"type": "string",
"description": "The date and time, formatted in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), indicating when the product was updated in your e-commerce system."
},
"created_at": {
"type": "string",
"description": "The date and time, formatted in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), indicating when the product was created in AfterShip system."
},
"updated_at": {
"type": "string",
"description": "The date and time, formatted in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), indicating when the product was updated in AfterShip system."
}
},
"$defs": {
"Product_variant.v1": {
"title": "product_variant.v1",
"x-stoplight": {
"id": "9x15f6937soxi"
},
"type": "object",
"required": [
"id",
"sku",
"price"
],
"properties": {
"id": {
"type": "string",
"description": "A unique identifier for the product variant in your system.",
"maxLength": 32,
"x-stoplight": {
"id": "fv6ts8zm4xms8"
}
},
"sku": {
"type": "string",
"description": "The product SKU of the product variant.",
"maxLength": 1024
},
"price": {
"type": "string",
"description": "The price of the product variant.",
"maxLength": 100
},
"available_quantity": {
"type": "integer",
"description": "Available quantity of the product variant."
},
"image_urls": {
"type": "array",
"maxItems": 100,
"description": "The product image URL of the product variant.",
"items": {
"type": "string",
"maxLength": 1024
}
},
"title": {
"type": "string",
"description": "The title of the product variant.",
"maxLength": 1024
},
"compare_at_price": {
"type": "string",
"description": "The original price of the item before an adjustment or a sale.",
"maxLength": 100
},
"weight": {
"$ref": "#/$defs/Weight.v1",
"description": "The weight information of the product variant."
},
"allow_backorder": {
"type": "boolean",
"description": "To specify whether customers are permitted to place an order for this out-of-stock product variant."
},
"options": {
"type": "array",
"uniqueItems": true,
"minItems": 1,
"description": "The custom product variant properties, such as size, color, and material.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The field name of the custom product property.",
"maxLength": 256
},
"value": {
"type": "string",
"description": "The value of the custom product property.",
"maxLength": 256
}
}
}
}
}
},
"Weight.v1": {
"description": "The unit weight of the item.",
"title": "Weight",
"x-stoplight": {
"id": "6ffc0efbd7bf5"
},
"type": "object",
"x-tags": [
"Primitive"
],
"properties": {
"unit": {
"type": "string",
"enum": [
"kg",
"lb",
"oz",
"g"
],
"description": "The weight unit eg: g or kg."
},
"value": {
"type": "number",
"description": "The value of the weight."
}
}
}
}
}
Work with this as data
Every JSON Schema 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 schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.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.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/json-schemas/aftership-product-v1"
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.