Prohibited Practices Screening API
The Prohibited Practices Screening API manages product-scoped Article 5 screenings for AI products. It creates a default prohibited-practices questionnaire, saves draft answers, evaluates screenings, and records governance overrides for flagged outcomes.
All paths below are under /api/v1.0. Every endpoint is scoped to a product inside a space and requires space access.
Endpoints Overview
| Method | Endpoint | Description |
|---|---|---|
POST | /catalog/spaces/{space_slug}/products/{product_id}/prohibited-practices-screenings/ | Create a draft screening. |
GET | /catalog/spaces/{space_slug}/products/{product_id}/prohibited-practices-screenings/ | List screenings for one product. |
GET | /catalog/spaces/{space_slug}/products/{product_id}/prohibited-practices-screenings/{screening_id} | Retrieve one screening. |
PUT | /catalog/spaces/{space_slug}/products/{product_id}/prohibited-practices-screenings/{screening_id} | Update draft responses. |
POST | /catalog/spaces/{space_slug}/products/{product_id}/prohibited-practices-screenings/{screening_id}/submit | Submit and evaluate saved responses. |
POST | /catalog/spaces/{space_slug}/products/{product_id}/prohibited-practices-screenings/{screening_id}/override | Apply a governance override to a flagged screening. |
Status And Outcome Model
| Field | Values |
|---|---|
Question answer | yes, no, na, unanswered |
status | draft, cleared, flagged |
outcome | not_assessed, cleared, prohibited |
override_outcome | exception_granted when an override is applied |
Submitting rejects screenings with unanswered questions. Any yes answer produces outcome: "prohibited", sets status: "flagged", and records flagged_articles. If all answers are no or na, the screening is cleared.
Create Screening
POST /api/v1.0/catalog/spaces/{space_slug}/products/{product_id}/prohibited-practices-screenings/
{
"responses": [
{
"article_ref": "5(1)(a)",
"question": "Does the system use subliminal techniques beyond a person's consciousness to materially distort behaviour?",
"answer": "unanswered",
"notes": ""
}
]
}
responses is optional. If omitted, Qarion creates the default Article 5 questionnaire with one question per prohibited practice.
List Screenings
GET /api/v1.0/catalog/spaces/{space_slug}/products/{product_id}/prohibited-practices-screenings/?limit=20&offset=0
The list is ordered newest first. limit is 1-100.
Update Screening
PUT /api/v1.0/catalog/spaces/{space_slug}/products/{product_id}/prohibited-practices-screenings/{screening_id}
{
"responses": [
{
"article_ref": "5(1)(a)",
"question": "Does the system use subliminal techniques beyond a person's consciousness to materially distort behaviour?",
"answer": "no",
"notes": "The system does not use subliminal techniques."
}
]
}
Only draft screenings can be updated.
Submit for Evaluation
POST /api/v1.0/catalog/spaces/{space_slug}/products/{product_id}/prohibited-practices-screenings/{screening_id}/submit
The request body is empty. The current frontend saves the draft with PUT before calling submit. The API evaluates the stored responses and returns the updated screening.
Apply Governance Override
POST /api/v1.0/catalog/spaces/{space_slug}/products/{product_id}/prohibited-practices-screenings/{screening_id}/override
{
"justification": "Reviewed supporting evidence and determined this is a documented false positive."
}
Overrides are accepted only for flagged screenings. The justification must be at least 10 characters. The response records reviewer_id, reviewed_at, override_justification, and override_outcome: "exception_granted".
Response Fields
| Field | Description |
|---|---|
id, product_id, space_id | Screening identity and scope. |
status, outcome | Lifecycle and evaluation result. |
responses | Questionnaire answers with article refs, questions, answers, and notes. |
flagged_articles | Article references where the answer was yes. |
screened_by_id, screened_at | Creator and evaluation timestamp. |
reviewer_id, reviewed_at | Override reviewer metadata. |
override_justification, override_outcome | Governance override details. |
created_at, updated_at | Audit timestamps. |
Create, update, submit, and override actions emit audit events for prohibited_practices_screening.
Error Responses
| Status | Description |
|---|---|
400 | Updating or submitting a non-draft screening, unanswered questions, overriding a non-flagged screening, or invalid payload. |
401 | Authentication required for create and override operations. |
404 | Product or screening not found in the space. |