Jobs

Every AI request becomes a job. Poll it, stream its progress, download its files or cancel it.

    List jobs

    GET/v1/jobs

    Newest first. Requires jobs:read; lists the jobs of products whose scope the key holds, in the key's own mode (sandbox or live). Report exports are listed only for keys of the person who made them.

    Scope jobs:read

    Parameters

    List jobs: parameters
    FieldDetails
    limitinteger1 to 100Default 25
    cursorstring, optionalUp to 512 characters
    statusarray of string, optional
    productarray of string, optional

    Headers

    List jobs: headers
    FieldDetails
    EduMark-VersionenumAPI version. Defaults to the latest.One of 2026-10-21

    Responses

    StatusMeaning
    200Successful Response
    400Request rejected. Inspect error.code and request_id; failed work is not billed.
    401Request rejected. Inspect error.code and request_id; failed work is not billed.
    402Request rejected. Inspect error.code and request_id; failed work is not billed.
    403Request rejected. Inspect error.code and request_id; failed work is not billed.
    404Request rejected. Inspect error.code and request_id; failed work is not billed.
    409Request rejected. Inspect error.code and request_id; failed work is not billed.
    410Request rejected. Inspect error.code and request_id; failed work is not billed.
    413Request rejected. Inspect error.code and request_id; failed work is not billed.
    415Request rejected. Inspect error.code and request_id; failed work is not billed.
    422Validation Error
    429Request rejected. Inspect error.code and request_id; failed work is not billed.
    503Request rejected. Inspect error.code and request_id; failed work is not billed.

    Get a job

    GET/v1/jobs/{job_id}

    Poll until status is final, waiting poll_after_seconds (also sent as Retry-After) between polls. Needs jobs:read and the product's own scope; report exports are readable only by keys of the person whose key made them.

    Scope jobs:read

    Parameters

    Get a job: parameters
    FieldDetails
    job_idstringRequired

    Headers

    Get a job: headers
    FieldDetails
    EduMark-VersionenumAPI version. Defaults to the latest.One of 2026-10-21

    Responses

    StatusMeaning
    200Successful Response
    400Request rejected. Inspect error.code and request_id; failed work is not billed.
    401Request rejected. Inspect error.code and request_id; failed work is not billed.
    402Request rejected. Inspect error.code and request_id; failed work is not billed.
    403Request rejected. Inspect error.code and request_id; failed work is not billed.
    404Request rejected. Inspect error.code and request_id; failed work is not billed.
    409Request rejected. Inspect error.code and request_id; failed work is not billed.
    410Request rejected. Inspect error.code and request_id; failed work is not billed.
    413Request rejected. Inspect error.code and request_id; failed work is not billed.
    415Request rejected. Inspect error.code and request_id; failed work is not billed.
    422Validation Error
    429Request rejected. Inspect error.code and request_id; failed work is not billed.
    503Request rejected. Inspect error.code and request_id; failed work is not billed.

    Delete a job's content

    DELETE/v1/jobs/{job_id}

    Deletes the stored input, result and files. Billing records are kept.

    Parameters

    Delete a job's content: parameters
    FieldDetails
    job_idstringRequired

    Headers

    Delete a job's content: headers
    FieldDetails
    EduMark-VersionenumAPI version. Defaults to the latest.One of 2026-10-21

    Responses

    StatusMeaning
    200Successful Response
    400Request rejected. Inspect error.code and request_id; failed work is not billed.
    401Request rejected. Inspect error.code and request_id; failed work is not billed.
    402Request rejected. Inspect error.code and request_id; failed work is not billed.
    403Request rejected. Inspect error.code and request_id; failed work is not billed.
    404Request rejected. Inspect error.code and request_id; failed work is not billed.
    409Request rejected. Inspect error.code and request_id; failed work is not billed.
    410Request rejected. Inspect error.code and request_id; failed work is not billed.
    413Request rejected. Inspect error.code and request_id; failed work is not billed.
    415Request rejected. Inspect error.code and request_id; failed work is not billed.
    422Validation Error
    429Request rejected. Inspect error.code and request_id; failed work is not billed.
    503Request rejected. Inspect error.code and request_id; failed work is not billed.

    Stream job events (SSE)

    GET/v1/jobs/{job_id}/events

    Server-sent events: status, progress and done, a heartbeat comment every 15 s, closed after 25 s. Reconnect with Last-Event-ID. Polling GET /jobs/{job_id} remains the primary path.

    Parameters

    Stream job events (SSE): parameters
    FieldDetails
    job_idstringRequired

    Headers

    Stream job events (SSE): headers
    FieldDetails
    Last-Event-IDstring, optionalUp to 64 characters
    EduMark-VersionenumAPI version. Defaults to the latest.One of 2026-10-21

    Responses

    StatusMeaning
    200Successful Response
    400Request rejected. Inspect error.code and request_id; failed work is not billed.
    401Request rejected. Inspect error.code and request_id; failed work is not billed.
    402Request rejected. Inspect error.code and request_id; failed work is not billed.
    403Request rejected. Inspect error.code and request_id; failed work is not billed.
    404Request rejected. Inspect error.code and request_id; failed work is not billed.
    409Request rejected. Inspect error.code and request_id; failed work is not billed.
    410Request rejected. Inspect error.code and request_id; failed work is not billed.
    413Request rejected. Inspect error.code and request_id; failed work is not billed.
    415Request rejected. Inspect error.code and request_id; failed work is not billed.
    422Validation Error
    429Request rejected. Inspect error.code and request_id; failed work is not billed.
    503Request rejected. Inspect error.code and request_id; failed work is not billed.

    Download a job output file

    GET/v1/jobs/{job_id}/files/{name}

    Parameters

    Download a job output file: parameters
    FieldDetails
    job_idstringRequired
    namestringRequired

    Headers

    Download a job output file: headers
    FieldDetails
    EduMark-VersionenumAPI version. Defaults to the latest.One of 2026-10-21

    Responses

    StatusMeaning
    200Successful Response
    400Request rejected. Inspect error.code and request_id; failed work is not billed.
    401Request rejected. Inspect error.code and request_id; failed work is not billed.
    402Request rejected. Inspect error.code and request_id; failed work is not billed.
    403Request rejected. Inspect error.code and request_id; failed work is not billed.
    404Request rejected. Inspect error.code and request_id; failed work is not billed.
    409Request rejected. Inspect error.code and request_id; failed work is not billed.
    410Request rejected. Inspect error.code and request_id; failed work is not billed.
    413Request rejected. Inspect error.code and request_id; failed work is not billed.
    415Request rejected. Inspect error.code and request_id; failed work is not billed.
    422Validation Error
    429Request rejected. Inspect error.code and request_id; failed work is not billed.
    503Request rejected. Inspect error.code and request_id; failed work is not billed.

    Cancel a queued job

    POST/v1/jobs/{job_id}/cancel

    Parameters

    Cancel a queued job: parameters
    FieldDetails
    job_idstringRequired

    Headers

    Cancel a queued job: headers
    FieldDetails
    EduMark-VersionenumAPI version. Defaults to the latest.One of 2026-10-21

    Responses

    StatusMeaning
    200Successful Response
    400Request rejected. Inspect error.code and request_id; failed work is not billed.
    401Request rejected. Inspect error.code and request_id; failed work is not billed.
    402Request rejected. Inspect error.code and request_id; failed work is not billed.
    403Request rejected. Inspect error.code and request_id; failed work is not billed.
    404Request rejected. Inspect error.code and request_id; failed work is not billed.
    409Request rejected. Inspect error.code and request_id; failed work is not billed.
    410Request rejected. Inspect error.code and request_id; failed work is not billed.
    413Request rejected. Inspect error.code and request_id; failed work is not billed.
    415Request rejected. Inspect error.code and request_id; failed work is not billed.
    422Validation Error
    429Request rejected. Inspect error.code and request_id; failed work is not billed.
    503Request rejected. Inspect error.code and request_id; failed work is not billed.