Full-text search across articles, recitals, and requirements
curl --request GET \
--url https://demo.law4devs.eu/api/v1/searchimport requests
url = "https://demo.law4devs.eu/api/v1/search"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://demo.law4devs.eu/api/v1/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://demo.law4devs.eu/api/v1/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://demo.law4devs.eu/api/v1/search"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://demo.law4devs.eu/api/v1/search")
.asString();require 'uri'
require 'net/http'
url = URI("https://demo.law4devs.eu/api/v1/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": [
{
"type": "article",
"framework_slug": "cra",
"framework_name": "CRA",
"article_number": 1,
"title": "Subject matter",
"match_context": "...cybersecurity requirements for the design, development and production...",
"url": "/v1/frameworks/cra/articles/1"
}
],
"meta": {
"api_version": "1.0",
"total": 159,
"page": 1,
"per_page": 20,
"query": "cybersecurity requirements",
"facets": {
"articles": 45,
"recitals": 30,
"requirements": 84
}
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Framework 'xyz' not found."
}
}Search
Full-text search across articles, recitals, and requirements
Searches article titles and content, recital content, and requirement text across all active frameworks. Returns ranked results with context snippets. Supports filtering by framework, tag, stakeholder role, and result type.
Query must be at least 2 characters and at most 500 characters.
GET
/
search
Full-text search across articles, recitals, and requirements
curl --request GET \
--url https://demo.law4devs.eu/api/v1/searchimport requests
url = "https://demo.law4devs.eu/api/v1/search"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://demo.law4devs.eu/api/v1/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://demo.law4devs.eu/api/v1/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://demo.law4devs.eu/api/v1/search"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://demo.law4devs.eu/api/v1/search")
.asString();require 'uri'
require 'net/http'
url = URI("https://demo.law4devs.eu/api/v1/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": [
{
"type": "article",
"framework_slug": "cra",
"framework_name": "CRA",
"article_number": 1,
"title": "Subject matter",
"match_context": "...cybersecurity requirements for the design, development and production...",
"url": "/v1/frameworks/cra/articles/1"
}
],
"meta": {
"api_version": "1.0",
"total": 159,
"page": 1,
"per_page": 20,
"query": "cybersecurity requirements",
"facets": {
"articles": 45,
"recitals": 30,
"requirements": 84
}
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Framework 'xyz' not found."
}
}Query Parameters
Search query (2–500 characters)
Required string length:
2 - 500Example:
"cybersecurity requirements"
Limit search to one framework slug
Example:
"cra"
Filter results to those with this tag slug
Example:
"risk-assessment"
Filter requirements by stakeholder role
Example:
"manufacturer"
Limit to one result type
Available options:
article, recital, requirement Page number (1-based)
Required range:
x >= 1Example:
1
Results per page (max 100)
Required range:
1 <= x <= 100Example:
20
Was this page helpful?
