openapi: 3.0.3 info: title: Gengo Account Job 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: Job description: Operations on a single translation job. paths: /translate/job/{id}: get: tags: - Job operationId: getJob summary: Retrieves a specific job. parameters: - name: id in: path required: true schema: type: integer description: Job id. responses: '200': description: Job envelope content: application/json: schema: $ref: '#/components/schemas/Envelope' default: $ref: '#/components/responses/Error' put: tags: - Job operationId: updateJob summary: Updates a job (approve, reject, revise, or purchase a reviewable job). parameters: - name: id in: path required: true schema: type: integer description: Job id. requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: data: type: string description: JSON-encoded action (e.g. {"action":"approve"|"reject"|"revise"|"purchase"}). responses: '200': description: Update result envelope content: application/json: schema: $ref: '#/components/schemas/Envelope' default: $ref: '#/components/responses/Error' delete: tags: - Job operationId: cancelJob summary: Cancels the job. You can only cancel a job if it has not been started by a translator. parameters: - name: id in: path required: true schema: type: integer description: Job id. responses: '200': description: Cancellation result envelope content: application/json: schema: $ref: '#/components/schemas/Envelope' default: $ref: '#/components/responses/Error' /translate/job/{id}/revisions: get: tags: - Job operationId: getJobRevisions summary: Gets list of revision resources for a job. parameters: - name: id in: path required: true schema: type: integer description: Job id. responses: '200': description: Revisions envelope content: application/json: schema: $ref: '#/components/schemas/Envelope' default: $ref: '#/components/responses/Error' /translate/job/{id}/revision/{rev_id}: get: tags: - Job operationId: getJobRevision summary: Gets a specific revision for a job. parameters: - name: id in: path required: true schema: type: integer description: Job id. - name: rev_id in: path required: true schema: type: integer description: Revision id. responses: '200': description: Revision envelope content: application/json: schema: $ref: '#/components/schemas/Envelope' default: $ref: '#/components/responses/Error' /translate/job/{id}/feedback: get: tags: - Job operationId: getJobFeedback summary: Retrieves the feedback you have submitted for a particular job. parameters: - name: id in: path required: true schema: type: integer description: Job id. responses: '200': description: Feedback envelope content: application/json: schema: $ref: '#/components/schemas/Envelope' default: $ref: '#/components/responses/Error' /translate/job/{id}/comments: get: tags: - Job operationId: getJobComments summary: Retrieves the comment thread for a job. parameters: - name: id in: path required: true schema: type: integer description: Job id. responses: '200': description: Comment thread envelope content: application/json: schema: $ref: '#/components/schemas/Envelope' default: $ref: '#/components/responses/Error' /translate/job/{id}/comment: post: tags: - Job operationId: postJobComment summary: Submits a new comment to the job's comment thread. parameters: - name: id in: path required: true schema: type: integer description: Job id. requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: data: type: string description: JSON-encoded comment body, e.g. {"body":"Please use British spelling"}. responses: '200': description: Comment result 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 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.