Overview
Requirements are machine-readable compliance obligations extracted from framework articles. Each requirement is tied to a specific article (and optionally a paragraph), carries a type classification, and lists the stakeholder roles it applies to.
Methods
list()
Returns a page of requirements. Without filters, this returns requirements across all frameworks.
Parameters
| Parameter | Type | Default | Description |
|---|
framework_slug | str | None | Filter by framework |
page | int | 1 | Page number |
per_page | int | 20 | Items per page (1–100) |
Returns Page[Requirement]
iter()
Iterate over all requirements, optionally filtered by framework.
Parameters — same kwargs as list() (except page).
Returns Iterator[Requirement]
Model
Requirement
| Field | Type | Description |
|---|
id | int | Internal numeric ID |
framework_slug | str | Parent framework slug |
article_number | int | Source article number |
paragraph_ref | str | None | Paragraph label, e.g. "1", "2a" |
paragraph_content | str | None | Full text of the source paragraph |
requirement_text | str | Extracted obligation text |
requirement_type | str | Classification: "obligation", "prohibition", "permission", "definition", etc. |
compliance_deadline | str | None | ISO 8601 date if a deadline is specified |
linked_article_numbers | list[int] | Related articles within the same framework |
stakeholder_roles | list[str] | Roles this applies to, e.g. ["controller", "processor"] |
tags | list[str] | Tag slugs |
created_at | str | ISO 8601 creation timestamp |
Examples
Build a compliance checklist
Filter requirements for a specific role
Find requirements with deadlines
Group requirements by type
Export requirements to a CSV
The requirement_type field makes it easy to separate hard obligations from definitions and permissions. Filter on "obligation" or "prohibition" when building audit checklists.
linked_article_numbers contains article numbers within the same framework, not cross-framework references.