NAV Navigation menu
shell

Introduction

Welcome to the WonderProxy API! You can use this API to manage your WonderProxy account:

Each of the sections below describes a piece of what the API can do. In general, technical details live on the left, and copy/paste-able code samples live on the right.

Authentication

Sample request

curl -i "https://api.wonderproxy.com/v0" \
    -u "YOUR_TOKEN:"

WonderProxy automatically creates an API token for you when you sign up. You can view the token in your account.

The WonderProxy API uses HTTP Basic Authentication. Use the API token as your Basic Authentication username, and leave the password empty. You must include your authentication information for each API call.

WonderProxy Servers

A server record

{
  "hostname": "melbourne.wonderproxy.com",
  "title": "Melbourne",
  "ip_count": 3,
  "services": [ "proxy" ],
  "location": {
    "city": "Melbourne",
    "country": "au",
    "latitude": -37.7833,
    "longitude": 144.9667
  }
}

The API allows you to obtain a list of every proxy/VPN server in WonderProxy's network, even if you have not added them to your account.

WonderProxy server records

Name Type Description
hostname string Fully-qualified domain name for the server.
title string Server title (usually the closest metro area).
ip_count integer The number of exit IP addresses available.
services array A list of the WonderProxy services available, including proxy and vpn.
location object Geographical location details, if requested (see below).

Server location

Name Type Description
city string The city that houses the server.
country string ISO-3166-1 alpha-2 country code for the server location.
latitude float Latitude coordinate for the server location.
longitude float Longitude coordinate for the server location.

List all the WonderProxy servers

Sample request

curl -i "https://api.wonderproxy.com/v0/servers?detail=location" \
    -u "YOUR_TOKEN:"

Sample response

HTTP/1.1 200 OK
Date: Tue, 24 Mar 2015 21:44:11 GMT
Server: Apache/2.2.22 (Debian)
X-Frame-Options: SAMEORIGIN
Transfer-Encoding: chunked
Content-Type: application/json; charset=UTF-8

[
  {
    "hostname": "melbourne.wonderproxy.com",
    "title": "Melbourne",
    "ip_count": 3,
    "services": [ "proxy" ],
    "location": {
      "city": "Melbourne",
      "country": "au",
      "latitude": -37.7833,
      "longitude": 144.9667
    }
  },
  {
    "hostname": "denver.wonderproxy.com",
    "title": "Denver",
    "ip_count": 21,
    "services": [ "proxy", "vpn" ],
    "location": {
      "city": "Denver",
      "country": "us",
      "latitude": 39.7392,
      "longitude": -104.9842
    }
  }
]

Get a list of all the proxy/VPN servers in the WonderProxy network.

HTTP request

GET https://api.wonderproxy.com/v0/servers

Query parameters

Parameter Values Description
detail location Include additional information in the response.

Contract Details

Sample request

curl -i "https://api.wonderproxy.com/v0/contract" \
    -u "YOUR_TOKEN:"

Sample response

HTTP/1.1 200 OK
Date: Tue, 24 Mar 2015 21:49:57 GMT
Server: Apache/2.2.22 (Debian)
X-Frame-Options: SAMEORIGIN
Content-Length: 151
Content-Type: application/json; charset=UTF-8

{
  "name": "Acme Corporation",
  "plan": "corporate",
  "period": {
    "start": 1424375021,
    "end": 1424385021,
    "usage": 512000000,
    "limit": 100000000000
  },
  "expiry": 1424385021
}

View a high-level of your account, including network-wide usage.

HTTP request

GET https://api.wonderproxy.com/v0/contract

Contract Servers

A contract server record

