API Reference
v1.0.0
OpenAPI 3.1.0

Manage your Vital Data proxies programmatically.

Authentication

Every request requires an API key in the X-Vital-Api-Key header. Find or rotate your API key in Developer settings.

Data units

All data amounts use decimal bytes: 1 GB = 1,000,000,000 bytes.

Rate limits

Limits apply per API key every 10 seconds:

  • Reads: 60 requests
  • Profile changes: 20 requests
  • Proxy generation: 10 requests
Server:https://api.vital-data.io

Production

Client Libraries

Residential

List residential packages

Lists residential packages with balances, credentials, and profiles.

Responses
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for get/public/residential/packages
curl https://api.vital-data.io/public/residential/packages \
  --header 'X-Vital-Api-Key: YOUR_SECRET_TOKEN'
{
  "success": true,
  "data": [
    {
      "plan": "standard",
      "label": "string",
      "pricePerGbUsd": 0,
      "totalBytes": 1,
      "usedBytes": 1,
      "lastPurchase": {
        "at": "2026-09-06T21:21:56.543Z",
        "quantity": 1
      },
      "remainingBytes": 0,
      "subusers": [
        {
          "id": "string",
          "name": "string",
          "isMain": true,
          "allocatedBytes": 1,
          "usedBytes": 1,
          "createdAt": "2026-09-06T21:21:56.543Z",
          "username": "string",
          "password": "string",
          "remainingBytes": 0
        }
      ]
    }
  ]
}

Create a residential profile

Creates a residential profile with an optional data allocation from Main.

Body·
required
application/json
  • name
    Type: string
    min length:  
    1
    max length:  
    40
    required
  • plan
    Type: string enum
    required
    values
    • standard
    • advanced
    • exclusive
  • allocatedBytes
    Type: integer
    min:  
    0
    max:  
    1000000000000000

    Bytes. 1 GB = 1,000,000,000 bytes.

Responses
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/public/residential/profiles
curl https://api.vital-data.io/public/residential/profiles \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'X-Vital-Api-Key: YOUR_SECRET_TOKEN' \
  --data '{
  "plan": "standard",
  "name": "Scrapers",
  "allocatedBytes": 5000000000
}'
{
  "success": true,
  "data": {
    "id": "string",
    "name": "string",
    "isMain": true,
    "allocatedBytes": 1,
    "usedBytes": 1,
    "createdAt": "2026-09-06T21:21:56.543Z",
    "username": "string",
    "password": "string",
    "remainingBytes": 0
  }
}

Rename a residential profile

Renames a residential profile. Main cannot be renamed.

Path Parameters
  • id
    Type: string
    max length:  
    128
    Pattern: ^[1-9]\d*$
    required
Body·
required
application/json
  • name
    Type: string
    min length:  
    1
    max length:  
    40
    required
Responses
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for patch/public/residential/profiles/{id}
curl 'https://api.vital-data.io/public/residential/profiles/{id}' \
  --request PATCH \
  --header 'Content-Type: application/json' \
  --header 'X-Vital-Api-Key: YOUR_SECRET_TOKEN' \
  --data '{
  "name": "Search jobs"
}'
{
  "success": true,
  "data": {
    "id": "string",
    "name": "string",
    "isMain": true,
    "allocatedBytes": 1,
    "usedBytes": 1,
    "createdAt": "2026-09-06T21:21:56.543Z",
    "username": "string",
    "password": "string",
    "remainingBytes": 0
  }
}

Delete a residential profile

Deletes a residential profile and returns its unused data to Main. Main cannot be deleted.

Path Parameters
  • id
    Type: string
    max length:  
    128
    Pattern: ^[1-9]\d*$
    required
Responses
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for delete/public/residential/profiles/{id}
curl 'https://api.vital-data.io/public/residential/profiles/{id}' \
  --request DELETE \
  --header 'X-Vital-Api-Key: YOUR_SECRET_TOKEN'
{
  "success": true,
  "data": {
    "returnedToPoolBytes": 1
  }
}

