Bright Data · Arazzo Workflow

Bright Data Provision a Zone and Allocate IPs

Version 1.0.0

Create a zone, confirm it, and allocate dedicated IPs to it.

1 workflow 1 source API 1 provider
View Spec View on GitHub Web DataWeb ScrapingProxyResidential ProxyDatacenter ProxyISP ProxyMobile ProxySERPWeb UnlockerScraping BrowserDataset MarketplaceMCPAI AgentsArazzoWorkflows

Provider

bright-data

Workflows

provision-zone-and-ips
Create a zone, verify it, and allocate IPs to it.
Provisions a new zone of the requested type, confirms it by reading it back, and allocates a batch of dedicated IPs to the zone.
3 steps inputs: apiToken, country, ips, planType, zone outputs: allocation, zoneName, zoneType
1
createZone
addZone
Create a new zone of the requested plan type and country.
2
confirmZone
getZone
Read the zone back to confirm it was created before allocating IPs.
3
allocateIps
addZoneIps
Allocate a batch of dedicated IPs to the confirmed zone.

Source API Descriptions

Arazzo Workflow Specification

bright-data-provision-zone-ips-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Bright Data Provision a Zone and Allocate IPs
  summary: Create a zone, confirm it, and allocate dedicated IPs to it.
  description: >-
    A zone provisioning pattern in the Account Management API. The workflow
    creates a new zone, reads it back to confirm it exists, and then allocates a
    batch of dedicated IPs to the zone. Every step spells out its request inline
    so the flow can be read and executed without opening the underlying OpenAPI
    description.
  version: 1.0.0
sourceDescriptions:
- name: accountManagementApi
  url: ../openapi/bright-data-account-management-api-openapi.yml
  type: openapi
workflows:
- workflowId: provision-zone-and-ips
  summary: Create a zone, verify it, and allocate IPs to it.
  description: >-
    Provisions a new zone of the requested type, confirms it by reading it back,
    and allocates a batch of dedicated IPs to the zone.
  inputs:
    type: object
    required:
    - apiToken
    - zone
    - planType
    - ips
    properties:
      apiToken:
        type: string
        description: Bright Data API token used as a Bearer credential.
      zone:
        type: string
        description: Name for the new zone.
      planType:
        type: string
        description: Zone plan type (residential, isp, datacenter, mobile, unblocker, serp, scraping_browser).
      country:
        type: string
        description: Country for the zone and IP allocation (ISO 3166-1 alpha-2).
      ips:
        type: integer
        description: Number of dedicated IPs to allocate to the zone.
  steps:
  - stepId: createZone
    description: >-
      Create a new zone of the requested plan type and country.
    operationId: addZone
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.apiToken"
    requestBody:
      contentType: application/json
      payload:
        zone: $inputs.zone
        plan:
          type: $inputs.planType
          country: $inputs.country
          ips: $inputs.ips
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      zoneName: $response.body#/zone
  - stepId: confirmZone
    description: >-
      Read the zone back to confirm it was created before allocating IPs.
    operationId: getZone
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.apiToken"
    - name: zone
      in: query
      value: $steps.createZone.outputs.zoneName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      zoneType: $response.body#/type
  - stepId: allocateIps
    description: >-
      Allocate a batch of dedicated IPs to the confirmed zone.
    operationId: addZoneIps
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.apiToken"
    requestBody:
      contentType: application/json
      payload:
        zone: $steps.createZone.outputs.zoneName
        ips: $inputs.ips
        country: $inputs.country
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      allocation: $response.body
  outputs:
    zoneName: $steps.createZone.outputs.zoneName
    zoneType: $steps.confirmZone.outputs.zoneType
    allocation: $steps.allocateIps.outputs.allocation