Skip to main content
POST
/
api
/
v1
/
beam
Create Beam Config Handler
curl --request POST \
  --url https://api.allium.so/api/v1/beam \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: <api-key>' \
  --data '
{
  "name": "<string>",
  "description": "<string>",
  "pipeline_config": {
    "source": {
      "type": "pubsub",
      "is_zerolag": false
    },
    "transforms": [
      {
        "script": "<string>",
        "uid": "<string>",
        "type": "v8"
      }
    ],
    "sinks": [
      {
        "name": "<string>",
        "uid": "<string>",
        "type": "kafka"
      }
    ]
  },
  "tags": [
    "<string>"
  ],
  "static_egress_ip": false
}
'
{
  "id": "<string>",
  "name": "<string>",
  "description": "<string>",
  "owner_org_team_user_id": "<string>",
  "pipeline_config": {
    "source": {
      "type": "pubsub",
      "is_zerolag": false
    },
    "transforms": [
      {
        "script": "<string>",
        "uid": "<string>",
        "type": "v8"
      }
    ],
    "sinks": [
      {
        "name": "<string>",
        "uid": "<string>",
        "type": "kafka"
      }
    ]
  },
  "organization_id": "<string>",
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z",
  "tags": [
    "<string>"
  ],
  "static_egress_ip": false,
  "pod_size": "S"
}
Creates a new pipeline configuration. The response includes auto-generated fields (id, owner_org_team_user_id, created_at, updated_at). The caller is automatically granted owner, and their team is granted viewer_team (read access for teammates).
Required permission: any authenticated user (creator becomes the owner).
Request body: CreateBeamConfigRequest
curl -X POST https://api.allium.so/api/v1/beam \
  -H "X-API-Key: ${ALLIUM_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "USDC Transfer Monitor",
    "description": "Monitors USDC ERC20 transfers on Base",
    "tags": ["production", "base"],
    "pipeline_config": {
      "source": {
        "type": "pubsub",
        "chain": "base",
        "entity": "erc20_token_transfer",
        "is_zerolag": false
      },
      "transforms": [
        {
          "type": "redis_set_filter",
          "filter_expr": "root = this.token_address"
        }
      ],
      "sinks": [
        {
          "type": "kafka",
          "name": "usdc-transfers"
        }
      ]
    }
  }'
Response: BeamConfig
Filter values are managed separately from the pipeline config. After creating a pipeline, use the filter values endpoints to populate set filter transforms.
See the Configuration reference for full details on sources, transforms, and sink types.

Authorizations

X-API-KEY
string
header
required

Body

application/json
name
string
required
description
string
required
pipeline_config
BeamPipelineConfig · object
required
tags
string[] | null
static_egress_ip
boolean
default:false

Response

Successful Response

id
string
required
name
string
required
description
string
required
owner_org_team_user_id
string
required
pipeline_config
BeamPipelineConfig · object
required
organization_id
string | null
created_at
string<date-time>
updated_at
string<date-time>
tags
string[] | null
static_egress_ip
boolean
default:false
pod_size
enum<string>
default:S
Available options:
S,
M,
L,
XL