Join our community of builders on

Telegram!Telegram

Execute a plugin with optional wildcard route routing

Development Documentation

You're viewing documentation for unreleased features from the main branch. For production use, see the latest stable version (v1.4.x).

Logs and traces are only returned when the plugin is configured with emit_logs / emit_traces. Plugin-provided errors are normalized into a consistent payload (code, details) and a derived message so downstream clients receive a stable shape regardless of how the handler threw.

The endpoint supports wildcard route routing, allowing plugins to implement custom routing logic:

  • /api/v1/plugins/{plugin_id}/call - Default endpoint (route = "")
  • /api/v1/plugins/{plugin_id}/call?route=/verify - Custom route via query parameter
  • /api/v1/plugins/{plugin_id}/call/verify - Custom route via URL path (route = "/verify")

The route is passed to the plugin handler via the context.route field. You can specify a custom route either by appending it to the URL path or by using the route query parameter.

POST
/api/v1/plugins/{plugin_id}/call
AuthorizationBearer <token>

In: header

Path Parameters

plugin_idstring

The unique identifier of the plugin

Query Parameters

route?string

Optional route suffix for custom routing (e.g., '/verify'). Alternative to appending the route to the URL path.

params?unknown

Plugin parameters. If not provided, the entire request body will be used as params.

Response Body

curl -X POST "https://loading/api/v1/plugins/string/call?route=string" \  -H "Content-Type: application/json" \  -d '{}'
{
  "data": "done!",
  "error": null,
  "metadata": {
    "logs": [
      {
        "level": "info",
        "message": "Plugin started..."
      }
    ],
    "traces": [
      {
        "method": "sendTransaction",
        "relayerId": "sepolia-example",
        "requestId": "6c1f336f-3030-4f90-bd99-ada190a1235b"
      }
    ]
  },
  "success": true
}
{
  "data": {
    "code": "VALIDATION_FAILED",
    "details": {
      "field": "email"
    }
  },
  "error": "Validation failed",
  "metadata": {
    "logs": [
      {
        "level": "error",
        "message": "Validation failed for field: email"
      }
    ]
  },
  "success": false
}
{
  "data": null,
  "error": "Unauthorized",
  "success": false
}
{
  "data": null,
  "error": "Plugin with ID plugin_id not found",
  "success": false
}
{
  "data": null,
  "error": "Too Many Requests",
  "success": false
}
{
  "data": null,
  "error": "Internal Server Error",
  "success": false
}