Skip to Content
webagent docs
API reference

Marketplace

Browse, publish and install skills.

Open as .md

List approved skills

GET
/v1/marketplace

List approved skills (public plus your own), most installed first; paged

Authorization

headerAuthorizationBearer <token>

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

Query Parameters

limit?integer
Range1 <= value <= 100
Default50
cursor?string
Length1 <= length <= 500
q?string
Lengthlength <= 100
icp?string
Value in"tester""engineer""pentester""security"
tag?string
Lengthlength <= 60
category?string
Lengthlength <= 60
engine?string
Value in"chromium""firefox""webkit"
without?string
Lengthlength <= 200
visibility?string
Value in"private""unlisted""public"

Response Body

OK

application/json
  1. response
skills*array<>
next?string
Example Request
curl -X GET 'https://api.us.webagent.lookover.ai/v1/marketplace'
Example Response
{  "skills": [    {      "name": "string",      "version": "string",      "description": "string",      "icp": [        "tester"      ],      "permissions": [        "network_capture"      ],      "visibility": "private",      "tags": [        "string"      ],      "category": "string",      "engines": [        "chromium"      ],      "digest": "string",      "deprecated": {        "reason": "string",        "replacedBy": "string",        "at": 0      },      "publisherTenantId": "string",      "versions": [        "string"      ],      "rating": {        "average": 0,        "count": 0      },      "installs": 0,      "updatedAt": 0    }  ],  "next": "string"}
GET
/v1/marketplace/{name}

Authorization

headerAuthorizationBearer <token>

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

Path Parameters

name*string
Match^[a-z][a-z0-9-]*$

Response Body

OK

application/json
  1. response
name*string
version*string
description*string
icp*array<>
permissions*array<>
visibility*string
Value in"private""unlisted""public"
tags*array<string>
category*string|null
engines*array<>
digest*string|null
deprecated*|null
publisherTenantId*string
Match^ten_(us|in)_[0-9a-z]{24}$
versions*array<string>
rating*
installs*integer
Range0 <= value <= 9007199254740991
updatedAt*integer
Range0 <= value <= 9007199254740991
body*string
ratings*array<>
history*array<>
installed*|null
Example Request
curl -X GET 'https://api.us.webagent.lookover.ai/v1/marketplace/string'
Example Response
{  "name": "string",  "version": "string",  "description": "string",  "icp": [    "tester"  ],  "permissions": [    "network_capture"  ],  "visibility": "private",  "tags": [    "string"  ],  "category": "string",  "engines": [    "chromium"  ],  "digest": "string",  "deprecated": {    "reason": "string",    "replacedBy": "string",    "at": 0  },  "publisherTenantId": "string",  "versions": [    "string"  ],  "rating": {    "average": 0,    "count": 0  },  "installs": 0,  "updatedAt": 0,  "body": "string",  "ratings": [    {      "stars": 1,      "comment": "string",      "at": 0    }  ],  "history": [    {      "name": "string",      "version": "string",      "status": "pending",      "visibility": "private",      "digest": "string",      "reviewFlags": [        "string"      ],      "deprecated": {        "reason": "string",        "replacedBy": "string",        "at": 0      },      "yankedAt": 0,      "submittedAt": 0,      "lint": [        {          "rule": "string",          "severity": "error",          "message": "string",          "path": "string",          "fix": "string"        }      ]    }  ],  "installed": {    "version": "string",    "pinned": "string"  }}
GET
/v1/marketplace/{name}/consent

What an admin reviews before installing a version, and whether it is consented

Authorization

headerAuthorizationBearer <token>

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

Path Parameters

name*string
Match^[a-z][a-z0-9-]*$

Query Parameters

version?string
Match^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?$

Response Body

OK

application/json
  1. response
