Skip to main content
CASE

CASE Developer API · v1

The clearance record, as an API

A read-only REST API over the entire decided public DOHA security-clearance record, more than 30,000 decisions since 1996. The same data the site shows, as clean JSON, for research pipelines, internal tools, and scripts. Descriptive record only: no predictions, and never any user data.

Read-onlyJSON over HTTPSBearer key2,000 requests/key/dayIncluded with Professional

Search the record

Query decisions by concern (Guideline A–M), outcome, judge, hearing or appeal, and year, with true totals and paging.

Pull a full case

The aligned record for any decision: guidelines with rulings, mitigations the judge credited, the ¶ conditions, and the appeal outcome.

Query the statistics

Granted and denied counts by year or by guideline, the same population and numbers that drive the Insights page.

Quick start

Every endpoint lives under one base URL, requires a Bearer key, and returns JSON. Create a key on your Account page (Professional), then make your first request:

Base URL
https://www.clearancesearchengine.com/api/v1
First request
curl -H "Authorization: Bearer case_live_your_key_here" \
  "https://www.clearancesearchengine.com/api/v1/cases?guideline=F&outcome=granted&year_from=2020&per_page=5"

Authentication

Send your key as a Bearer token on the Authorization header. Keys look like case_live_ followed by 48 hex characters, and the full key is shown only once, at creation. You can hold up to two active keys per account, and revoke either at any time from your Account page.

Header
Authorization: Bearer case_live_1a2b3c...

A missing, malformed, unknown, or revoked key returns 401 unauthorized. Keep keys secret; treat one like a password.

Rate limits

Each key is allowed 2,000 requests per day, counted per calendar day in UTC and reset at 00:00 UTC. Once a key goes over, requests return 429 quota_exceeded until the reset. For steady jobs, spread requests across the day and cache what you have already pulled. Need a higher ceiling or a bulk arrangement? Write to us and describe the project.

Pagination

List endpoints are paged. Pass page (1-based, default 1) and per_page (default 25, maximum 50). Every list response carries page, per_page, and total, the true count across all pages, so you can loop until page × per_page ≥ total.

Envelope
{
  "data": [ /* … */ ],
  "page": 1,
  "per_page": 25,
  "total": 812
}

Response format

  • Successful responses wrap results in a data field.
  • Every response includes an attribution string. Display it on any published use of the data (see Terms).
  • Dates are ISO 8601. Names, summaries, and rulings are the public-record values shown on the site.
  • Guideline letters are AM; outcomes are upper-case (GRANTED, DENIED, REVOKED); level is HEARING or APPEAL.

Errors

Errors use standard HTTP status codes and a consistent body.

StatuscodeWhen
400bad_requestA parameter was malformed (for example, a non-integer case id).
401unauthorizedMissing, malformed, unknown, or revoked key.
404not_foundNo case exists with that id.
429quota_exceededThe key’s daily quota is used up; resets at 00:00 UTC.
Error body
{
  "error": {
    "code": "quota_exceeded",
    "message": "Daily quota of 2000 requests reached; resets at 00:00 UTC."
  }
}

Endpoints

GETGET /api/v1/cases

Search decided cases. Uses the same filter engine as the site’s search, so API results match the website exactly. Returns a paged list, newest decision first.

Parameters

ParameterTypeDescription
qstringFull-text search across the decision text.
guidelinestringA single guideline letter, AM.
outcomestringgranted or denied.
levelstringhearing or appeal.
year_fromintegerEarliest decision year (YYYY).
year_tointegerLatest decision year (YYYY).
pageinteger1-based page number. Default 1.
per_pageintegerResults per page. Default 25, maximum 50.
Request
curl -H "Authorization: Bearer case_live_…" \
  "https://www.clearancesearchengine.com/api/v1/cases?guideline=F&outcome=granted&year_from=2024&per_page=2"
