Forum · Arazzo Workflow

Forum — discover a market and place an order

Version 1.0.0

Check exchange status, list available attention-index markets, inspect one market, place a limit order (idempotent via clientOrderId), confirm the order, then read the resulting account and position. Public steps need no auth; order/account steps require a `trade`/`read` API key (HMAC-SHA256).

1 workflow 1 source API 1 provider
View Spec View on GitHub CompanyTradingExchangePerpetual FuturesMarket DataAttention EconomyFintechWebSocketReal TimeArazzoWorkflows

Provider

forum

Workflows

discoverAndPlaceOrder
Discover a market and place a limit order, then confirm position.
7 steps inputs: clientOrderId, price, qty, ticker outputs: orderId
1
exchangeStatus
getExchangeStatus
2
listMarkets
listMarkets
3
getMarket
getMarket
4
placeOrder
createOrder
5
confirmOrder
getOrderByClientId
6
readPositions
listPositions
7
readAccount
getAccount

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Forum — discover a market and place an order
  version: 1.0.0
  description: >-
    Check exchange status, list available attention-index markets, inspect one
    market, place a limit order (idempotent via clientOrderId), confirm the
    order, then read the resulting account and position. Public steps need no
    auth; order/account steps require a `trade`/`read` API key (HMAC-SHA256).
sourceDescriptions:
- name: forumApi
  url: ../openapi/forum-openapi-original.yml
  type: openapi
workflows:
- workflowId: discoverAndPlaceOrder
  summary: Discover a market and place a limit order, then confirm position.
  inputs:
    type: object
    properties:
      ticker:
        type: string
      qty:
        type: number
      price:
        type: number
      clientOrderId:
        type: string
  steps:
  - stepId: exchangeStatus
    operationId: getExchangeStatus
    successCriteria:
    - condition: $statusCode == 200
  - stepId: listMarkets
    operationId: listMarkets
    successCriteria:
    - condition: $statusCode == 200
  - stepId: getMarket
    operationId: getMarket
    parameters:
    - name: ticker
      in: path
      value: $inputs.ticker
    successCriteria:
    - condition: $statusCode == 200
  - stepId: placeOrder
    operationId: createOrder
    requestBody:
      contentType: application/json
      payload:
        ticker: $inputs.ticker
        side: buy
        qty: $inputs.qty
        price: $inputs.price
        orderType: limit
        timeInForce: goodTillCancel
        clientOrderId: $inputs.clientOrderId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      orderId: $response.body#/orderId
  - stepId: confirmOrder
    operationId: getOrderByClientId
    parameters:
    - name: clientOrderId
      in: path
      value: $inputs.clientOrderId
    successCriteria:
    - condition: $statusCode == 200
  - stepId: readPositions
    operationId: listPositions
    successCriteria:
    - condition: $statusCode == 200
  - stepId: readAccount
    operationId: getAccount
    successCriteria:
    - condition: $statusCode == 200
  outputs:
    orderId: $steps.placeOrder.outputs.orderId