Update File

Updates file metadata (title, type, visibility) and optionally replaces the file content in storage. If the file content is updated, the old file is replaced in Cloudflare R2. Triggers product update events for all items using this file.

PATCH/api/v1/{team_slug}/{app_slug}/files/{file_id}
API
Management
Updated
Apr 26, 2026

management-api:PATCH:/api/v1/{team_slug}/{app_slug}/files/{file_id}

Updates file metadata (title, type, visibility) and optionally replaces the file content in storage. If the file content is updated, the old file is replaced in Cloudflare R2. Triggers product update events for all items using this file.

API ownership

  • API family: Management API
  • Best for: Trusted back-office workflows that create, update, organize, or delete merchant-owned data.
  • Do not use from: Browser-only storefront code or public clients.
  • Guide route: /apis/management/latest

The OpenAPI contract defines the method, path, parameters, request body, and responses for this operation.

Operation

  • Method: PATCH
  • Path: /api/v1/\{team_slug\}/\{app_slug\}/files/\{file_id\}
  • Summary: Update File
  • Description: Updates file metadata (title, type, visibility) and optionally replaces the file content in storage. If the file content is updated, the old file is replaced in Cloudflare R2. Triggers product update events for all items using this file.
  • OpenAPI contract: management-api
  • Operation ID: Not documented in the OpenAPI contract.

Operation key uses API family, method, and path because this OpenAPI contract does not publish an operation ID.

Parameters3 parameters
NameInRequiredTypeDescription
app_slugpathYesstringApp slug
team_slugpathYesstringTeam slug
file_idpathYesstringFile ID
Request bodyNo documented body
  • Required: No
  • Description: Not documented in the OpenAPI contract.
  • Content: application/x-www-form-urlencoded (object)

Schema

PropertyTypeRequiredDetails
titlestringNoFile title
typestringNoFile type
filestring (binary)Noformat: binary File file to upload

Generated example (synthetic):

{
  "title": "string",
  "type": "string",
  "file": "string"
}
Responses4 statuses
StatusDescriptionContent
200File updated successfullyapplication/json (object)
401Unauthorized accessapplication/json (object)
404File not foundapplication/json (object)
500Internal server errorapplication/json (object)

200 - object

File Response

PropertyTypeRequiredDetails
dataobjectNo-
detailsstring[]NoAdditional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes
successbooleanNo-
File
PropertyTypeRequiredDetails
attributesobject[]No-
created_atstringNo-
folder_idstringNo-
idstringNo-
publicbooleanNo-
titlestringNo-
translationsobjectNo-
typestringNo-
updated_atstringNo-
urlstringNo-
Attribute
PropertyTypeRequiredDetails
created_atstringNo-
descriptionstringNo-
filterablebooleanNo-
idstringNo-
keystringNo-
namestringNo-
template_keystringNo-
template_namestringNo-
translatablebooleanNo-
translationsobjectNo-
updated_atstringNo-
valuesobjectNo-
File Translation
PropertyTypeRequiredDetails
titleobject[]No-
typeobject[]No-
{
  "data": {
    "attributes": [
      {
        "created_at": "string",
        "description": "string",
        "filterable": false,
        "id": "string",
        "key": "string",
        "name": "string",
        "template_key": "string",
        "template_name": "string",
        "translatable": false,
        "translations": {
          "description": null,
          "name": null
        },
        "updated_at": "string",
        "values": {}
      }
    ],
    "created_at": "string",
    "folder_id": "string",
    "id": "string",
    "public": false,
    "title": "string",
    "translations": {
      "title": [
        {
          "id": null,
          "locale": null,
          "value": null
        }
      ],
      "type": [
        {
          "id": null,
          "locale": null,
          "value": null
        }
      ]
    },
    "type": "string",
    "updated_at": "string",
    "url": "string"
  },
  "details": [
    "string"
  ],
  "success": false
}

401 - object

Error Message

PropertyTypeRequiredDetails
detailsstring[]No-
messagestringNo-
successbooleanNo-

Generated example (synthetic):

{
  "details": [
    "string"
  ],
  "message": "string",
  "success": false
}

404 - object

Error Message

PropertyTypeRequiredDetails
detailsstring[]No-
messagestringNo-
successbooleanNo-

Generated example (synthetic):

{
  "details": [
    "string"
  ],
  "message": "string",
  "success": false
}

500 - object

Error Message

PropertyTypeRequiredDetails
detailsstring[]No-
messagestringNo-
successbooleanNo-

Generated example (synthetic):

{
  "details": [
    "string"
  ],
  "message": "string",
  "success": false
}

Contract identity

Use these fields to confirm you are implementing the intended endpoint contract.

  • API family: Management API
  • Method: PATCH
  • Path: /api/v1/\{team_slug\}/\{app_slug\}/files/\{file_id\}
  • Operation ID: Not documented in the OpenAPI contract.
  • OpenAPI tag: Files
  • OpenAPI summary: Update File

Update File

# Update File Updates file metadata (title, type, visibility) and optionally replaces the file content in storage. If the file content is updated, the old file is replaced in Cloudflare R2. Triggers product update events for all items using this file.
PATCH /api/v1/{team_slug}/{app_slug}/files/{file_id}
Purpose

