OpenAPI Specification
openapi: 3.0.3
info:
title: Gengo Account Jobs API
version: '2.0'
description: The Gengo API (v2) lets you programmatically order human translation. Submit text or file jobs, group them into orders, retrieve translated content, manage comments and revisions, run quotes, look up supported language pairs, and manage glossaries. Jobs move through a defined status lifecycle (queued -> available -> pending -> reviewable -> approved) and can notify your system via callback URLs. Authentication uses a public api_key plus an HMAC-SHA1 signature (api_sig) computed over a Unix timestamp (ts) with your private key.
contact:
name: Gengo Support
url: https://developers.gengo.com
email: support@gengo.com
termsOfService: https://gengo.com/terms-of-service/
x-apis-json:
generated: '2026-07-19'
method: generated
source: https://developers.gengo.com/v2/api_methods/
note: Faithfully generated from the published Gengo API v2 reference (endpoints, HTTP methods, summaries, parameters and response envelope documented at developers.gengo.com). Gengo does not publish an OpenAPI/Swagger file.
servers:
- url: https://api.gengo.com/v2
description: Production
- url: http://api.sandbox.gengo.com/v2
description: Sandbox (test environment; free test credits, faux-translator triggers)
security:
- ApiKey: []
tags:
- name: Jobs
description: Submit and manage groups of translation jobs.
paths:
/translate/jobs:
post:
tags:
- Jobs
operationId: postJobs
summary: Submits a job or group of jobs to translate. Request should be no larger than 100MB.
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
data:
type: string
description: JSON-encoded jobs payload (a `jobs` map plus optional `as_group`, `process`).
responses:
'200':
description: Submitted order/jobs envelope (order_id + job ids)
content:
application/json:
schema:
$ref: '#/components/schemas/Envelope'
default:
$ref: '#/components/responses/Error'
get:
tags:
- Jobs
operationId: getJobs
summary: Retrieves a list of resources for the most recent jobs filtered by the given parameters.
parameters:
- name: status
in: query
required: false
schema:
$ref: '#/components/schemas/JobStatus'
description: Filter by job status.
- name: timestamp_after
in: query
required: false
schema:
type: integer
description: Epoch time; only jobs created after this time.
- name: count
in: query
required: false
schema:
type: integer
description: Maximum number of jobs to return.
responses:
'200':
description: List of recent job resources
content:
application/json:
schema:
$ref: '#/components/schemas/Envelope'
default:
$ref: '#/components/responses/Error'
put:
tags:
- Jobs
operationId: updateJobs
summary: Updates a group of jobs to translate. Request should be no larger than 100MB.
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
data:
type: string
description: JSON-encoded action + job_ids.
responses:
'200':
description: Update result envelope
content:
application/json:
schema:
$ref: '#/components/schemas/Envelope'
default:
$ref: '#/components/responses/Error'
/translate/jobs/{ids}:
get:
tags:
- Jobs
operationId: getJobsByIds
summary: Retrieves a list of jobs requested by a comma-separated list of job ids.
parameters:
- name: ids
in: path
required: true
schema:
type: string
description: Comma-separated list of job ids.
responses:
'200':
description: Jobs envelope
content:
application/json:
schema:
$ref: '#/components/schemas/Envelope'
default:
$ref: '#/components/responses/Error'
components:
responses:
Error:
description: Error envelope (opstat=error) carrying a numeric Gengo error code.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
Error:
type: object
properties:
opstat:
type: string
example: error
err:
type: object
properties:
code:
type: integer
example: 1100
msg:
type: string
example: api_sig is a required field
required:
- opstat
- err
Envelope:
type: object
properties:
opstat:
type: string
enum:
- ok
- error
response:
type: object
required:
- opstat
JobStatus:
type: string
enum:
- queued
- available
- pending
- reviewable
- approved
- revising
- rejected
- canceled
- hold
description: The lifecycle status of a translation job.
securitySchemes:
ApiKey:
type: apiKey
in: query
name: api_key
description: Public API key identifying the account. Every authenticated call must also include `ts` (Unix epoch) and `api_sig` (HMAC-SHA1 of `ts` keyed by the account private key). Keys are created on the account API settings page.