Response
{
  "data": [
    {
      "id": 28471,
      "case_number": "24-02030",
      "decision_date": "2026-03-12",
      "outcome": "GRANTED",
      "level": "HEARING",
      "guidelines": ["F"],
      "judge": "Candace Le'i Garcia",
      "summary": "The applicant mitigated financial considerations concerns related to 11 delinquent debts totaling $49,549…",
      "url": "https://www.clearancesearchengine.com/case/28471"
    }
  ],
  "page": 1,
  "per_page": 2,
  "total": 812,
  "attribution": "Data: CASE — Clearance Adjudication Search Engine (clearancesearchengine.com)…"
}
GETGET /api/v1/cases/{id}

One decision’s full aligned record: the standardized facts, each guideline with its ruling, the judge and representation, the mitigation ladder and the specific ¶ conditions, a plain synopsis, and the appeal outcome where one exists.

Path parameter

ParameterTypeDescription
id *integerThe numeric case id (the id from a search result, or the number in a /case/… URL).
Request
curl -H "Authorization: Bearer case_live_…" \
  "https://www.clearancesearchengine.com/api/v1/cases/28471"
Response (abbreviated)
{
  "data": {
    "id": 28471,
    "case_number": "24-02030",
    "year": 2026,
    "decision_date": "2026-03-12",
    "outcome": "GRANTED",
    "level": "HEARING",
    "case_type": "STANDARD_ISCR",
    "judge": "Candace Le'i Garcia",
    "representation": "Pro se",
    "guidelines": [{ "code": "F", "outcome": "for_applicant" }],
    "posture": "hearing",
    "answers": { "admitted": 9, "denied": 2 },
    "subtypes": [{ "guideline": "F", "subtype": "delinquent_consumer_debt", "findings": "…" }],
    "ladder": { "claimed": 5, "documented": 4, "credited": 3 },
    "credited": ["good-faith effort to resolve", "conditions largely beyond the person's control"],
    "dq_conditions": ["¶ 19(a)", "¶ 19(c)"],
    "mit_conditions": ["¶ 20(b)", "¶ 20(d)"],
    "aggravators": [],
    "synopsis": "Debts arose during a period of unemployment; applicant documented payment plans…",
    "appeal": null,
    "url": "https://www.clearancesearchengine.com/case/28471"
  },
  "attribution": "Data: CASE — Clearance Adjudication Search Engine (clearancesearchengine.com)…"
}

Fields that were not established in a given decision come back as null or an empty list rather than being omitted.

GETGET /api/v1/stats

Granted and denied counts over decided hearing-level ISCR decisions, grouped by year or by guideline. Same population and rules as the Insights page, so the numbers reconcile.

Parameters

ParameterTypeDescription
bystringyear (default) or guideline.
guidelinestringRestrict to one guideline letter, AM.
year_fromintegerEarliest decision year (YYYY).
year_tointegerLatest decision year (YYYY).
Request
curl -H "Authorization: Bearer case_live_…" \
  "https://www.clearancesearchengine.com/api/v1/stats?by=year&guideline=F&year_from=2019"
Response
{
  "data": [
    { "year": 2019, "granted": 402, "denied": 611 },
    { "year": 2020, "granted": 388, "denied": 590 }
  ],
  "scope": {
    "population": "decided hearing-level STANDARD_ISCR decisions",
    "granted": "GRANTED",
    "denied": "DENIED or REVOKED",
    "by": "year",
    "guideline": "F",
    "year_from": 2019,
    "year_to": null
  },
  "attribution": "Data: CASE — Clearance Adjudication Search Engine (clearancesearchengine.com)…"
}

Counts are descriptive tallies of what was decided. They are not rates to predict any pending case, and small groups can move a lot year to year.

Terms & fair use

  • The data is the decided public record, descriptive only. Do not present it as a prediction, as legal advice, or as a rating or score of any judge, attorney, or applicant.
  • Attribute published uses: “Data: CASE (clearancesearchengine.com)”. The attribution field in every response carries the full line.
  • Build on the record; do not bulk-mirror or resell the corpus as a dataset, and do not re-host it as a competing copy.
  • The API is read-only and returns only the public record. It never exposes user data, uploads, or accounts, yours or anyone else’s.
  • Access is included with an active Professional plan and follows the same Terms of Service.

Questions, a higher quota, or a bulk arrangement? Contact us. Read-only. Not affiliated with DOHA, DCSA, DoD, or the U.S. Government.