name*string
version*string
digest*string|null
thirdParty*boolean
publisherTenantId*string
Match^ten_(us|in)_[0-9a-z]{24}$
profile*|null
permissions*array<>
flags*array<string>
scopeRequired*boolean
declaredScope*array<string>
deprecated*|null
consented*boolean
boundScope*array<string>|null
Example Request
curl -X GET 'https://api.us.webagent.lookover.ai/v1/marketplace/string/consent'
Example Response
{  "name": "string",  "version": "string",  "digest": "string",  "thirdParty": true,  "publisherTenantId": "string",  "profile": {    "permissions": [      "network_capture"    ],    "scope": [      "string"    ],    "script": true,    "llmSteps": true,    "modelSubmit": true,    "fixedHosts": [      "string"    ],    "engines": [      "chromium"    ]  },  "permissions": [    "network_capture"  ],  "flags": [    "string"  ],  "scopeRequired": true,  "declaredScope": [    "string"  ],  "deprecated": {    "reason": "string",    "replacedBy": "string",    "at": 0  },  "consented": true,  "boundScope": [    "string"  ]}
GET
/v1/marketplace/{name}/diff

Authorization

headerAuthorizationBearer <token>

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

Path Parameters

name*string
Match^[a-z][a-z0-9-]*$

Query Parameters

from*string
Match^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?$
to*string
Match^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?$

Response Body

OK

application/json
  1. response
name*string
from*string
to*string
diff*
flags*array<string>
digests*
Example Request
curl -X GET 'https://api.us.webagent.lookover.ai/v1/marketplace/string/diff?from=string&to=string'
Example Response
{  "name": "string",  "from": "string",  "to": "string",  "diff": {    "permissionsAdded": [      "network_capture"    ],    "permissionsRemoved": [      "network_capture"    ],    "scopeAdded": [      "string"    ],    "scopeRemoved": [      "string"    ],    "scriptAdded": true,    "llmStepsAdded": true,    "modelSubmitAdded": true,    "fixedHostsAdded": [      "string"    ]  },  "flags": [    "string"  ],  "digests": {    "from": "string",    "to": "string"  }}
POST
/v1/marketplace/{name}/install

Install a skill for this tenant (admins); another tenant's skill needs consent

Authorization

headerAuthorizationBearer <token>

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

Path Parameters

name*string
Match^[a-z][a-z0-9-]*$

Request Body

application/json
  1. body
version?string
follow?boolean
cooldownHours?integer
Range0 <= value <= 720
consent?

Response Body

OK

application/json
  1. response
name*string
version*string
pinned*string|null
installedAt*integer
Range0 <= value <= 9007199254740991
visibility*string
Value in"private""unlisted""public"
digest*string|null
deprecated*|null
yanked*boolean
thirdParty*boolean
publisherTenantId*string
Match^ten_(us|in)_[0-9a-z]{24}$
boundScope*array<string>|null
update*|null
cooldownHours*|null
Example Request
curl -X POST 'https://api.us.webagent.lookover.ai/v1/marketplace/string/install' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "name": "string",  "version": "string",  "pinned": "string",  "installedAt": 0,  "visibility": "private",  "digest": "string",  "deprecated": {    "reason": "string",    "replacedBy": "string",    "at": 0  },  "yanked": true,  "thirdParty": true,  "publisherTenantId": "string",  "boundScope": [    "string"  ],  "update": {    "version": "string",    "needsConsent": true,    "flags": [      "string"    ],    "holdUntil": 0  },  "cooldownHours": -9007199254740991}
DELETE
/v1/marketplace/{name}/install

Authorization

headerAuthorizationBearer <token>

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

Path Parameters

name*string
Match^[a-z][a-z0-9-]*$

Response Body

OK

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

Authorization

headerAuthorizationBearer <token>

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

Path Parameters

name*string
Match^[a-z][a-z0-9-]*$

Request Body

application/json
  1. body
stars*integer
Range1 <= value <= 5
comment?string
Lengthlength <= 2000

Response Body

OK

application/json
  1. response
rated*boolean
Example Request
curl -X POST 'https://api.us.webagent.lookover.ai/v1/marketplace/string/rating' \  -H 'Content-Type: application/json' \  -d '{  "stars": 1}'
Example Response
{  "rated": true}
GET
/v1/marketplace/{name}/versions/{version}/package

Authorization

headerAuthorizationBearer <token>

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

Path Parameters

name*string
Match^[a-z][a-z0-9-]*$
version*string
Match^\d+\.\d+\.\d+$

