Mirra
REST API ReferenceScripts

Script Endpoints

Complete API reference for script operations

This page documents all available operations for creating, deploying, executing, and managing scripts on the Mirra platform.

Create Script

Create a new script with code, runtime configuration, and metadata.

Endpoint

POST /api/sdk/v1/scripts

Request Body

{
  "name": "Price Tracker",
  "description": "Tracks cryptocurrency prices",
  "runtime": "nodejs18",
  "code": "export async function handler(event) { ... }",
  "config": {
    "timeout": 30,
    "memory": 256,
    "maxCostPerExecution": 1.0,
    "maxExecutionsPerDay": 100,
    "allowedResources": ["resource_123"]
  },
  "category": "crypto",
  "tags": ["crypto", "prices"],
  "private": false
}

Response

{
  "success": true,
  "data": {
    "id": "script_abc123",
    "name": "Price Tracker",
    "runtime": "nodejs18",
    "status": "draft",
    "createdAt": "2025-11-15T12:00:00Z"
  }
}

Execute Script

Execute a script manually with custom event data.

Endpoint

POST /api/sdk/v1/scripts/{scriptId}/execute

Request Body

{
  "data": {
    "symbols": ["BTC", "ETH"],
    "threshold": 5
  }
}

Response

{
  "success": true,
  "data": {
    "executionId": "exec_789",
    "result": {
      "success": true,
      "alerts": [...]
    },
    "duration": 234,
    "memoryUsed": 128,
    "cost": 0.001
  }
}

Create Script Version

Create a new version of a script. Versions are immutable once created.

Endpoint

POST /api/sdk/v1/scripts/{scriptId}/versions

Request Body

{
  "code": "export async function handler(event) { ... }",
  "version": "1.1.0",
  "changelog": "Added error handling and retry logic"
}

Response

{
  "success": true,
  "data": {
    "versionId": "version_456",
    "version": "1.1.0",
    "createdAt": "2025-11-15T13:00:00Z"
  }
}

Deploy Script Version

Deploy a specific version of a script to make it active.

Endpoint

POST /api/sdk/v1/scripts/{scriptId}/deploy

Request Body

{
  "versionId": "version_456"
}

Response

{
  "success": true,
  "data": {
    "deploymentId": "deploy_789",
    "versionId": "version_456",
    "status": "deployed",
    "deployedAt": "2025-11-15T13:05:00Z"
  }
}

Create Event Subscription

Subscribe a script to events so it executes automatically when events occur.

Endpoint

POST /api/sdk/v1/scripts/{scriptId}/subscriptions

Request Body

{
  "eventType": "telegram.message",
  "conditions": [
    {
      "field": "content.text",
      "operator": "contains",
      "value": "urgent"
    }
  ],
  "enabled": true
}

Response

{
  "success": true,
  "data": {
    "subscriptionId": "sub_123",
    "eventType": "telegram.message",
    "enabled": true,
    "createdAt": "2025-11-15T12:00:00Z"
  }
}

List Event Subscriptions

Get all event subscriptions for a script.

Endpoint

GET /api/sdk/v1/scripts/{scriptId}/subscriptions

Response

{
  "success": true,
  "data": {
    "subscriptions": [
      {
        "subscriptionId": "sub_123",
        "eventType": "telegram.message",
        "conditions": [...],
        "enabled": true,
        "createdAt": "2025-11-15T12:00:00Z"
      }
    ]
  }
}

Update Event Subscription

Update an event subscription's conditions or enabled status.

Endpoint

PATCH /api/sdk/v1/scripts/{scriptId}/subscriptions/{subscriptionId}

Request Body

{
  "enabled": false,
  "conditions": [
    {
      "field": "content.text",
      "operator": "contains",
      "value": "critical"
    }
  ]
}

Delete Event Subscription

Remove an event subscription to stop automatic execution.

Endpoint

DELETE /api/sdk/v1/scripts/{scriptId}/subscriptions/{subscriptionId}

Response

{
  "success": true,
  "message": "Subscription deleted successfully"
}

Get Execution History

Retrieve execution history with filtering and pagination.

Endpoint

GET /api/sdk/v1/scripts/{scriptId}/executions

Query Parameters

  • limit (number, optional) - Results per page (default: 10)
  • offset (number, optional) - Pagination offset (default: 0)
  • status (string, optional) - Filter by status: success, error, timeout
  • startDate (string, optional) - Filter by start date (ISO 8601)
  • endDate (string, optional) - Filter by end date (ISO 8601)

Response

{
  "success": true,
  "data": {
    "executions": [
      {
        "executionId": "exec_789",
        "status": "success",
        "duration": 234,
        "memoryUsed": 128,
        "cost": 0.001,
        "timestamp": "2025-11-15T12:30:00Z",
        "trigger": "manual"
      }
    ],
    "total": 150,
    "limit": 10,
    "offset": 0
  }
}

Get Script Metrics

View aggregated metrics for script performance and usage.

Endpoint

GET /api/sdk/v1/scripts/{scriptId}/metrics

Response

{
  "success": true,
  "data": {
    "totalExecutions": 1547,
    "successRate": 98.5,
    "averageDuration": 234,
    "totalCost": 1.547,
    "executionsToday": 45,
    "lastExecutedAt": "2025-11-15T14:00:00Z"
  }
}

Update Script

Update script configuration, code, or metadata.

Endpoint

PATCH /api/sdk/v1/scripts/{scriptId}

Request Body

{
  "description": "Updated description",
  "config": {
    "timeout": 60,
    "memory": 512
  },
  "tags": ["crypto", "prices", "alerts"]
}

Publish Script

Activate a script on your account and deploy it to Lambda. The endpoint keeps the name publish for wire compatibility; it does not create a public listing.

Endpoint

POST /api/sdk/v1/scripts/{scriptId}/publish

Request Body

None required.

Publishing Requirements

  • Script has a version with working code
  • Complete metadata (name, description)
  • Tested execution with no errors

If the script has not been deployed yet, publishing deploys it first and only marks it published when the deployment succeeds.


Unpublish Script

Deactivate a script. Flows that reference it will no longer be able to invoke it.

Endpoint

POST /api/sdk/v1/scripts/{scriptId}/unpublish

Response

{
  "success": true,
  "data": {
    "id": "script_abc123",
    "status": "draft"
  }
}

Delete Script

Permanently delete a script. Scripts with active installations or subscriptions cannot be deleted.

Endpoint

DELETE /api/sdk/v1/scripts/{scriptId}

Response

{
  "success": true,
  "message": "Script deleted successfully"
}

List User Scripts

Get all scripts created by the authenticated user.

Endpoint

GET /api/sdk/v1/scripts

Query Parameters

  • limit (number, optional) - Results per page (default: 10)
  • offset (number, optional) - Pagination offset (default: 0)
  • status (string, optional) - Filter by status: draft, deployed, published

Response

{
  "success": true,
  "data": {
    "scripts": [
      {
        "id": "script_123",
        "name": "Price Tracker",
        "runtime": "nodejs18",
        "status": "deployed",
        "createdAt": "2025-11-15T12:00:00Z",
        "lastExecutedAt": "2025-11-15T14:00:00Z"
      }
    ],
    "total": 5,
    "limit": 10,
    "offset": 0
  }
}

See Also