# Rotating Residential Proxies

### Making API Requests

{% hint style="info" %}
The **api\_token** can be found in our panel by going to your profile.
{% endhint %}

### Method PUT

To simulate PUT, set the Content-Type header to application/x-www-form-urlencoded and add a field named \_method with the value PUT.

**Example:**

```
$.ajax({
    url: "/api/v1/backconnect/{membership}/authorized-ips?api_token=xxxx",
    data: "_method=PUT&ips[]=1.1.1.1&ips[]=1.1.1.2",
    dataType: "json",
    type : "POST",
    success : function(r) {
        console.log(r);
    }
});
```

### HTT Form Payload

**Content-Type:** x-www-form-urlencoded

**Method:** GET/PUT/POST

**Content:** \_method=PUT\&geo\[]=us\&geo\[]=uk\&geo\[]=ca

**JSON Payload (must be PUT):**

```
{
    "key" : [
        "value1",
        "value2"
    ]
}
Example:
{
    "geo" : [
        "us",
        "uk"
    ]
}
```

### GET Authorized IPs

<mark style="color:blue;">`GET`</mark> `https://shifter.io/api/v1/backconnect/{membership}/authorized-ips/`

#### Path Parameters

| Name                                         | Type   | Description                                 |
| -------------------------------------------- | ------ | ------------------------------------------- |
| membership<mark style="color:red;">\*</mark> | String | The ID can be found on the membership page. |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    "error": null,
    "code": 200,
    "data": [
      "1.1.1.1",
      "1.1.1.2"
    ]
}
```

{% endtab %}

{% tab title="401: Unauthorized This error means that you have a missing or invalid api\_token, please check the making api requests section." %}

```javascript
{
    "error": "Unauthorized",
    "code": 401
}
```

{% endtab %}

{% tab title="404: Not Found " %}

```javascript
{
    "error": "Membership not found",
    "code": 404
}
```

{% endtab %}

{% tab title="503: Service Unavailable " %}

```javascript
{
    "error": "Membership status is: [Status]",
    "code": 503
}
```

{% endtab %}
{% endtabs %}

### PUT Authorized IPs

<details>

<summary>Payload Content</summary>

```
{
    "ips": [
        "1.1.1.1",
        "1.1.1.2"
    ]
}
```

</details>

<mark style="color:orange;">`PUT`</mark> `https://shifter.io/api/v1/backconnect/{membership}/authorized-ips/`

#### Path Parameters

| Name                                         | Type   | Description                                 |
| -------------------------------------------- | ------ | ------------------------------------------- |
| membership<mark style="color:red;">\*</mark> | String | The ID can be found on the membership page. |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    "error": null,
    "code": 200,
    "data": [
      "1.1.1.1",
      "1.1.1.2"
    ]
}
```

{% endtab %}

{% tab title="401: Unauthorized This error means that you have a missing or invalid api\_token, please check the making api requests section." %}

```javascript
{
    "error": "Unauthorized",
    "code": 401
}
```

{% endtab %}

{% tab title="404: Not Found " %}

```javascript
{
    "error": "Membership not found",
    "code": 404
}
```

{% endtab %}

{% tab title="503: Service Unavailable " %}

```javascript
{
    "error": "Membership status is: [Status]",
    "code": 503
}
```

{% endtab %}
{% endtabs %}

### GET GEO

<mark style="color:blue;">`GET`</mark> `https://shifter.io/api/v1/backconnect/{membership}/geo/`

#### Path Parameters

