Bosco Labs

Tools › Compliance & law

UK & Dutch Law Lookup API: article text by date, in force

Coming soon to the Store

One call answers "what does section 172 of the Companies Act 2006 say?" or "wat zegt artikel 7:658 BW?": the section or article as plain text from the official consolidated version in force today (or on any date), whether it is in force, and what changed it. Built for AI agents doing legal and compliance work, and for people who want a sourced answer without XML.

Price$0.01 per article or act returned
DomainCompliance & law
Call itApify API, MCP or HTTP API

Pricing (pay per event): $0.01 per article or act returned (act-lookup). A citation that can't be read, or an article that doesn't exist, fails in seconds and costs nothing.

Coming soon to the Apify StoreAsk for early access

Questions agents ask

  • “What does article 13 of the Dutch Wet op de vennootschapsbelasting 1969 say as of 1 January 2025? Quote it and link the source.”

Example

Input

{ "query": "Wet op de vennootschapsbelasting 1969 artikel 13", "asOf": "2025-01-01" }

Output

{
  "schema_version": "1",
  "query": "Companies Act 2006 s 172",
  "jurisdiction": "UK",
  "act_id": "ukpga/2006/46",
  "eli": "http://www.legislation.gov.uk/id/ukpga/2006/46",
  "title": "Companies Act 2006",
  "long_title": "An Act to reform company law and restate the greater part of the enactments relating to companies; ...",
  "act_type": "UK Public General Act",
  "act_type_code": "ukpga",
  "date_document": "2006-11-08",
  "date_publication": null,
  "official_publication": "2006 c. 46",
  "date_entry_into_force": "2007-10-01",
  "date_end_of_validity": null,
  "in_force": true,
  "act_url": "https://www.legislation.gov.uk/id/ukpga/2006/46",
  "language": "EN",
  "as_of": null,
  "latest_consolidated_version_date": "2026-07-16",
  "text_version": "consolidated",
  "consolidated_version_date": "2026-07-16",
  "text_notice": "Revised (consolidated) text prepared by the legislation.gov.uk editorial team; changes listed in pending_changes are not yet applied to it. Contains public sector information licensed under the Open Government Licence v3.0. Source: legislation.gov.uk (The National Archives), © Crown and database right.",
  "source_url": "https://www.legislation.gov.uk/ukpga/2006/46/section/172",
  "data_url": "https://www.legislation.gov.uk/ukpga/2006/46/section/172/data.xml",
  "article": "172",
  "paragraph": null,
  "article_title": "Duty to promote the success of the company",
  "article_amended_by": [],
  "pending_changes": [],
  "article_text": "(1) A director of a company must act in the way he considers, in good faith, would be most likely to promote the success of the company for the benefit of its members as a whole, and in doing so have regard (amongst other matters) to—\n(a) the likely consequences of any decision in the long term,\n(b) the interests of the company's employees,\n(c) the need to foster the company's business relationships with suppliers, customers and others,\n(d) the impact of the company's operations on the community and the environment,\n(e) the desirability of the company maintaining a reputation for high standards of business conduct, and\n(f) the need to act fairly as between members of the company.\n(2) Where or to the extent that the purposes of the company consist of or include purposes other than the benefit of its members, subsection (1) has effect as if the reference to promoting the success of the company for the benefit of its members were to achieving those purposes.\n(3) The duty imposed by this section has effect subject to any enactment or rule of law requiring directors, in certain circumstances, to consider or act in the interests of creditors of the company.",
  "article_text_truncated": false,
  "warnings": [],
  "retrieved_at": "2026-11-05T22:54:33+00:00",
  "duration_seconds": 0.1
}

What you get

