{"name":"CurePDF Unit Conversion API","version":"v1","description":"Deterministic unit conversion API provided by CurePDF. Given a category, a source unit, a target unit, and a numeric value, it returns an exact converted result -- no natural-language input required.","base_url":"https://curepdf.com/api/v1/","authentication":{"type":"bearer","header":"Authorization: Bearer <API_KEY>","alternate_header":"X-API-Key: <API_KEY>","note":"Required for POST /conversions/convert/. Not required for the discovery endpoints (this manifest, category list, category detail)."},"capabilities":["unit_conversion","unit_listing","category_listing"],"converters":[{"slug":"length","name":"Length Converter","units":["km","m","dm","cm","mm","um","nm","mi","yd","ft","in","nmi"]},{"slug":"weight","name":"Weight Converter","units":["t","kg","g","mg","ug","lb","oz","st","us_ton","uk_ton","ct"]},{"slug":"speed","name":"Speed Converter","units":["mps","kmh","mph","kn","fps","mach"]},{"slug":"angle","name":"Angle Converter","units":["deg","rad","grad","turn"]},{"slug":"data_storage","name":"Data Storage Converter","units":["bit","byte","k","m","g","t","p"]},{"slug":"temperature","name":"Temperature Converter","units":["c","f","k","r","re"]},{"slug":"currency","name":"Currency Converter","units":["USD","EUR","GBP","INR","JPY","CAD","AUD","CHF","CNY","SGD"]}],"endpoints":[{"method":"GET","path":"/api/v1/conversions/","auth_required":false,"description":"List all available conversion categories and their unit codes."},{"method":"GET","path":"/api/v1/conversions/{category}/","auth_required":false,"description":"Get full unit metadata (code, name, symbol) for one category."},{"method":"POST","path":"/api/v1/conversions/convert/","auth_required":true,"description":"Convert a value from one unit to another within a category.","request_schema":{"category":"string, required","from":"string, required -- source unit code","to":"string, required -- target unit code","value":"number, required","precision":"integer, optional, 0-12, default 6","mode":"string, optional -- \"decimal\" or \"binary\", only used by category=\"data_storage\""}}],"rate_limits":{"note":"Configured per API key by CurePDF staff, not global -- these are typical defaults, not guarantees for every key. Every authenticated response also carries X-RateLimit-Limit/X-RateLimit-Remaining/X-RateLimit-Reset headers reflecting the actual limits on the key that was used; a 429's Retry-After header gives the exact number of seconds to wait before retrying. An IP-based floor also applies to unauthenticated/invalid-key requests.","default_requests_per_minute":5,"default_requests_per_day":"unlimited unless configured","default_requests_per_month":"unlimited unless configured"},"error_shape":{"note":"Every error response is {\"success\": false, \"error\": {\"code\", \"message\"}}. Validation errors additionally include error.fields, one message per invalid request field, so a caller can fix every problem in one retry instead of one per field."},"getting_started_url":"https://curepdf.com/developers/","documentation_url":"https://curepdf.com/api/docs/","openapi_schema_url":"https://curepdf.com/api/schema/"}