> For the complete documentation index, see [llms.txt](https://docs.appear.sh/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.appear.sh/api/operations.md).

# Operations

## List Operations

> List all Operations items.\
> \
> Operation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs.

```json
{"openapi":"3.1.0","info":{"title":"Appear API","version":"2.0.0"},"tags":[{"name":"Operations"}],"servers":[{"url":"https://api.appear.sh","description":"Primary public endpoint"}],"security":[{"projectApiKey":[]},{"personalAccessToken":[]}],"components":{"securitySchemes":{"projectApiKey":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"Project API key authentication. Use your project API key as a Bearer token in the Authorization header."},"personalAccessToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Personal access token authentication. Use your personal access token as a Bearer token in the Authorization header. Suitable for MCP integrations, CLI tools, and other OAuth flows."}},"parameters":{"versionId":{"schema":{"$ref":"#/components/schemas/versionId"},"required":true,"description":"Catalog version identifier","in":"path","name":"versionId"}},"schemas":{"versionId":{"type":"string","minLength":30,"maxLength":30,"description":"Catalog version identifier"},"Operation":{"type":"object","properties":{"id":{"type":"string","minLength":29,"maxLength":29,"default":"op_agpzwhz73fyz3hi6g2xprah7ie","description":"Object ID with prefix \"op_\""},"method":{"type":"string","description":"HTTP method for the operation (e.g., get, post)."},"pathId":{"type":"string","minLength":31,"maxLength":31,"description":"Object ID with prefix \"path_\""},"summary":{"type":"string","description":"Short summary of the operation."},"description":{"type":"string","description":"Markdown description of the operation."},"descriptionBlocks":{"anyOf":[{"$ref":"#/components/schemas/ProseMirrorContentSchema"},{"type":"array","items":{"$ref":"#/components/schemas/ProseMirrorContentSchema"}}],"description":"Operation description represented as ProseMirror JSON."},"deprecated":{"type":"boolean","default":false},"operationId":{"type":"string","description":"Stable operation identifier mirroring OpenAPI operationId."},"tags":{"type":"array","items":{"type":"string"},"default":[],"description":"Tags applied to the operation for grouping."},"kvStorage":{"type":"object","additionalProperties":{},"default":{},"description":"Custom metadata attached to the operation; kept when importing/exporting API definitions."},"security":{"type":"array","items":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"description":"Authentication requirements for this operation; each entry maps a security scheme id to the scopes/permissions it needs.","url":"https://swagger.io/specification/#security-requirement-object"},"versionId":{"type":"string","minLength":30,"maxLength":30,"description":"Object ID with prefix \"ver_\""},"updatedAt":{"type":["string","null"],"format":"date-time","default":"2026-07-25T21:12:24.281Z"}},"required":["method","pathId","operationId","versionId"],"description":"Operation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs."},"ProseMirrorContentSchema":{"type":"object","properties":{"type":{"type":"string"},"attrs":{"type":"object","additionalProperties":{}},"content":{"type":"array","items":{"$ref":"#/components/schemas/ProseMirrorContentSchema"}},"marks":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"attrs":{"type":"object","additionalProperties":{}}},"required":["type"],"additionalProperties":{}}},"text":{"type":"string"}},"additionalProperties":{},"description":"A recursive schema modeling ProseMirror document/node structure. It mirrors the ProseMirror JSON format as described at https://prosemirror.net/docs/guide/#schema.serialization. Each node may contain a `type`, optional `attrs`, children in `content`, formatting `marks`, and inline `text`."},"PaginationMetadata":{"type":"object","properties":{"nextCursor":{"type":["string","null"]},"hasMore":{"type":"boolean"},"limit":{"type":"number"}},"required":["nextCursor","hasMore","limit"],"description":"Pagination metadata"}},"responses":{"BadRequestError":{"description":"Invalid request","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"UnauthorizedError":{"description":"Unauthorized","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"ForbiddenError":{"description":"Forbidden","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"InternalServerError":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}}}},"paths":{"/v2/catalog/versions/{versionId}/operations":{"get":{"summary":"List Operations","description":"List all Operations items.\n\nOperation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs.","operationId":"list-operations","tags":["Operations"],"parameters":[{"$ref":"#/components/parameters/versionId"},{"schema":{"type":"string","description":"Cursor for pagination (item ID)"},"required":false,"description":"Cursor for pagination (item ID)","name":"after","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":1000,"default":50,"description":"Maximum number of items to return (default: 50, max: 1000)"},"required":false,"description":"Maximum number of items to return (default: 50, max: 1000)","name":"limit","in":"query"},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Sort order. Use 'prop' for ascending, '-prop' for descending. Multiple params supported (e.g. sort=name&sort=-createdAt)"},"required":false,"description":"Sort order. Use 'prop' for ascending, '-prop' for descending. Multiple params supported (e.g. sort=name&sort=-createdAt)","name":"sort","in":"query"}],"responses":{"200":{"description":"List of Operations","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Operation"}},"pagination":{"$ref":"#/components/schemas/PaginationMetadata"}},"required":["items","pagination"],"description":"Operations collection"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"500":{"$ref":"#/components/responses/InternalServerError"}}}}}}
```

## Create Operation

> Create a new Operation item.\
> \
> Operation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs.

```json
{"openapi":"3.1.0","info":{"title":"Appear API","version":"2.0.0"},"tags":[{"name":"Operations"}],"servers":[{"url":"https://api.appear.sh","description":"Primary public endpoint"}],"security":[{"projectApiKey":[]},{"personalAccessToken":[]}],"components":{"securitySchemes":{"projectApiKey":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"Project API key authentication. Use your project API key as a Bearer token in the Authorization header."},"personalAccessToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Personal access token authentication. Use your personal access token as a Bearer token in the Authorization header. Suitable for MCP integrations, CLI tools, and other OAuth flows."}},"parameters":{"versionId":{"schema":{"$ref":"#/components/schemas/versionId"},"required":true,"description":"Catalog version identifier","in":"path","name":"versionId"}},"schemas":{"versionId":{"type":"string","minLength":30,"maxLength":30,"description":"Catalog version identifier"},"Operation":{"type":"object","properties":{"id":{"type":"string","minLength":29,"maxLength":29,"default":"op_agpzwhz73fyz3hi6g2xprah7ie","description":"Object ID with prefix \"op_\""},"method":{"type":"string","description":"HTTP method for the operation (e.g., get, post)."},"pathId":{"type":"string","minLength":31,"maxLength":31,"description":"Object ID with prefix \"path_\""},"summary":{"type":"string","description":"Short summary of the operation."},"description":{"type":"string","description":"Markdown description of the operation."},"descriptionBlocks":{"anyOf":[{"$ref":"#/components/schemas/ProseMirrorContentSchema"},{"type":"array","items":{"$ref":"#/components/schemas/ProseMirrorContentSchema"}}],"description":"Operation description represented as ProseMirror JSON."},"deprecated":{"type":"boolean","default":false},"operationId":{"type":"string","description":"Stable operation identifier mirroring OpenAPI operationId."},"tags":{"type":"array","items":{"type":"string"},"default":[],"description":"Tags applied to the operation for grouping."},"kvStorage":{"type":"object","additionalProperties":{},"default":{},"description":"Custom metadata attached to the operation; kept when importing/exporting API definitions."},"security":{"type":"array","items":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"description":"Authentication requirements for this operation; each entry maps a security scheme id to the scopes/permissions it needs.","url":"https://swagger.io/specification/#security-requirement-object"},"versionId":{"type":"string","minLength":30,"maxLength":30,"description":"Object ID with prefix \"ver_\""},"updatedAt":{"type":["string","null"],"format":"date-time","default":"2026-07-25T21:12:24.281Z"}},"required":["method","pathId","operationId","versionId"],"description":"Operation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs."},"ProseMirrorContentSchema":{"type":"object","properties":{"type":{"type":"string"},"attrs":{"type":"object","additionalProperties":{}},"content":{"type":"array","items":{"$ref":"#/components/schemas/ProseMirrorContentSchema"}},"marks":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"attrs":{"type":"object","additionalProperties":{}}},"required":["type"],"additionalProperties":{}}},"text":{"type":"string"}},"additionalProperties":{},"description":"A recursive schema modeling ProseMirror document/node structure. It mirrors the ProseMirror JSON format as described at https://prosemirror.net/docs/guide/#schema.serialization. Each node may contain a `type`, optional `attrs`, children in `content`, formatting `marks`, and inline `text`."}},"responses":{"BadRequestError":{"description":"Invalid request","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"UnauthorizedError":{"description":"Unauthorized","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"ForbiddenError":{"description":"Forbidden","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"ConflictError":{"description":"Conflict","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"InternalServerError":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}}}},"paths":{"/v2/catalog/versions/{versionId}/operations":{"post":{"summary":"Create Operation","description":"Create a new Operation item.\n\nOperation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs.","operationId":"create-operation","tags":["Operations"],"parameters":[{"$ref":"#/components/parameters/versionId"}],"requestBody":{"description":"Payload to create a new Operation item","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}}},"responses":{"201":{"description":"Operation created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"409":{"$ref":"#/components/responses/ConflictError"},"500":{"$ref":"#/components/responses/InternalServerError"}}}}}}
```

## Get Operation

> Get a Operation item by its id.\
> \
> Operation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs.

```json
{"openapi":"3.1.0","info":{"title":"Appear API","version":"2.0.0"},"tags":[{"name":"Operations"}],"servers":[{"url":"https://api.appear.sh","description":"Primary public endpoint"}],"security":[{"projectApiKey":[]},{"personalAccessToken":[]}],"components":{"securitySchemes":{"projectApiKey":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"Project API key authentication. Use your project API key as a Bearer token in the Authorization header."},"personalAccessToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Personal access token authentication. Use your personal access token as a Bearer token in the Authorization header. Suitable for MCP integrations, CLI tools, and other OAuth flows."}},"parameters":{"versionId":{"schema":{"$ref":"#/components/schemas/versionId"},"required":true,"description":"Catalog version identifier","in":"path","name":"versionId"}},"schemas":{"versionId":{"type":"string","minLength":30,"maxLength":30,"description":"Catalog version identifier"},"Operation":{"type":"object","properties":{"id":{"type":"string","minLength":29,"maxLength":29,"default":"op_agpzwhz73fyz3hi6g2xprah7ie","description":"Object ID with prefix \"op_\""},"method":{"type":"string","description":"HTTP method for the operation (e.g., get, post)."},"pathId":{"type":"string","minLength":31,"maxLength":31,"description":"Object ID with prefix \"path_\""},"summary":{"type":"string","description":"Short summary of the operation."},"description":{"type":"string","description":"Markdown description of the operation."},"descriptionBlocks":{"anyOf":[{"$ref":"#/components/schemas/ProseMirrorContentSchema"},{"type":"array","items":{"$ref":"#/components/schemas/ProseMirrorContentSchema"}}],"description":"Operation description represented as ProseMirror JSON."},"deprecated":{"type":"boolean","default":false},"operationId":{"type":"string","description":"Stable operation identifier mirroring OpenAPI operationId."},"tags":{"type":"array","items":{"type":"string"},"default":[],"description":"Tags applied to the operation for grouping."},"kvStorage":{"type":"object","additionalProperties":{},"default":{},"description":"Custom metadata attached to the operation; kept when importing/exporting API definitions."},"security":{"type":"array","items":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"description":"Authentication requirements for this operation; each entry maps a security scheme id to the scopes/permissions it needs.","url":"https://swagger.io/specification/#security-requirement-object"},"versionId":{"type":"string","minLength":30,"maxLength":30,"description":"Object ID with prefix \"ver_\""},"updatedAt":{"type":["string","null"],"format":"date-time","default":"2026-07-25T21:12:24.281Z"}},"required":["method","pathId","operationId","versionId"],"description":"Operation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs."},"ProseMirrorContentSchema":{"type":"object","properties":{"type":{"type":"string"},"attrs":{"type":"object","additionalProperties":{}},"content":{"type":"array","items":{"$ref":"#/components/schemas/ProseMirrorContentSchema"}},"marks":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"attrs":{"type":"object","additionalProperties":{}}},"required":["type"],"additionalProperties":{}}},"text":{"type":"string"}},"additionalProperties":{},"description":"A recursive schema modeling ProseMirror document/node structure. It mirrors the ProseMirror JSON format as described at https://prosemirror.net/docs/guide/#schema.serialization. Each node may contain a `type`, optional `attrs`, children in `content`, formatting `marks`, and inline `text`."}},"responses":{"BadRequestError":{"description":"Invalid request","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"UnauthorizedError":{"description":"Unauthorized","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"ForbiddenError":{"description":"Forbidden","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"NotFoundErrorOperation":{"description":"Operation not found","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"InternalServerError":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}}}},"paths":{"/v2/catalog/versions/{versionId}/operations/{id}":{"get":{"summary":"Get Operation","description":"Get a Operation item by its id.\n\nOperation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs.","operationId":"get-operation-by-id","tags":["Operations"],"parameters":[{"$ref":"#/components/parameters/versionId"},{"schema":{"type":"string","minLength":29,"maxLength":29,"description":"Operation identifier"},"required":true,"description":"Operation identifier","name":"id","in":"path"}],"responses":{"200":{"description":"Operation details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundErrorOperation"},"500":{"$ref":"#/components/responses/InternalServerError"}}}}}}
```

## Replace Operation

> Completely replaces a Operation item by its id.\
> \
> Operation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs.

```json
{"openapi":"3.1.0","info":{"title":"Appear API","version":"2.0.0"},"tags":[{"name":"Operations"}],"servers":[{"url":"https://api.appear.sh","description":"Primary public endpoint"}],"security":[{"projectApiKey":[]},{"personalAccessToken":[]}],"components":{"securitySchemes":{"projectApiKey":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"Project API key authentication. Use your project API key as a Bearer token in the Authorization header."},"personalAccessToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Personal access token authentication. Use your personal access token as a Bearer token in the Authorization header. Suitable for MCP integrations, CLI tools, and other OAuth flows."}},"parameters":{"versionId":{"schema":{"$ref":"#/components/schemas/versionId"},"required":true,"description":"Catalog version identifier","in":"path","name":"versionId"}},"schemas":{"versionId":{"type":"string","minLength":30,"maxLength":30,"description":"Catalog version identifier"},"Operation":{"type":"object","properties":{"id":{"type":"string","minLength":29,"maxLength":29,"default":"op_agpzwhz73fyz3hi6g2xprah7ie","description":"Object ID with prefix \"op_\""},"method":{"type":"string","description":"HTTP method for the operation (e.g., get, post)."},"pathId":{"type":"string","minLength":31,"maxLength":31,"description":"Object ID with prefix \"path_\""},"summary":{"type":"string","description":"Short summary of the operation."},"description":{"type":"string","description":"Markdown description of the operation."},"descriptionBlocks":{"anyOf":[{"$ref":"#/components/schemas/ProseMirrorContentSchema"},{"type":"array","items":{"$ref":"#/components/schemas/ProseMirrorContentSchema"}}],"description":"Operation description represented as ProseMirror JSON."},"deprecated":{"type":"boolean","default":false},"operationId":{"type":"string","description":"Stable operation identifier mirroring OpenAPI operationId."},"tags":{"type":"array","items":{"type":"string"},"default":[],"description":"Tags applied to the operation for grouping."},"kvStorage":{"type":"object","additionalProperties":{},"default":{},"description":"Custom metadata attached to the operation; kept when importing/exporting API definitions."},"security":{"type":"array","items":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"description":"Authentication requirements for this operation; each entry maps a security scheme id to the scopes/permissions it needs.","url":"https://swagger.io/specification/#security-requirement-object"},"versionId":{"type":"string","minLength":30,"maxLength":30,"description":"Object ID with prefix \"ver_\""},"updatedAt":{"type":["string","null"],"format":"date-time","default":"2026-07-25T21:12:24.281Z"}},"required":["method","pathId","operationId","versionId"],"description":"Operation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs."},"ProseMirrorContentSchema":{"type":"object","properties":{"type":{"type":"string"},"attrs":{"type":"object","additionalProperties":{}},"content":{"type":"array","items":{"$ref":"#/components/schemas/ProseMirrorContentSchema"}},"marks":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"attrs":{"type":"object","additionalProperties":{}}},"required":["type"],"additionalProperties":{}}},"text":{"type":"string"}},"additionalProperties":{},"description":"A recursive schema modeling ProseMirror document/node structure. It mirrors the ProseMirror JSON format as described at https://prosemirror.net/docs/guide/#schema.serialization. Each node may contain a `type`, optional `attrs`, children in `content`, formatting `marks`, and inline `text`."}},"responses":{"BadRequestError":{"description":"Invalid request","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"UnauthorizedError":{"description":"Unauthorized","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"ForbiddenError":{"description":"Forbidden","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"NotFoundErrorOperation":{"description":"Operation not found","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"InternalServerError":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}}}},"paths":{"/v2/catalog/versions/{versionId}/operations/{id}":{"post":{"summary":"Replace Operation","description":"Completely replaces a Operation item by its id.\n\nOperation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs.","operationId":"replace-operation-by-id","tags":["Operations"],"parameters":[{"$ref":"#/components/parameters/versionId"},{"schema":{"type":"string","minLength":29,"maxLength":29,"description":"Operation identifier"},"required":true,"description":"Operation identifier","name":"id","in":"path"}],"requestBody":{"description":"Payload to replace the Operation item by its id","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}}},"responses":{"200":{"description":"Operation replaced","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}}},"201":{"description":"Operation created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundErrorOperation"},"500":{"$ref":"#/components/responses/InternalServerError"}}}}}}
```

## Delete Operation

> Delete a Operation item by its id.\
> \
> Operation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs.

```json
{"openapi":"3.1.0","info":{"title":"Appear API","version":"2.0.0"},"tags":[{"name":"Operations"}],"servers":[{"url":"https://api.appear.sh","description":"Primary public endpoint"}],"security":[{"projectApiKey":[]},{"personalAccessToken":[]}],"components":{"securitySchemes":{"projectApiKey":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"Project API key authentication. Use your project API key as a Bearer token in the Authorization header."},"personalAccessToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Personal access token authentication. Use your personal access token as a Bearer token in the Authorization header. Suitable for MCP integrations, CLI tools, and other OAuth flows."}},"parameters":{"versionId":{"schema":{"$ref":"#/components/schemas/versionId"},"required":true,"description":"Catalog version identifier","in":"path","name":"versionId"}},"schemas":{"versionId":{"type":"string","minLength":30,"maxLength":30,"description":"Catalog version identifier"}},"responses":{"BadRequestError":{"description":"Invalid request","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"UnauthorizedError":{"description":"Unauthorized","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"ForbiddenError":{"description":"Forbidden","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"NotFoundErrorOperation":{"description":"Operation not found","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"InternalServerError":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}}}},"paths":{"/v2/catalog/versions/{versionId}/operations/{id}":{"delete":{"summary":"Delete Operation","description":"Delete a Operation item by its id.\n\nOperation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs.","operationId":"delete-operation-by-id","tags":["Operations"],"parameters":[{"$ref":"#/components/parameters/versionId"},{"schema":{"type":"string","minLength":29,"maxLength":29,"description":"Operation identifier"},"required":true,"description":"Operation identifier","name":"id","in":"path"}],"responses":{"204":{"description":"Operation deleted"},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundErrorOperation"},"500":{"$ref":"#/components/responses/InternalServerError"}}}}}}
```

## Update Operation

> Partially updates a Operation item by its id.\
> \
> Operation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs.

```json
{"openapi":"3.1.0","info":{"title":"Appear API","version":"2.0.0"},"tags":[{"name":"Operations"}],"servers":[{"url":"https://api.appear.sh","description":"Primary public endpoint"}],"security":[{"projectApiKey":[]},{"personalAccessToken":[]}],"components":{"securitySchemes":{"projectApiKey":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"Project API key authentication. Use your project API key as a Bearer token in the Authorization header."},"personalAccessToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Personal access token authentication. Use your personal access token as a Bearer token in the Authorization header. Suitable for MCP integrations, CLI tools, and other OAuth flows."}},"parameters":{"versionId":{"schema":{"$ref":"#/components/schemas/versionId"},"required":true,"description":"Catalog version identifier","in":"path","name":"versionId"}},"schemas":{"versionId":{"type":"string","minLength":30,"maxLength":30,"description":"Catalog version identifier"},"ProseMirrorContentSchema":{"type":"object","properties":{"type":{"type":"string"},"attrs":{"type":"object","additionalProperties":{}},"content":{"type":"array","items":{"$ref":"#/components/schemas/ProseMirrorContentSchema"}},"marks":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"attrs":{"type":"object","additionalProperties":{}}},"required":["type"],"additionalProperties":{}}},"text":{"type":"string"}},"additionalProperties":{},"description":"A recursive schema modeling ProseMirror document/node structure. It mirrors the ProseMirror JSON format as described at https://prosemirror.net/docs/guide/#schema.serialization. Each node may contain a `type`, optional `attrs`, children in `content`, formatting `marks`, and inline `text`."},"Operation":{"type":"object","properties":{"id":{"type":"string","minLength":29,"maxLength":29,"default":"op_agpzwhz73fyz3hi6g2xprah7ie","description":"Object ID with prefix \"op_\""},"method":{"type":"string","description":"HTTP method for the operation (e.g., get, post)."},"pathId":{"type":"string","minLength":31,"maxLength":31,"description":"Object ID with prefix \"path_\""},"summary":{"type":"string","description":"Short summary of the operation."},"description":{"type":"string","description":"Markdown description of the operation."},"descriptionBlocks":{"anyOf":[{"$ref":"#/components/schemas/ProseMirrorContentSchema"},{"type":"array","items":{"$ref":"#/components/schemas/ProseMirrorContentSchema"}}],"description":"Operation description represented as ProseMirror JSON."},"deprecated":{"type":"boolean","default":false},"operationId":{"type":"string","description":"Stable operation identifier mirroring OpenAPI operationId."},"tags":{"type":"array","items":{"type":"string"},"default":[],"description":"Tags applied to the operation for grouping."},"kvStorage":{"type":"object","additionalProperties":{},"default":{},"description":"Custom metadata attached to the operation; kept when importing/exporting API definitions."},"security":{"type":"array","items":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"description":"Authentication requirements for this operation; each entry maps a security scheme id to the scopes/permissions it needs.","url":"https://swagger.io/specification/#security-requirement-object"},"versionId":{"type":"string","minLength":30,"maxLength":30,"description":"Object ID with prefix \"ver_\""},"updatedAt":{"type":["string","null"],"format":"date-time","default":"2026-07-25T21:12:24.281Z"}},"required":["method","pathId","operationId","versionId"],"description":"Operation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs."}},"responses":{"BadRequestError":{"description":"Invalid request","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"UnauthorizedError":{"description":"Unauthorized","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"ForbiddenError":{"description":"Forbidden","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"NotFoundErrorOperation":{"description":"Operation not found","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"InternalServerError":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}}}},"paths":{"/v2/catalog/versions/{versionId}/operations/{id}":{"patch":{"summary":"Update Operation","description":"Partially updates a Operation item by its id.\n\nOperation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs.","operationId":"update-operation-by-id","tags":["Operations"],"parameters":[{"$ref":"#/components/parameters/versionId"},{"schema":{"type":"string","minLength":29,"maxLength":29,"description":"Operation identifier"},"required":true,"description":"Operation identifier","name":"id","in":"path"}],"requestBody":{"description":"Partial payload to update the Operation item by its id","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":29,"maxLength":29,"default":"op_agpzwhz73fyz3hi6hsf2ev72hm","description":"Object ID with prefix \"op_\""},"method":{"type":"string","description":"HTTP method for the operation (e.g., get, post)."},"pathId":{"type":"string","minLength":31,"maxLength":31,"description":"Object ID with prefix \"path_\""},"summary":{"type":"string","description":"Short summary of the operation."},"description":{"type":"string","description":"Markdown description of the operation."},"descriptionBlocks":{"anyOf":[{"$ref":"#/components/schemas/ProseMirrorContentSchema"},{"type":"array","items":{"$ref":"#/components/schemas/ProseMirrorContentSchema"}}],"description":"Operation description represented as ProseMirror JSON."},"deprecated":{"type":"boolean","default":false},"operationId":{"type":"string","description":"Stable operation identifier mirroring OpenAPI operationId."},"tags":{"type":"array","items":{"type":"string"},"default":[],"description":"Tags applied to the operation for grouping."},"kvStorage":{"type":"object","additionalProperties":{},"default":{},"description":"Custom metadata attached to the operation; kept when importing/exporting API definitions."},"security":{"type":"array","items":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"description":"Authentication requirements for this operation; each entry maps a security scheme id to the scopes/permissions it needs.","url":"https://swagger.io/specification/#security-requirement-object"},"versionId":{"type":"string","minLength":30,"maxLength":30,"description":"Object ID with prefix \"ver_\""},"updatedAt":{"type":["string","null"],"format":"date-time","default":"2026-07-25T21:12:24.281Z"}}}}}},"responses":{"200":{"description":"Operation updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundErrorOperation"},"500":{"$ref":"#/components/responses/InternalServerError"}}}}}}
```

## List Operations

> List all Operations items.\
> \
> Operation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs.

```json
{"openapi":"3.1.0","info":{"title":"Appear API","version":"2.0.0"},"tags":[{"name":"Operations"}],"servers":[{"url":"https://api.appear.sh","description":"Primary public endpoint"}],"security":[{"projectApiKey":[]},{"personalAccessToken":[]}],"components":{"securitySchemes":{"projectApiKey":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"Project API key authentication. Use your project API key as a Bearer token in the Authorization header."},"personalAccessToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Personal access token authentication. Use your personal access token as a Bearer token in the Authorization header. Suitable for MCP integrations, CLI tools, and other OAuth flows."}},"parameters":{"projectRef":{"schema":{"$ref":"#/components/schemas/projectRef"},"required":true,"description":"Project slug or project id (proj_*)","in":"path","name":"projectRef"},"versionType":{"schema":{"$ref":"#/components/schemas/versionType"},"required":true,"description":"Version type, can be either 'branch' or 'environment'","in":"path","name":"versionType"},"versionSlug":{"schema":{"$ref":"#/components/schemas/versionSlug"},"required":true,"description":"Version slug","in":"path","name":"versionSlug"}},"schemas":{"projectRef":{"anyOf":[{"type":"string","minLength":31,"maxLength":31,"description":"Object ID with prefix \"proj_\""},{"type":"string","minLength":1}],"description":"Project slug or project id (proj_*)"},"versionType":{"type":"string","enum":["branch","environment"],"description":"Version type, can be either 'branch' or 'environment'"},"versionSlug":{"type":"string","minLength":1,"description":"Version slug"},"Operation":{"type":"object","properties":{"id":{"type":"string","minLength":29,"maxLength":29,"default":"op_agpzwhz73fyz3hi6g2xprah7ie","description":"Object ID with prefix \"op_\""},"method":{"type":"string","description":"HTTP method for the operation (e.g., get, post)."},"pathId":{"type":"string","minLength":31,"maxLength":31,"description":"Object ID with prefix \"path_\""},"summary":{"type":"string","description":"Short summary of the operation."},"description":{"type":"string","description":"Markdown description of the operation."},"descriptionBlocks":{"anyOf":[{"$ref":"#/components/schemas/ProseMirrorContentSchema"},{"type":"array","items":{"$ref":"#/components/schemas/ProseMirrorContentSchema"}}],"description":"Operation description represented as ProseMirror JSON."},"deprecated":{"type":"boolean","default":false},"operationId":{"type":"string","description":"Stable operation identifier mirroring OpenAPI operationId."},"tags":{"type":"array","items":{"type":"string"},"default":[],"description":"Tags applied to the operation for grouping."},"kvStorage":{"type":"object","additionalProperties":{},"default":{},"description":"Custom metadata attached to the operation; kept when importing/exporting API definitions."},"security":{"type":"array","items":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"description":"Authentication requirements for this operation; each entry maps a security scheme id to the scopes/permissions it needs.","url":"https://swagger.io/specification/#security-requirement-object"},"versionId":{"type":"string","minLength":30,"maxLength":30,"description":"Object ID with prefix \"ver_\""},"updatedAt":{"type":["string","null"],"format":"date-time","default":"2026-07-25T21:12:24.281Z"}},"required":["method","pathId","operationId","versionId"],"description":"Operation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs."},"ProseMirrorContentSchema":{"type":"object","properties":{"type":{"type":"string"},"attrs":{"type":"object","additionalProperties":{}},"content":{"type":"array","items":{"$ref":"#/components/schemas/ProseMirrorContentSchema"}},"marks":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"attrs":{"type":"object","additionalProperties":{}}},"required":["type"],"additionalProperties":{}}},"text":{"type":"string"}},"additionalProperties":{},"description":"A recursive schema modeling ProseMirror document/node structure. It mirrors the ProseMirror JSON format as described at https://prosemirror.net/docs/guide/#schema.serialization. Each node may contain a `type`, optional `attrs`, children in `content`, formatting `marks`, and inline `text`."},"PaginationMetadata":{"type":"object","properties":{"nextCursor":{"type":["string","null"]},"hasMore":{"type":"boolean"},"limit":{"type":"number"}},"required":["nextCursor","hasMore","limit"],"description":"Pagination metadata"}},"responses":{"BadRequestError":{"description":"Invalid request","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"UnauthorizedError":{"description":"Unauthorized","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"ForbiddenError":{"description":"Forbidden","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"InternalServerError":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}}}},"paths":{"/v2/catalog/projects/{projectRef}/{versionType}/{versionSlug}/operations":{"get":{"summary":"List Operations","description":"List all Operations items.\n\nOperation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs.","operationId":"list-operations1","tags":["Operations"],"parameters":[{"$ref":"#/components/parameters/projectRef"},{"$ref":"#/components/parameters/versionType"},{"$ref":"#/components/parameters/versionSlug"},{"schema":{"type":"string","description":"Cursor for pagination (item ID)"},"required":false,"description":"Cursor for pagination (item ID)","name":"after","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":1000,"default":50,"description":"Maximum number of items to return (default: 50, max: 1000)"},"required":false,"description":"Maximum number of items to return (default: 50, max: 1000)","name":"limit","in":"query"},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Sort order. Use 'prop' for ascending, '-prop' for descending. Multiple params supported (e.g. sort=name&sort=-createdAt)"},"required":false,"description":"Sort order. Use 'prop' for ascending, '-prop' for descending. Multiple params supported (e.g. sort=name&sort=-createdAt)","name":"sort","in":"query"}],"responses":{"200":{"description":"List of Operations","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Operation"}},"pagination":{"$ref":"#/components/schemas/PaginationMetadata"}},"required":["items","pagination"],"description":"Operations collection"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"500":{"$ref":"#/components/responses/InternalServerError"}}}}}}
```

## Create Operation

> Create a new Operation item.\
> \
> Operation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs.

```json
{"openapi":"3.1.0","info":{"title":"Appear API","version":"2.0.0"},"tags":[{"name":"Operations"}],"servers":[{"url":"https://api.appear.sh","description":"Primary public endpoint"}],"security":[{"projectApiKey":[]},{"personalAccessToken":[]}],"components":{"securitySchemes":{"projectApiKey":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"Project API key authentication. Use your project API key as a Bearer token in the Authorization header."},"personalAccessToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Personal access token authentication. Use your personal access token as a Bearer token in the Authorization header. Suitable for MCP integrations, CLI tools, and other OAuth flows."}},"parameters":{"projectRef":{"schema":{"$ref":"#/components/schemas/projectRef"},"required":true,"description":"Project slug or project id (proj_*)","in":"path","name":"projectRef"},"versionType":{"schema":{"$ref":"#/components/schemas/versionType"},"required":true,"description":"Version type, can be either 'branch' or 'environment'","in":"path","name":"versionType"},"versionSlug":{"schema":{"$ref":"#/components/schemas/versionSlug"},"required":true,"description":"Version slug","in":"path","name":"versionSlug"}},"schemas":{"projectRef":{"anyOf":[{"type":"string","minLength":31,"maxLength":31,"description":"Object ID with prefix \"proj_\""},{"type":"string","minLength":1}],"description":"Project slug or project id (proj_*)"},"versionType":{"type":"string","enum":["branch","environment"],"description":"Version type, can be either 'branch' or 'environment'"},"versionSlug":{"type":"string","minLength":1,"description":"Version slug"},"Operation":{"type":"object","properties":{"id":{"type":"string","minLength":29,"maxLength":29,"default":"op_agpzwhz73fyz3hi6g2xprah7ie","description":"Object ID with prefix \"op_\""},"method":{"type":"string","description":"HTTP method for the operation (e.g., get, post)."},"pathId":{"type":"string","minLength":31,"maxLength":31,"description":"Object ID with prefix \"path_\""},"summary":{"type":"string","description":"Short summary of the operation."},"description":{"type":"string","description":"Markdown description of the operation."},"descriptionBlocks":{"anyOf":[{"$ref":"#/components/schemas/ProseMirrorContentSchema"},{"type":"array","items":{"$ref":"#/components/schemas/ProseMirrorContentSchema"}}],"description":"Operation description represented as ProseMirror JSON."},"deprecated":{"type":"boolean","default":false},"operationId":{"type":"string","description":"Stable operation identifier mirroring OpenAPI operationId."},"tags":{"type":"array","items":{"type":"string"},"default":[],"description":"Tags applied to the operation for grouping."},"kvStorage":{"type":"object","additionalProperties":{},"default":{},"description":"Custom metadata attached to the operation; kept when importing/exporting API definitions."},"security":{"type":"array","items":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"description":"Authentication requirements for this operation; each entry maps a security scheme id to the scopes/permissions it needs.","url":"https://swagger.io/specification/#security-requirement-object"},"versionId":{"type":"string","minLength":30,"maxLength":30,"description":"Object ID with prefix \"ver_\""},"updatedAt":{"type":["string","null"],"format":"date-time","default":"2026-07-25T21:12:24.281Z"}},"required":["method","pathId","operationId","versionId"],"description":"Operation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs."},"ProseMirrorContentSchema":{"type":"object","properties":{"type":{"type":"string"},"attrs":{"type":"object","additionalProperties":{}},"content":{"type":"array","items":{"$ref":"#/components/schemas/ProseMirrorContentSchema"}},"marks":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"attrs":{"type":"object","additionalProperties":{}}},"required":["type"],"additionalProperties":{}}},"text":{"type":"string"}},"additionalProperties":{},"description":"A recursive schema modeling ProseMirror document/node structure. It mirrors the ProseMirror JSON format as described at https://prosemirror.net/docs/guide/#schema.serialization. Each node may contain a `type`, optional `attrs`, children in `content`, formatting `marks`, and inline `text`."}},"responses":{"BadRequestError":{"description":"Invalid request","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"UnauthorizedError":{"description":"Unauthorized","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"ForbiddenError":{"description":"Forbidden","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"ConflictError":{"description":"Conflict","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"InternalServerError":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}}}},"paths":{"/v2/catalog/projects/{projectRef}/{versionType}/{versionSlug}/operations":{"post":{"summary":"Create Operation","description":"Create a new Operation item.\n\nOperation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs.","operationId":"create-operation1","tags":["Operations"],"parameters":[{"$ref":"#/components/parameters/projectRef"},{"$ref":"#/components/parameters/versionType"},{"$ref":"#/components/parameters/versionSlug"}],"requestBody":{"description":"Payload to create a new Operation item","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}}},"responses":{"201":{"description":"Operation created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"409":{"$ref":"#/components/responses/ConflictError"},"500":{"$ref":"#/components/responses/InternalServerError"}}}}}}
```

## Get Operation

> Get a Operation item by its id.\
> \
> Operation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs.

```json
{"openapi":"3.1.0","info":{"title":"Appear API","version":"2.0.0"},"tags":[{"name":"Operations"}],"servers":[{"url":"https://api.appear.sh","description":"Primary public endpoint"}],"security":[{"projectApiKey":[]},{"personalAccessToken":[]}],"components":{"securitySchemes":{"projectApiKey":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"Project API key authentication. Use your project API key as a Bearer token in the Authorization header."},"personalAccessToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Personal access token authentication. Use your personal access token as a Bearer token in the Authorization header. Suitable for MCP integrations, CLI tools, and other OAuth flows."}},"parameters":{"projectRef":{"schema":{"$ref":"#/components/schemas/projectRef"},"required":true,"description":"Project slug or project id (proj_*)","in":"path","name":"projectRef"},"versionType":{"schema":{"$ref":"#/components/schemas/versionType"},"required":true,"description":"Version type, can be either 'branch' or 'environment'","in":"path","name":"versionType"},"versionSlug":{"schema":{"$ref":"#/components/schemas/versionSlug"},"required":true,"description":"Version slug","in":"path","name":"versionSlug"}},"schemas":{"projectRef":{"anyOf":[{"type":"string","minLength":31,"maxLength":31,"description":"Object ID with prefix \"proj_\""},{"type":"string","minLength":1}],"description":"Project slug or project id (proj_*)"},"versionType":{"type":"string","enum":["branch","environment"],"description":"Version type, can be either 'branch' or 'environment'"},"versionSlug":{"type":"string","minLength":1,"description":"Version slug"},"Operation":{"type":"object","properties":{"id":{"type":"string","minLength":29,"maxLength":29,"default":"op_agpzwhz73fyz3hi6g2xprah7ie","description":"Object ID with prefix \"op_\""},"method":{"type":"string","description":"HTTP method for the operation (e.g., get, post)."},"pathId":{"type":"string","minLength":31,"maxLength":31,"description":"Object ID with prefix \"path_\""},"summary":{"type":"string","description":"Short summary of the operation."},"description":{"type":"string","description":"Markdown description of the operation."},"descriptionBlocks":{"anyOf":[{"$ref":"#/components/schemas/ProseMirrorContentSchema"},{"type":"array","items":{"$ref":"#/components/schemas/ProseMirrorContentSchema"}}],"description":"Operation description represented as ProseMirror JSON."},"deprecated":{"type":"boolean","default":false},"operationId":{"type":"string","description":"Stable operation identifier mirroring OpenAPI operationId."},"tags":{"type":"array","items":{"type":"string"},"default":[],"description":"Tags applied to the operation for grouping."},"kvStorage":{"type":"object","additionalProperties":{},"default":{},"description":"Custom metadata attached to the operation; kept when importing/exporting API definitions."},"security":{"type":"array","items":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"description":"Authentication requirements for this operation; each entry maps a security scheme id to the scopes/permissions it needs.","url":"https://swagger.io/specification/#security-requirement-object"},"versionId":{"type":"string","minLength":30,"maxLength":30,"description":"Object ID with prefix \"ver_\""},"updatedAt":{"type":["string","null"],"format":"date-time","default":"2026-07-25T21:12:24.281Z"}},"required":["method","pathId","operationId","versionId"],"description":"Operation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs."},"ProseMirrorContentSchema":{"type":"object","properties":{"type":{"type":"string"},"attrs":{"type":"object","additionalProperties":{}},"content":{"type":"array","items":{"$ref":"#/components/schemas/ProseMirrorContentSchema"}},"marks":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"attrs":{"type":"object","additionalProperties":{}}},"required":["type"],"additionalProperties":{}}},"text":{"type":"string"}},"additionalProperties":{},"description":"A recursive schema modeling ProseMirror document/node structure. It mirrors the ProseMirror JSON format as described at https://prosemirror.net/docs/guide/#schema.serialization. Each node may contain a `type`, optional `attrs`, children in `content`, formatting `marks`, and inline `text`."}},"responses":{"BadRequestError":{"description":"Invalid request","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"UnauthorizedError":{"description":"Unauthorized","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"ForbiddenError":{"description":"Forbidden","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"NotFoundErrorOperation":{"description":"Operation not found","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"InternalServerError":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}}}},"paths":{"/v2/catalog/projects/{projectRef}/{versionType}/{versionSlug}/operations/{id}":{"get":{"summary":"Get Operation","description":"Get a Operation item by its id.\n\nOperation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs.","operationId":"get-operation-by-id1","tags":["Operations"],"parameters":[{"$ref":"#/components/parameters/projectRef"},{"$ref":"#/components/parameters/versionType"},{"$ref":"#/components/parameters/versionSlug"},{"schema":{"type":"string","minLength":29,"maxLength":29,"description":"Operation identifier"},"required":true,"description":"Operation identifier","name":"id","in":"path"}],"responses":{"200":{"description":"Operation details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundErrorOperation"},"500":{"$ref":"#/components/responses/InternalServerError"}}}}}}
```

## Replace Operation

> Completely replaces a Operation item by its id.\
> \
> Operation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs.

```json
{"openapi":"3.1.0","info":{"title":"Appear API","version":"2.0.0"},"tags":[{"name":"Operations"}],"servers":[{"url":"https://api.appear.sh","description":"Primary public endpoint"}],"security":[{"projectApiKey":[]},{"personalAccessToken":[]}],"components":{"securitySchemes":{"projectApiKey":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"Project API key authentication. Use your project API key as a Bearer token in the Authorization header."},"personalAccessToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Personal access token authentication. Use your personal access token as a Bearer token in the Authorization header. Suitable for MCP integrations, CLI tools, and other OAuth flows."}},"parameters":{"projectRef":{"schema":{"$ref":"#/components/schemas/projectRef"},"required":true,"description":"Project slug or project id (proj_*)","in":"path","name":"projectRef"},"versionType":{"schema":{"$ref":"#/components/schemas/versionType"},"required":true,"description":"Version type, can be either 'branch' or 'environment'","in":"path","name":"versionType"},"versionSlug":{"schema":{"$ref":"#/components/schemas/versionSlug"},"required":true,"description":"Version slug","in":"path","name":"versionSlug"}},"schemas":{"projectRef":{"anyOf":[{"type":"string","minLength":31,"maxLength":31,"description":"Object ID with prefix \"proj_\""},{"type":"string","minLength":1}],"description":"Project slug or project id (proj_*)"},"versionType":{"type":"string","enum":["branch","environment"],"description":"Version type, can be either 'branch' or 'environment'"},"versionSlug":{"type":"string","minLength":1,"description":"Version slug"},"Operation":{"type":"object","properties":{"id":{"type":"string","minLength":29,"maxLength":29,"default":"op_agpzwhz73fyz3hi6g2xprah7ie","description":"Object ID with prefix \"op_\""},"method":{"type":"string","description":"HTTP method for the operation (e.g., get, post)."},"pathId":{"type":"string","minLength":31,"maxLength":31,"description":"Object ID with prefix \"path_\""},"summary":{"type":"string","description":"Short summary of the operation."},"description":{"type":"string","description":"Markdown description of the operation."},"descriptionBlocks":{"anyOf":[{"$ref":"#/components/schemas/ProseMirrorContentSchema"},{"type":"array","items":{"$ref":"#/components/schemas/ProseMirrorContentSchema"}}],"description":"Operation description represented as ProseMirror JSON."},"deprecated":{"type":"boolean","default":false},"operationId":{"type":"string","description":"Stable operation identifier mirroring OpenAPI operationId."},"tags":{"type":"array","items":{"type":"string"},"default":[],"description":"Tags applied to the operation for grouping."},"kvStorage":{"type":"object","additionalProperties":{},"default":{},"description":"Custom metadata attached to the operation; kept when importing/exporting API definitions."},"security":{"type":"array","items":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"description":"Authentication requirements for this operation; each entry maps a security scheme id to the scopes/permissions it needs.","url":"https://swagger.io/specification/#security-requirement-object"},"versionId":{"type":"string","minLength":30,"maxLength":30,"description":"Object ID with prefix \"ver_\""},"updatedAt":{"type":["string","null"],"format":"date-time","default":"2026-07-25T21:12:24.281Z"}},"required":["method","pathId","operationId","versionId"],"description":"Operation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs."},"ProseMirrorContentSchema":{"type":"object","properties":{"type":{"type":"string"},"attrs":{"type":"object","additionalProperties":{}},"content":{"type":"array","items":{"$ref":"#/components/schemas/ProseMirrorContentSchema"}},"marks":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"attrs":{"type":"object","additionalProperties":{}}},"required":["type"],"additionalProperties":{}}},"text":{"type":"string"}},"additionalProperties":{},"description":"A recursive schema modeling ProseMirror document/node structure. It mirrors the ProseMirror JSON format as described at https://prosemirror.net/docs/guide/#schema.serialization. Each node may contain a `type`, optional `attrs`, children in `content`, formatting `marks`, and inline `text`."}},"responses":{"BadRequestError":{"description":"Invalid request","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"UnauthorizedError":{"description":"Unauthorized","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"ForbiddenError":{"description":"Forbidden","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"NotFoundErrorOperation":{"description":"Operation not found","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"InternalServerError":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}}}},"paths":{"/v2/catalog/projects/{projectRef}/{versionType}/{versionSlug}/operations/{id}":{"post":{"summary":"Replace Operation","description":"Completely replaces a Operation item by its id.\n\nOperation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs.","operationId":"replace-operation-by-id1","tags":["Operations"],"parameters":[{"$ref":"#/components/parameters/projectRef"},{"$ref":"#/components/parameters/versionType"},{"$ref":"#/components/parameters/versionSlug"},{"schema":{"type":"string","minLength":29,"maxLength":29,"description":"Operation identifier"},"required":true,"description":"Operation identifier","name":"id","in":"path"}],"requestBody":{"description":"Payload to replace the Operation item by its id","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}}},"responses":{"200":{"description":"Operation replaced","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}}},"201":{"description":"Operation created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundErrorOperation"},"500":{"$ref":"#/components/responses/InternalServerError"}}}}}}
```

## Delete Operation

> Delete a Operation item by its id.\
> \
> Operation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs.

```json
{"openapi":"3.1.0","info":{"title":"Appear API","version":"2.0.0"},"tags":[{"name":"Operations"}],"servers":[{"url":"https://api.appear.sh","description":"Primary public endpoint"}],"security":[{"projectApiKey":[]},{"personalAccessToken":[]}],"components":{"securitySchemes":{"projectApiKey":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"Project API key authentication. Use your project API key as a Bearer token in the Authorization header."},"personalAccessToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Personal access token authentication. Use your personal access token as a Bearer token in the Authorization header. Suitable for MCP integrations, CLI tools, and other OAuth flows."}},"parameters":{"projectRef":{"schema":{"$ref":"#/components/schemas/projectRef"},"required":true,"description":"Project slug or project id (proj_*)","in":"path","name":"projectRef"},"versionType":{"schema":{"$ref":"#/components/schemas/versionType"},"required":true,"description":"Version type, can be either 'branch' or 'environment'","in":"path","name":"versionType"},"versionSlug":{"schema":{"$ref":"#/components/schemas/versionSlug"},"required":true,"description":"Version slug","in":"path","name":"versionSlug"}},"schemas":{"projectRef":{"anyOf":[{"type":"string","minLength":31,"maxLength":31,"description":"Object ID with prefix \"proj_\""},{"type":"string","minLength":1}],"description":"Project slug or project id (proj_*)"},"versionType":{"type":"string","enum":["branch","environment"],"description":"Version type, can be either 'branch' or 'environment'"},"versionSlug":{"type":"string","minLength":1,"description":"Version slug"}},"responses":{"BadRequestError":{"description":"Invalid request","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"UnauthorizedError":{"description":"Unauthorized","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"ForbiddenError":{"description":"Forbidden","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"NotFoundErrorOperation":{"description":"Operation not found","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"InternalServerError":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}}}},"paths":{"/v2/catalog/projects/{projectRef}/{versionType}/{versionSlug}/operations/{id}":{"delete":{"summary":"Delete Operation","description":"Delete a Operation item by its id.\n\nOperation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs.","operationId":"delete-operation-by-id1","tags":["Operations"],"parameters":[{"$ref":"#/components/parameters/projectRef"},{"$ref":"#/components/parameters/versionType"},{"$ref":"#/components/parameters/versionSlug"},{"schema":{"type":"string","minLength":29,"maxLength":29,"description":"Operation identifier"},"required":true,"description":"Operation identifier","name":"id","in":"path"}],"responses":{"204":{"description":"Operation deleted"},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundErrorOperation"},"500":{"$ref":"#/components/responses/InternalServerError"}}}}}}
```

## Update Operation

> Partially updates a Operation item by its id.\
> \
> Operation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs.

```json
{"openapi":"3.1.0","info":{"title":"Appear API","version":"2.0.0"},"tags":[{"name":"Operations"}],"servers":[{"url":"https://api.appear.sh","description":"Primary public endpoint"}],"security":[{"projectApiKey":[]},{"personalAccessToken":[]}],"components":{"securitySchemes":{"projectApiKey":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"Project API key authentication. Use your project API key as a Bearer token in the Authorization header."},"personalAccessToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Personal access token authentication. Use your personal access token as a Bearer token in the Authorization header. Suitable for MCP integrations, CLI tools, and other OAuth flows."}},"parameters":{"projectRef":{"schema":{"$ref":"#/components/schemas/projectRef"},"required":true,"description":"Project slug or project id (proj_*)","in":"path","name":"projectRef"},"versionType":{"schema":{"$ref":"#/components/schemas/versionType"},"required":true,"description":"Version type, can be either 'branch' or 'environment'","in":"path","name":"versionType"},"versionSlug":{"schema":{"$ref":"#/components/schemas/versionSlug"},"required":true,"description":"Version slug","in":"path","name":"versionSlug"}},"schemas":{"projectRef":{"anyOf":[{"type":"string","minLength":31,"maxLength":31,"description":"Object ID with prefix \"proj_\""},{"type":"string","minLength":1}],"description":"Project slug or project id (proj_*)"},"versionType":{"type":"string","enum":["branch","environment"],"description":"Version type, can be either 'branch' or 'environment'"},"versionSlug":{"type":"string","minLength":1,"description":"Version slug"},"ProseMirrorContentSchema":{"type":"object","properties":{"type":{"type":"string"},"attrs":{"type":"object","additionalProperties":{}},"content":{"type":"array","items":{"$ref":"#/components/schemas/ProseMirrorContentSchema"}},"marks":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"attrs":{"type":"object","additionalProperties":{}}},"required":["type"],"additionalProperties":{}}},"text":{"type":"string"}},"additionalProperties":{},"description":"A recursive schema modeling ProseMirror document/node structure. It mirrors the ProseMirror JSON format as described at https://prosemirror.net/docs/guide/#schema.serialization. Each node may contain a `type`, optional `attrs`, children in `content`, formatting `marks`, and inline `text`."},"Operation":{"type":"object","properties":{"id":{"type":"string","minLength":29,"maxLength":29,"default":"op_agpzwhz73fyz3hi6g2xprah7ie","description":"Object ID with prefix \"op_\""},"method":{"type":"string","description":"HTTP method for the operation (e.g., get, post)."},"pathId":{"type":"string","minLength":31,"maxLength":31,"description":"Object ID with prefix \"path_\""},"summary":{"type":"string","description":"Short summary of the operation."},"description":{"type":"string","description":"Markdown description of the operation."},"descriptionBlocks":{"anyOf":[{"$ref":"#/components/schemas/ProseMirrorContentSchema"},{"type":"array","items":{"$ref":"#/components/schemas/ProseMirrorContentSchema"}}],"description":"Operation description represented as ProseMirror JSON."},"deprecated":{"type":"boolean","default":false},"operationId":{"type":"string","description":"Stable operation identifier mirroring OpenAPI operationId."},"tags":{"type":"array","items":{"type":"string"},"default":[],"description":"Tags applied to the operation for grouping."},"kvStorage":{"type":"object","additionalProperties":{},"default":{},"description":"Custom metadata attached to the operation; kept when importing/exporting API definitions."},"security":{"type":"array","items":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"description":"Authentication requirements for this operation; each entry maps a security scheme id to the scopes/permissions it needs.","url":"https://swagger.io/specification/#security-requirement-object"},"versionId":{"type":"string","minLength":30,"maxLength":30,"description":"Object ID with prefix \"ver_\""},"updatedAt":{"type":["string","null"],"format":"date-time","default":"2026-07-25T21:12:24.281Z"}},"required":["method","pathId","operationId","versionId"],"description":"Operation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs."}},"responses":{"BadRequestError":{"description":"Invalid request","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"UnauthorizedError":{"description":"Unauthorized","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"ForbiddenError":{"description":"Forbidden","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"NotFoundErrorOperation":{"description":"Operation not found","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}},"InternalServerError":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{}},"required":["error"],"additionalProperties":false}}}}}},"paths":{"/v2/catalog/projects/{projectRef}/{versionType}/{versionSlug}/operations/{id}":{"patch":{"summary":"Update Operation","description":"Partially updates a Operation item by its id.\n\nOperation is an HTTP operation bound to a path, including documentation, authentication requirements, and optional external docs.","operationId":"update-operation-by-id1","tags":["Operations"],"parameters":[{"$ref":"#/components/parameters/projectRef"},{"$ref":"#/components/parameters/versionType"},{"$ref":"#/components/parameters/versionSlug"},{"schema":{"type":"string","minLength":29,"maxLength":29,"description":"Operation identifier"},"required":true,"description":"Operation identifier","name":"id","in":"path"}],"requestBody":{"description":"Partial payload to update the Operation item by its id","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":29,"maxLength":29,"default":"op_agpzwhz73fyz3hi6isw2ucew2i","description":"Object ID with prefix \"op_\""},"method":{"type":"string","description":"HTTP method for the operation (e.g., get, post)."},"pathId":{"type":"string","minLength":31,"maxLength":31,"description":"Object ID with prefix \"path_\""},"summary":{"type":"string","description":"Short summary of the operation."},"description":{"type":"string","description":"Markdown description of the operation."},"descriptionBlocks":{"anyOf":[{"$ref":"#/components/schemas/ProseMirrorContentSchema"},{"type":"array","items":{"$ref":"#/components/schemas/ProseMirrorContentSchema"}}],"description":"Operation description represented as ProseMirror JSON."},"deprecated":{"type":"boolean","default":false},"operationId":{"type":"string","description":"Stable operation identifier mirroring OpenAPI operationId."},"tags":{"type":"array","items":{"type":"string"},"default":[],"description":"Tags applied to the operation for grouping."},"kvStorage":{"type":"object","additionalProperties":{},"default":{},"description":"Custom metadata attached to the operation; kept when importing/exporting API definitions."},"security":{"type":"array","items":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"description":"Authentication requirements for this operation; each entry maps a security scheme id to the scopes/permissions it needs.","url":"https://swagger.io/specification/#security-requirement-object"},"versionId":{"type":"string","minLength":30,"maxLength":30,"description":"Object ID with prefix \"ver_\""},"updatedAt":{"type":["string","null"],"format":"date-time","default":"2026-07-25T21:12:24.281Z"}}}}}},"responses":{"200":{"description":"Operation updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundErrorOperation"},"500":{"$ref":"#/components/responses/InternalServerError"}}}}}}
```
