HowToRomania API

Data from Romanian public registries for AI agents, over REST and MCP. 15 services. Pay per successful call in prepaid credits: 1 credit = €0.005 (smallest pack), 100 free credits per key. Errors and not-found are never billed.

AreaServiceEndpointReturnsCredits≈ EUR
CompaniesCompany lookupGET /v1/company/{cui}
MCP lookup_company
ANAF registry data by CUI/VAT id: name, address, status, VAT, e-Factura, BNR EUR/RON1€0.005
CompaniesFinancial statementsGET /v1/company/{cui}/financials
MCP get_company_financials
Up to 5 years of filed accounts + ratios (RON)5€0.025
CompaniesLegal representatives (ONRC)GET /v1/company/{cui}/representatives
MCP get_company_representatives
Trade-register status, CAEN codes, representatives (name, role)2€0.010
CompaniesRisk report (KYB)GET /v1/company/{cui}/risk-report
MCP get_company_risk_report
Status + financials + court cases + registry, score 0-100 with explained flags8€0.040
CourtsCompany court casesGET /v1/company/{cui}/court-cases
MCP get_company_court_cases
Cases where the company is a party (portal.just.ro), summary + list3€0.015
CourtsCourt case by numberGET /v1/court-cases/{caseNumber}
MCP get_court_case
Parties, hearings, outcomes, appeals1€0.005
e-FacturaValidate invoice XMLPOST /v1/efactura/validate
MCP validate_efactura
validated with ANAF's public validation service (CIUS-RO) + local checks, rule codes1€0.005
e-FacturaGenerate invoice XMLPOST /v1/efactura/generate
MCP generate_efactura
CIUS-RO UBL from simple JSON; parties auto-filled from CUI; validated with ANAF's public validation service2€0.010
e-FacturaParse invoice XMLPOST /v1/efactura/parse
MCP parse_efactura
UBL Invoice/CreditNote -> English JSON1€0.005
e-FacturaInvoice PDFPOST /v1/efactura/pdf
MCP efactura_to_pdf
rendered with ANAF's public PDF service1€0.005
LegislationSearch actsGET /v1/legislation/search
MCP search_legislation
By citation ('Legea 31/1990') or title words1€0.005
LegislationAct (in force)GET /v1/legislation/act/{id}
MCP get_legal_act
Current consolidated text, split by article1€0.005
LegislationArticle (in force)GET /v1/legislation/act/{id}/article/{n}
MCP get_legal_article
One article + dated amendment notes1€0.005
LegislationAmendment historyGET /v1/legislation/act/{id}/history
MCP get_legal_act_history
Consolidation dates, dated amendments per article2€0.010
LegislationNew actsGET /v1/legislation/new
MCP get_new_legal_acts
Acts in force since a date (max 35 days)1€0.005

Packs: €5 = 1,000 credits · €20 = 5,000 · €100 = 30,000. Links: OpenAPI 3.1 · llms.txt · llms-full.txt · /v1/pricing · MCP https://api.howtoromania.io/mcp

Quickstart

1. Try without signup: public demo key htr_demo (20 calls/day per IP; company.lookup, court.case, efactura.validate, efactura.parse, legislation.search, legislation.article, legislation.new).

curl -H "x-api-key: htr_demo" https://api.howtoromania.io/v1/company/14399840

2. Free key, 100 credits, all endpoints (shown once):

curl -X POST https://api.howtoromania.io/v1/keys -H "content-type: application/json" -d '{"email":"you@example.com","accept_terms":true}'

3. Send x-api-key: <key> or Authorization: Bearer <key>. Out of credits → HTTP 402 with checkout links. Balance: GET /v1/me.

MCP setup

Remote server, streamable HTTP: https://api.howtoromania.io/mcp. initialize and tools/list work without a key; tool calls need one. Replace htr_demo with your key.

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "howtoromania": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://api.howtoromania.io/mcp",
        "--header",
        "Authorization: Bearer ${HTR_KEY}"
      ],
      "env": {
        "HTR_KEY": "htr_demo"
      }
    }
  }
}

Claude.ai / Claude Desktop custom connector: add URL https://api.howtoromania.io/mcp (Settings → Connectors) if your plan supports custom headers; otherwise use the config above.

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "howtoromania": {
      "url": "https://api.howtoromania.io/mcp",
      "headers": {
        "Authorization": "Bearer htr_demo"
      }
    }
  }
}

Cline (cline_mcp_settings.json)

{
  "mcpServers": {
    "howtoromania": {
      "type": "streamableHttp",
      "url": "https://api.howtoromania.io/mcp",
      "headers": {
        "Authorization": "Bearer htr_demo"
      }
    }
  }
}

ChatGPT / OpenAI Responses API

{
  "type": "mcp",
  "server_label": "howtoromania",
  "server_url": "https://api.howtoromania.io/mcp",
  "headers": {
    "Authorization": "Bearer $HTR_KEY"
  },
  "require_approval": "never"
}

ChatGPT app (developer mode): add a connector with URL https://api.howtoromania.io/mcp. Custom actions (GPTs): import https://api.howtoromania.io/openapi.json, auth API key header x-api-key.