Response Body

The bytes

response?fileapplication/gzip
Formatbinary
Example Request
curl -X GET 'https://api.us.webagent.lookover.ai/v1/marketplace/string/versions/string/package'
Example Response
"string"
GET
/v1/marketplace/installed

Authorization

headerAuthorizationBearer <token>

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

Response Body

OK

application/json
  1. response
installed*array<>
Example Request
curl -X GET 'https://api.us.webagent.lookover.ai/v1/marketplace/installed'
Example Response
{  "installed": [    {      "name": "string",      "version": "string",      "pinned": "string",      "installedAt": 0,      "visibility": "private",      "digest": "string",      "deprecated": {        "reason": "string",        "replacedBy": "string",        "at": 0      },      "yanked": true,      "thirdParty": true,      "publisherTenantId": "string",      "boundScope": [        "string"      ],      "update": {        "version": "string",        "needsConsent": true,        "flags": [          "string"        ],        "holdUntil": 0      },      "cooldownHours": -9007199254740991    }  ]}
POST
/v1/marketplace/packages

Authorization

headerAuthorizationBearer <token>

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

Query Parameters

visibility?string
Default"private"
Value in"private""unlisted""public"

Request Body

body*fileapplication/octet-stream
Formatbinary

Response Body

OK

application/json
  1. response
name*string
version*string
status*string
Value in"pending""approved""rejected""withdrawn"
visibility*string
Value in"private""unlisted""public"
digest*string|null
reviewFlags*array<string>
deprecated*|null
yankedAt*|null
submittedAt*integer
Range0 <= value <= 9007199254740991
lint?array<>
Example Request
curl -X POST 'https://api.us.webagent.lookover.ai/v1/marketplace/packages' \  -H 'Content-Type: application/octet-stream' \  -d 'string'
Example Response
{  "name": "string",  "version": "string",  "status": "pending",  "visibility": "private",  "digest": "string",  "reviewFlags": [    "string"  ],  "deprecated": {    "reason": "string",    "replacedBy": "string",    "at": 0  },  "yankedAt": 0,  "submittedAt": 0,  "lint": [    {      "rule": "string",      "severity": "error",      "message": "string",      "path": "string",      "fix": "string"    }  ]}
GET
/v1/marketplace/submissions

Authorization

headerAuthorizationBearer <token>

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

Response Body

OK

application/json
  1. response
submissions*array<>
Example Request
curl -X GET 'https://api.us.webagent.lookover.ai/v1/marketplace/submissions'
Example Response
{  "submissions": [    {      "name": "string",      "version": "string",      "status": "pending",      "visibility": "private",      "digest": "string",      "reviewFlags": [        "string"      ],      "deprecated": {        "reason": "string",        "replacedBy": "string",        "at": 0      },      "yankedAt": 0,      "submittedAt": 0,      "lint": [        {          "rule": "string",          "severity": "error",          "message": "string",          "path": "string",          "fix": "string"        }      ]    }  ]}

Submit a SKILL.md text

POST
/v1/marketplace/submissions

Authorization

headerAuthorizationBearer <token>

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

Header Parameters

Idempotency-Key?string

Retry safely: the same key and body replay the first answer.

Length1 <= length <= 255

Request Body

application/json
  1. body
text*string
Length1 <= length <= 200000
visibility?string
Default"public"
Value in"private""unlisted""public"

Response Body

OK

application/json
  1. response
name*string
version*string
status*string
Value in"pending""approved""rejected""withdrawn"
visibility*string
Value in"private""unlisted""public"
digest*string|null
reviewFlags*array<string>
deprecated*|null
yankedAt*|null
submittedAt*integer
Range0 <= value <= 9007199254740991
lint?array<>
Example Request
curl -X POST 'https://api.us.webagent.lookover.ai/v1/marketplace/submissions' \  -H 'Content-Type: application/json' \  -d '{  "text": "string"}'
Example Response
{  "name": "string",  "version": "string",  "status": "pending",  "visibility": "private",  "digest": "string",  "reviewFlags": [    "string"  ],  "deprecated": {    "reason": "string",    "replacedBy": "string",    "at": 0  },  "yankedAt": 0,  "submittedAt": 0,  "lint": [    {      "rule": "string",      "severity": "error",      "message": "string",      "path": "string",      "fix": "string"    }  ]}
DELETE
/v1/marketplace/submissions/{name}/{version}

