Skip to Content
webagent docs
API reference

Engines

Agent engines and their versions.

Open as .md
GET
/v1/engines

Authorization

headerAuthorizationBearer <token>

An API key (wa_<region>_…) or a dashboard access token.

Response Body

OK

application/json
  1. response
engines*array<>
Example Request
curl -X GET 'https://api.us.webagent.lookover.ai/v1/engines'
Example Response
{  "engines": [    {      "id": "string",      "name": "string",      "description": "string",      "icon": "string",      "source": "builtin",      "baseEngineId": "string",      "latestVersion": "string",      "isProjectDefault": true    }  ]}
POST
/v1/engines

Create an engine of the project, first version 1.0.0: a fork of baseEngineId (a built-in or the project's), or, when it is omitted, one from scratch (empty instructions, starter defaults)

Authorization

headerAuthorizationBearer <token>

An API key (wa_<region>_…) or a dashboard access token.

Request Body

application/json
  1. body
baseEngineId?string
Match^eng_(us|in)_[0-9a-z]{24}$
name*string
Length1 <= length <= 100
description?string
Lengthlength <= 500
icon?string
Length1 <= length <= 64

Response Body

OK

application/json
  1. response
id*string
Match^eng_(us|in)_[0-9a-z]{24}$
name*string
Length1 <= length <= 100
description*string
Lengthlength <= 500
icon?string
Length1 <= length <= 64
source*string
Value in"builtin""user"
baseEngineId?string
Match^eng_(us|in)_[0-9a-z]{24}$
latestVersion*string
Match^\d+\.\d+\.\d+$
Lengthlength <= 40
isProjectDefault*boolean
latest*
draft*|null
Example Request
curl -X POST 'https://api.us.webagent.lookover.ai/v1/engines' \  -H 'Content-Type: application/json' \  -d '{  "name": "string"}'
Example Response
{  "id": "string",  "name": "string",  "description": "string",  "icon": "string",  "source": "builtin",  "baseEngineId": "string",  "latestVersion": "string",  "isProjectDefault": true,  "latest": {    "instructions": "string",    "limits": {      "maxSteps": 1,      "maxCostUsd": 1,      "sessionCostCapUsd": 1,      "maxMinutes": 1    },    "browserDefaults": {      "browser": "chromium",      "viewport": {        "width": 200,        "height": 200,        "deviceScaleFactor": 0.5,        "mobile": true      },      "locale": "string",      "profileId": "string",      "proxyId": "string",      "recordVideo": true    },    "guardrails": {      "allowHosts": [        "string"      ],      "blockHosts": [        "string"      ],      "allowDownloads": true    },    "approvals": {      "payments": "allow",      "messages": "allow",      "credentials": "allow",      "submit": "allow"    },    "skills": [      {        "name": "string",        "version": "string"      }    ],    "mcpServerIds": [      "string"    ],    "memory": {      "cache": "on",      "scope": "engine"    },    "version": "string",    "status": "draft"  },  "draft": {    "instructions": "string",    "limits": {      "maxSteps": 1,      "maxCostUsd": 1,      "sessionCostCapUsd": 1,      "maxMinutes": 1    },    "browserDefaults": {      "browser": "chromium",      "viewport": {        "width": 200,        "height": 200,        "deviceScaleFactor": 0.5,        "mobile": true      },      "locale": "string",      "profileId": "string",      "proxyId": "string",      "recordVideo": true    },    "guardrails": {      "allowHosts": [        "string"      ],      "blockHosts": [        "string"      ],      "allowDownloads": true    },    "approvals": {      "payments": "allow",      "messages": "allow",      "credentials": "allow",      "submit": "allow"    },    "skills": [      {        "name": "string",        "version": "string"      }    ],    "mcpServerIds": [      "string"    ],    "memory": {      "cache": "on",      "scope": "engine"    },    "version": "string",    "status": "draft"  }}
GET
/v1/engines/{id}

Authorization

headerAuthorizationBearer <token>

An API key (wa_<region>_…) or a dashboard access token.

Path Parameters

id*string
Match^eng_(us|in)_[0-9a-z]{24}$

Response Body

OK

application/json
  1. response
id*string
Match^eng_(us|in)_[0-9a-z]{24}$
name*string
Length1 <= length <= 100
description*string
Lengthlength <= 500
icon?string
Length1 <= length <= 64
source*string
Value in"builtin""user"
baseEngineId?string
Match^eng_(us|in)_[0-9a-z]{24}$
latestVersion*string
Match^\d+\.\d+\.\d+$
Lengthlength <= 40
isProjectDefault*boolean
latest*
draft*|null
Example Request
curl -X GET 'https://api.us.webagent.lookover.ai/v1/engines/string'
Example Response
{  "id": "string",  "name": "string",  "description": "string",  "icon": "string",  "source": "builtin",  "baseEngineId": "string",  "latestVersion": "string",  "isProjectDefault": true,  "latest": {    "instructions": "string",    "limits": {      "maxSteps": 1,      "maxCostUsd": 1,      "sessionCostCapUsd": 1,      "maxMinutes": 1    },    "browserDefaults": {      "browser": "chromium",      "viewport": {        "width": 200,        "height": 200,        "deviceScaleFactor": 0.5,        "mobile": true      },      "locale": "string",      "profileId": "string",      "proxyId": "string",      "recordVideo": true    },    "guardrails": {      "allowHosts": [        "string"      ],      "blockHosts": [        "string"      ],      "allowDownloads": true    },    "approvals": {      "payments": "allow",      "messages": "allow",      "credentials": "allow",      "submit": "allow"    },    "skills": [      {        "name": "string",        "version": "string"      }    ],    "mcpServerIds": [      "string"    ],    "memory": {      "cache": "on",      "scope": "engine"    },    "version": "string",    "status": "draft"  },  "draft": {    "instructions": "string",    "limits": {      "maxSteps": 1,      "maxCostUsd": 1,      "sessionCostCapUsd": 1,      "maxMinutes": 1    },    "browserDefaults": {      "browser": "chromium",      "viewport": {        "width": 200,        "height": 200,        "deviceScaleFactor": 0.5,        "mobile": true      },      "locale": "string",      "profileId": "string",      "proxyId": "string",      "recordVideo": true    },    "guardrails": {      "allowHosts": [        "string"      ],      "blockHosts": [        "string"      ],      "allowDownloads": true    },    "approvals": {      "payments": "allow",      "messages": "allow",      "credentials": "allow",      "submit": "allow"    },    "skills": [      {        "name": "string",        "version": "string"      }    ],    "mcpServerIds": [      "string"    ],    "memory": {      "cache": "on",      "scope": "engine"    },    "version": "string",    "status": "draft"  }}
DELETE
/v1/engines/{id}

Delete one of the project's engines. 403 forbidden for a built-in, 409 conflict for the project default

Authorization

headerAuthorizationBearer <token>

An API key (wa_<region>_…) or a dashboard access token.

Path Parameters

id*string
Match^eng_(us|in)_[0-9a-z]{24}$

Response Body

OK

application/json
  1. response
deleted*boolean
Example Request
curl -X DELETE 'https://api.us.webagent.lookover.ai/v1/engines/string'
Example Response
{  "deleted": true}

Edit the engine's draft

PATCH
/v1/engines/{id}/draft

Edit the engine's draft (opened from the latest version on the first edit) and its name, description and icon. 403 forbidden for a built-in

Authorization

headerAuthorizationBearer <token>

An API key (wa_<region>_…) or a dashboard access token.

Path Parameters

id*string
Match^eng_(us|in)_[0-9a-z]{24}$

Request Body

application/json
  1. body
instructions?string
Lengthlength <= 8000
limits?
browserDefaults?
guardrails?
approvals?
skills?array<>
Itemsitems <= 50
mcpServerIds?array<>
Itemsitems <= 50
memory?
name?string
Length1 <= length <= 100
description?string
Lengthlength <= 500
icon?|null

Response Body

OK

application/json
  1. response
id*string
Match^eng_(us|in)_[0-9a-z]{24}$
name*string
Length1 <= length <= 100
description*string
Lengthlength <= 500
icon?string
Length1 <= length <= 64
source*string
Value in"builtin""user"
baseEngineId?string
Match^eng_(us|in)_[0-9a-z]{24}$
latestVersion*string
Match^\d+\.\d+\.\d+$
Lengthlength <= 40
isProjectDefault*boolean
latest*
draft*|null
Example Request
curl -X PATCH 'https://api.us.webagent.lookover.ai/v1/engines/string/draft' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "id": "string",  "name": "string",  "description": "string",  "icon": "string",  "source": "builtin",  "baseEngineId": "string",  "latestVersion": "string",  "isProjectDefault": true,  "latest": {    "instructions": "string",    "limits": {      "maxSteps": 1,      "maxCostUsd": 1,      "sessionCostCapUsd": 1,      "maxMinutes": 1    },    "browserDefaults": {      "browser": "chromium",      "viewport": {        "width": 200,        "height": 200,        "deviceScaleFactor": 0.5,        "mobile": true      },      "locale": "string",      "profileId": "string",      "proxyId": "string",      "recordVideo": true    },    "guardrails": {      "allowHosts": [        "string"      ],      "blockHosts": [        "string"      ],      "allowDownloads": true    },    "approvals": {      "payments": "allow",      "messages": "allow",      "credentials": "allow",      "submit": "allow"    },    "skills": [      {        "name": "string",        "version": "string"      }    ],    "mcpServerIds": [      "string"    ],    "memory": {      "cache": "on",      "scope": "engine"    },    "version": "string",    "status": "draft"  },  "draft": {    "instructions": "string",    "limits": {      "maxSteps": 1,      "maxCostUsd": 1,      "sessionCostCapUsd": 1,      "maxMinutes": 1    },    "browserDefaults": {      "browser": "chromium",      "viewport": {        "width": 200,        "height": 200,        "deviceScaleFactor": 0.5,        "mobile": true      },      "locale": "string",      "profileId": "string",      "proxyId": "string",      "recordVideo": true    },    "guardrails": {      "allowHosts": [        "string"      ],      "blockHosts": [        "string"      ],      "allowDownloads": true    },    "approvals": {      "payments": "allow",      "messages": "allow",      "credentials": "allow",      "submit": "allow"    },    "skills": [      {        "name": "string",        "version": "string"      }    ],    "mcpServerIds": [      "string"    ],    "memory": {      "cache": "on",      "scope": "engine"    },    "version": "string",    "status": "draft"  }}
POST
/v1/engines/{id}/publish

