All tools / Proxy format converter

One proxy, every format.

Paste a proxy line in whatever shape your provider gave you. You get it back as host:port:user:pass, user:pass@host:port, an HTTP URL, a SOCKS5 URL, and ready-to-paste snippets for curl, Python requests, Node fetch and shell environment variables.

Nothing you type here is stored; public pages set no cookie. Privacy

host:port:user:pass, user:pass@host:port, scheme://user:pass@host:port or host:port. Residential tags like _country-US_lifetime-30_session-k2p9x7vq stay on the password.

http:// or https://. ifconfig.me echoes the address the site sees.

Example: the documentation credentials from the API reference

residential.ghostconnect.io:1080

The password is shown exactly as you typed it, tags included. This page keeps nothing.

FormatValue
host:port:user:passresidential.ghostconnect.io:1080:rJxYKRe2U:Yxa5WGCUkvP9km_country-US
user:pass@host:portrJxYKRe2U:Yxa5WGCUkvP9km_country-US@residential.ghostconnect.io:1080
HTTP URLhttp://rJxYKRe2U:Yxa5WGCUkvP9km_country-US@residential.ghostconnect.io:1080
SOCKS5 URLsocks5h://rJxYKRe2U:Yxa5WGCUkvP9km_country-US@residential.ghostconnect.io:1080

Both URL forms use the port you typed. HTTP and SOCKS5 are usually on different ports (on the residential gateway, 1080 and 1081), so change the port when you change the scheme.

curl

curl -x 'http://residential.ghostconnect.io:1080' -U 'rJxYKRe2U:Yxa5WGCUkvP9km_country-US' 'https://ifconfig.me'

# the same, with the credentials in the proxy URL
curl -x 'http://rJxYKRe2U:Yxa5WGCUkvP9km_country-US@residential.ghostconnect.io:1080' 'https://ifconfig.me'

Python requests

import requests

proxies = {
    'http':  'http://rJxYKRe2U:Yxa5WGCUkvP9km_country-US@residential.ghostconnect.io:1080',
    'https': 'http://rJxYKRe2U:Yxa5WGCUkvP9km_country-US@residential.ghostconnect.io:1080',
}
r = requests.get('https://ifconfig.me', proxies=proxies, timeout=30)
print(r.status_code, r.text)

Node 18+ fetch with undici

// Node 18+, npm install undici. ProxyAgent speaks HTTP proxies only.
import { fetch, ProxyAgent } from 'undici';

const dispatcher = new ProxyAgent({
  uri: 'http://residential.ghostconnect.io:1080',
  token: 'Basic ' + Buffer.from('rJxYKRe2U:Yxa5WGCUkvP9km_country-US').toString('base64'),
});
const res = await fetch('https://ifconfig.me', { dispatcher });
console.log(res.status, await res.text());

undici's ProxyAgent is HTTP only, so this snippet uses the HTTP form and works when the port you typed serves HTTP. For SOCKS5 in Node use a SOCKS agent with the http module, or another client.

Environment variables

export HTTP_PROXY='http://rJxYKRe2U:Yxa5WGCUkvP9km_country-US@residential.ghostconnect.io:1080'
export HTTPS_PROXY='http://rJxYKRe2U:Yxa5WGCUkvP9km_country-US@residential.ghostconnect.io:1080'
export ALL_PROXY='http://rJxYKRe2U:Yxa5WGCUkvP9km_country-US@residential.ghostconnect.io:1080'
curl 'https://ifconfig.me'   # curl, pip, git and many others read these

What this tool does

Every proxy is the same four facts, a host, a port and usually a username and a password, but every tool wants them written differently. Dashboards hand out host:port:user:pass, browsers and scrapers want user:pass@host:port, curl takes a URL or a separate -U flag, Python requests wants a dictionary with an entry for http and for https, Node needs an agent, and shell tools read HTTP_PROXY. This page parses whichever shape you paste, checks each part (a real hostname or IP, a port from 1 to 65535, credentials without spaces, "@" or ":"), and writes out all of the others, with the password exactly as typed so that GhostConnect residential tags such as _country-US_lifetime-30_session-k2p9x7vq survive the trip.

Read the result from the top. The four plain formats are the proxy itself; copy the one your tool asks for. The snippets below them are complete commands and programs against the target URL you chose, and they use the protocol you picked, so if a snippet fails, the first things to check are that the port matches the protocol (HTTP and SOCKS5 are served on different ports) and that your tool kept the whole password rather than cutting it at an underscore. The formats here are the ones the API returns for residential plans, so a string from the dashboard and one from this page are interchangeable. They work the same for residential, ISP, datacenter and rotating IPv6 proxies; only the host, the port and whether SOCKS5 is offered differ.

Questions
Which input formats are accepted?

host:port, host:port:user:pass, user:pass@host:port, and any of those with http://, https://, socks5:// or socks5h:// in front. The host may be a hostname, an IPv4 address or an IPv6 address in square brackets. The protocol you pick on the form decides which scheme the snippets use; a scheme in the input is read and dropped.

My residential password has underscores and dashes in it. Is that a problem?

No. On GhostConnect the targeting and session ride on the password as tags, for example _country-US_lifetime-30_session-k2p9x7vq. The converter passes the whole password through every format exactly as typed; only spaces, "@" and ":" are refused, because they would break the colon and at forms.

What is the difference between socks5:// and socks5h://?

With socks5h:// the hostname of the site you visit is resolved by the proxy, so the lookup leaves through the exit as well. With socks5:// your own machine resolves it first. For a proxy that is meant to hide where you are, socks5h:// is the one you want, and it is what the converter prints.

Why does the Node snippet say HTTP only?

undici's ProxyAgent speaks the HTTP proxy protocol, so it works with the HTTP port of any proxy. For SOCKS5 in Node you need a SOCKS agent with the http module or another client; the snippet keeps the HTTP form on the port you typed.

Can I use one port for both HTTP and SOCKS5?

Not usually. Each product serves HTTP on one port and SOCKS5 on another. On the residential gateway, for example, HTTP is on 1080 and SOCKS5 on 1081. The converter prints both URL forms with the port you typed, so change the port when you change the scheme.

Is my password stored when I submit the form?

No. The line is parsed to render this one response and is written nowhere, not to a log, a database or a cookie, and public pages set no cookie. The password appears in the output because you typed it. The privacy page lists everything the site stores.

Get a proxy to put in here: residential, ISP, datacenter or rotating IPv6. The API returns connection strings in the same formats.