Read and review Autopilot suggestions

Use these endpoints to integrate a review queue for proposed documentation changes. They operate on suggestions for Spaces the account can manage.

{
    "title": "List Autopilot suggestions",
    "description": "",
    "method": "GET",
    "baseUrl": "https://app.docuwriter.ai",
    "endpoint": "/api/autopilot/suggestions",
    "headers": [
        {
            "key": "Authorization",
            "value": "Bearer YOUR_API_TOKEN",
            "type": "string",
            "required": true
        },
        {
            "key": "Accept",
            "value": "application/json",
            "type": "string",
            "required": true
        }
    ],
    "queryParams": [
        {
            "key": "status",
            "value": "Pending/applied/discarded or virtual snoozed; accepts string or array.",
            "type": "string",
            "required": false
        },
        {
            "key": "space_id",
            "value": "Filter by numeric Space ID or array of IDs.",
            "type": "integer|array",
            "required": false
        },
        {
            "key": "min_confidence",
            "value": "Minimum confidence filter.",
            "type": "number",
            "required": false
        },
        {
            "key": "q",
            "value": "Search suggestion summaries.",
            "type": "string",
            "required": false
        },
        {
            "key": "per_page",
            "value": "Default 25, clamped to 5\u2013100.",
            "type": "integer",
            "required": false
        },
        {
            "key": "page",
            "value": "Paginator page.",
            "type": "integer",
            "required": false
        }
    ],
    "pathParams": [],
    "bodyType": "none",
    "requestBody": "",
    "formData": [],
    "rawBody": "",
    "responses": {
        "200": {
            "description": "Paginated data resource collection with links and meta. Suggestion fields and preview/apply restrictions are described above. Illustrative JSON example; sample values are fictional. Some optional or additional resource fields may be omitted.",
            "body": "{\n  \"data\": [\n    {\n      \"id\": 456,\n      \"status\": \"pending\",\n      \"confidence\": 0.98,\n      \"summary\": \"Update the payment guide.\",\n      \"space\": {\n        \"id\": 123,\n        \"name\": \"Payments\"\n      },\n      \"repo\": \"example/payments\",\n      \"branch\": \"main\",\n      \"before_markdown\": \"# Payments\\n\\nOriginal guide.\",\n      \"after_markdown\": \"# Payments\\n\\nUpdated guide.\",\n      \"is_snoozed\": false,\n      \"snoozed_until\": null,\n      \"is_preview_mode\": false\n    }\n  ],\n  \"meta\": {\n    \"current_page\": 1,\n    \"last_page\": 1,\n    \"per_page\": 25,\n    \"total\": 1\n  }\n}"
        },
        "401": {
            "description": "Missing or invalid account API token.Missing or invalid account API token. Example JSON response.",
            "body": "{\n  \"message\": \"Unauthenticated.\"\n}"
        }
    }
}
{
    "title": "Count Autopilot suggestions",
    "description": "",
    "method": "GET",
    "baseUrl": "https://app.docuwriter.ai",
    "endpoint": "/api/autopilot/suggestions/counts",
    "headers": [
        {
            "key": "Authorization",
            "value": "Bearer YOUR_API_TOKEN",
            "type": "string",
            "required": true
        },
        {
            "key": "Accept",
            "value": "application/json",
            "type": "string",
            "required": true
        }
    ],
    "queryParams": [
        {
            "key": "space_id",
            "value": "Optional numeric Space filter.",
            "type": "integer",
            "required": false
        }
    ],
    "pathParams": [],
    "bodyType": "none",
    "requestBody": "",
    "formData": [],
    "rawBody": "",
    "responses": {
        "200": {
            "description": "Object containing inbox, snoozed, done and high-conf counts; no success wrapper. Illustrative JSON example; sample values are fictional. Some optional or additional resource fields may be omitted.",
            "body": "{\n  \"inbox\": 2,\n  \"snoozed\": 1,\n  \"done\": 3,\n  \"high-conf\": 2\n}"
        },
        "401": {
            "description": "Missing or invalid account API token.Missing or invalid account API token. Example JSON response.",
            "body": "{\n  \"message\": \"Unauthenticated.\"\n}"
        }
    }
}
{
    "title": "Apply an Autopilot suggestion",
    "description": "",
    "method": "POST",
    "baseUrl": "https://app.docuwriter.ai",
    "endpoint": "/api/autopilot/suggestions/{id}/apply",
    "headers": [
        {
            "key": "Authorization",
            "value": "Bearer YOUR_API_TOKEN",
            "type": "string",
            "required": true
        },
        {
            "key": "Accept",
            "value": "application/json",
            "type": "string",
            "required": true
        }
    ],
    "queryParams": [],
    "pathParams": [
        {
            "key": "id",
            "value": "Numeric resource ID returned by this API.",
            "type": "integer",
            "required": true
        }
    ],
    "bodyType": "none",
    "requestBody": "",
    "formData": [],
    "rawBody": "",
    "responses": {
        "200": {
            "description": "Updated suggestion resource. A stale suggestion returns 409 with code suggestion_stale. Illustrative JSON example; sample values are fictional. Some optional or additional resource fields may be omitted.",
            "body": "{\n  \"data\": {\n    \"id\": 456,\n    \"status\": \"applied\",\n    \"confidence\": 0.98,\n    \"summary\": \"Update the payment guide.\",\n    \"space\": {\n      \"id\": 123,\n      \"name\": \"Payments\"\n    },\n    \"repo\": \"example/payments\",\n    \"branch\": \"main\",\n    \"before_markdown\": \"# Payments\\n\\nOriginal guide.\",\n    \"after_markdown\": \"# Payments\\n\\nUpdated guide.\",\n    \"is_snoozed\": false,\n    \"snoozed_until\": null,\n    \"is_preview_mode\": false\n  }\n}"
        },
        "401": {
            "description": "Missing or invalid account API token.Missing or invalid account API token. Example JSON response.",
            "body": "{\n  \"message\": \"Unauthenticated.\"\n}"
        }
    }
}
{
    "title": "Discard an Autopilot suggestion",
    "description": "",
    "method": "POST",
    "baseUrl": "https://app.docuwriter.ai",
    "endpoint": "/api/autopilot/suggestions/{id}/discard",
    "headers": [
        {
            "key": "Authorization",
            "value": "Bearer YOUR_API_TOKEN",
            "type": "string",
            "required": true
        },
        {
            "key": "Accept",
            "value": "application/json",
            "type": "string",
            "required": true
        }
    ],
    "queryParams": [],
    "pathParams": [
        {
            "key": "id",
            "value": "Numeric resource ID returned by this API.",
            "type": "integer",
            "required": true
        }
    ],
    "bodyType": "none",
    "requestBody": "",
    "formData": [],
    "rawBody": "",
    "responses": {
        "200": {
            "description": "Updated suggestion resource. Requires eligible preview access and resource permission. Illustrative JSON example; sample values are fictional. Some optional or additional resource fields may be omitted.",
            "body": "{\n  \"data\": {\n    \"id\": 456,\n    \"status\": \"discarded\",\n    \"confidence\": 0.98,\n    \"summary\": \"Update the payment guide.\",\n    \"space\": {\n      \"id\": 123,\n      \"name\": \"Payments\"\n    },\n    \"repo\": \"example/payments\",\n    \"branch\": \"main\",\n    \"before_markdown\": \"# Payments\\n\\nOriginal guide.\",\n    \"after_markdown\": \"# Payments\\n\\nUpdated guide.\",\n    \"is_snoozed\": false,\n    \"snoozed_until\": null,\n    \"is_preview_mode\": false\n  }\n}"
        },
        "401": {
            "description": "Missing or invalid account API token.Missing or invalid account API token. Example JSON response.",
            "body": "{\n  \"message\": \"Unauthenticated.\"\n}"
        }
    }
}
{
    "title": "Snooze an Autopilot suggestion",
    "description": "",
    "method": "POST",
    "baseUrl": "https://app.docuwriter.ai",
    "endpoint": "/api/autopilot/suggestions/{id}/snooze",
    "headers": [
        {
            "key": "Authorization",
            "value": "Bearer YOUR_API_TOKEN",
            "type": "string",
            "required": true
        },
        {
            "key": "Accept",
            "value": "application/json",
            "type": "string",
            "required": true
        },
        {
            "key": "Content-Type",
            "value": "application/json",
            "type": "string",
            "required": true
        }
    ],
    "queryParams": [],
    "pathParams": [
        {
            "key": "id",
            "value": "Numeric resource ID returned by this API.",
            "type": "integer",
            "required": true
        }
    ],
    "bodyType": "json",
    "requestBody": "{\n  \"until\": \"2027-01-01T09:00:00Z\"\n}",
    "formData": [],
    "rawBody": "",
    "responses": {
        "200": {
            "description": "Updated suggestion resource. until must be a valid future date. Illustrative JSON example; sample values are fictional. Some optional or additional resource fields may be omitted.",
            "body": "{\n  \"data\": {\n    \"id\": 456,\n    \"status\": \"pending\",\n    \"confidence\": 0.98,\n    \"summary\": \"Update the payment guide.\",\n    \"space\": {\n      \"id\": 123,\n      \"name\": \"Payments\"\n    },\n    \"repo\": \"example/payments\",\n    \"branch\": \"main\",\n    \"before_markdown\": \"# Payments\\n\\nOriginal guide.\",\n    \"after_markdown\": \"# Payments\\n\\nUpdated guide.\",\n    \"is_snoozed\": true,\n    \"snoozed_until\": \"2027-01-01T09:00:00+00:00\",\n    \"is_preview_mode\": false\n  }\n}"
        },
        "401": {
            "description": "Missing or invalid account API token.Missing or invalid account API token. Example JSON response.",
            "body": "{\n  \"message\": \"Unauthenticated.\"\n}"
        }
    }
}
{
    "title": "Review suggestions in bulk",
    "description": "",
    "method": "POST",
    "baseUrl": "https://app.docuwriter.ai",
    "endpoint": "/api/autopilot/suggestions/bulk",
    "headers": [
        {
            "key": "Authorization",
            "value": "Bearer YOUR_API_TOKEN",
            "type": "string",
            "required": true
        },
        {
            "key": "Accept",
            "value": "application/json",
            "type": "string",
            "required": true
        },
        {
            "key": "Content-Type",
            "value": "application/json",
            "type": "string",
            "required": true
        }
    ],
    "queryParams": [],
    "pathParams": [],
    "bodyType": "json",
    "requestBody": "{\n  \"action\": \"discard\",\n  \"ids\": [\n    123,\n    124\n  ]\n}",
    "formData": [],
    "rawBody": "",
    "responses": {
        "200": {
            "description": "affected and failed results. Partial success is possible; inspect failures before retrying. Illustrative JSON example; sample values are fictional. Some optional or additional resource fields may be omitted.",
            "body": "{\n  \"affected\": 2,\n  \"failed\": []\n}"
        },
        "401": {
            "description": "Missing or invalid account API token.Missing or invalid account API token. Example JSON response.",
            "body": "{\n  \"message\": \"Unauthenticated.\"\n}"
        }
    }
}

List and count

  • With no status filter, only active pending suggestions are returned.
  • A suggestion includes id, status, confidence, summary, space, repo, branch, created_at, is_snoozed, snoozed_until, review_url, before_markdown, after_markdown, suggested_name, page_name, target_action, is_create, conversion_valid, and is_preview_mode.
  • Read both before/after content before applying.

Review actions

  • Individual actions return the updated suggestion resource.
  • Bulk accepts apply or discard and 1–200 integer IDs; it returns affected and failed.
  • Bulk operations can partially succeed.
  • A stale apply returns HTTP 409 with code: suggestion_stale; inspect failures and refresh content before retrying.
  • Other invalid apply states can return 422.
  • Read, discard and snooze routes allow eligible Autopilot preview access.
  • Applying suggestions, including bulk apply, requires Enterprise entitlement.
  • A valid API token alone does not grant Autopilot access.
  • Repository link management is documented separately.
  • Snooze until must be a date in the future.

API authentication.

Updated