{"openapi":"3.1.0","info":{"title":"Rafiq API","version":"1.0.0","description":"Async batch transcription. Authenticate with a Bearer rtk_ key."},"servers":[{"url":"/api/v1"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"rtk_"}}},"security":[{"bearerAuth":[]}],"paths":{"/upload-url":{"post":{"summary":"Request a pre-signed upload URL","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"content_type":{"type":"string"}}}}}},"responses":{"200":{"description":"Upload URL and audio_token"},"401":{"description":"Unauthorized"},"429":{"description":"Rate limited"}}}},"/transcripts":{"post":{"summary":"Create a transcription job","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"audio_token":{"type":"string"},"audio_url":{"type":"string","format":"uri"},"language":{"type":"string","enum":["id","en"],"default":"id"},"callback_url":{"type":"string","format":"uri"}}}}}},"responses":{"201":{"description":"Job accepted (status: pending)"},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized"},"402":{"description":"Quota exceeded"},"429":{"description":"Rate limited"}}},"get":{"summary":"List transcription jobs","parameters":[{"name":"limit","in":"query","schema":{"type":"integer"}},{"name":"cursor","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated job list"}}}},"/transcripts/{id}":{"get":{"summary":"Poll a transcription job","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Job with status and (when completed) transcript"},"404":{"description":"Job not found"}}},"delete":{"summary":"Delete a transcription job and its audio","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Deleted"},"404":{"description":"Job not found"}}}},"/languages":{"get":{"summary":"List supported transcription languages","security":[],"responses":{"200":{"description":"Supported languages"}}}}}}