---
title: "Upload FileDescriptorSet"
method: POST
path: "/descriptors"
tags: ["descriptors"]
---

# Upload FileDescriptorSet

`POST /descriptors`

Accepts binary Protocol Buffers FileDescriptorSet. Registers descriptors for dynamic service discovery. Returns service IDs for later removal via DELETE /services/{serviceID}.

## Response `200`

Descriptors registered successfully

- AddDescriptorsResponse — Result of registering an uploaded FileDescriptorSet.
  - `message` string, required — Human-readable result of the upload.
  - `time` string, date-time, required — Server time when the response was produced (RFC 3339).
  - `serviceIDs` string[], required — Service IDs (e.g. helloworld.Greeter) registered. Use DELETE /services/{serviceID} to remove.

## Other responses

- `400` — Invalid or empty FileDescriptorSet
- `413` — Payload Too Large
- `500` — Internal Server Error

## Changes

> 20 revisions in range; 3 could not be searched.

- **2026-02-14** `c6b00acb83e0` — 1 info
  - added the required property `serviceIDs` to the response with the `200` status
- **2026-02-14** `001f2b1780f3` — 1 info
  - endpoint added
- **2025-12-06** `8784e347c130` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/bavix/apis/gripmock-api-schema/changes/descriptors/post.md)

---

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