List legal records (filter, sort, paginate)

TIER-GATING: filters and sorting (scope, jurisdiction, status, in_force, updated_since, sort, order) are honoured at EVERY tier including anonymous — they are documented query semantics, so they are never silently dropped. What Free/anonymous callers get instead is low volume and shallow pagination: anon 5 rows per page with a trimmed field envelope, free-key 25 rows with the full field set. Developer+ raises the page size and unlocks deep pagination, the change feed and per-record history. When a request is capped, the response echoes meta.gated + an upgrade hint (it is never a hard error).

get/laws

Request

  • Base URL: https://ai-law-tracker.com/api/v1
  • URL: https://ai-law-tracker.com/api/v1/laws
  • Auth: one of:
    • none
    • API key in header X-API-Key
    • HTTP bearer

Query parameters

scope'state' | 'federal' | 'eu' | 'global'

Filter by scope.

jurisdictionstring

Exact jurisdiction slug (e.g. colorado, eu, us-federal, canada).

statusstring

Case-insensitive substring match on status.

in_forceboolean

Filter by the in_force flag.

updated_sincestring date-time

Only records updated at/after this ISO timestamp.

qstring

Substring search over title + summary.

sort'updated_at' | 'record_date' | 'title'
order'asc' | 'desc'
limitinteger
offsetinteger

Response

A page of records.

api_versionstring

Example response

{
  "data": [
    {
      "jurisdiction": {
        "slug": "colorado",
        "name": "Colorado",
        "abbr": "CO"
      },
      "identifier": "HB 251212",
      "record_type": "bill",
      "source": "openstates.org",
      "attribution": "Data by AI Law Tracker (CC BY 4.0) — https://ai-law-tracker.com"
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.