{
  "server": "joaopessoa",
  "hostname": "joaopessoa.wonderproxy.com",
  "title": "Joao Pessoa",
  "services": [ "proxy", "vpn" ],
  "usage": {
    "limit": 512000000000,
    "current": 53340000,
    "last_30_days": 210670000
  },
  "location": {
    "city": "patos",
    "country": "br",
    "latitude": -7.0833,
    "longitude": -34.8333
  },
  "ips": [
    {
      "ip": "103.4.37.149",
      "port_base": 0,
      "status": "ok",
      "status_time": 1423604170,
      "geostatus": {
        "google": {
          "status": "crit",
          "status_time": 1423604170
        }
      }
    },
    {
      "ip": "103.4.47.149",
      "port_base": 1,
      "status": "warn",
      "status_time": 1423604170,
      "geostatus": {
        "maxmind": {
          "status": "ok",
          "status_time": 1423604170
        },
        "google": {
          "status": "ok",
          "status_time": 1423604170
        }
      }
    }
  ]
}

The API allows you to list details for every proxy/VPN server in that has been added to your account.

Contract server records

Name Type Description
server string Short server name. server can be used to retrieve an individual server record.
hostname string Fully-qualified domain name for the server.
title string Server title (usually the closest metro area).
services array A list of the WonderProxy services available, including proxy and vpn.
usage object Your network bandwidth usage, if requested (see below).
location object Geographical location details, if requested (see below).
ips array A list of the exit IP addresses available from the server (see below).

Usage details

Name Type Description
limit integer If you receive detailed server billing, your bandwith limit for this server. Otherwise, the network limit for your account.
current integer The server bandwidth you have logged for the current billing period, in bytes.
last_30_days integer The server bandwidth you have logged for the last 30 days, in bytes.

Server location

Name Type Description
city string The city that houses the server.
country string ISO-3166-1 alpha-2 country code for the server location.
latitude float Latitude coordinate for the server location.
longitude float Longitude coordinate for the server location.

Server IP details

Name Type Description
ip string Exit IP address
port_base integer Value to be added to your port scheme to access this IP address. For example, if port_base is 4, you could use ports 10004, 11004, 12004, etc. See our port documentation for more details.
status string Current server availability. One of ok, warn, crit, or unknown.
status_time integer The timestamp in epoch time of the last server status check.
geostatus object If requested, a collection of third-party Geo-IP providers. geostatus contains a property for each provider (e.g. google or yahoo). Each provider property includes the current status of their location results and the last time the location was checked.

List all contract servers

Sample requests

curl -i "https://api.wonderproxy.com/v0/contract/servers" \
    -u "YOUR_TOKEN:"

curl -i "https://api.wonderproxy.com/v0/contract/servers?server=denver,london&detail=usage" \
    -u "YOUR_TOKEN:"

curl -i "https://api.wonderproxy.com/v0/contract/servers?detail=location,usage,geostatus" \
    -u "YOUR_TOKEN:"

Sample response

HTTP/1.1 200 OK
Date: Tue, 24 Mar 2015 21:51:18 GMT
Server: Apache/2.2.22 (Debian)
X-Frame-Options: SAMEORIGIN
Transfer-Encoding: chunked
Content-Type: application/json; charset=UTF-8

[
  {
    "server": "joaopessoa",
    "hostname": "joaopessoa.wonderproxy.com",
    "title": "Joao Pessoa",
    "services": [ "proxy", "vpn" ],
    "usage": {
      "limit": 512000000000,
      "current": 53340000,
      "last_30_days": 210670000
    },
    "location": {
      "city": "patos",
      "country": "br",
      "latitude": -7.0833,
      "longitude": -34.8333
    },
    "ips": [
      {
        "ip": "103.4.37.149",
        "port_base": 0,
        "status": "ok",
        "status_time": 1423604170,
        "geostatus": {
          "google": {
            "status": "crit",
            "status_time": 1423604170
          }
        }
      },
      {
        "ip": "103.4.47.149",
        "port_base": 1,
        "status": "warn",
        "status_time": 1423604170,
        "geostatus": {
          "maxmind": {
            "status": "ok",
            "status_time": 1423604170
          },
          "google": {
            "status": "ok",
            "status_time": 1423604170
          }
        }
      }
    ]
  },
  {
    "server": "melbourne",
    "hostname": "melbourne.wonderproxy.com",
    "title": "Melbourne",
    "services": [ "proxy" ],
    "usage": {
      "limit": 512000000000,
      "current": 53340000,
      "last_30_days": 210670000
    },
    "location": {
      "city": "melbourne",
      "country": "au",
      "latitude": -37.7833,
      "longitude": 144.9667
    },
    "ips": [
      {
        "ip": "103.4.37.149",
        "port_base": 1,
        "status": "ok",
        "status_time": 1423604170,
        "geostatus": {
          "google": {
            "status": "crit",
            "status_time": 1423604170
          }
        }
      }
    ]
  }
]

