# Make your first residential proxy request > Connect to PacketStream, verify a residential exit, and choose the right targeting and session behavior for your application. PacketStream works with standard proxy-capable HTTP clients and browsers. Start with the recommended HTTPS gateway, authenticate with your dashboard username and auth key, and verify the observed exit before connecting a larger workload. ## Before you begin You need: - a [PacketStream account](https://app.packetstream.io/signup); - your proxy username and auth key from the dashboard; - a client with HTTPS proxy support; - `jq` if you want the formatted output used below. Keep credentials out of source control, screenshots, and application logs. The shell prompts below keep the values out of the command itself. ## 1. Load your credentials ```bash read -r -p 'PacketStream username: ' PACKETSTREAM_USER read -r -s -p 'PacketStream auth key: ' PACKETSTREAM_AUTH_KEY printf '\n' export PACKETSTREAM_USER PACKETSTREAM_AUTH_KEY ``` These variables last for the current shell session unless you deliberately persist them. ## 2. Send a request through HTTPS ```bash curl --silent --show-error --fail-with-body \ --proxy 'https://proxy.packetstream.io:31111' \ --proxy-user "${PACKETSTREAM_USER}:${PACKETSTREAM_AUTH_KEY}" \ 'https://ipinfo.io' \ | jq '{ip, hostname, city, region, country, loc, org, postal, timezone}' ``` A successful response confirms that the client reached PacketStream, authenticated, connected to the destination, and returned data through a residential exit. IP location data is approximate. Use it as a diagnostic signal rather than a precise physical location. ## 3. Choose request behavior The default auth key uses automatic rotation: PacketStream selects a residential exit for each **new proxy connection**. Your HTTP client may reuse a connection for multiple requests. Add modifiers to the auth key when a workflow needs more control: ```text AUTH_KEY_country-US AUTH_KEY_session-workflow42 AUTH_KEY_country-US_session-workflow42 ``` - `_country-US` requests an exit in the United States using an ISO two-letter country code. - `_session-workflow42` requests the same exit for a related workflow for up to 60 minutes. - If a requested country has no available exits, the request fails instead of using another country. - If the Packeter serving a sticky session disconnects, that session fails. ## 4. Move the configuration into your client The endpoint and credentials stay the same across supported clients. See [language integrations](https://packetstream.io/docs/language-integrations/) for Python, Node.js, Go, and Playwright examples. Related pages: - [Endpoints & authentication](https://packetstream.io/docs/endpoints-authentication/): Choose HTTPS, SOCKS5, or compatibility HTTP. - [Rotation & sticky sessions](https://packetstream.io/docs/rotation-sticky-sessions/): Align connections and sessions with your unit of work. - [Country targeting](https://packetstream.io/docs/country-targeting/): Request a country and handle unavailable exits. - [Troubleshooting](https://packetstream.io/docs/troubleshooting/): Diagnose authentication, targeting, and connection failures. ## Production checklist Before scaling a workload: 1. keep credentials in a secret manager or protected environment variables; 2. set connection and overall request timeouts; 3. make retries bounded and observable; 4. verify country targeting when location affects the result; 5. understand whether the client pools proxy connections; 6. avoid logging proxy URLs that contain credentials; 7. test with a small, representative workload first. PacketStream does not require inbound ports or port forwarding from proxy customers. Your application makes an outbound connection to the proxy gateway.