Make an HTTP/S request to a third-party API
Fixie is a proxy service that provides static IP addresses. Fixie provides an HTTP proxy that makes it easy to make HTTP/S requests to third-party APIs and webservices that require IP whitelisting.
If your application is hosted on Vercel or Heroku, please also check out their respective documentation pages for more details
We recommend using the FIXIE_URL environment variable to provide your Fixie crentials to your application. If you use the Vercel or Heroku addon, this environment variable will be set for you automatically.
To make a request to an external API through a static Fixie IP, using Python:
Or, equivalently in JavaScript:
Your static IP addresses
Each Fixie proxy group has two static IP addresses, and when you make a request through your FIXIE_URL your requests are load-balanced across these two IPs.
You can find the IP addresses for your subscription in the Fixie Dashboard.
If you need to make requests from a single IP address, you may also address either IP directly instead of using a subdomain, but doing so will sacrifice the availability benefits of load-balancing across two availability zones.
HTTPS requests are encrypted end-to-end
When you make an HTTPS request over an HTTP proxy like Fixie, your request library makes a CONNECT request to establish a secure tunnel and then makes the HTTPS request through that tunnel. This is called HTTP Tunneling.
HTTP Tunneling allows encrypted HTTPS data to pass through the proxy opaquely, ensuring end-to-end encryption between the client and server. The proxy has no ability to inspect or alter the traffic that traverses the tunnel.
If you exclusively make requests to HTTPS resources, this generally means that you do not need to consider Fixie to be a data processor for the purposes of GDPR and similar regulations.
Encrypting the connection to the proxy (TLS)
By default, you connect to your Fixie proxy over plain HTTP on port 80. For HTTPS requests the tunnel contents are still end-to-end encrypted, but the CONNECT request itself, which includes the hostname you are connecting to and your proxy credentials, travels unencrypted between your application and Fixie.
Fixie HTTP proxies also accept TLS connections on port 443. To use it, change the scheme of your proxy URL to https and the port to 443:
http://fixie:your-token@your-subdomain.usefixie.com:80
https://fixie:your-token@your-subdomain.usefixie.com:443
For example, with curl:
Both ports remain available, so you can switch over whenever suits you. Requests leave through the same static IP addresses either way.
Connect using your proxy's hostname (
your-subdomain.usefixie.com), not one of its IP addresses. The TLS certificate is issued for the hostname, so connecting by IP will fail certificate verification.
Not every HTTP client supports https proxy URLs, so check that yours does before switching. TLS is available on HTTP proxies only.
Language-specific documentation
All popular HTTP/S clients support HTTP proxies like those provided by Fixie. You can find documentation for your language of choice below:
Is this guide useful?
Having issues? Please reach out to our team here.