{"openapi":"3.1.0","info":{"title":"parcelapi.net API","description":"US parcel and building-permit records from cleared public sources. No owner data. Auth: X-API-Key header. MCP endpoint: /mcp (Streamable HTTP, Authorization: Bearer <key>).","version":"1.0.0"},"servers":[{"url":"https://api.parcelapi.net"}],"paths":{"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/parcels/query":{"post":{"summary":"Query Parcels","operationId":"query_parcels_v1_parcels_query_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParcelFilter"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/v1/permits/query":{"post":{"summary":"Query Permits","description":"Building permits from cleared sources. 1 credit per record; blocklist applies; attribution returned.","operationId":"query_permits_v1_permits_query_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PermitFilter"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/v1/fetch/{job_id}":{"get":{"summary":"Fetch Status","operationId":"fetch_status_v1_fetch__job_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/fetch/manual":{"post":{"summary":"Manual Pull","operationId":"manual_pull_v1_fetch_manual_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManualPullRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/v1/fetch/manual/{request_id}":{"get":{"summary":"Manual Pull Status","operationId":"manual_pull_status_v1_fetch_manual__request_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/keys/trial":{"post":{"summary":"Trial Key","description":"Unauthenticated: issue a new key with TRIAL_CREDITS free credits. One per IP per\nTRIAL_IP_COOLDOWN_DAYS, TRIAL_IP_RATE_PER_HOUR attempts per IP per hour, TRIAL_DAILY_CAP per day.","operationId":"trial_key_v1_keys_trial_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/credits":{"get":{"summary":"Get Credits","operationId":"get_credits_v1_credits_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/v1/credits/packs":{"get":{"summary":"List Packs","operationId":"list_packs_v1_credits_packs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/credits/topup":{"post":{"summary":"Topup","operationId":"topup_v1_credits_topup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopupRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/v1/credits/purchase":{"post":{"summary":"First Purchase","description":"Unauthenticated: start an initial purchase. After payment the new key is\npicked up once via /v1/keys/claim?session_id=...","operationId":"first_purchase_v1_credits_purchase_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopupRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/keys/claim":{"post":{"summary":"Claim Key","operationId":"claim_key_v1_keys_claim_post","parameters":[{"name":"session_id","in":"query","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ManualPullRequest":{"properties":{"state":{"type":"string","maxLength":2,"minLength":2,"title":"State"},"county":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"County"},"notes":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Notes"}},"additionalProperties":false,"type":"object","required":["state"],"title":"ManualPullRequest"},"ParcelFilter":{"properties":{"state":{"type":"string","maxLength":2,"minLength":2,"title":"State","description":"2-letter US state code"},"county":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"County"},"city":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"City"},"address":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Address"},"limit":{"type":"integer","maximum":1000.0,"minimum":1.0,"title":"Limit","default":100},"offset":{"type":"integer","maximum":10000.0,"minimum":0.0,"title":"Offset","default":0}},"additionalProperties":false,"type":"object","required":["state"],"title":"ParcelFilter"},"PermitFilter":{"properties":{"state":{"type":"string","maxLength":2,"minLength":2,"title":"State","description":"2-letter US state code"},"city":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"City"},"county":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"County"},"address":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Address"},"permit_type":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Permit Type"},"issued_after":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}],"title":"Issued After"},"issued_before":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}],"title":"Issued Before"},"limit":{"type":"integer","maximum":1000.0,"minimum":1.0,"title":"Limit","default":100},"offset":{"type":"integer","maximum":10000.0,"minimum":0.0,"title":"Offset","default":0}},"additionalProperties":false,"type":"object","required":["state"],"title":"PermitFilter"},"TopupRequest":{"properties":{"pack":{"type":"string","maxLength":40,"title":"Pack"}},"additionalProperties":false,"type":"object","required":["pack"],"title":"TopupRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"}}}}