Publish the draft as the next version (bump default patch). 409 conflict with no draft changes, 403 forbidden for a built-in

Authorization

headerAuthorizationBearer <token>

An API key (wa_<region>_…) or a dashboard access token.

Path Parameters

id*string
Match^eng_(us|in)_[0-9a-z]{24}$

Request Body

application/json
  1. body
bump?string
Default"patch"
Value in"patch""minor""major"

Response Body

OK

application/json
  1. response
id*string
Match^eng_(us|in)_[0-9a-z]{24}$
name*string
Length1 <= length <= 100
description*string
Lengthlength <= 500
icon?string
Length1 <= length <= 64
source*string
Value in"builtin""user"
baseEngineId?string
Match^eng_(us|in)_[0-9a-z]{24}$
latestVersion*string
Match^\d+\.\d+\.\d+$
Lengthlength <= 40
isProjectDefault*boolean
latest*
draft*|null
Example Request
curl -X POST 'https://api.us.webagent.lookover.ai/v1/engines/string/publish' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "id": "string",  "name": "string",  "description": "string",  "icon": "string",  "source": "builtin",  "baseEngineId": "string",  "latestVersion": "string",  "isProjectDefault": true,  "latest": {    "instructions": "string",    "limits": {      "maxSteps": 1,      "maxCostUsd": 1,      "sessionCostCapUsd": 1,      "maxMinutes": 1    },    "browserDefaults": {      "browser": "chromium",      "viewport": {        "width": 200,        "height": 200,        "deviceScaleFactor": 0.5,        "mobile": true      },      "locale": "string",      "profileId": "string",      "proxyId": "string",      "recordVideo": true    },    "guardrails": {      "allowHosts": [        "string"      ],      "blockHosts": [        "string"      ],      "allowDownloads": true    },    "approvals": {      "payments": "allow",      "messages": "allow",      "credentials": "allow",      "submit": "allow"    },    "skills": [      {        "name": "string",        "version": "string"      }    ],    "mcpServerIds": [      "string"    ],    "memory": {      "cache": "on",      "scope": "engine"    },    "version": "string",    "status": "draft"  },  "draft": {    "instructions": "string",    "limits": {      "maxSteps": 1,      "maxCostUsd": 1,      "sessionCostCapUsd": 1,      "maxMinutes": 1    },    "browserDefaults": {      "browser": "chromium",      "viewport": {        "width": 200,        "height": 200,        "deviceScaleFactor": 0.5,        "mobile": true      },      "locale": "string",      "profileId": "string",      "proxyId": "string",      "recordVideo": true    },    "guardrails": {      "allowHosts": [        "string"      ],      "blockHosts": [        "string"      ],      "allowDownloads": true    },    "approvals": {      "payments": "allow",      "messages": "allow",      "credentials": "allow",      "submit": "allow"    },    "skills": [      {        "name": "string",        "version": "string"      }    ],    "mcpServerIds": [      "string"    ],    "memory": {      "cache": "on",      "scope": "engine"    },    "version": "string",    "status": "draft"  }}
GET
/v1/engines/{id}/stats