| Name                                         | Type   | Description                                 |
| -------------------------------------------- | ------ | ------------------------------------------- |
| membership<mark style="color:red;">\*</mark> | String | The ID can be found on the membership page. |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    "error": null,
    "code": 200,
    "advanced_geo": null,
    "data": [
        "us",
        "au",
        "de"
    ]
}
```

{% endtab %}

{% tab title="200: OK " %}

```javascript
{
    "error": null,
    "code": 200,
    "advanced_geo": [
        "6451:6454:ru",
        "6455:6455:us,ca"
    ],
    "data": [
        "us",
        "au",
        "de"
    ]
}
```

{% endtab %}

{% tab title="401: Unauthorized This error means that you have a missing or invalid api\_token, please check the making api requests section." %}

```javascript
{
    "error": "Unauthorized",
    "code": 401
}
```

{% endtab %}

{% tab title="403: Forbidden " %}

```javascript
{
    "error": "Membership is not GEO",
    "code": 403
}
```

{% endtab %}

{% tab title="503: Service Unavailable " %}

```javascript
{
    "error": "Membership status is: [Status]",
    "code": 503
}
```

{% endtab %}

{% tab title="404: Not Found " %}

```javascript
{
    "error": "Membership not found",
    "code": 404
}
```

{% endtab %}
{% endtabs %}

### PUT GEO

<details>

<summary>Payload Content</summary>

```
{
    "geo": [ "us", "gb" ],
    "advanced_geo": [
        "6451:6454:ru",
        "6455:6455:us,ca"
    ]
}
```

</details>

<mark style="color:orange;">`PUT`</mark> `https://shifter.io/api/v1/backconnect/{membership}/geo/`

#### Path Parameters

| Name                                         | Type   | Description                                 |
| -------------------------------------------- | ------ | ------------------------------------------- |
| membership<mark style="color:red;">\*</mark> | String | The ID can be found on the membership page. |
| geo<mark style="color:red;">\*</mark>        | Array  |                                             |
| advanced\_geo                                | Array  |                                             |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    "error": null
    "code": 200
    "data": [
        "us",
        "uk",
        "ca"
    ]
}
```

{% endtab %}

{% tab title="401: Unauthorized This error means that you have a missing or invalid api\_token, please check the making api requests section." %}

```javascript
{
    "error": "Unauthorized",
    "code": 401
}
```

{% endtab %}

{% tab title="404: Not Found " %}

```javascript
{
    "error": "Membership not found",
    "code": 404
}
```

{% endtab %}

{% tab title="400: Bad Request " %}

```javascript
{
    "error": "GEO is required",
    "code": 400
}
```

{% endtab %}

{% tab title="403: Forbidden " %}

```javascript
{
    "error": "Membership is not GEO",
    "code": 403
}
```

{% endtab %}

{% tab title="503: Service Unavailable " %}

```javascript
{
    "error": "Membership status is: [Status]",
    "code": 503
}
```

{% endtab %}

{% tab title="400: Bad Request " %}

```javascript
{
    "error": "GEO must be array",
    "code": 400
}
```

{% endtab %}
{% endtabs %}

### GET Proxies

<mark style="color:blue;">`GET`</mark> `https://shifter.io/api/v1/backconnect/{membership}/proxies/`

#### Path Parameters

| Name                                         | Type   | Description                                 |
| -------------------------------------------- | ------ | ------------------------------------------- |
| membership<mark style="color:red;">\*</mark> | String | The ID can be found on the membership page. |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    "error": null,
    "code": 200,
    "data": [
        "8.8.8.8:1",
        "8.8.8.8:2",
        "8.8.8.8:3",
        "8.8.8.8:4",
        "8.8.8.8:5"
    ]
}
```

{% endtab %}

{% tab title="401: Unauthorized This error means that you have a missing or invalid api\_token, please check the making api requests section." %}

```javascript
{
    "error": "Unauthorized",
    "code": 401
}
```

{% endtab %}

{% tab title="404: Not Found " %}

```javascript
{
    "error": "Membership not found",
    "code": 404
}
```

{% endtab %}

{% tab title="503: Service Unavailable " %}

```javascript
{
    "error": "Membership status is: [Status]",
    "code": 503
}
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.shifter.io/proxies/rotating-residential-proxies.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
