For developers and agents

unclaimd API

A public, read-only API and MCP server for the reviewed listings of Australian government support on unclaimd. No sign-in, no API key and no cookies.

Start here

  • Base address: https://unclaimd.org/api/v1/. Every reply is JSON.
  • The full description is OpenAPI 3.1 at /openapi.json. Agents can also read /llms.txt.
  • Results are possible matches and leads to check, not eligibility decisions. Only the government agency decides. Send people to the official site linked in each result to apply.

Endpoints

  • GET /api/v1/programs

    Search and list listings. Filters: state, topic, open, q (plain words), include_national, limit (up to 100) and offset. Cash support comes first.

  • GET /api/v1/programs/{id}

    One listing: what it is worth, its main conditions, the official page to apply on, and the date a person last checked it.

  • POST /api/v1/match

    Check broad answers for one person or household. Returns possible matches, listings worth checking and less likely ones, each with reasons. Each group returns its first 15; next gives the group and offset to send, with the same answers, for more.

  • GET /api/v1/

    An index of the endpoints, the rate limit and the versioning policy.

Example

Search for electricity rebates in Queensland:

curl "https://unclaimd.org/api/v1/programs?state=QLD&q=electricity+rebate&limit=3"

Check broad answers. Every answer is optional; leave out anything you don't know. The answers are used for this reply only and are never stored or logged.

curl -X POST "https://unclaimd.org/api/v1/match" \
  -H "Content-Type: application/json" \
  -d '{"answers": {"state": "QLD", "cards": ["hcc"], "interests": ["bills"]}}'

Only send broad answers, like a state, an age range or the type of card someone holds. Never send names, card or reference numbers, incomes, health details or ID documents.

MCP server

The MCP server is at https://unclaimd.org/mcp. It uses Streamable HTTP, answers each request with JSON, is read-only and needs no sign-in. Its tools are:

  • search_programs: search listings by words, state, topic and whether a round is open.
  • get_program: one listing's details, conditions, review date and official link.
  • check_possible_matches: check broad answers against current listings.

Its server card is at /.well-known/mcp/server-card.json, and its registry entry at /server.json.

Rate limits

Each connection may make 40 requests a minute, across the API and the MCP server together. Every reply carries the IETF RateLimit and RateLimit-Policy headers, plus RateLimit-Limit and RateLimit-Reset. Over the limit, you get 429 Too Many Requests with Retry-After in seconds.

Our network firewall may also refuse a fast burst of requests for a few seconds, with a 429. Space your requests out, and wait for Retry-After before trying again.

Errors

Every error is an RFC 9457 problem (application/problem+json) with a stable code, a plain message and the fix to apply before trying again. The OpenAPI description gives every 4xx and 5xx reply the same Problem schema.

HTTP/1.1 400 Bad Request
Content-Type: application/problem+json

{
  "type": "https://unclaimd.org/api/v1/problems/invalid_parameter",
  "title": "Bad request",
  "status": 400,
  "code": "invalid_parameter",
  "message": "state must be one of: ACT, NSW, NT, QLD, SA, TAS, VIC, WA, national.",
  "detail": "state must be one of: ACT, NSW, NT, QLD, SA, TAS, VIC, WA, national.",
  "fix": "Use a state or territory code in capitals, such as WA, or national.",
  "parameter": "state"
}

The codes are invalid_parameter, unknown_parameter, invalid_body, invalid_json, unknown_answer, invalid_answer, program_not_found, endpoint_not_found, method_not_allowed, unsupported_media_type, payload_too_large (bodies are limited to 16 KB), rate_limited and server_error.

Versioning and deprecation

The API is versioned in the path: /api/v1/. Within v1, fields are only ever added, never removed or renamed.

A breaking change would be published as /api/v2/. v1 would then keep working for at least 6 months. During that time, every v1 reply would carry a Deprecation header (RFC 9745), a Sunset header (RFC 8594) with the shutdown date, and a Link header with rel="successor-version". We would also say so on this page.

No v1 endpoint is deprecated today.

For agents