{"openapi":"3.1.0","info":{"title":"Recompete Radar","version":"1.0.0","description":"Pay-per-request lookups of federal contract awards approaching the end of their period of performance, backed by USAspending.gov. Independent tool; not affiliated with or endorsed by the U.S. government."},"servers":[{"url":"https://recompete.melchiorlabs.com"}],"paths":{"/v1/awards/expiring":{"post":{"summary":"Find a recipient's awards expiring within a window","description":"Requires payment of $0.03 over x402 (HTTP 402).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"recipient":{"type":"string","minLength":2,"maxLength":120,"description":"Recipient name or UEI to search for in USAspending"},"windowDays":{"type":"integer","minimum":30,"maximum":1095,"default":365},"asOf":{"type":"string","format":"date","description":"Defaults to today (UTC)"},"limit":{"type":"integer","minimum":1,"maximum":50,"default":20},"minimumAwardAmount":{"type":"number","minimum":0,"maximum":1000000000,"default":0}},"required":["recipient"]}}}},"responses":{"200":{"description":"Expiring awards for the recipient","content":{"application/json":{"schema":{"type":"object","properties":{"requestId":{"type":"string"},"query":{"type":"object","additionalProperties":false,"required":["recipient","windowDays","asOf","limit","minimumAwardAmount"],"properties":{"recipient":{"type":"string"},"windowDays":{"type":"integer"},"asOf":{"type":"string","format":"date"},"limit":{"type":"integer"},"minimumAwardAmount":{"type":"number"}}},"dataAsOf":{"type":["string","null"],"format":"date"},"generatedAt":{"type":"string","format":"date-time"},"source":{"type":"object","properties":{"name":{"type":"string"},"apiUrl":{"type":"string"},"websiteUrl":{"type":"string"},"independent":{"type":"boolean"}}},"results":{"type":"array","items":{"type":"object","properties":{"awardId":{"type":"string"},"recipientName":{"type":"string"},"agency":{"type":["string","null"]},"subagency":{"type":["string","null"]},"contractAwardType":{"type":["string","null"]},"startDate":{"type":["string","null"],"format":"date"},"endDate":{"type":"string","format":"date"},"totalObligation":{"type":"number","description":"USAspending's Award Amount field: cumulative federal obligation, not potential contract ceiling."},"description":{"type":["string","null"]},"daysUntilExpiration":{"type":"integer"},"usaspendingUrl":{"type":"string"}}}},"summary":{"type":"object","properties":{"count":{"type":"integer"},"returnedTotalObligation":{"type":"number"},"earliestExpiration":{"type":["string","null"],"format":"date"},"sourceRecordsScanned":{"type":"integer"},"scanCompleteThroughAsOf":{"type":"boolean"}}},"receipt":{"type":"object","properties":{"inputDigest":{"type":"string"},"sourceSnapshot":{"type":["string","null"],"format":"date"},"resultDigest":{"type":"string"}}},"warnings":{"type":"array","items":{"type":"string"}}}}}}},"400":{"description":"Invalid request"},"402":{"description":"Payment required (x402)"},"413":{"description":"Request body too large"},"422":{"description":"Recipient search is too broad to complete within the source scan safety bound; payment is not settled"},"502":{"description":"Upstream (USAspending) connection or data error"},"504":{"description":"Upstream (USAspending) request timed out"}}}},"/health":{"get":{"summary":"Check Recompete Radar service health","responses":{"200":{"description":"Service is healthy"}}}}}}