Code Examples

Common API calls in JavaScript, Python, and cURL to get you started quickly.

List Orders

cURL
curl "https://api.baalvion.com/v1/orders?status=pending" \
  -H "Authorization: Bearer YOUR_API_KEY"
JavaScript (fetch)
const response = await fetch('https://api.baalvion.com/v1/orders?status=pending', {
  headers: { Authorization: `Bearer ${process.env.BAALVION_API_KEY}` },
});

const { data } = await response.json();
console.log(data);
Python (requests)
import os
import requests

response = requests.get(
    "https://api.baalvion.com/v1/orders",
    params={"status": "pending"},
    headers={"Authorization": f"Bearer {os.environ['BAALVION_API_KEY']}"},
)

data = response.json()["data"]
print(data)

Create an Order

cURL
curl -X POST https://api.baalvion.com/v1/orders \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "listingId": "lst_1a4f22", "quantity": 500 }'
JavaScript (fetch)
const response = await fetch('https://api.baalvion.com/v1/orders', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.BAALVION_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ listingId: 'lst_1a4f22', quantity: 500 }),
});

const { data } = await response.json();
console.log(data);
Python (requests)
import os
import requests

response = requests.post(
    "https://api.baalvion.com/v1/orders",
    json={"listingId": "lst_1a4f22", "quantity": 500},
    headers={"Authorization": f"Bearer {os.environ['BAALVION_API_KEY']}"},
)

order = response.json()["data"]
print(order)

Handle a Webhook

Node.js (Express)
const crypto = require('crypto');

app.post('/webhooks/baalvion', express.raw({ type: 'application/json' }), (req, res) => {
  const signature = req.header('Baalvion-Signature');
  const expected = crypto
    .createHmac('sha256', process.env.BAALVION_WEBHOOK_SECRET)
    .update(req.body)
    .digest('hex');

  if (signature !== expected) {
    return res.status(401).send('Invalid signature');
  }

  const event = JSON.parse(req.body);
  // handle event.type, e.g. 'order.status_changed'
  res.sendStatus(200);
});
Python (Flask)
import hashlib
import hmac
import os

from flask import Flask, request

app = Flask(__name__)

@app.post("/webhooks/baalvion")
def handle_webhook():
    signature = request.headers.get("Baalvion-Signature", "")
    secret = os.environ["BAALVION_WEBHOOK_SECRET"].encode()
    expected = hmac.new(secret, request.data, hashlib.sha256).hexdigest()

    if not hmac.compare_digest(signature, expected):
        return "Invalid signature", 401

    event = request.get_json()
    # handle event["type"], e.g. "order.status_changed"
    return "", 200