Skip to main content

API Reference

ChainLaunch provides a comprehensive REST API for programmatic access to all platform features. This reference documents the main API endpoints and their usage.

Base URL​

http://localhost:8100/api/v1

Authentication​

All API requests must include authentication. Supported methods:

Cookie-based sessions are the primary authentication method. Obtain a session by logging in:

curl -X POST http://localhost:8100/api/v1/auth/login \
-H "Content-Type: application/json" \
-c cookies.txt \
-d '{"username": "admin", "password": "yourpassword"}'

Then use the cookie in subsequent requests:

curl -b cookies.txt \
http://localhost:8100/api/v1/nodes

Basic Auth​

curl -u username:password \
http://localhost:8100/api/v1/nodes

API Keys (ChainLaunch Pro)​

API keys use Bearer token authentication with the clpro_ prefix:

curl -H "Authorization: Bearer clpro_your_api_key_here" \
http://localhost:8100/api/v1/nodes

Authentication​

Login​

POST /auth/login
curl -X POST http://localhost:8100/api/v1/auth/login \
-H "Content-Type: application/json" \
-c cookies.txt \
-d '{"username": "admin", "password": "yourpassword"}'

Logout​

POST /auth/logout

Get Current User​

GET /auth/me

Change Password​

POST /auth/change-password

Users​

List Users​

GET /users
curl -u admin:password http://localhost:8100/api/v1/users

Create User​

POST /users

Get User​

GET /users/{id}

Update User​

PUT /users/{id}

Delete User​

DELETE /users/{id}

Update User Password​

PUT /users/{id}/password

Update User Role​

PUT /users/{id}/role

Nodes​

Create Node​

POST /nodes
curl -X POST http://localhost:8100/api/v1/nodes \
-u admin:password \
-H "Content-Type: application/json" \
-d '{
"name": "peer-0",
"platform": "FABRIC",
"nodeType": "FABRIC_PEER"
}'

List Nodes​

GET /nodes
curl -u admin:password http://localhost:8100/api/v1/nodes

List Nodes by Platform​

GET /nodes/platform/{platform}

Filter nodes by platform (FABRIC or BESU):

curl -u admin:password http://localhost:8100/api/v1/nodes/platform/FABRIC

Get Node Defaults​

Retrieve default configuration for each node type:

GET /nodes/defaults/fabric-peer
GET /nodes/defaults/fabric-orderer
GET /nodes/defaults/besu-node

Get Node​

GET /nodes/{id}

Update Node​

PUT /nodes/{id}

Delete Node​

DELETE /nodes/{id}

Start Node​

POST /nodes/{id}/start
curl -X POST http://localhost:8100/api/v1/nodes/1/start \
-u admin:password

Stop Node​

POST /nodes/{id}/stop

Restart Node​

POST /nodes/{id}/restart

Get Node Logs (WebSocket)​

GET /nodes/{id}/logs

This endpoint upgrades to a WebSocket connection for real-time log streaming.

Get Node Events​

GET /nodes/{id}/events

Renew Node Certificates​

POST /nodes/{id}/certificates/renew

Fabric Networks​

List Fabric Networks​

GET /networks/fabric
curl -u admin:password http://localhost:8100/api/v1/networks/fabric

Create Fabric Network​

POST /networks/fabric
curl -X POST http://localhost:8100/api/v1/networks/fabric \
-u admin:password \
-H "Content-Type: application/json" \
-d '{
"name": "my-fabric-network",
"channelName": "mychannel"
}'

Get Fabric Network​

GET /networks/fabric/{id}

Delete Fabric Network​

DELETE /networks/fabric/{id}

Get Fabric Network by Name​

GET /networks/fabric/by-name/{name}

Import Fabric Network​

POST /networks/fabric/import

List Fabric Network Nodes​

GET /networks/fabric/{id}/nodes

Add Node to Fabric Network​

POST /networks/fabric/{id}/nodes

Join Peer to Channel​

POST /networks/fabric/{id}/peers/{peerId}/join

Join Orderer to Channel​

POST /networks/fabric/{id}/orderers/{ordererId}/join

Set Anchor Peers​

POST /networks/fabric/{id}/anchor-peers

Get Channel Configuration​

GET /networks/fabric/{id}/channel-config

List Blocks​

GET /networks/fabric/{id}/blocks

Get Block by Number​

GET /networks/fabric/{id}/blocks/{blockNum}

Get Network Info​

GET /networks/fabric/{id}/info

Get Transaction​

GET /networks/fabric/{id}/transactions/{txId}

Get Network Map​

GET /networks/fabric/{id}/map

Besu Networks​

List Besu Networks​

GET /networks/besu
curl -u admin:password http://localhost:8100/api/v1/networks/besu

Create Besu Network​

POST /networks/besu

Get Besu Network​

GET /networks/besu/{id}

Delete Besu Network​

DELETE /networks/besu/{id}

Import Besu Network​

POST /networks/besu/import

List Besu Network Nodes​

GET /networks/besu/{id}/nodes

Get Besu Network Map​

GET /networks/besu/{id}/map

Organizations​

Create Organization​