Authorization

headerAuthorizationBearer <token>

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

Path Parameters

name*string
Match^[a-z][a-z0-9-]*$
version*string
Match^\d+\.\d+\.\d+$

Response Body

OK

application/json
  1. response
name*string
version*string
status*string
Value in"pending""approved""rejected""withdrawn"
visibility*string
Value in"private""unlisted""public"
digest*string|null
reviewFlags*array<string>
deprecated*|null
yankedAt*|null
submittedAt*integer
Range0 <= value <= 9007199254740991
lint?array<>
Example Request
curl -X DELETE 'https://api.us.webagent.lookover.ai/v1/marketplace/submissions/string/string'
Example Response
{  "name": "string",  "version": "string",  "status": "pending",  "visibility": "private",  "digest": "string",  "reviewFlags": [    "string"  ],  "deprecated": {    "reason": "string",    "replacedBy": "string",    "at": 0  },  "yankedAt": 0,  "submittedAt": 0,  "lint": [    {      "rule": "string",      "severity": "error",      "message": "string",      "path": "string",      "fix": "string"    }  ]}
POST
/v1/marketplace/submissions/{name}/{version}/deprecate

Authorization

headerAuthorizationBearer <token>

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

Path Parameters

name*string
Match^[a-z][a-z0-9-]*$
version*string
Match^\d+\.\d+\.\d+$

Request Body

application/json
  1. body
reason*string
Length1 <= length <= 500
replacedBy?string
Lengthlength <= 100

Response Body

OK

application/json
  1. response
name*string
version*string
status*string
Value in"pending""approved""rejected""withdrawn"
visibility*string
Value in"private""unlisted""public"
digest*string|null
reviewFlags*array<string>
deprecated*|null
yankedAt*|null
submittedAt*integer
Range0 <= value <= 9007199254740991
lint?array<>
Example Request
curl -X POST 'https://api.us.webagent.lookover.ai/v1/marketplace/submissions/string/string/deprecate' \  -H 'Content-Type: application/json' \  -d '{  "reason": "string"}'
Example Response
{  "name": "string",  "version": "string",  "status": "pending",  "visibility": "private",  "digest": "string",  "reviewFlags": [    "string"  ],  "deprecated": {    "reason": "string",    "replacedBy": "string",    "at": 0  },  "yankedAt": 0,  "submittedAt": 0,  "lint": [    {      "rule": "string",      "severity": "error",      "message": "string",      "path": "string",      "fix": "string"    }  ]}
POST
/v1/marketplace/submissions/{name}/{version}/yank

Authorization

headerAuthorizationBearer <token>

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

Path Parameters

name*string
Match^[a-z][a-z0-9-]*$
version*string
Match^\d+\.\d+\.\d+$

Request Body

application/json
  1. body
reason*string
Length1 <= length <= 500

Response Body

OK

application/json
  1. response
name*string
version*string
status*string
Value in"pending""approved""rejected""withdrawn"
visibility*string
Value in"private""unlisted""public"
digest*string|null
reviewFlags*array<string>
deprecated*|null
yankedAt*|null
submittedAt*integer
Range0 <= value <= 9007199254740991
lint?array<>
Example Request
curl -X POST 'https://api.us.webagent.lookover.ai/v1/marketplace/submissions/string/string/yank' \  -H 'Content-Type: application/json' \  -d '{  "reason": "string"}'
Example Response
{  "name": "string",  "version": "string",  "status": "pending",  "visibility": "private",  "digest": "string",  "reviewFlags": [    "string"  ],  "deprecated": {    "reason": "string",    "replacedBy": "string",    "at": 0  },  "yankedAt": 0,  "submittedAt": 0,  "lint": [    {      "rule": "string",      "severity": "error",      "message": "string",      "path": "string",      "fix": "string"    }  ]}