Mirra
Mirra APIScripts

Script Endpoints

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

On this page