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.