List all the proxy/VPN servers added to your account. Each server listed includes its name, hostname and all available IP addresses.

HTTP request

GET https://api.wonderproxy.com/v0/contract/servers

Query parameters

Parameter Values Description
detail location, geostatus, usage Include geographical location information, geo-IP accuracy information and/or contract usage details.
server Any valid server name Only include the servers requested.

Retrieve one contract server

Sample requests

curl -i "https://api.wonderproxy.com/v0/contract/servers/melbourne" \
    -u "YOUR_TOKEN:"

curl -i "https://api.wonderproxy.com/v0/contract/servers/melbourne?detail=location,usage" \
    -u "YOUR_TOKEN:"

Sample response

HTTP/1.1 200 OK
Date: Tue, 24 Mar 2015 21:53:13 GMT
Server: Apache/2.2.22 (Debian)
X-Frame-Options: SAMEORIGIN
Content-Length: 851
Content-Type: application/json; charset=UTF-8

{
  "server": "melbourne",
  "hostname": "melbourne.wonderproxy.com",
  "title": "Melbourne",
  "services": [ "proxy" ],
  "usage": {
    "limit": 512000000000,
    "current": 53340000,
    "last_30_days": 210670000
  },
  "location": {
    "city": "melbourne",
    "country": "au",
    "latitude": -37.7833,
    "longitude": 144.9667
  },
  "ips": [
    {
      "ip": "103.4.37.149",
      "port_base": 1,
      "status": "ok",
      "status_time": 1423604170
    }
  ]
}

Get details for one server that has already been added to your account.

HTTP request

GET https://api.wonderproxy.com/v0/contract/servers/{server-name}

URI parameters

Parameter Description
server-name Any valid server name

Query parameters

Parameter Values Description
detail location, geostatus, usage Include geographical location information, geo-IP accuracy information and/or contract usage details.

IP Authentication

An IP address on the IP authlist

{
  "id": 1,
  "ip": "123.52.25.12",
  "user": "joe",
  "user_active": true,
  "expiry": 1423699016
}

IP Authentication is useful for automated systems, or systems where the IP address accessing WonderProxy's servers changes regularly. With IP Authentication, you don't need to authenticate to the network with a username and password, since your IP address is already authenticated.

IP authentication records

Name Type Description
id integer Unique identifier. You can use id to manage individual IP address records.
ip string IP address.
user string The username that connections from ip will be assigned to. The user must have Proxy User privileges to access the proxy network.
user_active boolean Whether the associated user is an active proxy user.
expiry integer Timestamp that this record will expire, in epoch (Unix) time.

List all IPs on the authlist

Sample requests

curl -i "https://api.wonderproxy.com/v0/contract/ip-authlist" \
    -u "YOUR_TOKEN:"

curl -i "https://api.wonderproxy.com/v0/contract/ip-authlist?ip=45.180" \
    -u "YOUR_TOKEN:"

curl -i "https://api.wonderproxy.com/v0/contract/ip-authlist?user=jill,joe" \
    -u "YOUR_TOKEN:"

Sample response

HTTP/1.1 200 OK
Date: Tue, 24 Mar 2015 22:13:16 GMT
Server: Apache/2.2.22 (Debian)
X-Frame-Options: SAMEORIGIN
Content-Length: 220
Content-Type: application/json; charset=UTF-8

