Skip to main content
Two read endpoints cover job retrieval. GET /api/jobs/list returns the jobs persisted to your merchant account (database-backed, filterable), while GET /api/jobs?jobId={jobId} reads a single job’s live on-chain state straight from the ERC-8183 contract — useful for confirming the current status, budget, and addresses without depending on the database.

Endpoint

GET /api/jobs/list

List the jobs associated with your merchant account, newest first. Filter with the optional query parameters below.

Headers

Query Parameters

string
Filter by job status. Values follow the API’s status strings, e.g. OPEN, FUNDED, SUBMITTED, COMPLETED, REJECTED, EXPIRED.
string
Filter by the client’s on-chain SCA address.
string
Filter by the provider’s on-chain SCA address.

Response

boolean
true when the jobs were retrieved.
array
Job records for your merchant account, ordered by createdAt descending.
number
Number of job records returned in this response.

GET /api/jobs?jobId=

Read a single job’s live state directly from the ERC-8183 getJob view function. This reflects the on-chain truth and includes fields the list endpoint does not surface, such as evaluator, expiredAt, and expiry status.

Headers

Query Parameters

string
required
On-chain job ID to look up. Omitting it returns HTTP 400.

Response

boolean
true when the job state was read from the contract.
object
The job’s on-chain state.
string
The ERC-8183 AgenticCommerce contract address on Arc testnet. Production runs on Arc Mainnet — confirm the production contract address with the operator.
string
Arc Explorer link to the ERC-8183 contract address.

Examples

List Success Response

On-chain Lookup Success Response

Error Responses

Notes

GET /api/jobs/list is scoped to your merchant account only — it returns the jobs created under the authenticated merchant and never those of other accounts. GET /api/jobs?jobId={jobId} reads the public contract state and will return any job ID that exists on-chain.
The list endpoint returns budget in raw atomic units, while the on-chain lookup returns budgetUSDC in human-readable USDC. If you mix both endpoints, convert before comparing values (divide atomic units by 10^6).
A job whose deadline has passed reports status: Expired from the contract and isExpired: true. Expired jobs no longer accept lifecycle steps — check these fields before attempting fund, submit, or complete operations.