GimmeText Jobs API
The Jobs API from GimmeText — 3 operation(s) for jobs.
The Jobs API from GimmeText — 3 operation(s) for jobs.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/gimmetext-com:gimmetext-com-jobs-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: GimmeText Jobs API
version: 1.0.0
description: Private speech-to-text. Media is deleted after the job; transcripts are deleted after 30 days.
servers:
- url: /
security:
- bearerAuth: []
tags:
- name: Jobs
paths:
/api/v1/jobs:
get:
summary: List your jobs, newest first
parameters:
- name: limit
in: query
schema:
type: integer
minimum: 1
maximum: 100
default: 20
responses:
'200':
description: Jobs (no transcript text).
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
status:
type: string
duration_seconds:
type:
- number
- 'null'
created_at:
type: string
format: date-time
completed_at:
type:
- string
- 'null'
format: date-time
'400':
description: Invalid limit.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Missing or invalid API key.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'402':
description: 'Plan isn''t active, or not enough minutes left (free plan: upgrade at gimmetext.com/pricing).'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: 'Rate limit (free: 10, paid: 60 requests per minute per key) or too many running jobs.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
headers:
Retry-After:
schema:
type: integer
description: Seconds to wait (rate limit).
'500':
description: Internal error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- Jobs
operationId: getApiV1Jobs
x-operation-id-source: derived
post:
summary: Start a transcription
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- upload_id
- duration_seconds
properties:
upload_id:
type: string
duration_seconds:
type: number
exclusiveMinimum: 0
maximum: 86400
language:
type: string
pattern: ^[a-z]{2,3}$
responses:
'202':
description: Job accepted.
content:
application/json:
schema:
type: object
properties:
id:
type: string
format: uuid
status:
const: queued
'400':
description: Invalid request or upload not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Missing or invalid API key.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'402':
description: 'Plan isn''t active, or not enough minutes left (free plan: upgrade at gimmetext.com/pricing).'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: 'Rate limit (free: 10, paid: 60 requests per minute per key) or too many running jobs.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
headers:
Retry-After:
schema:
type: integer
description: Seconds to wait (rate limit).
'500':
description: Internal error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'502':
description: Could not start transcription.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- Jobs
operationId: postApiV1Jobs
x-operation-id-source: derived
/api/v1/jobs/{id}:
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
get:
summary: Job status
responses:
'200':
description: Status.
content:
application/json:
schema:
$ref: '#/components/schemas/JobStatus'
'401':
description: Missing or invalid API key.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'402':
description: 'Plan isn''t active, or not enough minutes left (free plan: upgrade at gimmetext.com/pricing).'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Job not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: 'Rate limit (free: 10, paid: 60 requests per minute per key) or too many running jobs.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
headers:
Retry-After:
schema:
type: integer
description: Seconds to wait (rate limit).
'500':
description: Internal error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- Jobs
operationId: getApiV1JobsById
x-operation-id-source: derived
delete:
summary: Delete a job, its media and transcript
responses:
'204':
description: Deleted.
'401':
description: Missing or invalid API key.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'402':
description: 'Plan isn''t active, or not enough minutes left (free plan: upgrade at gimmetext.com/pricing).'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Job not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: 'Rate limit (free: 10, paid: 60 requests per minute per key) or too many running jobs.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
headers:
Retry-After:
schema:
type: integer
description: Seconds to wait (rate limit).
'500':
description: Internal error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'502':
description: Delete failed; retry.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- Jobs
operationId: deleteApiV1JobsById
x-operation-id-source: derived
/api/v1/jobs/{id}/transcript:
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
get:
summary: Get the transcript
parameters:
- name: format
in: query
schema:
type: string
enum:
- txt
- srt
- json
default: json
responses:
'200':
description: Transcript.
content:
text/plain:
schema:
type: string
application/x-subrip:
schema:
type: string
application/json:
schema:
type: object
properties:
text:
type: string
srt:
type: string
language:
type:
- string
- 'null'
duration_seconds:
type:
- number
- 'null'
'400':
description: Invalid format.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Missing or invalid API key.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'402':
description: 'Plan isn''t active, or not enough minutes left (free plan: upgrade at gimmetext.com/pricing).'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Job not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Transcript not ready.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: 'Rate limit (free: 10, paid: 60 requests per minute per key) or too many running jobs.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
headers:
Retry-After:
schema:
type: integer
description: Seconds to wait (rate limit).
'500':
description: Internal error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- Jobs
operationId: getApiV1JobsByIdTranscript
x-operation-id-source: derived
components:
schemas:
JobStatus:
type: object
properties:
id:
type: string
format: uuid
status:
type: string
enum:
- queued
- running
- done
- failed
progress:
type: number
error:
type:
- string
- 'null'
duration_seconds:
type:
- number
- 'null'
Error:
type: object
required:
- error
properties:
error:
type: object
required:
- code
- message
properties:
code:
type: string
message:
type: string
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'API key: gt_live_<prefix>_<secret>'
x-provenance:
method: harvested
publisher: GimmeText
source: https://gimmetext.com/openapi.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)