---
title: "upsertDocumentationPage"
method: PUT
path: "/v1/integrations/{integrationId}/documentation/{docId}"
tags: ["integrations"]
---

# upsertDocumentationPage

`PUT /v1/integrations/{integrationId}/documentation/{docId}`

Create or update the documentation page identified by docId.
Upsert semantics enforce the invariant of one general page per
integration and one page per use case. For use case pages the
use case must exist.

## Path parameters

- `integrationId` string, uuid, required
- `docId` string, required

## Request body

- UpsertDocumentationPageRequest
  - `title` string, required
  - `content` string, required — Markdown source of the page

## Response `200`

Documentation page created or updated successfully

- DocumentationPage — Documentation page metadata without the markdown content
  - `id` string, required — 'general' for the integration-wide page, otherwise the use case ID
  - `integration_id` string, uuid, required
  - `scope` 'integration' | 'use_case', required — Whether the page documents the whole integration or a single use case
  - `use_case_id` string, uuid — The linked use case. Only set when scope is use_case.
  - `title` string, required
  - `created_at` string, date-time, required
  - `created_by` string, nullable — User ID that created the page
  - `updated_at` string, date-time, required
  - `updated_by` string, nullable — User ID of the last edit
  - `content` string, required — Markdown source of the page

## Other responses

- `400` — Bad request
- `401` — Unauthorized request
- `403` — Forbidden - insufficient permissions
- `404` — Integration or use case not found
- `500` — Internal Server Error

---

[API](https://skmtc.net/epilot/apis/integration-toolkit-api.md) · [All operations](https://skmtc.net/epilot/apis/integration-toolkit-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/epilot/integration-toolkit-api/revisions/cf02c9310c0f/schema)