[
  {
    "id": 1,
    "ip": "123.52.25.12",
    "user": "joe",
    "user_active": true,
    "expiry": 1423699016
  },
  {
    "id": 2,
    "ip": "123.52.25.14",
    "user": "jill",
    "user_active": false,
    "expiry": 1423699616
  }
]

Sample response when the authlist is empty

HTTP/1.1 200 OK
Date: Tue, 24 Mar 2015 22:13:16 GMT
Server: Apache/2.2.22 (Debian)
X-Frame-Options: SAMEORIGIN
Content-Length: 220
Content-Type: application/json; charset=UTF-8

[]

Get all the IP addresses on your authlist, with their associated users.

HTTP request

GET https://api.wonderproxy.com/v0/contract/ip-authlist

Query parameters

Parameter Values Description
ip Full or partial IP address Only include IPs that match the request.
user Usernames from your account Only include IPs for the requested user(s).

Remove all IPs from the authlist

Sample request

curl -i  "https://api.wonderproxy.com/v0/contract/ip-authlist" \
    -u "YOUR_TOKEN:" \
    -X "DELETE"

Sample response

HTTP/1.1 204 No Content
Date: Tue, 24 Mar 2015 22:16:13 GMT
Server: Apache/2.2.22 (Debian)
X-Frame-Options: SAMEORIGIN
Vary: Accept-Encoding
Content-Length: 0
Content-Type: text/html; charset=UTF-8

Remove all the IP addresses on the authlist associated with your account.

HTTP request

DELETE https://api.wonderproxy.com/v0/contract/ip-authlist

Add one IP to the authlist

Sample request

curl -i "https://api.wonderproxy.com/v0/contract/ip-authlist" \
    -u "YOUR_TOKEN:" \
    -H "Content-Type: application/json" \
    -d \
    '{
        "ip": "31.14.15.92",
        "user": "jack",
        "expiry": 1521928827
    }'

Sample response

HTTP/1.1 201 Created
Date: Tue, 24 Mar 2015 22:17:40 GMT
Server: Apache/2.2.22 (Debian)
X-Frame-Options: SAMEORIGIN
Location: /contract/ip-authlist/2675
Content-Length: 75
Content-Type: application/json; charset=UTF-8

{
  "id": 2675,
  "ip": "31.14.15.92",
  "user": "jack",
  "user_active": true,
  "expiry": 1423699016
}

Sample response when the IP address is already on the authlist

HTTP/1.1 409 Conflict
Date: Thu, 26 Mar 2015 17:26:21 GMT
Server: Apache/2.2.22 (Debian)
X-Frame-Options: SAMEORIGIN
Content-Length: 57
Content-Type: application/json; charset=UTF-8

{
    "message": "That IP address is already on the authlist"
}

Add a new IP address to the authlist for a user on your account. The API responds with the new authlist record, and a Location header pointing to the new resource.

In some cases the API may not be able to add the new record:

Instead, the API will return an error.

HTTP request

POST https://api.wonderproxy.com/v0/contract/ip-authlist

HTTP parameters

Parameter Required Type Description
ip No string The IP address to add to the authlist. If you don't specify an IP address, the API will use the IP address you're making the request from.
user Yes string The username that requests from ip will be assigned to.
expiry Yes integer The timestamp in epoch time that the authlist entry will expire.

Retrieve one IP from the authlist

Sample request

curl -i "https://api.wonderproxy.com/v0/contract/ip-authlist/2675" \
    -u "YOUR_TOKEN:"

Sample response

HTTP/1.1 200 OK
Date: Tue, 24 Mar 2015 22:19:32 GMT
Server: Apache/2.2.22 (Debian)
X-Frame-Options: SAMEORIGIN
Content-Length: 75
Content-Type: application/json; charset=UTF-8

{
  "id": 2675,
  "ip": "31.14.15.92",
  "user": "jack",
  "user_active": true,
  "expiry": 1423699016
}

Get the details for one authlist entry.

HTTP request

GET https://api.wonderproxy.com/v0/contract/ip-authlist/{id}

URI parameters

Parameter Type Description
id integer The ID of an IP authlist entry applied to your account (from the /contract/ip-authlist list).

