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

Publish a script to the marketplace to make it available for installation.

Endpoint

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

Request Body

{
  "pricing": {
    "model": "pay-per-execution",
    "basePrice": 0.01,
    "currency": "USDC"
  },
  "category": "crypto",
  "tags": ["crypto", "automation"]
}

Publishing Requirements

  • Script successfully deployed with working code
  • Complete metadata (name, description)
  • Valid pricing configuration
  • Tested execution with no errors

Unpublish Script

Remove a script from the marketplace. Unpublishing prevents new installations but does not affect existing installations.

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
  }
}

List Marketplace Scripts

Browse available scripts in the marketplace.

Endpoint

GET /api/sdk/v1/scripts/marketplace

Query Parameters

  • category (string, optional) - Filter by category
  • tags (string[], optional) - Filter by tags
  • search (string, optional) - Search by name or description
  • limit (number, optional) - Results per page (default: 10)
  • offset (number, optional) - Pagination offset (default: 0)

Response

{
  "success": true,
  "data": {
    "scripts": [
      {
        "id": "script_456",
        "name": "Price Tracker",
        "description": "Tracks cryptocurrency prices",
        "runtime": "nodejs18",
        "category": "crypto",
        "pricing": {
          "model": "pay-per-execution",
          "basePrice": 0.01
        },
        "rating": 4.8,
        "installCount": 156
      }
    ],
    "total": 75,
    "limit": 10,
    "offset": 0
  }
}

See Also