Para agentes de IA: markdown desta página — /docs-content-en/infra/jobs/list.md índice da documentação — /llms.txt

Os artigos da documentação estão disponíveis atualmente em inglês.

List jobs

GET /v1/infra/servers/:id/jobs

Returns all non-deleted server jobs, including disabled ones, with up to the five most recent runs of each job. Works even when the feature is unavailable. The response contains no secret.

Requires a key with vibe:infra and existing server permissions. Writes need the managing key or a team role permitted to manage the lifecycle. General rules: Scheduled HTTP calls. Request verification in the handler: Verify signatures.

Parameters

Parameter In Type Required Description
Parameterid Inpath Typestring Requiredyes DescriptionServer ID from the server list

No request body or query parameters are needed.

Examples

curl — personal key

Terminal
curl --max-time 20 -X GET "https://vibecode.bitrix24.com/v1/infra/servers/SERVER_ID/jobs" \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth application

Terminal
curl --max-time 20 -X GET "https://vibecode.bitrix24.com/v1/infra/servers/SERVER_ID/jobs" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"

JavaScript — personal key

javascript
const serverId = 'SERVER_ID';
const res = await fetch(`https://vibecode.bitrix24.com/v1/infra/servers/${encodeURIComponent(serverId)}/jobs`, {
  method: 'GET',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
  },
});
const result = await res.json();
if (!res.ok || !result.success) throw new Error(result.error?.code ?? `HTTP_${res.status}`);
console.log(result);

JavaScript — OAuth application

javascript
const serverId = 'SERVER_ID';
const res = await fetch(`https://vibecode.bitrix24.com/v1/infra/servers/${encodeURIComponent(serverId)}/jobs`, {
  method: 'GET',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
});
const result = await res.json();
if (!res.ok || !result.success) throw new Error(result.error?.code ?? `HTTP_${res.status}`);
console.log(result);

Response fields

Field Type Description
Fieldsuccess Typeboolean DescriptionAlways true on success
Fielddata.items Typearray DescriptionAll non-deleted server jobs, at most 20
Fielddata.items[].id Typestring DescriptionJob ID
Fielddata.items[].serverId Typestring DescriptionServer ID
Fielddata.items[].label Typestring DescriptionJob label
Fielddata.items[].cronExpr Typestring DescriptionFive-field cron expression
Fielddata.items[].timezone Typestring DescriptionSchedule time zone
Fielddata.items[].path Typestring DescriptionHandler path and optional query string
Fielddata.items[].enabled Typeboolean DescriptionWhether scheduled runs are enabled
Fielddata.items[].nextScheduledFor Typestring DescriptionNext scheduled occurrence, UTC ISO-8601
Fielddata.items[].scheduleRevision Typeinteger DescriptionSchedule revision
Fielddata.items[].availableSince Typestring DescriptionStart of the current schedule period, UTC ISO-8601
Fielddata.items[].createdAt Typestring DescriptionCreation time, UTC ISO-8601
Fielddata.items[].updatedAt Typestring DescriptionLast update time, UTC ISO-8601
Fielddata.items[].latestRuns Typearray DescriptionUp to the five most recent runs of the job. Run fields are described in run history

The signing secret is not returned.

Response example

200 OK response for a server with one job that was just run manually:

JSON
{
  "success": true,
  "data": {
    "items": [
      {
        "id": "cmvht3jly1xgh4bo25ge2t996",
        "serverId": "9547e3f2-1369-4ed4-b047-a589b0a303c4",
        "label": "weekday digest",
        "cronExpr": "30 9 * * 1-5",
        "timezone": "Africa/Abidjan",
        "path": "/tasks/digest?mode=weekday",
        "enabled": true,
        "nextScheduledFor": "2026-10-21T09:30:00.000Z",
        "scheduleRevision": 2,
        "availableSince": "2026-10-21T07:44:22.328Z",
        "createdAt": "2026-10-21T07:44:21.733Z",
        "updatedAt": "2026-10-21T07:44:22.339Z",
        "latestRuns": [
          {
            "id": "cmvht3kfl1vpa4bpf4406sbpt",
            "jobId": "cmvht3jly1xgh4bo25ge2t996",
            "serverId": "9547e3f2-1369-4ed4-b047-a589b0a303c4",
            "portalId": "0d9f7744-f853-47c7-b06e-6f61f9dd1b7f",
            "path": "/tasks/digest?mode=weekday",
            "scheduleRevision": 2,
            "trigger": "MANUAL",
            "scheduledFor": "2026-10-21T07:44:22.831Z",
            "status": "PENDING",
            "attempts": 0,
            "nextAttemptAt": "2026-10-21T07:44:22.831Z",
            "readyDeadlineAt": "2026-10-21T08:14:22.831Z",
            "deliveryDeadlineAt": "2026-10-25T07:44:22.831Z",
            "waitingForServer": true,
            "startedAt": null,
            "lastAttemptStartedAt": null,
            "late": false,
            "finishedAt": null,
            "durationMs": null,
            "responseSource": null,
            "httpStatus": null,
            "errorCode": null,
            "lastAttemptErrorCode": null,
            "requestId": null,
            "responseSnippet": null,
            "createdAt": "2026-10-21T07:44:22.831Z",
            "updatedAt": "2026-10-21T07:44:22.831Z"
          }
        ]
      }
    ]
  }
}

Error response example

404 — the server is not found or is inaccessible to the caller:

JSON
{
  "success": false,
  "error": {
    "code": "NOT_FOUND",
    "message": "Server not found"
  }
}

Errors

HTTP Code Reason
HTTP404 CodeNOT_FOUND ReasonServer not found or inaccessible to the caller
HTTP401 CodeMISSING_API_KEY ReasonMissing API key
HTTP403 CodeSERVER_ROLE_FORBIDDEN ReasonDevelopment team role does not permit this action

Full list of shared error codes — Errors.

See also