Modify one IP on the authlist

Sample request

curl -i "https://api.wonderproxy.com/v0/contract/ip-authlist/2675" \
    -u "YOUR_TOKEN:" \
    -H "Content-Type: application/json" \
    -X "PATCH" \
    -d \
    '{
        "ip": "31.14.15.93",
        "expiry": 1521938827
    }'

Sample response

HTTP/1.1 200 OK
Date: Tue, 24 Mar 2015 22:20:20 GMT
Server: Apache/2.2.22 (Debian)
X-Frame-Options: SAMEORIGIN
Content-Length: 75
Content-Type: application/json; charset=UTF-8

{
  "id": 2675,
  "ip": "31.14.15.93",
  "user": "jack",
  "user_active": true,
  "expiry": 1521938827
}

Change the details of one IP address on the authlist. The API responds with the complete modified record.

In some cases the API may not be able to modify the record:

Instead, the API will return an error.

HTTP request

PATCH https://api.wonderproxy.com/v0/contract/ip-authlist/{id}

URI parameters

Parameter Type Description
id integer The ID of an IP authlist entry applied to your account (from the /contract/ip-authlist list).

HTTP parameters

Parameter Required Type Description
ip Yes string The IP address to add to the authlist.
user Yes string The username that requests from ip will be assigned to.
expiry Yes integer The timestamp in epoch time that the IP authlist entry will expire.

Remove one IP from the authlist

Sample request

curl -i "https://api.wonderproxy.com/v0/contract/ip-authlist/2675" \
    -u "YOUR_TOKEN:" \
    -X "DELETE"

Sample response

HTTP/1.1 204 No Content
Date: Tue, 24 Mar 2015 22:24:04 GMT
Server: Apache/2.2.22 (Debian)
X-Frame-Options: SAMEORIGIN
Vary: Accept-Encoding
Content-Length: 0
Content-Type: text/html; charset=UTF-8

Remove a single IP address from the authlist.

HTTP request

DELETE https://api.wonderproxy.com/v0/contract/ip-authlist/{id}

URI parameters

Parameter Type Description
id integer The ID of an IP authlist entry applied to your account (from the /contract/ip-authlist list).

Custom DNS

One custom DNS entry

{
  "id": 1,
  "server": "denver",
  "hostname": "www.google.com",
  "ip": "123.41.250.19",
  "expiry": 1423699016,
  "status": "active"
}

With Custom DNS, you can instruct a WonderProxy server to resolve a given hostname to a specific IP. This allows users to test specific servers within a cluster, bypass CDNs, or otherwise instruct WonderProxy to hit the given IP.

You connect to servers using Custom DNS by adding 500 to the port number. If you had been accessing our server on port 10000, then accessing the server on port 10500 will trigger your custom DNS entries.

Custom DNS records

Name Type Description
id integer Unique identifier. You can use id to manage individual custom DNS entries.
server string The proxy server where this DNS entry will be active.
hostname string The hostname that will be overridden.
ip string IP address that hostname will point to.
expiry integer Timestamp that this DNS entry will expire, in epoch (Unix) time.
status One of pending, active, expiring or expired Current status of the DNS entry. We'll keep expiring and expired DNS entries in our system for 30 days.

List all custom DNS entries

Sample requests

curl -i "https://api.wonderproxy.com/v0/contract/overrides" \
    -u "YOUR_TOKEN:"

curl -i "https://api.wonderproxy.com/v0/contract/overrides?ip=45.18.27.31" \
    -u "YOUR_TOKEN:"

curl -i "https://api.wonderproxy.com/v0/contract/overrides?server=denver,riyadh" \
    -u "YOUR_TOKEN:"

Sample response

HTTP/1.1 200 OK
Date: Tue, 24 Mar 2015 21:56:01 GMT
Server: Apache/2.2.22 (Debian)
X-Frame-Options: SAMEORIGIN
Transfer-Encoding: chunked
Content-Type: application/json; charset=UTF-8

