# Countries

Available countries and locations for proxy products

## List all residential proxy countries

> Returns all available countries with their states and cities for residential proxies. Equivalent to GET /countries/residential.

```json
{"openapi":"3.0.0","info":{"title":"PlainProxies User API","version":"1.0.0"},"tags":[{"name":"Countries","description":"Available countries and locations for proxy products"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","description":"API Key authentication. Get your key from the Dashboard Settings page.","name":"X-API-KEY","in":"header"}},"responses":{"Unauthorized":{"description":"Authentication failed. Ensure your API key is valid and included in the X-API-KEY header.","headers":{"WWW-Authenticate":{"description":"Authentication scheme hint","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"properties":{"success":{"type":"boolean"},"error":{"properties":{"code":{"type":"string","enum":["API_KEY_MISSING","INVALID_API_KEY","USER_NOT_FOUND"]},"message":{"type":"string"}},"type":"object"}},"type":"object"}}}}}},"paths":{"/countries":{"get":{"tags":["Countries"],"summary":"List all residential proxy countries","description":"Returns all available countries with their states and cities for residential proxies. Equivalent to GET /countries/residential.","operationId":"bfd6e0e4d9e3bea6f141f8d3434597cf","responses":{"200":{"description":"List of countries with states and cities","content":{"application/json":{"schema":{"properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"properties":{"name":{"type":"string"},"cca2":{"type":"string"},"states":{"type":"array","items":{"properties":{"state":{"type":"string"},"state_name":{"type":"string"},"cities":{"type":"array","items":{"properties":{"original":{"type":"string"},"ascii":{"type":"string"}},"type":"object"}}},"type":"object"}}},"type":"object"}}},"type":"object"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"description":"Server error","content":{"application/json":{"schema":{"properties":{"success":{"type":"boolean"},"error":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"}},"type":"object"}}}}}}}}}
```

## Get countries for product type

> Returns available countries for a specific proxy product type. Each product type has different available locations.

```json
{"openapi":"3.0.0","info":{"title":"PlainProxies User API","version":"1.0.0"},"tags":[{"name":"Countries","description":"Available countries and locations for proxy products"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","description":"API Key authentication. Get your key from the Dashboard Settings page.","name":"X-API-KEY","in":"header"}},"responses":{"Unauthorized":{"description":"Authentication failed. Ensure your API key is valid and included in the X-API-KEY header.","headers":{"WWW-Authenticate":{"description":"Authentication scheme hint","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"properties":{"success":{"type":"boolean"},"error":{"properties":{"code":{"type":"string","enum":["API_KEY_MISSING","INVALID_API_KEY","USER_NOT_FOUND"]},"message":{"type":"string"}},"type":"object"}},"type":"object"}}}}}},"paths":{"/countries/{product}":{"get":{"tags":["Countries"],"summary":"Get countries for product type","description":"Returns available countries for a specific proxy product type. Each product type has different available locations.","operationId":"e4129888cdcb1b2f98b0a4fe3f83c0e0","parameters":[{"name":"product","in":"path","description":"Product type","required":true,"schema":{"type":"string","enum":["datacenter","ipv6","isp","residential"]}}],"responses":{"200":{"description":"List of countries for the product","content":{"application/json":{"schema":{"properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"properties":{"name":{"type":"string"},"cca2":{"type":"string"},"value":{"description":"Proxy endpoint for this country","type":"string"},"cities":{"description":"Available cities (only for some product types)","type":"array","items":{"properties":{"original":{"type":"string"},"ascii":{"type":"string"}},"type":"object"},"nullable":true}},"type":"object"}},"meta":{"properties":{"product":{"type":"string"}},"type":"object"}},"type":"object"}}}},"400":{"description":"Invalid product type","content":{"application/json":{"schema":{"properties":{"success":{"type":"boolean"},"error":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"}},"type":"object"}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}}}}
```


---

# 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://docs.plainproxies.com/api-documentation/proxy-management/countries.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.
