Skip to main content

API: Manifests

Endpoints for reading and updating a bot's manifest. The manifest defines a bot's runtime capabilities, webhook delivery configuration, and action parameters.

Get Manifest​

GET /api/v1/bots/:botId/manifest

Returns the bot's current manifest.


Update Manifest​

PUT /api/v1/bots/:botId/manifest

Updates the bot's manifest. Requires Write or Admin permission. You can include any combination of the sections below; unspecified sections remain unchanged.

Example:

curl -X PUT \
-H "Authorization: Bearer <api-key>" \
-H "Content-Type: application/json" \
-d '{
"capabilities": {
"proxy": true,
"locale": "en-US",
"timezone": "America/New_York"
},
"webhook": {
"url": "https://api.example.com/ingest",
"auth": "hmac",
"secret": "whsec_..."
}
}' \
"https://<deployment>.convex.site/api/v1/bots/<botId>/manifest"

Manifest Structure​

capabilities​

Browser configuration applied when the bot executes.

FieldTypeDescription
proxybooleanEnable proxy routing for this bot.
localestringBrowser locale (e.g., en-US, fr-FR).
userAgentstringCustom User-Agent string.
timezonestringBrowser timezone (e.g., America/New_York).
geolocationobjectGPS coordinates (latitude, longitude) for geolocation spoofing.
adBlockingbooleanEnable ad and tracker blocking.
resolutionobjectBrowser viewport dimensions (width, height).
timeoutnumberMaximum execution time in seconds.

webhook​

Configuration for delivering extracted data to external endpoints after successful execution. See Webhooks for full details on authentication methods.

FieldTypeDescription
urlstringDestination URL for webhook delivery.
authstringAuthentication method: none, hmac, or jwt.
secretstringHMAC secret key (when auth is hmac).
loginUrlstringLogin endpoint URL (when auth is jwt).
usernamestringLogin username (when auth is jwt).
passwordstringLogin password (when auth is jwt).
dataPathstringDot-notation path to extract a specific field from the output (e.g., results.items).

parameters​

For action bots, defines the expected input parameters that callers must provide when triggering an execution.

FieldTypeDescription
namestringParameter name.
typestringExpected type (e.g., string, number, boolean).
descriptionstringHuman-readable description of what the parameter controls.
requiredbooleanWhether the parameter must be provided.

Example parameters definition:

{
"parameters": [
{
"name": "searchQuery",
"type": "string",
"description": "The search term to look up",
"required": true
},
{
"name": "maxResults",
"type": "number",
"description": "Maximum number of results to return",
"required": false
}
]
}

When an execution is triggered via the API, the provided parameters are validated against this definition. See Executions for details on passing parameters.