openapi: 3.1.0 info: title: GitBook Change Request Content Change Requests API description: The GitBook REST API enables you to programmatically manage your GitBook content, organizations, spaces, collections, and integrations. It supports creating, updating, and deleting organizations, spaces, collections, and published docs sites; managing users, teams, and access permissions; importing and exporting content; creating, listing, reviewing, merging, and updating change requests; managing comments; configuring custom hostnames and URLs; and managing integrations and OpenAPI documentation. version: 1.0.0 contact: name: GitBook url: https://www.gitbook.com license: name: Proprietary url: https://www.gitbook.com/terms servers: - url: https://api.gitbook.com/v1 description: GitBook API v1 security: - bearerAuth: [] tags: - name: Change Requests description: Create, list, review, merge, and update change requests for collaborative editing. paths: /spaces/{spaceId}/change-requests: get: operationId: listChangeRequests summary: GitBook List change requests description: Returns the list of change requests for a space. tags: - Change Requests parameters: - $ref: '#/components/parameters/spaceId' - $ref: '#/components/parameters/pageParam' - $ref: '#/components/parameters/limitParam' - name: status in: query description: Filter by change request status. schema: type: string enum: - open - merged - closed responses: '200': description: A list of change requests. content: application/json: schema: type: object properties: items: type: array items: $ref: '#/components/schemas/ChangeRequest' next: $ref: '#/components/schemas/Pagination' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' post: operationId: createChangeRequest summary: GitBook Create a change request description: Creates a new change request for a space. tags: - Change Requests parameters: - $ref: '#/components/parameters/spaceId' requestBody: required: true content: application/json: schema: type: object required: - subject properties: subject: type: string description: The title/subject of the change request. description: type: string description: A description of the change request. responses: '201': description: The newly created change request. content: application/json: schema: $ref: '#/components/schemas/ChangeRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /spaces/{spaceId}/change-requests/{changeRequestId}: get: operationId: getChangeRequest summary: GitBook Get a change request description: Returns a change request by its ID. tags: - Change Requests parameters: - $ref: '#/components/parameters/spaceId' - $ref: '#/components/parameters/changeRequestId' responses: '200': description: The requested change request. content: application/json: schema: $ref: '#/components/schemas/ChangeRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' patch: operationId: updateChangeRequest summary: GitBook Update a change request description: Updates a change request's subject or description. tags: - Change Requests parameters: - $ref: '#/components/parameters/spaceId' - $ref: '#/components/parameters/changeRequestId' requestBody: required: true content: application/json: schema: type: object properties: subject: type: string description: The title/subject of the change request. description: type: string description: A description of the change request. responses: '200': description: The updated change request. content: application/json: schema: $ref: '#/components/schemas/ChangeRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /spaces/{spaceId}/change-requests/{changeRequestId}/merge: post: operationId: mergeChangeRequest summary: GitBook Merge a change request description: Merges a change request into the main content of the space. tags: - Change Requests parameters: - $ref: '#/components/parameters/spaceId' - $ref: '#/components/parameters/changeRequestId' responses: '200': description: The merged change request. content: application/json: schema: $ref: '#/components/schemas/ChangeRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' components: schemas: User: type: object properties: id: type: string description: The unique identifier of the user. displayName: type: string description: The display name of the user. email: type: string format: email description: The email address of the user. photoURL: type: string format: uri description: URL to the user's profile photo. urls: type: object properties: app: type: string format: uri Error: type: object properties: error: type: object properties: code: type: integer description: The HTTP error code. message: type: string description: A description of the error. ChangeRequest: type: object properties: id: type: string description: The unique identifier of the change request. number: type: integer description: The sequential number of the change request. subject: type: string description: The title/subject of the change request. description: type: string description: A description of the change request. status: type: string enum: - open - merged - closed description: The current status of the change request. createdBy: $ref: '#/components/schemas/User' createdAt: type: string format: date-time updatedAt: type: string format: date-time mergedAt: type: string format: date-time Pagination: type: object properties: page: type: string description: The cursor for the next page of results. responses: NotFound: description: The requested resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Authentication is required or the token is invalid. content: application/json: schema: $ref: '#/components/schemas/Error' parameters: changeRequestId: name: changeRequestId in: path required: true description: The unique identifier of the change request. schema: type: string limitParam: name: limit in: query description: Maximum number of items to return per page. schema: type: integer default: 20 maximum: 100 pageParam: name: page in: query description: Pagination cursor for the next page of results. schema: type: string spaceId: name: spaceId in: path required: true description: The unique identifier of the space. schema: type: string securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: token description: API access token. Generate one from the Developer settings of your GitBook user account.