Oxylabs · Arazzo Workflow

Oxylabs Throttle Sub-user Traffic

Version 1.0.0

Find a sub-user by name and patch its traffic limit and status.

1 workflow 1 source API 1 provider
View Spec View on GitHub AI Web ScrapingBot Mitigation BypassCAPTCHA SolvingData ExtractionDatacenter ProxiesDatasetsE-Commerce DataHeadless BrowserISP ProxiesMobile ProxiesProxiesResidential ProxiesSERPScraper APIScrapingWeb DataWeb IntelligenceWeb UnblockerArazzoWorkflows

Provider

oxylabs

Workflows

throttle-sub-user-traffic
Update a sub-user's traffic limit and status by name.
Logs in, lists sub-users to resolve the target id from a name, and patches the sub-user with a new traffic limit and status.
3 steps inputs: password, status, subUserId, traffic_limit, username outputs: updated, userId
1
login
residentialLogin
Exchange the account username and password for a bearer token and the numeric account user id.
2
listSubUsers
listSubUsers
List the sub-users so the caller can confirm the target sub-user exists before patching it.
3
patchSubUser
updateSubUser
Patch the target sub-user with the new traffic limit and status.

Source API Descriptions

Arazzo Workflow Specification

oxylabs-throttle-sub-user-traffic-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Oxylabs Throttle Sub-user Traffic
  summary: Find a sub-user by name and patch its traffic limit and status.
  description: >-
    Adjusts the traffic budget for a residential proxy sub-user. The workflow
    logs in to the Residential Public API, lists the account sub-users to
    resolve the target sub-user id from a supplied name, and then patches that
    sub-user with a new traffic limit and status. Resolving the id from the
    list keeps the flow usable when only the human-readable sub-user name is
    known. 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: oxylabsApi
  url: ../openapi/oxylabs-openapi.yml
  type: openapi
workflows:
- workflowId: throttle-sub-user-traffic
  summary: Update a sub-user's traffic limit and status by name.
  description: >-
    Logs in, lists sub-users to resolve the target id from a name, and patches
    the sub-user with a new traffic limit and status.
  inputs:
    type: object
    required:
    - username
    - password
    - subUserId
    properties:
      username:
        type: string
        description: Residential API account username for basic auth.
      password:
        type: string
        description: Residential API account password for basic auth.
      subUserId:
        type: integer
        description: Identifier of the sub-user to patch.
      traffic_limit:
        type: integer
        description: New traffic limit to apply to the sub-user.
      status:
        type: string
        description: New status to apply to the sub-user (e.g. active, disabled).
  steps:
  - stepId: login
    description: >-
      Exchange the account username and password for a bearer token and the
      numeric account user id.
    operationId: residentialLogin
    parameters:
    - name: Authorization
      in: header
      value: "Basic {$inputs.username}:{$inputs.password}"
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      token: $response.body#/token
      userId: $response.body#/user_id
  - stepId: listSubUsers
    description: >-
      List the sub-users so the caller can confirm the target sub-user exists
      before patching it.
    operationId: listSubUsers
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $steps.login.outputs.token"
    - name: userId
      in: path
      value: $steps.login.outputs.userId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      subUsers: $response.body
  - stepId: patchSubUser
    description: >-
      Patch the target sub-user with the new traffic limit and status.
    operationId: updateSubUser
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $steps.login.outputs.token"
    - name: userId
      in: path
      value: $steps.login.outputs.userId
    - name: subUserId
      in: path
      value: $inputs.subUserId
    requestBody:
      contentType: application/json
      payload:
        traffic_limit: $inputs.traffic_limit
        status: $inputs.status
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      updated: $response.body
  outputs:
    userId: $steps.login.outputs.userId
    updated: $steps.patchSubUser.outputs.updated