{"openapi":"3.1.0","info":{"title":"API check credits","version":"1.0.0","description":"US$29 for 1000 structural feed checks. 365-day validity. Prepaid; no automatic renewal. Terms: https://api.rohnelt.dev/pricing#terms","contact":{"email":"suporte@rohnelt.dev"}},"servers":[{"url":"https://api.rohnelt.dev"}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"security":[{"bearer":[]}],"paths":{"/metered/check":{"post":{"summary":"One credit per completed CSV/XML analysis. Same Idempotency-Key + feed replays without debit. Maximum body 64 KB. 5000 products, 500 findings.","responses":{"200":{"description":"Success: JSON findings and remaining balance, or balance/lots"},"400":{"description":"Invalid input, no debit"},"401":{"description":"Invalid key"},"402":{"description":"No credits"},"409":{"description":"Conflicting idempotency or used purchase"},"413":{"description":"Request too large"},"503":{"description":"Service unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["feed"],"properties":{"feed":{"type":"string"}}}}}},"parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","pattern":"^[\\w-]{8,100}$"}}]}},"/metered/balance":{"get":{"summary":"Remaining credits and expiry per lot. Free.","responses":{"200":{"description":"Success: JSON findings and remaining balance, or balance/lots"},"400":{"description":"Invalid input, no debit"},"401":{"description":"Invalid key"},"402":{"description":"No credits"},"409":{"description":"Conflicting idempotency or used purchase"},"413":{"description":"Request too large"},"503":{"description":"Service unavailable"}}}},"/metered/recharge":{"post":{"summary":"Redeem a fresh unclaimed purchase once onto this key. Does not extend key expiry.","responses":{"200":{"description":"Success: JSON findings and remaining balance, or balance/lots"},"400":{"description":"Invalid input, no debit"},"401":{"description":"Invalid key"},"402":{"description":"No credits"},"409":{"description":"Conflicting idempotency or used purchase"},"413":{"description":"Request too large"},"503":{"description":"Service unavailable"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["session_id"],"properties":{"session_id":{"type":"string"}}}}}}}}}}