API reference
This feature requires Fides Cloud or Fides Enterprise. For more information, talk to our solutions team. (opens in a new tab)
All privacy assessment endpoints are under the base path /api/v1/plus/privacy-assessments. All requests require a valid Fides authentication token in the Authorization header.
Templates
List templates
GET /api/v1/plus/privacy-assessments/templatesReturns all available assessment templates.
Response fields:
| Field | Type | Description |
|---|---|---|
id | string | Template identifier (e.g., gdpr_dpia) |
name | string | Human-readable template name |
description | string | Template description and regulatory context |
question_groups | array | List of question group objects |
Get template
GET /api/v1/plus/privacy-assessments/templates/{template_id}Returns a single template including all question groups and questions.
Assessments
Create assessments
POST /api/v1/plus/privacy-assessments/Queues generation jobs for one or more system-template combinations.
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
template_ids | array of strings | Yes | One or more template keys to generate |
system_ids | array of strings | No | Scope to specific systems. Omit for all systems. |
ai_enabled | boolean | No | Enable AI pre-fill. Default: true |
high_risk_only | boolean | No | Only generate for high-risk systems. Default: false |
Response: Array of created assessment objects with task IDs.
List assessments
GET /api/v1/plus/privacy-assessments/Returns all assessments. Supports filtering by status, template_id, and system_id query parameters.
Get assessment
GET /api/v1/plus/privacy-assessments/{assessment_id}Returns a single assessment with all question groups and their current answers.
Key response fields:
| Field | Type | Description |
|---|---|---|
id | string | Assessment ID (prefix: pri_) |
status | string | in_progress, completed, or outdated |
risk_level | string or null | high if the system matched high-risk triggers, otherwise null |
completeness | float | Percentage of questions with complete answers (0–100) |
template_id | string | The template this assessment was generated from |
system_id | string | The system this assessment covers |
question_groups | array | Question groups with their questions and answers |
Delete assessment
DELETE /api/v1/plus/privacy-assessments/{assessment_id}Permanently deletes an assessment and all its answers and evidence. This action cannot be undone.
Re-evaluation
Re-evaluate assessments
POST /api/v1/plus/privacy-assessments/re-evaluateQueues re-evaluation tasks for one or more outdated assessments.
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
assessment_ids | array of strings | No | Specific assessments to re-evaluate. Omit for all outdated. |
Tasks
List tasks
GET /api/v1/plus/privacy-assessments/tasksReturns all assessment generation and re-evaluation tasks.
Key response fields:
| Field | Type | Description |
|---|---|---|
id | string | Task ID |
status | string | pending, running, complete, or failed |
progress | float | Completion percentage (0–100) |
error | string | Error message if status is failed |
assessment_id | string | ID of the assessment created by this task |
Get task
GET /api/v1/plus/privacy-assessments/tasks/{task_id}Returns a single task.
Retry task
POST /api/v1/plus/privacy-assessments/tasks/{task_id}/retryRetries a failed task. Returns the new task object.
Answers
Update answer
PUT /api/v1/plus/privacy-assessments/{assessment_id}/questions/{question_id}Updates the answer for a specific question. Creates a new version with source user_input.
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
answer | string | Yes | The new answer text |
Get answer history
GET /api/v1/plus/privacy-assessments/{assessment_id}/questions/{question_id}/historyReturns all versions of a question's answer in reverse chronological order.
Key response fields per version:
| Field | Type | Description |
|---|---|---|
id | string | Version ID |
answer | string | Answer text at this version |
source | string | system, ai_analysis, user_input, or team_input |
created_at | datetime | When this version was created |
created_by | string | User ID or ai_agent |
Revert answer
POST /api/v1/plus/privacy-assessments/{assessment_id}/questions/{question_id}/revertCreates a new answer version that restores the text from a previous version.
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
version_id | string | Yes | The version to restore |
Audit log
Get audit log
GET /api/v1/plus/privacy-assessments/{assessment_id}/audit-logReturns a complete audit log of all changes to an assessment in reverse chronological order.
Key response fields:
| Field | Type | Description |
|---|---|---|
actor | string | User ID or ai_agent |
action | string | Type of change (e.g., answer_updated, answer_reverted) |
question_id | string | The question that was changed |
timestamp | datetime | When the change occurred |
details | object | Additional context about the change |
Evidence
Get evidence for a question group
GET /api/v1/plus/privacy-assessments/{assessment_id}/question-groups/{group_id}/evidenceReturns all evidence items for a question group, grouped by evidence type.
Key response fields:
| Field | Type | Description |
|---|---|---|
type | string | system, privacy_declaration, data_use, or dataset |
label | string | Display label for the evidence item |
value | string | The cited data value |
source_id | string | ID of the Fides record this evidence came from |
created_at | datetime | When this evidence was recorded |
Questionnaire
Send questionnaire
POST /api/v1/plus/privacy-assessments/{assessment_id}/questionnaireSends unanswered questions to the configured Slack channel.
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
channel | string | No | Override the default Slack channel |
question_ids | array of strings | No | Send only specific questions. Omit for all needs_input questions. |
Get questionnaire status
GET /api/v1/plus/privacy-assessments/{assessment_id}/questionnaireReturns the status of each sent question: whether it has a response and when the response was received.
Send reminders
POST /api/v1/plus/privacy-assessments/{assessment_id}/questionnaire/remindersSends Slack reminder messages to threads where no response has been received. Takes no request body.
Questionnaire tone
Get tone
GET /api/v1/plus/privacy-assessments/questionnaire/toneReturns the current questionnaire tone prompt.
Update tone
PUT /api/v1/plus/privacy-assessments/questionnaire/toneRequest body:
| Field | Type | Required | Description |
|---|---|---|---|
tone_prompt | string | Yes | Custom instructions for how to phrase questions |
Reset tone to default
POST /api/v1/plus/privacy-assessments/questionnaire/tone/resetResets the tone prompt to the system default.
PDF export
Export PDF
GET /api/v1/plus/privacy-assessments/{assessment_id}/pdfQuery parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | internal | Export mode: internal (with evidence) or external (clean Q&A) |
Returns the assessment as a PDF file (Content-Type: application/pdf).
Configuration
Get configuration
GET /api/v1/plus/privacy-assessments/configReturns the current assessment configuration.
Update configuration
PUT /api/v1/plus/privacy-assessments/configRequest body:
| Field | Type | Description |
|---|---|---|
assessment_model | string | AI model identifier for assessment generation |
chat_model | string | AI model identifier for questionnaire chat |
reassessment_enabled | boolean | Enable automatic periodic re-evaluation |
reassessment_cron | string | Cron expression for reassessment schedule |
Get configuration defaults
GET /api/v1/plus/privacy-assessments/config/defaultsReturns the default values for all configuration fields.