Gengo Job API

Operations on a single translation job.

OpenAPI Specification

gengo-job-api-openapi.yml Raw ↑
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.