For the complete documentation index, see llms.txt. This page is also available as Markdown.

Catalog Jobs

Queue work that is too large for one request, then read the job to learn where it got to. A job answers at once with an id and runs detached, so a caller queues it, does something else, and reads it later.

Use a job to import a file of items, to edit or copy many items at once, to export the catalog or the order data, to build a catalog in one step, or to rebuild the search index. To create or change one item, use Catalog Management, which answers when the work is done.

A job runs with the permissions of the caller who queued it. Reading a job takes the same permission as queueing it.

List Catalog Jobs

get

Lists the jobs of the last 24 hours, newest first. Older jobs are not listed.

The list holds only the job types that you may queue, and it leaves out failedReason, which can be long. Read one job to get the reason it failed.

Required scopes
This endpoint requires the following scopes:
Authorizations
AuthorizationstringRequired

OAuth 2.0 Bearer token for authenticated API access. Required for order submission, object management, and administrative operations.

Obtain a token via the OAuth flow described in OAuth Bearer Token.

Pass the token in the Authorization header: Bearer <token>

Responses
200

OK

application/json

A job, in the shape that a read returns.

idstringOptional

The id that the queue answered with.

Example: 1042
namestringOptional

The job type, as it was queued.

Example: importData
statestring · enumOptional

Where the job is. waiting and delayed mean it has not started, active means it is running, and completed and failed are final. unknown means the record does not settle a state.

Example: completedPossible values:
progressnumberOptional

How far the job has run, as a percentage, when the job type reports it. Reads of a single job carry it; the list does not.

Example: 100
failedReasonstringOptional

Why the job failed. Only a read of a single job carries it: the reason can be long, so the list leaves it out.

usernamestringOptional

Who queued the job.

processedOnnumberOptional

When the job started, in milliseconds since the epoch.

timestampnumberOptional

When the job was queued, in milliseconds since the epoch.

get/limio/jobs
GET /limio/jobs HTTP/1.1
Host: your-environment.prod.limio.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "id": "1042",
    "name": "importData",
    "state": "completed",
    "progress": 100,
    "message": {
      "notificationType": "text",
      "message": "Bulk edit has been completed"
    },
    "returnValue": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    },
    "failedReason": "text",
    "username": "text",
    "data": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    },
    "processedOn": 1,
    "timestamp": 1
  }
]

Create Catalog Job

post

Queues a job and answers at once with its id. The job then runs detached. Read GET /limio/jobs/{id} to learn where it got to.

Use a job for work that is too large for one request: import a file of offers, products or pages, edit or copy many items at once, export the catalog, or build a catalog in one step. Queue the job, do something else, and read the job later. To create or change one item, use POST /limio/catalogs/1/items/{path}, which answers when the work is done.

jobType selects the work, and the rest of the body is the payload of that job type. updatePath is the catalog path that the job writes to, for the job types that write.

A job runs with the permissions of the caller who queued it, so every record it touches answers to the same grants as a direct write would.

Required scopes
This endpoint requires the following scopes:
Authorizations
AuthorizationstringRequired

OAuth 2.0 Bearer token for authenticated API access. Required for order submission, object management, and administrative operations.

Obtain a token via the OAuth flow described in OAuth Bearer Token.

Pass the token in the Authorization header: Bearer <token>

Body
jobTypestring · enumRequired

The work to do. importData loads items from a file. bulkEdit changes an attribute on many items. bulkCopy copies many items. duplicateData copies one tree. creation creates one item. export and exportCatalogTable write the catalog to a file. exportAnalytics writes order data to a file. zuoraCatalogSync reads the product catalog from Zuora. catalogCreation builds a catalog in one step. indexer rebuilds the search index.

Example: bulkEditPossible values:
updatePathstringOptional

The catalog path that the job writes to, for a job type that writes.

Example: /offers2
Responses
200

The job is queued.

application/json
idstringOptional

Read the job at GET /limio/jobs/{id} with this id.

Example: 1042
post/limio/jobs
POST /limio/jobs HTTP/1.1
Host: your-environment.prod.limio.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 46

{
  "jobType": "bulkEdit",
  "updatePath": "/offers2"
}
{
  "id": "1042"
}

Get Catalog Job

get

Returns one job, with how far it has run and what it produced. This is the read that follows POST /limio/jobs.

state says whether to read again. waiting and delayed mean the job has not started, active means it is running, and completed and failed are final. Read again only while the state is not final.

A failed job carries failedReason. A job that wrote a file names it in returnValue; ask for it at GET /limio/jobs/{id}/file/{filename}.

Required scopes
This endpoint requires the following scopes:
Authorizations
AuthorizationstringRequired

OAuth 2.0 Bearer token for authenticated API access. Required for order submission, object management, and administrative operations.

Obtain a token via the OAuth flow described in OAuth Bearer Token.

Pass the token in the Authorization header: Bearer <token>

Path parameters
idstringRequired

The id that POST /limio/jobs answered with.

Example: 1042
Responses
200

OK

application/json

A job, in the shape that a read returns.

idstringOptional

The id that the queue answered with.

Example: 1042
namestringOptional

The job type, as it was queued.

Example: importData
statestring · enumOptional

Where the job is. waiting and delayed mean it has not started, active means it is running, and completed and failed are final. unknown means the record does not settle a state.

Example: completedPossible values:
progressnumberOptional

How far the job has run, as a percentage, when the job type reports it. Reads of a single job carry it; the list does not.

Example: 100
failedReasonstringOptional

Why the job failed. Only a read of a single job carries it: the reason can be long, so the list leaves it out.

usernamestringOptional

Who queued the job.

processedOnnumberOptional

When the job started, in milliseconds since the epoch.

timestampnumberOptional

When the job was queued, in milliseconds since the epoch.

get/limio/jobs/{id}
GET /limio/jobs/{id} HTTP/1.1
Host: your-environment.prod.limio.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": "1042",
  "name": "importData",
  "state": "completed",
  "progress": 100,
  "message": {
    "notificationType": "text",
    "message": "Bulk edit has been completed"
  },
  "returnValue": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "failedReason": "text",
  "username": "text",
  "data": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "processedOn": 1,
  "timestamp": 1
}

Get Catalog Job File

get

Downloads the file that a job produced. The answer is CSV, not JSON.

If you do not know the name of the file, GET /limio/jobs/{id} names it in returnValue.

Required scopes
This endpoint requires the following scopes:
Authorizations
AuthorizationstringRequired

OAuth 2.0 Bearer token for authenticated API access. Required for order submission, object management, and administrative operations.

Obtain a token via the OAuth flow described in OAuth Bearer Token.

Pass the token in the Authorization header: Bearer <token>

Path parameters
idstringRequired

The id that POST /limio/jobs answered with.

Example: 1042
filenamestringRequired

The name of the file, as returnValue of the job gives it.

Example: catalog-export-2024-06-01.csv
Responses
200

The file.

text/csv
stringOptional
get/limio/jobs/{id}/file/{filename}
GET /limio/jobs/{id}/file/{filename} HTTP/1.1
Host: your-environment.prod.limio.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
text

Last updated

Was this helpful?