Florida Tax Certificate API

Errors

Standard error envelope and codes returned by Florida Tax Certificate API, including REST, billing, and MCP / JSON-RPC errors.

All Florida Tax Certificate API errors return a uniform JSON envelope. The shape is identical across REST endpoints; the MCP server wraps the same code / message inside a JSON-RPC error.

Florida Tax Certificate API is an independent data platform and is not affiliated with the Florida Department of Revenue, any county tax collector or clerk of court, LienHub, RealAuction / RealTaxLien, or TaxCertSale.

REST Envelope

{
  "error": {
    "code": "bad_request",
    "message": "Human-readable description of what went wrong.",
    "request_id": "req_1234567890abcdef12345"
  }
}

Every response — success or failure — includes a request_id. Quote it when filing support tickets so we can pull the matching server log.

Codes

CodeHTTPMeaning
bad_request400Query params failed validation.
unauthorized401Missing, invalid, or revoked API key. See Authentication.
payment_required402Workspace credit balance is empty and auto-topup is disabled.
forbidden403Authenticated but not permitted for this resource (e.g. MCP-only tier hitting REST).
rest_disabled403Your plan's surfaces array does not include rest — see below.
not_found404Resource does not exist.
rate_limited429Per-key RPM or monthly quota exceeded. Retry-After header included.
internal_error5xxServer-side failure. Reference request_id in support tickets.

400 bad_request

HTTP/1.1 400 Bad Request
Content-Type: application/json
{
  "error": {
    "code": "bad_request",
    "message": "limit must be between 1 and 500.",
    "request_id": "req_1234567890abcdef12345"
  }
}

401 unauthorized

Same shape for missing / invalid / revoked / wrong-workspace keys (no oracle):

{
  "error": {
    "code": "unauthorized",
    "message": "Invalid API key.",
    "request_id": "req_1234567890abcdef12345"
  }
}

402 payment_required

Returned when a metered request needs to draw credits and the workspace balance is empty with auto-topup off.

{
  "error": {
    "code": "payment_required",
    "message": "Credit balance is zero. Enable auto-topup or purchase a credit pack.",
    "request_id": "req_1234567890abcdef12345"
  }
}

403 rest_disabled

The MCP Starter tier ($5/mo, 1,000 MCP calls) does not include the /api/v1/* REST surface. The key authenticates correctly, but the REST router rejects the request:

HTTP/1.1 403 Forbidden
Content-Type: application/json
{
  "error": {
    "code": "rest_disabled",
    "message": "This plan does not include REST API access. Use the MCP transport or upgrade to a tier that includes REST.",
    "request_id": "req_1234567890abcdef12345"
  }
}

Upgrade to Developer or higher to add rest to your plan's surfaces.

404 not_found

{
  "error": {
    "code": "not_found",
    "message": "Certificate not found.",
    "request_id": "req_1234567890abcdef12345"
  }
}

429 rate_limited

Sent when you exceed either the per-minute rate limit or the monthly quota. The Retry-After header tells you when to retry (seconds).

HTTP/1.1 429 Too Many Requests
Content-Type: application/json
Retry-After: 17
RateLimit-Limit: 120
RateLimit-Remaining: 0
RateLimit-Reset: 17
{
  "error": {
    "code": "rate_limited",
    "message": "Rate limit exceeded. Retry after 17 seconds.",
    "request_id": "req_1234567890abcdef12345"
  }
}

See Rate Limits for per-tier limits.

5xx internal_error

{
  "error": {
    "code": "internal_error",
    "message": "An unexpected error occurred.",
    "request_id": "req_1234567890abcdef12345"
  }
}

Retry with exponential backoff. If the same request_id reproduces consistently, open a support ticket with the ID — we keep request-scoped logs for 30 days.

MCP / JSON-RPC Errors

The MCP server at /api/mcp wraps the same condition set inside a JSON-RPC 2.0 error frame. Codes:

JSON-RPC CodeMeaning
-32600Invalid Request — malformed JSON-RPC envelope.
-32601Method not found — tool name does not exist.
-32602Invalid params — tool argument validation failed (mirrors REST bad_request).
-32603Internal error — mirrors REST internal_error.
-32001Unauthorized — mirrors REST unauthorized.
-32004Out of credits — workspace credit balance is zero (mirrors REST payment_required).
-32029Rate limited — mirrors REST rate_limited. Retry-after seconds in data.retry_after.

Example out-of-credits response:

{
  "jsonrpc": "2.0",
  "id": 7,
  "error": {
    "code": -32004,
    "message": "Out of credits. Enable auto-topup or purchase a credit pack.",
    "data": {
      "request_id": "req_1234567890abcdef12345",
      "credit_balance": 0
    }
  }
}

On this page