Updates file metadata (title, type, visibility) and optionally replaces the file content in storage.

Required inputs

app_slug path team_slug path file_id path

Primary response

200 ยท File updated successfully

Operation key

management-api:PATCH:/api/v1/{team_slug}/{app_slug}/files/{file_id}

## API ownership - API family: Management API - Best for: Trusted back-office workflows that create, update, organize, or delete merchant-owned data. - Do not use from: Browser-only storefront code or public clients. - Guide route: [/apis/management/latest](/apis/management/latest) The OpenAPI contract defines the method, path, parameters, request body, and responses for this operation. ## Operation - Method: `PATCH` - Path: `/api/v1/{team_slug}/{app_slug}/files/{file_id}` - Summary: Update File - Description: Updates file metadata (title, type, visibility) and optionally replaces the file content in storage. If the file content is updated, the old file is replaced in Cloudflare R2. Triggers product update events for all items using this file. - OpenAPI contract: management-api - Operation ID: Not documented in the OpenAPI contract. - Stable operation key: `management-api:PATCH:/api/v1/{team_slug}/{app_slug}/files/{file_id}` Operation key uses API family, method, and path because this OpenAPI contract does not publish an operation ID. ## Parameters | Name | In | Required | Type | Description | | --- | --- | --- | --- | --- | | app_slug | path | Yes | string | App slug | | team_slug | path | Yes | string | Team slug | | file_id | path | Yes | string | File ID | ## Request body - Required: No - Description: Not documented in the OpenAPI contract. - Content: application/x-www-form-urlencoded (object) ### Schema | Property | Type | Required | Details | | --- | --- | --- | --- | | `title` | string | No | File title | | `type` | string | No | File type | | `file` | string (binary) | No | format: binary File file to upload | **Generated example (synthetic):** ```json { "title": "string", "type": "string", "file": "string" } ``` ## Responses | Status | Description | Content | | --- | --- | --- | | 200 | File updated successfully | application/json (object) | | 401 | Unauthorized access | application/json (object) | | 404 | File not found | application/json (object) | | 500 | Internal server error | application/json (object) | ### 200 - object #### File Response | Property | Type | Required | Details | | --- | --- | --- | --- | | `data` | object | No | - | | `details` | string[] | No | Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes | | `success` | boolean | No | - | ##### File | Property | Type | Required | Details | | --- | --- | --- | --- | | `attributes` | object[] | No | - | | `created_at` | string | No | - | | `folder_id` | string | No | - | | `id` | string | No | - | | `public` | boolean | No | - | | `title` | string | No | - | | `translations` | object | No | - | | `type` | string | No | - | | `updated_at` | string | No | - | | `url` | string | No | - | ##### Attribute | Property | Type | Required | Details | | --- | --- | --- | --- | | `created_at` | string | No | - | | `description` | string | No | - | | `filterable` | boolean | No | - | | `id` | string | No | - | | `key` | string | No | - | | `name` | string | No | - | | `template_key` | string | No | - | | `template_name` | string | No | - | | `translatable` | boolean | No | - | | `translations` | object | No | - | | `updated_at` | string | No | - | | `values` | object | No | - | ##### File Translation | Property | Type | Required | Details | | --- | --- | --- | --- | | `title` | object[] | No | - | | `type` | object[] | No | - |
Generated example (synthetic) ```json { "data": { "attributes": [ { "created_at": "string", "description": "string", "filterable": false, "id": "string", "key": "string", "name": "string", "template_key": "string", "template_name": "string", "translatable": false, "translations": { "description": null, "name": null }, "updated_at": "string", "values": {} } ], "created_at": "string", "folder_id": "string", "id": "string", "public": false, "title": "string", "translations": { "title": [ { "id": null, "locale": null, "value": null } ], "type": [ { "id": null, "locale": null, "value": null } ] }, "type": "string", "updated_at": "string", "url": "string" }, "details": [ "string" ], "success": false } ```
### 401 - object #### Error Message | Property | Type | Required | Details | | --- | --- | --- | --- | | `details` | string[] | No | - | | `message` | string | No | - | | `success` | boolean | No | - | **Generated example (synthetic):** ```json { "details": [ "string" ], "message": "string", "success": false } ``` ### 404 - object #### Error Message | Property | Type | Required | Details | | --- | --- | --- | --- | | `details` | string[] | No | - | | `message` | string | No | - | | `success` | boolean | No | - | **Generated example (synthetic):** ```json { "details": [ "string" ], "message": "string", "success": false } ``` ### 500 - object #### Error Message | Property | Type | Required | Details | | --- | --- | --- | --- | | `details` | string[] | No | - | | `message` | string | No | - | | `success` | boolean | No | - | **Generated example (synthetic):** ```json { "details": [ "string" ], "message": "string", "success": false } ``` ## Contract identity Use these fields to confirm you are implementing the intended endpoint contract. - API family: Management API - Method: `PATCH` - Path: `/api/v1/{team_slug}/{app_slug}/files/{file_id}` - Operation ID: Not documented in the OpenAPI contract. - Stable operation key: `management-api:PATCH:/api/v1/{team_slug}/{app_slug}/files/{file_id}` - OpenAPI tag: Files - OpenAPI summary: Update File