Getting Started: EU Legal Data Search

From sign-up to your first search result in under 5 minutes. Query EUR-Lex, TED, IATE, CURIA and 20 more EU data sources through a single API.

On this page

1. Sign up

1

Create a free account

Go to pauhu.eu/keys/ and sign in with your Google or Microsoft account. No credit card required.

After authentication, your API key is displayed on the dashboard. It starts with pk_. Copy it and keep it safe — you will use it in every request.

Free tier

The free tier gives you 3 requests per day across all products. This is enough to evaluate the API and test your integration. Paid plans remove the daily limit and unlock higher throughput.

Set your API key as an environment variable so the examples below work directly:

export PAUHU_KEY="pk_your_key_here"
2

Search EUR-Lex for the AI Act

The /v1/search/{product} endpoint returns documents ranked by relevance. Let's search EUR-Lex for the EU Artificial Intelligence Act:

curl "https://staging.pauhu.eu/v1/search/eurlex?q=AI+Act&lang=en&limit=3" \
  -H "Authorization: Bearer $PAUHU_KEY"

The response is a JSON array of results. Each result contains these fields:

Field Type Description
title string Document title as published by the source institution.
celex string CELEX identifier (EUR-Lex documents). A unique key like 32024R1689 for the AI Act regulation.
score number Relevance score between 0 and 1. Higher means closer semantic match to your query.
text string The matched paragraph or excerpt from the document, providing immediate context.
source_url string Direct link to the original document on the EU institution's website (e.g. eur-lex.europa.eu).

Example response (truncated):

{
  "results": [
    {
      "title": "Regulation (EU) 2024/1689 — Artificial Intelligence Act",
      "celex": "32024R1689",
      "score": 0.94,
      "text": "This Regulation lays down harmonised rules on artificial intelligence...",
      "source_url": "https://eur-lex.europa.eu/eli/reg/2024/1689/oj"
    }
  ],
  "total": 127,
  "lang": "en",
  "product": "eurlex"
}

3. Using filters

Every search endpoint supports query parameters to narrow results. Combine them to find exactly what you need.

3a

Filter by language

Use lang to get results in a specific EU language. Pauhu supports all 24 official EU languages. For example, to search in Finnish:

curl "https://staging.pauhu.eu/v1/search/eurlex?q=tekoäly&lang=fi&limit=5" \
  -H "Authorization: Bearer $PAUHU_KEY"

Language codes follow ISO 639-1: en, fi, de, fr, sv, es, it, pt, nl, pl, cs, da, el, et, hu, lt, lv, mt, sl, sk, bg, ro, hr, ga.

3b

Limit results

Use limit to control how many results are returned (default: 10, max: 50):

curl "https://staging.pauhu.eu/v1/search/eurlex?q=GDPR&lang=en&limit=20" \
  -H "Authorization: Bearer $PAUHU_KEY"
3c

Filter by topic

Use the topic parameter to scope results to a specific subject area. Topics correspond to EuroVoc descriptors used by EU institutions to classify documents:

curl "https://staging.pauhu.eu/v1/search/eurlex?q=regulation&lang=en&topic=environment&limit=5" \
  -H "Authorization: Bearer $PAUHU_KEY"

Available topics include: environment, transport, finance, agriculture, energy, health, trade, and more. See the data catalog for the full list.

4. Trying other products

The same /v1/search/{product} pattern works for all 24 data products. Replace the product name in the URL to search a different source. Here are some commonly used products:

4a

TED — Public procurement

Search Tenders Electronic Daily for EU public procurement notices. Find contracts, awards, and procurement opportunities:

curl "https://staging.pauhu.eu/v1/search/ted?q=hospital+construction+Finland&lang=en&limit=5" \
  -H "Authorization: Bearer $PAUHU_KEY"

TED results include fields like buyer_name, contract_value, and cpv_code (Common Procurement Vocabulary) in addition to the standard response fields.

4b

IATE — EU terminology

Search the Inter-Active Terminology for Europe database with 2.4 million terms in 24 languages. Useful for translators, legal professionals, and localisation teams:

curl "https://staging.pauhu.eu/v1/search/iate?q=carbon+border+adjustment&lang=en&limit=5" \
  -H "Authorization: Bearer $PAUHU_KEY"

IATE results include the term in your requested language, its reliability level, the source institution, and subject domain.

4c

CURIA — EU case law

Search judgments, opinions, and orders from the Court of Justice of the European Union:

curl "https://staging.pauhu.eu/v1/search/curia?q=right+to+be+forgotten&lang=en&limit=5" \
  -H "Authorization: Bearer $PAUHU_KEY"

CURIA results include the case number (e.g. C-131/12), the court chamber, date of judgment, and the relevant paragraph text.

For the full list of available products, see the Products page or the API reference.

5. Exporting results

5a

Save JSON to a file

Pipe the API response directly to a file for later processing:

curl -s "https://staging.pauhu.eu/v1/search/eurlex?q=AI+Act&lang=en&limit=50" \
  -H "Authorization: Bearer $PAUHU_KEY" \
  -o ai-act-results.json
5b

Convert to CSV

Use jq to transform the JSON response into CSV format for spreadsheets and data analysis tools:

curl -s "https://staging.pauhu.eu/v1/search/eurlex?q=AI+Act&lang=en&limit=50" \
  -H "Authorization: Bearer $PAUHU_KEY" \
  | jq -r '.results[] | [.celex, .score, .title] | @csv' \
  > ai-act-results.csv

This produces a CSV file with columns for CELEX number, relevance score, and document title. Adjust the jq filter to include whichever fields you need.

6. Chat (grounded answers)

6

Ask a question, get a cited answer

The /v1/chat endpoint generates natural-language answers grounded in real EU documents. Responses stream via Server-Sent Events (SSE), so you see tokens as they arrive:

curl -N -X POST "https://staging.pauhu.eu/v1/chat" \
  -H "Authorization: Bearer $PAUHU_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "Is deploying a chatbot regulated under the AI Act?"}'

The SSE stream emits events of these types:

Event Description
token A single text token of the generated answer. Concatenate these to build the full response.
citation A source reference with celex, title, and source_url. Every factual claim in the answer is backed by at least one citation.
done Signals the stream is complete. Contains a confidence score for the overall answer quality.
error Returned if the request fails (e.g. invalid API key, rate limit exceeded).

Example SSE output:

event: token
data: {"text": "Yes. Under the AI Act "}

event: token
data: {"text": "(Regulation 2024/1689), chatbots are classified as "}

event: citation
data: {"celex": "32024R1689", "title": "AI Act", "source_url": "https://eur-lex.europa.eu/eli/reg/2024/1689/oj"}

event: token
data: {"text": "limited-risk AI systems that must comply with transparency obligations under Article 50..."}

event: done
data: {"confidence": 0.91}

Every answer links back to its source documents, so you can verify claims directly at the official EU publication.

7. Next steps

Free — 3 requests/day 24 data products 24 EU languages EU jurisdiction

Questions? Contact us at api@pauhu.eu.