Configure any available plan and add-ons. Pay only for 48 hours.
Try proxiesEverything you do in the Dashboard is available two other ways:
https://papaproxy.net/account_new/api/v1/mcp
Add the header Authorization: Bearer <api_key>, and your agent gets 50 tools for working with your account. The full configuration is in the MCP section.
Read https://papaproxy.net/developers.md. Using the public endpoints described there (no API key needed), show which countries have datacenter proxies in stock right now and quote 100 US IPs for 1 month. Then tell me what you could do with my PapaProxy.net account once I connect the MCP server with an API key.
Works with any agent that can open web pages and send HTTP requests, such as Cursor or Claude Code.
The two interfaces reach the same account operations. The difference is where the logic lives: in code you wrote and tested, or in an agent that interprets a request and chooses the calls itself. Many teams use both — the API for production pipelines, MCP for ad hoc work and troubleshooting.
You can start before you even create a key: the country list with live stock and price quotes are open to everyone.
Returns every country with an ISO code and the number of IPs currently available. Set product_kind to proxy_datacenter or proxy_isp. Quotes and orders also accept proxy_personal for dedicated proxies.
curl -s "https://papaproxy.net/account_new/api/v1/billing/countries?product_kind=proxy_datacenter"
A quote is free and non-binding. The response includes the price per segment, the volume discount, and the monthly total in cents. Set period_months to 3, 6, or 12 to see the term discount.
curl -s -X POST https://papaproxy.net/account_new/api/v1/billing/composite/quote \
-H "Content-Type: application/json" \
-d '{
"product_kind": "proxy_datacenter",
"period_months": 1,
"segments": [
{"country": "US", "count": 300},
{"country": "DE", "count": 200}
]
}'In the Dashboard, open Settings → API keys, name the key, and select only the scopes it needs. The full key is displayed once, right after creation — store it in a secrets manager or an environment variable.
export PAPA_API_KEY="fb_..." curl -s https://papaproxy.net/account_new/api/v1/customer/services \ -H "Authorization: Bearer $PAPA_API_KEY"
Every path below starts with the base URL. Request and response schemas, error codes, and a “try it” console are in the API reference in your Dashboard.
| Area | Main endpoints | Scope |
|---|---|---|
| Catalog and pricing | GET /billing/countries, POST /billing/composite/quote, GET /customer/catalog | catalog:read |
| Orders and renewals | POST /billing/composite/order, POST /customer/services/{id}/renew, POST /customer/services/{id}/cancel, POST /billing/services/{id}/add-ips | services:write, wallet:spend |
| Add-ons | GET /billing/services/{id}/addons/available, purchase and disable add-ons such as UDP | services:write, wallet:spend |
| Proxy access | GET /customer/services/{id}/proxy/ips, proxy/auth, proxy/whitelist, proxy/config for rotating plans | services:read, services:write |
| IP refresh | POST /customer/services/{id}/proxy/refresh, GET …/proxy/refresh-status | services:write |
| Sticky sessions | List, rotate, and delete sessions; set the session mode and TTL for rotating plans | services:read, services:write |
| Usage | GET /customer/services/{id}/usage | usage:read |
| Balance and invoices | GET /customer/wallet/balance, /ledger, POST /customer/wallet/deposit/init, invoice PDFs | wallet:read, wallet:deposit |
| Support tickets | GET and POST /customer/tickets, POST /customer/tickets/{id}/reply | tickets:read, tickets:write |
| Profile and keys | GET and PATCH /customer/me, /customers/me/api-keys | customer:read, customer:write |
| Webhooks | /customer/webhooks: endpoints, event types, deliveries, test events, redelivery | webhooks |
The order request takes the same segments as the quote, plus the IPs to whitelist and an idempotency key. If a network error makes you retry, the same order returns the existing service instead of charging you twice.
curl -s -X POST https://papaproxy.net/account_new/api/v1/billing/composite/order \
-H "Authorization: Bearer $PAPA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"product_kind": "proxy_datacenter",
"period_months": 1,
"segments": [
{"country": "US", "count": 300},
{"country": "DE", "count": 200}
],
"whitelist_ips": ["203.0.113.10"],
"use_balance": true,
"idempotency_key": "eu-us-500-2026-10"
}'whitelist_ips is required for proxy orders — without it, the request is rejected with HTTP 422 before any charge. use_balance: true pays from your account balance; without it, payment goes through a payment processor checkout.The Model Context Protocol lets an agent discover and call tools on a remote server. Connect the PapaProxy.net server once, and your agent gets 50 tools to work with your account the way you would: check stock, compare prices, buy, configure, and report back in the chat.
Paste the configuration into your client’s MCP settings — in Cursor, that’s .cursor/mcp.json in your project or ~/.cursor/mcp.json for all projects. The server name is up to you.
{
"mcpServers": {
"papaproxy": {
"url": "https://papaproxy.net/account_new/api/v1/mcp",
"headers": {
"Authorization": "Bearer fb_YOUR_API_KEY"
}
}
}
}Claude Code adds the same server from the command line:
claude mcp add --transport http papaproxy \ https://papaproxy.net/account_new/api/v1/mcp \ --header "Authorization: Bearer fb_YOUR_API_KEY"
Any other MCP client that supports remote servers with custom headers works with the same URL and header.
list_countries1. Check stockISO country codes and the number of IPs available right now, so the agent doesn’t plan an order that can’t be filled.quote_composite2. Price the mixThe exact price for the country mix and term. Quotes are free and don’t reserve or charge anything.order_composite3. Buy from the balancePayment comes from your account balance, with a price guard and an idempotency key, so a retry doesn’t create a duplicate order.A request succeeds only if the key holds the scope that endpoint requires. Scopes apply the same way to REST calls and MCP tools, so a key without wallet:spend can’t pay for anything through either interface.
| Scope | What it allows |
|---|---|
catalog:read | Products, countries, and prices |
services:read | Your services, proxy lists, credentials, whitelist entries, and refresh status |
services:write | Change credentials and IP whitelisting, refresh IPs, manage sticky sessions, cancel services |
usage:read | Usage statistics for your services |
wallet:read | Balance, ledger, and invoice PDFs |
wallet:deposit | Start a balance top-up and get a checkout URL |
wallet:spend | Pay from your balance: purchases, renewals, add-ons, extra IPs, and paid IP refreshes |
tickets:read | Read support tickets |
tickets:write | Open tickets and reply |
customer:read | Profile details |
customer:write | Update profile details |
webhooks | Manage webhook endpoints and deliveries |
services:read, usage:read
For dashboards, alerting, and an agent that only analyzes. It can see everything about your services and change nothing.
catalog:read, services:read, services:write, wallet:read, wallet:spend
For scripts and agents that order and configure proxies. Keep the balance at the level you’re comfortable letting automation spend.
Register an HTTPS URL and choose the events you care about; GET /customer/webhooks/events returns the current list of event types. The endpoint secret appears only once, in the creation response, so save it right away.
wallet:spend, a key can read, quote, and configure, but it can’t pay for anything.DELETE /customers/me/api-keys/{id}.No. The REST API and the MCP server are available on every account at no additional charge. You pay only for the proxies and add-ons you order, at the same prices as in the Dashboard.
No. You paste one configuration block with your API key into your MCP client, then describe what you need in plain English. The agent picks the tools and shows the results in the chat. Programming is only needed if you want to call the REST API from your own code.
Any MCP client that supports remote servers and lets you set an Authorization header — for example, Cursor and Claude Code. The connection details are the same for every client: the server URL and your API key.
An agent can pay only from your account balance, and only if its key includes the wallet:spend scope. For analysis and price checks, create a key without that scope. For purchasing, keep the balance at the amount you’re willing to let it spend, and ask the agent to show a quote before it orders.
Yes. For rotating plans, there’s no IP list to export: you get the gateway connection details and manage sticky sessions — their mode, TTL, and forced rotation. For datacenter, ISP, and dedicated proxies, you work with IP lists, credentials, and IP whitelisting.
In your Dashboard: API reference. It’s generated from the OpenAPI 3.1 specification and lists every endpoint with its parameters, required scope, and response schema. For an AI agent, there’s also a Markdown version of this page.