POST /organizations
curl -X POST http://localhost:8100/api/v1/organizations \
-u admin:password \
-H "Content-Type: application/json" \
-d '{
"name": "org1",
"mspId": "Org1MSP"
}'

List Organizations​

GET /organizations

Get Organization​

GET /organizations/{id}

Update Organization​

PUT /organizations/{id}

Delete Organization​

DELETE /organizations/{id}

Get Organization by MSP ID​

GET /organizations/by-mspid/{mspid}

Create Organization Key​

POST /organizations/{id}/keys

List Organization Keys​

GET /organizations/{id}/keys

Get Organization CRL​

GET /organizations/{id}/crl

Keys​

List All Keys​

GET /keys/all

Create Key​

POST /keys
curl -X POST http://localhost:8100/api/v1/keys \
-u admin:password \
-H "Content-Type: application/json" \
-d '{
"name": "signing-key",
"algorithm": "ECDSA",
"curve": "P-256",
"keyProviderId": 1
}'

List Keys​

GET /keys

Get Key​

GET /keys/{id}

Delete Key​

DELETE /keys/{id}

Sign​

POST /keys/{keyID}/sign

Sign Data​

POST /keys/{keyID}/sign-data

Key Providers​

Create Key Provider​

POST /key-providers

List Key Providers​

GET /key-providers

Get Key Provider​

GET /key-providers/{id}

Delete Key Provider​

DELETE /key-providers/{id}

Backups​

Backup Targets​

POST /backups/targets         # Create target
GET /backups/targets # List targets
GET /backups/targets/{id} # Get target
PUT /backups/targets/{id} # Update target
DELETE /backups/targets/{id} # Delete target

Backup Schedules​

POST /backups/schedules                  # Create schedule
GET /backups/schedules # List schedules
GET /backups/schedules/{id} # Get schedule
PUT /backups/schedules/{id}/enable # Enable schedule
PUT /backups/schedules/{id}/disable # Disable schedule
DELETE /backups/schedules/{id} # Delete schedule

Backups​

GET /backups          # List backups
POST /backups # Create backup
GET /backups/{id} # Get backup
DELETE /backups/{id} # Delete backup
curl -X POST http://localhost:8100/api/v1/backups \
-u admin:password \
-H "Content-Type: application/json" \
-d '{
"targetId": 1,
"nodeId": 1
}'

Smart Contracts (Fabric)​

Deploy Chaincode​

POST /sc/fabric/deploy

Install Chaincode on Peer​

POST /sc/fabric/peer/{peerId}/chaincode/install

Approve Chaincode​

POST /sc/fabric/peer/{peerId}/chaincode/approve

Commit Chaincode​

POST /sc/fabric/peer/{peerId}/chaincode/commit

List Chaincodes​

GET /sc/fabric/chaincodes

Create Chaincode​

POST /sc/fabric/chaincodes

Invoke Chaincode​

POST /sc/fabric/chaincodes/{chaincodeId}/invoke

Query Chaincode​

POST /sc/fabric/chaincodes/{chaincodeId}/query

Smart Contracts (Besu)​

Deploy Smart Contract​

POST /sc/besu/deploy

Metrics​

Get Metric Defaults​

GET /metrics/defaults

Deploy Metrics Stack​

POST /metrics/deploy

Undeploy Metrics Stack​

POST /metrics/undeploy

Start Metrics​

POST /metrics/start

Stop Metrics​

POST /metrics/stop

Get Node Metrics​

GET /metrics/node/{id}

Get Metrics Status​

GET /metrics/status

Plugins​

List Plugins​

GET /plugins

List Available Plugins​

GET /plugins/available

Install Plugin​

POST /plugins

Get Plugin​

GET /plugins/{name}

Update Plugin​

PUT /plugins/{name}

Delete Plugin​

DELETE /plugins/{name}

Deploy Plugin​

POST /plugins/{name}/deploy

Stop Plugin​

POST /plugins/{name}/stop

Resume Plugin​

POST /plugins/{name}/resume

Notifications​

Create Notification Provider​

POST /notifications/providers

List Notification Providers​

GET /notifications/providers

Get Notification Provider​

GET /notifications/providers/{id}

Update Notification Provider​

PUT /notifications/providers/{id}

Delete Notification Provider​

DELETE /notifications/providers/{id}

Test Notification Provider​

POST /notifications/providers/{id}/test

Audit Logs​

List Audit Logs​

GET /audit/logs
curl -u admin:password http://localhost:8100/api/v1/audit/logs

Get Audit Log​

GET /audit/logs/{id}

Settings​

Create Settings​

POST /settings

Get Settings​

GET /settings

Update Settings​

PUT /settings

Error Codes​

HTTP StatusDescription
400Bad request / validation failed
401Authentication required or failed
403Permission denied
404Resource not found
409Resource conflict (e.g., duplicate name)
500Internal server error

Pagination​

List endpoints support pagination via query parameters:

  • limit (int) - Items per page
  • offset (int) - Number of items to skip

OpenAPI / Swagger​

The complete OpenAPI specification and interactive Swagger UI are available at:

GET http://localhost:8100/api/swagger/doc.json    # Raw OpenAPI spec
GET http://localhost:8100/api/swagger/ # Swagger UI

See Also​