---
title: "Upload extension"
method: POST
path: "/v1/extensions"
tags: ["Extensions"]
---

# Upload extension

`POST /v1/extensions`

Upload a Chrome extension (.zip/.crx file or Chrome Web Store URL) for the organization

## Response `201`

Default Response

- ExtensionUploadResponse
  - `id` string, required — Unique extension identifier (e.g., ext_12345)
  - `name` string, required — Extension name
  - `createdAt` string, required — Creation timestamp
  - `updatedAt` string, required — Last update timestamp

## Other responses

- `400` — Default Response
- `409` — Default Response
- `500` — Default Response

## Changes

- **2026-01-08** `97dcad9b050e` — 1 breaking, 4 info
  - the `file` request property contentEncoding changed from `` to `binary`
  - the `file` request property type was generalized from no type to `string`, and format from no format to `binary`
  - the response property `context/items/params` became required for the status `400`
  - the response property `context/items/params` became required for the status `409`
  - …1 more
- **2025-08-21** `b5496a8d20fa` — 1 info
  - added optional request body
- **2025-08-21** `44f289567c28` — 1 breaking, 1 info
  - removed the required property `extensionId` from the response with the `201` status
  - added the required property `id` to the response with the `201` status
- **2025-08-21** `094cfe5a2443` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/steel-dev/apis/steel-api/changes/v1/extensions/post.md)

---

[API](https://skmtc.dev/steel-dev/apis/steel-api.md) · [All operations](https://skmtc.dev/steel-dev/apis/steel-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/steel-dev/steel-api/revisions/39bc3eb693fb/schema)