Transfer data into a residential profile

Transfers unused data between profiles on the same residential plan.

Path Parameters
  • id
    Type: string
    max length:  
    128
    Pattern: ^[1-9]\d*$
    required
Body·
required
application/json
  • amountBytes
    Type: integer
    greater than:  
    0
    max:  
    1000000000000000
    required

    Bytes. 1 GB = 1,000,000,000 bytes.

  • fromProfileId
    Type: string
    max length:  
    128
    Pattern: ^[1-9]\d*$
    required
Responses
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/public/residential/profiles/{id}/transfer
curl 'https://api.vital-data.io/public/residential/profiles/{id}/transfer' \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'X-Vital-Api-Key: YOUR_SECRET_TOKEN' \
  --data '{
  "fromProfileId": "1",
  "amountBytes": 2000000000
}'
{
  "success": true,
  "data": {
    "id": "string",
    "name": "string",
    "isMain": true,
    "allocatedBytes": 1,
    "usedBytes": 1,
    "createdAt": "2026-09-06T21:21:56.543Z",
    "username": "string",
    "password": "string",
    "remainingBytes": 0
  }
}

Rotate residential profile credentials

Replaces a residential profile's username and password. Allowed on Main (unlike rename and delete).

Path Parameters
  • id
    Type: string
    max length:  
    128
    Pattern: ^[1-9]\d*$
    required
Responses
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/public/residential/profiles/{id}/credentials/rotate
curl 'https://api.vital-data.io/public/residential/profiles/{id}/credentials/rotate' \
  --request POST \
  --header 'X-Vital-Api-Key: YOUR_SECRET_TOKEN'
{
  "success": true,
  "data": {
    "id": "string",
    "name": "string",
    "isMain": true,
    "allocatedBytes": 1,
    "usedBytes": 1,
    "createdAt": "2026-09-06T21:21:56.543Z",
    "username": "string",
    "password": "string",
    "remainingBytes": 0
  }
}

Generate residential proxies

Generates up to 10,000 residential proxy connection strings with targeting and session options.

Body·
required
application/json
  • profileId
    Type: string
    max length:  
    128
    Pattern: ^[1-9]\d*$
    required
  • count
    Type: integer
    min:  
    1
    max:  
    10000

    Integer numbers.

  • countries
    Type: array string[] …236
  • duration
    Type: integer
    greater than:  
    0

    Integer numbers.

  • durationUnit
    Type: string enum
    values
    • min
    • hour
    • day
  • gateway
    Type: string enum
    values
    • auto
    • eu
    • us
  • outputFormat
    Type: string enum
    values
    • ip_port_user_pass
    • user_pass_ip_port
    • user_pass_at_ip_port
    • scheme_ip_port_user_pass
    • scheme_user_pass_ip_port
    • scheme_user_pass_at_ip_port
  • protocol
    Type: string enum
    values
    • http
    • socks5
  • sessionType
    Type: string enum
    values
    • rotating
    • sticky
  • state
    Type: string
Responses
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/public/residential/generate
curl https://api.vital-data.io/public/residential/generate \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'X-Vital-Api-Key: YOUR_SECRET_TOKEN' \
  --data '{
  "profileId": "42",
  "protocol": "http",
  "gateway": "auto",
  "countries": [
    "US",
    "DE"
  ],
  "state": "CA",
  "sessionType": "sticky",
  "duration": 60,
  "durationUnit": "min",
  "outputFormat": "scheme_user_pass_at_ip_port",
  "count": 10
}'
{
  "success": true,
  "data": {
    "product": "residential",
    "profileId": "string",
    "outputFormat": "ip_port_user_pass",
    "count": 1,
    "proxies": [
      {
        "protocol": "http",
        "host": "string",
        "port": 1,
        "username": "string",
        "password": "string",
        "formatted": "string"
      }
    ]
  }
}

ISP (Collapsed)

Schemas