Browse docs

Get started

Quick start

Look up a verified employment or payroll rule, with the official source it was checked against, in about a minute.

What you get

Juriset is a verified, versioned record of US and Canadian employment and payroll rules. You ask for a rule in a place on a date; you get the values, the dates they apply, the official source with a verbatim excerpt and a saved copy of the page, and a version ID you can store with your own decision. The same record is served three ways:

SurfaceWhat it isStart here
REST APIRead-only JSON at https://api.juriset.dev/v1This guide
MCP serverThe same lookups as tools for AI agents, local or hostedMCP server
WebsiteA page per rule and place, with its sources and historyCompare rules

Juriset reports what the official sources say. It never computes an answer for a particular employee, and where federal, state or provincial rules stack it returns each level separately instead of merging them.

1. Look up a rule

No sign-up needed. Ask for California's minimum wage:

Terminal
curl "https://api.juriset.dev/v1/rules/employment/us-ca/minimum_wage"

The path is always /v1/rules/{domain}/{jurisdiction}/{rule_type}. Add ?as_of=YYYY-MM-DD for the rule on another day (a paid feature). Without a key you get 60 requests an hour and 500 a day from one IP address, reads only.

2. Find the slugs

Never guess a slug. Two calls list them, and neither needs a key:

Terminal
curl "https://api.juriset.dev/v1/jurisdictions?q=ontario"
Terminal
curl "https://api.juriset.dev/v1/rule-types"

Jurisdictions take a name, a postal abbreviation or a slug (us for federal, us-wa, ca-ab). Rule types today are minimum_wage, overtime, paid_leave and termination_notice in employment, and social_insurance_contributions and unemployment_insurance_contributions in payroll. The coverage page shows which places have each one.

3. Get an API key

  1. Sign in with your email. We send a link; there is no password.
  2. Open Keys, name a key and create it. It is shown once, so save it in your password manager or secret store.
  3. Send it as a bearer token:
    Terminal
    curl -H "Authorization: Bearer $JURISET_API_KEY" \
      "https://api.juriset.dev/v1/rules/employment/us-ca/minimum_wage"

The Free plan covers today's rules, 1,000 lookups a month. History, as_of and the change feed come with Developer and up; audit bundles with Growth and up. See pricing.

Keep keys out of source code, prompts and chat. Read them from an environment variable such as JURISET_API_KEY.

4. Read the response

Every rule response has the same shape. The fields you will use first:

FieldWhat it holds
dataThe values, in the rule type's JSON schema (schema_url): amounts, units, who it applies to, exceptions.
effective_from, effective_toThe dates this version applies.
citationThe official source: URL, section, a verbatim excerpt and snapshot_url, the copy of the page as it was checked.
verificationHow the version was checked: the extracting and verifying models, or the human who reviewed it.
idThe version ID, rv_…. It never changes and never points at different values.
layersEvery level of government that applies, each with its own values, source and version ID. How they combine is in resolution; Juriset never merges them for you.
upcomingPublished versions that take effect later, such as next January's rate.
coverage, review_pendingWhat is not covered (for example city rates) and whether a source change is waiting for review. Gaps are stated, never hidden.

Every field of every endpoint is in the API reference, generated from the OpenAPI document.

5. Keep the version ID

Store the id of each rule your software relied on next to the decision it made: the payslip, the termination letter, the schedule. Later, GET /v1/versions/{id} returns exactly what was published under that ID, with its source, so you can show which rule a decision rested on. The cookbook has worked examples, including audit bundles for an auditor.

Limits and errors

  • Rate limits. Past a limit the API answers 429, and the RateLimit-Remaining and RateLimit-Reset headers say when to try again.
  • Errors are JSON, {"error": {"code": "…", "message": "…", "docs_url": "…"}}, with the HTTP status that fits. Branch on code, never on the message. Every code is on the errors page.
  • Caching. Every read has an ETag. Send it back as If-None-Match and you get 304 while nothing has changed.
  • Stability. Changes to /v1 only ever add. A breaking change would be /v2, with /v1 still served.
  • Status. Outages and maintenance are on the status page.

Next steps

  • Build with AI: have Claude Code, Codex or Cursor wire Juriset into your product.
  • MCP server: give an agent the rules as tools, with no code.
  • Track record: how often values auto-publish, escalate and get corrected; also at GET /v1/track-record, no key needed.
  • Not legal advice: Informational only. Not legal advice. Verify with the cited source. Every response carries it in a Juriset-Disclaimer header; use of the API is covered by the terms.

Use with AI

Paste this into Claude Code, Codex, Cursor or any coding agent. It points the agent at this guide and at the machine-readable docs, so it works from Juriset's own descriptions rather than from memory.

Read https://juriset.dev/docs/quick-start and https://juriset.dev/llms.txt.
Then add a small client for the Juriset API to this project:
- base URL https://api.juriset.dev/v1, the key from the JURISET_API_KEY environment variable (send no header when it is unset)
- one function that returns a rule for a domain, jurisdiction slug, rule type and optional as_of date
- keep the response's version id (rv_…) and citation with every result, and log both where we act on a rule
- branch on error.code, retry 429 after RateLimit-Reset, and never invent a slug: look it up with /v1/jurisdictions
Do not hardcode any wage, rate or threshold, and do not merge layers into one value.

Informational only. Not legal advice. Verify with the cited source.