curl --request GET \
--url https://api.pomerado.ai/v1/jobs \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.pomerado.ai/v1/jobs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.pomerado.ai/v1/jobs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "job_0f8e2d1c4b3a49e8a7f6e5d4c3b2a190",
"type": "run",
"build_kind": "new",
"status": "queued",
"stage": "queued",
"site_url": "<string>",
"site_name": "<string>",
"task": "<string>",
"question": "<string>",
"waiting_since": "<string>",
"tool_id": "<string>",
"tool_name": "<string>",
"integration_id": "int_0f8e2d1c4b3a49e8a7f6e5d4c3b2a190",
"eta": {
"min_seconds": 123,
"max_seconds": 123
},
"watch_url": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"completed_at": "<string>"
}
],
"next_cursor": "<string>",
"needs_input_count": 1,
"counts": {
"needs_input": 1,
"in_progress": 1,
"finished": 1
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"docs_url": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"docs_url": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"docs_url": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"docs_url": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"docs_url": "<string>",
"details": {}
}
}List jobs
List your runs and builds, newest first, each with its status, website, task and the question it asks.
curl --request GET \
--url https://api.pomerado.ai/v1/jobs \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.pomerado.ai/v1/jobs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.pomerado.ai/v1/jobs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "job_0f8e2d1c4b3a49e8a7f6e5d4c3b2a190",
"type": "run",
"build_kind": "new",
"status": "queued",
"stage": "queued",
"site_url": "<string>",
"site_name": "<string>",
"task": "<string>",
"question": "<string>",
"waiting_since": "<string>",
"tool_id": "<string>",
"tool_name": "<string>",
"integration_id": "int_0f8e2d1c4b3a49e8a7f6e5d4c3b2a190",
"eta": {
"min_seconds": 123,
"max_seconds": 123
},
"watch_url": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"completed_at": "<string>"
}
],
"next_cursor": "<string>",
"needs_input_count": 1,
"counts": {
"needs_input": 1,
"in_progress": 1,
"finished": 1
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"docs_url": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"docs_url": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"docs_url": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"docs_url": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"docs_url": "<string>",
"details": {}
}
}Details
Details
- Lists the jobs you can read with GET /v1/jobs/{id}: those your API key, app or Dashboard started. The Dashboard lists the ones you started from any client.
- status filters by one or more statuses, comma-separated, such as status=needs_input. A filtered page can hold fewer jobs than limit, so follow next_cursor until it is null.
- q finds the jobs whose website or site name contains its text. Tasks are kept encrypted for you alone and can’t be searched here; search them in the jobs you list.
- counts totals your jobs of the listed type by state, whatever status, q, cursor and limit asked for; needs_input_count repeats counts.needs_input.
- A job’s result is never listed; read it with GET /v1/jobs/{id}.
- Callers: an API key, an integration’s API key, an MCP OAuth token or a Dashboard session.
-
Permission:
jobs:read. - Effect: Changes nothing.
- Errors: only the errors any request can get.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Only runs, or only builds
run, build Only jobs in these statuses, comma-separated: queued, running, needs_input, succeeded, failed, cancelled
Only jobs whose website or site name contains this text, ignoring case. A task is kept encrypted for you alone, so search tasks in the jobs you have listed
The next_cursor of the previous page
Jobs per page, 1 to 50 (default 20)
Response
One page of jobs
Show child attributes
Show child attributes
counts.needs_input, kept for callers that read it
x >= 0How many of your jobs of the listed type are in each state, whatever status, q, cursor and limit asked for
Show child attributes
Show child attributes