Task numbers of an engine from the project's finished tasks, per version (newest first) and in total; sinceMs default the last 30 days. A built-in shows only the caller's own tasks on it

Authorization

headerAuthorizationBearer <token>

An API key (wa_<region>_…) or a dashboard access token.

Path Parameters

id*string
Match^eng_(us|in)_[0-9a-z]{24}$

Query Parameters

sinceMs?integer
Range0 <= value <= 9007199254740991

Response Body

OK

application/json
  1. response
engineId*string
Match^eng_(us|in)_[0-9a-z]{24}$
sinceMs*integer
Range0 <= value <= 9007199254740991
total*
versions*array<>
Example Request
curl -X GET 'https://api.us.webagent.lookover.ai/v1/engines/string/stats'
Example Response
{  "engineId": "string",  "sinceMs": 0,  "total": {    "tasks": 0,    "succeeded": 0,    "successRate": 0,    "avgSteps": 0,    "avgCostMicros": 0,    "avgMs": 0,    "stoppedBy": {      "property1": 0,      "property2": 0    }  },  "versions": [    {      "tasks": 0,      "succeeded": 0,      "successRate": 0,      "avgSteps": 0,      "avgCostMicros": 0,      "avgMs": 0,      "stoppedBy": {        "property1": 0,        "property2": 0      },      "version": "string"    }  ]}
PUT
/v1/engines/default

Authorization

headerAuthorizationBearer <token>

An API key (wa_<region>_…) or a dashboard access token.

Request Body

application/json
  1. body
engineId*string
Match^eng_(us|in)_[0-9a-z]{24}$

Response Body

OK

application/json
  1. response
engineId*string
Match^eng_(us|in)_[0-9a-z]{24}$
Example Request
curl -X PUT 'https://api.us.webagent.lookover.ai/v1/engines/default' \  -H 'Content-Type: application/json' \  -d '{  "engineId": "string"}'
Example Response
{  "engineId": "string"}