FieldTypeMeaning
schema_versionstringOutput schema version.
querystring | nullThe query as given.
jurisdictionstring"UK" or "NL".
act_idstringIdentifier of the act: legislation.gov.uk path ("ukpga/2006/46") or BWB id ("BWBR0005290"). Same role as celex in eu-law-lookup.
elistring | nullEuropean Legislation Identifier URI (UK, e.g. http://www.legislation.gov.uk/id/ukpga/2006/46); null for NL.
titlestring | nullShort title or citeertitel, e.g. "Companies Act 2006", "Burgerlijk Wetboek Boek 7".
long_titlestring | nullLong title (UK) or intitule (NL).
act_typestring | nullType of act, e.g. "UK Public General Act", "UK Statutory Instrument", "Wet", "Algemene maatregel van bestuur".
act_type_codestring | nullSource code for the type: legislation.gov.uk type (ukpga, uksi, asp...) or BWB soort (wet, AMvB, ministeriele-regeling...).
date_documentstring | nullUK: date of Royal Assent or making; NL: date of signature. YYYY-MM-DD.
date_publicationstring | nullNL: issue date of the original Staatsblad/Staatscourant; null when unknown and for UK.
official_publicationstring | nullOfficial reference: UK chapter or SI number ("2006 c. 46", "S.I. 2003/2426"), NL publication ("Stb. 1991, 600"). Same role as oj_reference in eu-law-lookup.
date_entry_into_forcestring | nullUK article rows: when the section came into force (from its commencement note); NL: when the regulation first entered into force. YYYY-MM-DD.
date_end_of_validitystring | nullNL: last day of the last consolidated version when the regulation has lapsed (vervallen); null when open-ended and for UK.
in_forceboolean | nullWhether the returned article (for NL act rows: the act) is in force on as_of (default today). UK act rows: null.
act_urlstringOfficial page of the act (legislation.gov.uk id URI or wetten.overheid.nl).
languagestringLanguage of the text: EN (UK) or NL (NL).
as_ofstring | nullThe asOf date used (null = today).
latest_consolidated_version_datestring | nullDate of the newest consolidated (revised) version the source holds; may be later than as_of.
text_versionstring | null"consolidated" (revised / geconsolideerde tekst) or "original" (as enacted or made, UK only).
consolidated_version_datestring | nullDate from which the version used applies, YYYY-MM-DD.
text_noticestring | nullLicence attribution and the source's status note: revised texts are editorial consolidations; for NL the authentic text is the Staatsblad/Staatscourant publication.
source_urlstringPage of the exact text version used (article-level when available).
data_urlstring | nullThe XML the text was read from. Same role as cellar_url in eu-law-lookup.
articlestring | nullThe section, regulation or article returned, e.g. "172", "658", "8:1"; null for an act-level row.
paragraphstring | nullThe subsection (UK) or lid (NL) returned; null = whole article.
article_titlestring | nullHeading of the section or article (UK sections have one; most Dutch articles do not).
article_textstring | nullPlain text, one line per subsection, paragraph or list item, numbering kept (UK "(1)", "(a)"; NL "1.", "a.").
article_text_truncatedboolean | nullTrue when article_text was cut at maxTextChars.
article_amended_byarrayChanges to this article: UK textual amendments shown with it (F-notes), NL the publication that last changed it. Items {source, date, change, url}.
pending_changesarrayUK: changes legislation.gov.uk lists as not yet applied to this provision, {type, affected, source, url, in_force_date}. Always [] for NL.
articles_countinteger | nullAct-level row: number of sections or articles (NL: not repealed).
table_of_contentsarrayAct-level row: [{article, title}] for up to 500 sections or articles, to pick one for a follow-up call.
warningsarrayCaveats in plain words: not in force on asOf, repealed, newer version coming, fallbacks, truncation.
retrieved_atstringWhen the row was made (ISO 8601, UTC).
duration_secondsnumberHow long the lookup took.

Use with AI agents (MCP)

Add this URL to your MCP client (Claude, Cursor, VS Code, ...) to load the Actor as a tool through the Apify hosted MCP server. It signs you in with OAuth or accepts Authorization: Bearer <APIFY_TOKEN>. It works once the Actor is live on the Apify Store.

https://mcp.apify.com?tools=bosco_labs/national-law-lookup

For “What does article 13 of the Dutch Wet op de vennootschapsbelasting 1969 say as of 1 January 2025? Quote it and link the source.” the agent passes:

{ "query": "artikel 13 Wet Vpb 1969", "asOf": "2025-01-01" }

small JSON rows (typically 3-15 KB), stable snake_case fields, ISO dates, null for unknown, a link to the exact version. warnings says in plain words when the text is not in force on asOf, a newer version is coming, or changes are not yet applied. A Dutch lookup takes under a second after start-up; a UK lookup about 1 second, plus 5 seconds per extra request (a short title that isn't in our list, or each extra section), because legislation.gov.uk asks clients to wait 5 seconds between requests.

Or call the Apify API: POST https://api.apify.com/v2/acts/bosco_labs~national-law-lookup/run-sync-get-dataset-items with the input as JSON body. Cost: $0.01 per article or act returned.

HTTP API

Also on the Bosco Labs HTTP API (beta, test mode): same input and same rows as the Actor, $0.005 per article or act returned from prepaid credits (max 10 articles per call). Get a key with a $0.50 free trial; see prices and limits.

curl https://api.boscolabs.dev/v1/national-law-lookup \
  -H "Authorization: Bearer $BOSCO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "artikel 13 Wet Vpb 1969", "asOf": "2025-01-01"}'

UK: contains public sector information licensed under the Open Government Licence v3.0 (© Crown and database right, legislation.gov.uk).

Input fields

FieldTypeMeaning
querystring (required)The act, optionally with the article. UK: a short title with a section ("Companies Act 2006 s 172", "section 172 of the Companies Act 2006"), a short name ("CA 2006", "DPA 2018", "UK GDPR", "PECR"; 35 common acts), a legislation.gov.uk path or URL ("ukpga/2006/46/section/172"), a chapter ("2006 c. 46") or an SI ("S.I. 2003/2426 reg 6"). NL: "BW 7:658", "artikel 13 Wet Vpb 1969", "Awb 8:1", "art. 310 Sr", an abbreviation (BW1-10, Sr, Sv, Rv, Awb, UAVG, Wft, Wwft, Woo ...), a citeertitel, a BWB id ("BWBR0002672"), a jci reference or a wetten.overheid.nl URL. Required. An unreadable citation fails in seconds, with examples, at no charge.
jurisdictionstring"UK" or "NL". Default empty = detected from the citation (paths, BWB ids, known names, Dutch or English words); set it when a bare name is ambiguous.
articlestringSection, regulation or article number, optionally with a subsection or lid: "172", "172(1)", "7:658", "13 lid 2", "8:1"; several separated by commas (up to 5, e.g. "171, 172"). One row per article. Overrides an article in the query. Empty = the article in the query, or else one row for the whole act with its table of contents.
asOfstringYYYY-MM-DD, e.g. "2025-01-01": return the text as in force on that date (UK point-in-time version; NL consolidated version, newest correction). Empty = today.
languagestringOptional, "EN" or "NL". UK texts are English and Dutch texts are Dutch: there is no official English translation of Dutch legislation, so EN for a Dutch act returns the Dutch text with a warning. Default empty = the source language.
maxTextCharsintegerCap on article_text, in characters, e.g. 30000 (default). Longer text is cut and flagged (article_text_truncated) with a warning.

Sources, licence and limits

Where does the data come from? UK: legislation.gov.uk (The National Archives), its Legislation API XML. NL: the Basiswettenbestand (BWB) open-data repository of KOOP, the same consolidated texts wetten.overheid.nl shows; names not in our abbreviation list are looked up in the official BWB search service (SRU). Nothing else is added, and the text is not rewritten or summarised.

Is the consolidated text the law? It is an editorial consolidation, not the authentic publication. For Dutch law the authentic text is the publication in the Staatsblad or Staatscourant (Bekendmakingswet, art. 4-5); the row names that publication and links it. UK revised texts are prepared by the legislation.gov.uk editorial team and may not yet include every change: check pending_changes. Every row carries this in text_notice.

Is this legal advice? No. It returns official texts and metadata as published; it does not interpret them.

Is there an English version of Dutch law? No official one. Dutch texts are returned in Dutch; ask your agent to translate and say that the translation is unofficial.

Which acts work? UK: all legislation on legislation.gov.uk with numbered sections, regulations or articles (Acts of the UK, Scottish, Welsh and NI parliaments, SIs, retained EU law such as the UK GDPR). Schedules are not split out yet. NL: every regulation in the BWB (wetten, AMvB's, ministeriële regelingen, beleidsregels), with versions from about 2002 (the start of the BWB's history) onwards.

How current is it? Live: every call reads the source. Dutch versions appear when KOOP publishes them (usually on the day they take effect); legislation.gov.uk applies changes after they are made, so recent amendments can sit in pending_changes for a while.

Points like 172(1)(a)? The subsection is returned whole; points are lines inside it.

Personal data? None is requested or returned beyond what the published legislation contains.

Content: UK, contains public sector information licensed under the Open Government Licence v3.0 (© Crown and database right, legislation.gov.uk). NL, Basiswettenbestand (KOOP); Dutch legislation is not protected by copyright (Auteurswet art. 11). XML is converted to plain text and long texts are cut where maxTextChars says; nothing else is changed.

Coming soon to the Apify StoreAsk for early access