---
updatedAt: 2026-05-19T14:34:23.000Z
agentTools:
  projectIndex: https://docs.conveyor.com/llms.txt
---

# PATCH Questionnaire

Update a questionnaire. Provide at least one update field. Setting status to completed sets completed_at and triggers grading.

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "portal-api",
    "version": "2.0"
  },
  "servers": [
    {
      "url": "https://api.conveyor.com/api"
    }
  ],
  "components": {
    "securitySchemes": {
      "sec0": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-KEY"
      }
    }
  },
  "security": [
    {
      "sec0": []
    }
  ],
  "paths": {
    "/v2/questionnaires/{questionnaire_id}": {
      "patch": {
        "operationId": "patchQuestionnaire",
        "summary": "PATCH Questionnaire",
        "description": "Update a questionnaire. Provide at least one update field. Setting status to completed sets completed_at and triggers grading.",
        "tags": [
          "Questionnaires"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "description": "Questionnaire status. Use \"approved\" or \"completed\". Setting status to completed sets completed_at and triggers grading.",
                    "enum": [
                      "approved",
                      "completed"
                    ]
                  },
                  "due_at": {
                    "type": "string",
                    "format": "date",
                    "description": "Due date in YYYY-MM-DD format."
                  },
                  "assignee_email": {
                    "type": "string",
                    "description": "Email of a user in the organization."
                  },
                  "notes": {
                    "type": "string",
                    "nullable": true,
                    "description": "Internal notes. Send an empty string or null to clear."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated questionnaire object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Questionnaire identifier."
                    },
                    "name": {
                      "type": "string",
                      "description": "Questionnaire name."
                    },
                    "status": {
                      "type": "string",
                      "description": "Questionnaire status."
                    },
                    "assignee": {
                      "type": "object",
                      "nullable": true,
                      "description": "Assigned user.",
                      "properties": {
                        "name": {
                          "type": "string",
                          "description": "Assignee display name."
                        },
                        "email": {
                          "type": "string",
                          "format": "email",
                          "description": "Assignee email address."
                        }
                      }
                    },
                    "due_at": {
                      "type": "string",
                      "format": "date",
                      "nullable": true,
                      "description": "Questionnaire due date."
                    },
                    "completed_at": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true,
                      "description": "When the questionnaire was completed."
                    },
                    "notes": {
                      "type": "string",
                      "nullable": true,
                      "description": "Internal notes."
                    },
                    "product_lines": {
                      "type": "array",
                      "description": "Product lines associated with the questionnaire.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "description": "Product line identifier."
                          },
                          "name": {
                            "type": "string",
                            "description": "Product line name."
                          }
                        }
                      }
                    },
                    "question_count": {
                      "type": "integer",
                      "description": "Number of questions in the questionnaire."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "description": "Error message."
                    }
                  }
                },
                "examples": {
                  "No update parameters provided": {
                    "value": {
                      "error": "No update parameters provided"
                    }
                  },
                  "Invalid status": {
                    "value": {
                      "error": "Invalid status"
                    }
                  },
                  "User not found": {
                    "value": {
                      "error": "User not found"
                    }
                  },
                  "Invalid date format for due_at": {
                    "value": {
                      "error": "Invalid date format for due_at"
                    }
                  },
                  "Questionnaire not found": {
                    "value": {
                      "error": "Questionnaire not found"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "questionnaire_id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ]
      }
    }
  },
  "x-readme": {
    "headers": [],
    "explorer-enabled": false,
    "proxy-enabled": false
  },
  "x-readme-fauxas": true
}
```