Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.law4devs.eu/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Requirements are structured compliance obligations extracted from regulatory articles. Each requirement has a type, optional deadline, linked articles, and stakeholder roles. Use $client->requirements to access them.

Methods

list()

Returns a page of requirements for the given framework.
$page = $client->requirements->list('cra', perPage: 20);

printf("CRA has %d requirements\n", $page->meta->total);
foreach ($page->data as $req) {
    printf("  [%s] %s\n", $req->requirementType, substr($req->requirementText, 0, 80));
}
Returns Page<Requirement>

get()

Fetch a single requirement by ID.
$req = $client->requirements->get('cra', 42);
echo $req->requirementText . "\n";
Returns Requirement

iter()

Iterate over all requirements in a framework.
foreach ($client->requirements->iter('gdpr') as $req) {
    echo $req->requirementType . ': ' . substr($req->requirementText, 0, 60) . "\n";
}
Returns \Generator<Requirement>

Model

Requirement

FieldTypeDescription
idintInternal numeric ID
frameworkSlugstringParent framework slug
articleNumberint|nullSource article number
paragraphRefstring|nullParagraph reference within the article
paragraphContentstring|nullText of the source paragraph
requirementTextstringThe extracted requirement
requirementTypestringCategory, e.g. 'obligation', 'prohibition'
complianceDeadlinestring|nullDeadline date (ISO 8601) if specified
linkedArticleNumbersint[]Related article numbers
stakeholderRolesstring[]Affected parties, e.g. 'manufacturer'
tagsTag[]Tags applied to this requirement
createdAtstringISO 8601 creation timestamp

Examples

Filter by requirement type

foreach ($client->requirements->iter('cra') as $req) {
    if ($req->requirementType === 'obligation') {
        echo '- ' . $req->requirementText . "\n";
    }
}

Find requirements with deadlines

foreach ($client->requirements->iter('nis2') as $req) {
    if ($req->complianceDeadline !== null) {
        printf("[%s] %s\n", $req->complianceDeadline, substr($req->requirementText, 0, 80));
    }
}