A node is one step of a flow. Each has its own request_body, shaped exactly like a POST /webhook/unblocker body.

Node shape

{
  "label": "Product Detail",
  "position": 2,
  "request_body": {
    "url": "https://shop.example.com/product/1",
    "formats": [
      {
        "type": "unblocker",
        "selectors": [
          { "property_name": "name", "selector": "h1", "attribute_type": "TEXT" },
          { "property_name": "price", "selector": ".price", "attribute_type": "TEXT" }
        ],
        "options": { "wait_until": "domcontentloaded" }
      }
    ]
  }
}
  • label — the display name of the node.
  • position — execution order.
  • request_body — the whole scrape request: selectors, mode, actions, options.

POST /flows/:id/nodes

Adds a single node.

curl -X POST https://api.jetscrape.com/flows/flow_abc123/nodes \
  -H "Content-Type: application/json" \
  -H "x-api-key: js_YOUR_API_KEY" \
  -d '{
    "label": "New Step",
    "request_body": {
      "url": "https://example.com/page2",
      "formats": [{ "type": "unblocker", "selectors": [] }]
    }
  }'

PUT /flows/:id/nodes

Replaces all nodes with the list you send. Use it to rebuild the order or rewrite the pipeline in one call.

curl -X PUT https://api.jetscrape.com/flows/flow_abc123/nodes \
  -H "Content-Type: application/json" \
  -H "x-api-key: js_YOUR_API_KEY" \
  -d '{
    "nodes": [
      {
        "label": "Step 1",
        "request_body": {
          "url": "https://example.com",
          "formats": [{ "type": "unblocker", "selectors": [] }]
        }
      }
    ]
  }'

Nodes missing from the list are deleted. To change one field, use PATCH instead.

PATCH /flows/:id/nodes/:nodeId

curl -X PATCH https://api.jetscrape.com/flows/flow_abc123/nodes/node_xyz \
  -H "Content-Type: application/json" \
  -H "x-api-key: js_YOUR_API_KEY" \
  -d '{
    "label": "Updated Label",
    "position": 2
  }'

DELETE /flows/:id/nodes/:nodeId

curl -X DELETE https://api.jetscrape.com/flows/flow_abc123/nodes/node_xyz \
  -H "x-api-key: js_YOUR_API_KEY"

Keep nodes small — one page type per node — and verify each with POST /flows/:id/nodes/:nodeId/run before running the whole flow. Numbering positions in steps of ten (10, 20, 30) leaves room to insert nodes later.

Last updated: September 22, 2026