Elastic Path · Schema

Files Introduction

Products are the items or services that you might want to sell in your store. In Product Experience Manager, products can also have associated rich media assets, such as product images or a file containing additional product details. You can do this using the Files API.

CommerceHeadless CommerceComposable CommerceE-CommerceB2BProductCatalogsOrderPromotionsSubscriptionPayments
View JSON Schema on GitHub

JSON Schema

files.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/elastic-path/main/json-schema/files.json",
  "title": "Files Introduction",
  "description": "Products are the items or services that you might want to sell in your store. In Product Experience Manager, products can also have associated rich media assets, such as product images or a file containing additional product details. You can do this using the Files API.",
  "version": "26.0212.7185155",
  "$defs": {
    "ErrorResponse": {
      "required": [
        "errors"
      ],
      "properties": {
        "errors": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "File": {
      "properties": {
        "id": {
          "description": "The unique identifier for this file.",
          "$ref": "#/components/schemas/UUID"
        },
        "type": {
          "description": "The type represents the object being returned.",
          "type": "string",
          "example": "file"
        },
        "file_name": {
          "description": "The name of the file.",
          "type": "string",
          "example": "file_name.jpg"
        },
        "mime_type": {
          "description": "The mime type of the file.",
          "type": "string",
          "example": "image/jpeg"
        },
        "file_size": {
          "description": "The size of the file. Required when uploading files.",
          "type": "integer",
          "example": 36000
        },
        "public": {
          "description": "DEPRECATED Whether the file public or not. Required when uploading files.",
          "type": "boolean",
          "example": true
        },
        "meta": {
          "$ref": "#/components/schemas/FileMeta"
        },
        "links": {
          "$ref": "#/components/schemas/Links"
        },
        "link": {
          "$ref": "#/components/schemas/FileLink"
        }
      }
    },
    "FileMeta": {
      "properties": {
        "timestamps": {
          "type": "object",
          "description": "The date and time the file was created.",
          "properties": {
            "created_at": {
              "description": "The date and time the file was created.",
              "type": "string",
              "example": "2023-10-11T13:02:25.293Z"
            }
          }
        },
        "dimensions": {
          "description": "The file dimensions.",
          "type": "object",
          "properties": {
            "width": {
              "description": "The width of the file.",
              "type": "integer",
              "example": 1800
            },
            "height": {
              "description": "The height of the file.",
              "type": "integer",
              "example": 1000
            }
          }
        }
      }
    },
    "ResultsMeta": {
      "properties": {
        "page": {
          "type": "object",
          "description": "Contains the results for the entire collection.",
          "properties": {
            "limit": {
              "description": "The maximum number of records for all pages.",
              "type": "integer",
              "example": 100
            },
            "offset": {
              "description": "The current offset by number of pages.",
              "type": "integer",
              "example": 0
            },
            "current": {
              "description": "The current number of pages.",
              "type": "integer",
              "example": 1
            },
            "total": {
              "description": "The total number of records for the entire collection.",
              "type": "integer",
              "example": 1
            }
          }
        },
        "results": {
          "type": "object",
          "description": "Contains the results for the entire collection.",
          "properties": {
            "total": {
              "description": "The total number of records for the entire collection.",
              "type": "integer",
              "example": 1
            }
          }
        }
      }
    },
    "Links": {
      "description": "Links are used to allow you to move between requests.",
      "type": "object",
      "properties": {
        "self": {
          "description": "Single entities use a self parameter with a link to that specific resource.",
          "type": "string",
          "example": "https://https://euwest.api.elasticpath.com//v2/files/ddc28c74-a7df-46be-b262-8fa69a6e7d52"
        }
      }
    },
    "ResultsLinks": {
      "type": "object",
      "description": "Links are used to allow you to move between requests.",
      "properties": {
        "self": {
          "description": "Single entities use a self parameter with a link to that specific resource.",
          "type": [
            "string",
            "null"
          ],
          "example": "https://useast.api.elasticpath.com/v2/files?page[offset]=0&page[limit]=100"
        },
        "first": {
          "description": "Always the first page.",
          "type": [
            "string",
            "null"
          ],
          "example": "https://useast.api.elasticpath.com/v2/files?page[offset]=0&page[limit]=100"
        },
        "last": {
          "description": "This is `null` if there is only one page.",
          "type": [
            "string",
            "null"
          ],
          "example": "https://useast.api.elasticpath.com/v2/files?page[offset]=10&page[limit]=100"
        }
      }
    },
    "FileLink": {
      "type": "object",
      "description": "The publicly available URL for this file.",
      "properties": {
        "href": {
          "description": "The publicly available URL for this file.",
          "type": "string",
          "example": "https://files-eu.epusercontent.com/e8c53cb0-120d-4ea5-8941-ce74dec06038/f8cf26b3-6d38-4275-937a-624a83994702.png"
        }
      }
    },
    "UUID": {
      "type": "string",
      "format": "uuid",
      "example": "00000000-0000-0000-0000-000000000000"
    },
    "Error": {
      "required": [
        "status",
        "title"
      ],
      "properties": {
        "status": {
          "type": "integer",
          "format": "int",
          "description": "The HTTP response code of the error.",
          "example": 500
        },
        "title": {
          "type": "string",
          "description": "A brief summary of the error.",
          "example": "Internal server error"
        },
        "detail": {
          "type": "string",
          "description": "Optional additional detail about the error.",
          "example": "An internal error has occurred."
        },
        "request_id": {
          "type": "string",
          "description": "Internal request ID.",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "meta": {
          "type": "object",
          "description": "Additional supporting meta data for the error.",
          "example": {
            "missing_ids": [
              "e7d50bd5-1833-43c0-9848-f9d325b08be8"
            ]
          }
        }
      }
    }
  }
}

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.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/files"
All schemas
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.