[
  {
    "id": 1,
    "server": "denver",
    "hostname": "www.google.com",
    "ip": "123.41.250.19",
    "expiry": 1423699016,
    "status": "active"
  },
  {
    "id": 2,
    "server": "riyadh",
    "hostname": "www.google.com",
    "ip": "123.41.250.29",
    "expiry": 1423699316,
    "status": "expiring"
  }
]

List all the custom DNS entries applied to your account, including expired/expiring entries.

HTTP request

GET https://api.wonderproxy.com/v0/contract/overrides

Query parameters

Parameter Values Description
ip An IP address Only include DNS entries for the IP address requested.
server Any valid server name Only include DNS entries for the servers requested.

Remove all custom DNS entries

Sample request

curl -i "https://api.wonderproxy.com/v0/contract/overrides" \
    -u "YOUR_TOKEN:" \
    -X "DELETE"

Sample response

HTTP/1.1 204 No Content
Date: Tue, 24 Mar 2015 21:58:52 GMT
Server: Apache/2.2.22 (Debian)
X-Frame-Options: SAMEORIGIN
Vary: Accept-Encoding
Content-Length: 0
Content-Type: text/html; charset=UTF-8

Remove all the custom DNS entries associated with your account.

HTTP request

DELETE https://api.wonderproxy.com/v0/contract/overrides

Add one custom DNS entry

Sample request

curl -i "https://api.wonderproxy.com/v0/contract/overrides" \
    -u "YOUR_TOKEN:" \
    -H "Content-Type: application/json" \
    -d \
    '{
        "server": "denver",
        "hostname": "google.com",
        "ip": "31.14.15.92",
        "expiry": 1521928827
    }'

Sample response

HTTP/1.1 201 Created
Date: Tue, 24 Mar 2015 22:02:37 GMT
Server: Apache/2.2.22 (Debian)
X-Frame-Options: SAMEORIGIN
Location: /contract/overrides/5523
Content-Length: 111
Content-Type: application/json; charset=UTF-8

{
  "id": 5523,
  "server": "denver",
  "hostname": "google.com",
  "ip": "31.14.15.92",
  "expiry": 1521928827,
  "status": "pending"
}

Sample response when the hostname is already overridden

HTTP/1.1 409 Conflict
Date: Thu, 26 Mar 2015 17:47:15 GMT
Server: Apache/2.2.22 (Debian)
X-Frame-Options: SAMEORIGIN
X-Server: Webdev
X-Powered-By: PHP/5.4.36-0+deb7u3
Content-Length: 61
Content-Type: application/json; charset=UTF-8

{
    "message": "That server/hostname combination already exists"
}

Add one new custom DNS entry to your account. The API responds with the new entry, and adds a Location header pointing to the new resource.

In some cases the API may not be able to add the new entry:

Instead, the API will return an error.

HTTP request

POST https://api.wonderproxy.com/v0/contract/overrides

HTTP parameters

Parameter Required Type Description
server Yes string The proxy server where this DNS entry will be active.
hostname Yes string The hostname to be overridden.
ip Yes string The IP address that hostname will point to.
expiry Yes integer The timestamp in epoch time that the DNS entry will expire.

Retrieve one custom DNS entry

Sample request

curl -i "https://api.wonderproxy.com/v0/contract/overrides/5523" \
    -u "YOUR_TOKEN:"

Sample response

HTTP/1.1 200 OK
Date: Tue, 24 Mar 2015 22:03:58 GMT
Server: Apache/2.2.22 (Debian)
X-Frame-Options: SAMEORIGIN
Content-Length: 111
Content-Type: application/json; charset=UTF-8

{
  "id": 5523,
  "server": "denver",
  "hostname": "google.com",
  "ip": "31.14.15.92",
  "expiry": 1521928827,
  "status": "active"
}

Get the details for one custom DNS entry.

HTTP request

GET https://api.wonderproxy.com/v0/contract/overrides/{id}

URI parameters

Parameter Type Description
id integer The ID of a custom DNS entry applied to your account (from the /contract/overrides list).