Example agent tasks

  1. KYB on a Romanian supplier: “Before we sign with supplier RO14399840, check it's active, VAT-registered, and summarize risk flags.” → get_company_risk_report (8)
  2. Verify a VAT id on an invoice: “Is RO14399840 a valid, active Romanian VAT payer? Return legal name and registered address.” → lookup_company (1)
  3. Who can sign for the company: “List the legal representatives of CUI 14399840 and their roles.” → get_company_representatives (2)
  4. Financial health check: “Show turnover, net profit and employees for CUI 14399840 for the last 3 years, with YoY growth.” → get_company_financials (5)
  5. Litigation screen: “Is CUI 14399840 a defendant in any insolvency or pending civil cases since 2024?” → get_company_court_cases (3)
  6. Invoice a Romanian client (cross-border): “Create an e-Factura invoice from our German company DE123456789 to RO14399840: 10 hours consulting at €120, reverse charge.” → generate_efactura (2)
  7. Fix a rejected e-Factura: “ANAF rejected this XML. Validate it and tell me exactly which rules fail and how to fix them.” → validate_efactura (1)
  8. Read an incoming Romanian invoice: “Parse this e-Factura XML and give me supplier, totals, VAT and IBAN in JSON for our ERP.” → parse_efactura (1)
  9. Current Romanian VAT rate: “What VAT rates apply in Romania today per Codul fiscal art. 291, and when did they last change?” → get_legal_article (1) + get_legal_act_history (2)
  10. Monitor new Romanian law: “List Romanian acts that entered into force this week that affect taxes or companies.” → get_new_legal_acts (1)

Services

Company lookup · 1 cr

ANAF registry data by CUI/VAT id: name, address, status, VAT, e-Factura, BNR EUR/RON. MCP tool lookup_company.

curl -H "x-api-key: htr_demo" "https://api.howtoromania.io/v1/company/14399840"

Financial statements · 5 cr

Up to 5 years of filed accounts + ratios (RON). MCP tool get_company_financials.

curl -H "x-api-key: $HTR_KEY" "https://api.howtoromania.io/v1/company/14399840/financials?years=3"

Legal representatives (ONRC) · 2 cr

Trade-register status, CAEN codes, representatives (name, role). MCP tool get_company_representatives.

curl -H "x-api-key: $HTR_KEY" "https://api.howtoromania.io/v1/company/14399840/representatives"

Risk report (KYB) · 8 cr

Status + financials + court cases + registry, score 0-100 with explained flags. MCP tool get_company_risk_report.

curl -H "x-api-key: $HTR_KEY" "https://api.howtoromania.io/v1/company/14399840/risk-report"

Company court cases · 3 cr

Cases where the company is a party (portal.just.ro), summary + list. MCP tool get_company_court_cases.

curl -H "x-api-key: $HTR_KEY" "https://api.howtoromania.io/v1/company/14399840/court-cases?limit=20"

Court case by number · 1 cr

Parties, hearings, outcomes, appeals. MCP tool get_court_case.

curl -H "x-api-key: htr_demo" "https://api.howtoromania.io/v1/court-cases/9430%2F271%2F2025"

Validate invoice XML · 1 cr

validated with ANAF's public validation service (CIUS-RO) + local checks, rule codes. MCP tool validate_efactura.

curl -X POST -H "x-api-key: htr_demo" -H "content-type: application/xml" --data-binary @invoice.xml https://api.howtoromania.io/v1/efactura/validate

Generate invoice XML · 2 cr

CIUS-RO UBL from simple JSON; parties auto-filled from CUI; validated with ANAF's public validation service. MCP tool generate_efactura.

curl -X POST -H "x-api-key: $HTR_KEY" -H "content-type: application/xml" --data-binary @invoice.xml https://api.howtoromania.io/v1/efactura/generate

Parse invoice XML · 1 cr

UBL Invoice/CreditNote -> English JSON. MCP tool parse_efactura.

curl -X POST -H "x-api-key: htr_demo" -H "content-type: application/xml" --data-binary @invoice.xml https://api.howtoromania.io/v1/efactura/parse

Invoice PDF · 1 cr

rendered with ANAF's public PDF service. MCP tool efactura_to_pdf.

curl -X POST -H "x-api-key: $HTR_KEY" -H "content-type: application/xml" --data-binary @invoice.xml https://api.howtoromania.io/v1/efactura/pdf

Search acts · 1 cr

By citation ('Legea 31/1990') or title words. MCP tool search_legislation.

curl -H "x-api-key: htr_demo" "https://api.howtoromania.io/v1/legislation/search?q=Codul%20fiscal"

Current consolidated text, split by article. MCP tool get_legal_act.

curl -H "x-api-key: $HTR_KEY" "https://api.howtoromania.io/v1/legislation/act/171282?limit=5"

Article (in force) · 1 cr

One article + dated amendment notes. MCP tool get_legal_article.

curl -H "x-api-key: htr_demo" "https://api.howtoromania.io/v1/legislation/act/171282/article/291"

Consolidation dates, dated amendments per article. MCP tool get_legal_act_history.

curl -H "x-api-key: $HTR_KEY" "https://api.howtoromania.io/v1/legislation/act/171282/history?article=291"

Acts in force since a date (max 35 days). MCP tool get_new_legal_acts.

curl -H "x-api-key: htr_demo" "https://api.howtoromania.io/v1/legislation/new"

e-Factura generate body

curl -X POST -H "x-api-key: $HTR_KEY" -H "content-type: application/json" https://api.howtoromania.io/v1/efactura/generate -d '{"number":"INV-1","seller":{"vatId":"DE123456789","name":"Acme GmbH","street":"Hauptstr 1","city":"Berlin","country":"DE"},"buyer":{"cui":"14399840"},"currency":"EUR","vatToRonRate":5.09,"lines":[{"name":"Consulting","quantity":10,"unitCode":"HUR","unitPrice":120,"vatCategory":"AE","vatRate":0}]}'

Notes