Modify one custom DNS entry

Sample request

curl -i "https://api.wonderproxy.com/v0/contract/overrides/5523" \
    -u "YOUR_TOKEN:" \
    -H "Content-Type: application/json" \
    -X "PATCH" \
    -d \
    '{
        "ip": "31.14.15.93",
        "expiry": 1521938827
    }'

Sample response

HTTP/1.1 200 OK
Date: Tue, 24 Mar 2015 22:06:45 GMT
Server: Apache/2.2.22 (Debian)
X-Frame-Options: SAMEORIGIN
Content-Length: 111
Content-Type: application/json; charset=UTF-8

{
  "id": 2,
  "server": "denver",
  "hostname": "google.com",
  "ip": "31.14.15.93",
  "expiry": 1521938827,
  "status": "pending"
}

Sample response when the server is not part of your contract

HTTP/1.1 409 Conflict
Date: Thu, 26 Mar 2015 17:50:39 GMT
Server: Apache/2.2.22 (Debian)
X-Frame-Options: SAMEORIGIN
Content-Length: 123
Content-Type: application/json; charset=UTF-8

{
    "message": "No changes were made. If you were expecting changes, make sure the server requested is added to your account."
}

Change the details of one custom DNS entry. The API responds with the complete modified entry.

In some cases the API may not be able to modify the entry:

Instead, the API will return an error.

HTTP request

PATCH https://api.wonderproxy.com/v0/contract/overrides/{id}

URI parameters

Parameter Type Description
id integer The ID of a custom DNS entry applied to your account (from the /contract/overrides list).

HTTP parameters

Parameter Required Type Description
server Yes string The proxy server where this DNS entry will be active.
hostname Yes string The hostname to be overridden.
ip Yes string The IP address that hostname will point to.
expiry Yes integer The timestamp in epoch time that the DNS entry will expire.

Remove one custom DNS entry

Sample request

curl -i "https://api.wonderproxy.com/v0/contract/overrides/5523" \
    -u "YOUR_TOKEN:" \
    -X "DELETE"

Sample response

HTTP/1.1 204 No Content
Date: Tue, 24 Mar 2015 22:08:21 GMT
Server: Apache/2.2.22 (Debian)
X-Frame-Options: SAMEORIGIN
Vary: Accept-Encoding
Content-Length: 0
Content-Type: text/html; charset=UTF-8

Remove a single custom DNS entry.

HTTP request

DELETE https://api.wonderproxy.com/v0/contract/overrides/{id}

URI parameters

Parameter Type Description
id integer The ID of a custom DNS entry applied to your account (from the /contract/overrides list).

Errors

Sample request

curl -i "https://api.wonderproxy.com/v0" \
    -u "this is a not a token:"

Sample error message

HTTP/1.1 401 Unauthorized
Date: Wed, 25 Mar 2015 15:21:54 GMT
Server: Apache/2.2.22 (Debian)
X-Frame-Options: SAMEORIGIN
Content-Length: 95
Content-Type: application/json; charset=UTF-8

{
    "message": "You are not authenticated. Visit https://wonderproxy.com to get your API token."
}

When the API encounters an error, it will send an HTTP status code in the 4xx or 5xx range, along with an error message. In general, a 4xx status code indicates a problem with your request, and a 5xx status code indicates a problem with the API.

Code Name Description
400 Bad Request The API didn't understand your request.
401 Unauthorized Your API token was not recognized.
403 Forbidden Your API token is valid, but it does not have access to the resource you requested.
404 Not Found The resource does not exist.
405 Method Not Allowed The HTTP method you used (i.e. GET, POST, etc.) is not valid for the resource you requested.
409 Conflict The update you requested conflicted with existing records (e.g. the hostname in your custom DNS entry is already overridden on the proxy server you requested, or the IP authentication user is not part of your account).
500 Internal Server Error There was a problem on the API side (and the problem has been logged).
503 Service Unavailable The API is down for maintenance.

Changelog

July 2023

September 2020

June 2020