Apify Custom Proxy URLs: Actor Setup Guide
Learn where Apify Actors accept custom proxy URLs, how SDK configuration differs from Apify Proxy, and what to test before scaling a crawler.
By PROXIES.SX Team · Documentation reviewed

Use an Actor’s documented proxy input or pass proxyUrls to the SDK. An arbitrary Store Actor may not expose custom proxies.
The configuration is based on the linked official documentation. A live integration test with Proxies.sx has not been completed for this guide; no vendor endorsement is implied.
- Actor
- Configured crawler
- External proxy
- Target website
Configuration reference
| Setting | What to enter or check |
|---|---|
Actor input | Use the field documented by the individual Actor, if present. |
proxyUrls | Custom proxy URLs for SDK configuration. |
newUrlFunction | Alternative custom URL selection function. |
sessionId | Can map to a URL; does not prove that a gateway keeps one exit IP. |
JavaScript SDK configuration
import { Actor } from 'apify';
// Use inside your Actor's initialized runtime.
// PROXY_URL is a complete, encoded HTTP proxy URL.
const proxyConfiguration = await Actor.createProxyConfiguration({
proxyUrls: [process.env.PROXY_URL],
});
// Pass proxyConfiguration to your crawler's constructor options.
// Standalone fetch() calls are not configured by this assignment.
// Do not print proxy URLs or proxyInfo objects with credentials.Set PROXY_URL through the secret configuration available to your deployment. This is a configuration fragment, not a complete Actor. The crawler must receive proxyConfiguration and use it for the requests you intend to route.
Configuration source: Apify custom proxies in Console.
Apify supports external proxy URLs, but the place you enter them depends on the Actor you run. Some Actors expose a proxy configuration section in their input form. When building your own Actor, you can configure a proxy through the SDK. Check that path before purchasing traffic for an existing Actor.
Start with the Actor's input
Apify's own-proxy guide explains the Console route: open the Actor's Input tab and look for its proxy configuration section. That section is available when the Actor's input schema defines it. An Actor without that field may require a code change or a different documented input; do not assume every Store Actor accepts the same JSON.
Read the Actor's own input documentation and identify which requests use the supplied proxy. Save a copy of the configuration with credentials removed, together with the Actor version used for the test. This makes a later comparison more useful than a screenshot that shows only a green completion indicator.
For your own Actor, use the SDK configuration
The JavaScript SDK guide distinguishes custom URLs supplied through proxyUrls or newUrlFunction from settings for Apify's own proxy service. The configuration object can then be passed to a crawler. Keep the provider choice explicit instead of carrying unrelated Apify Proxy options into a custom-provider configuration.
A session identifier used by a crawler and a routing identifier understood by your external provider are different inputs. Check how both behave before promising address persistence across a login or multi-page task. Repeatedly returning the same gateway URL alone does not establish that the gateway will select the same exit.
Run one Actor before scaling it
- Select an Actor whose input or source documents external proxies.
- Obtain an active proxy route. The Proxies.sx gateway guide covers connection details.
- Set a small request limit and use a page you control or have permission to access.
- Verify the network route from the Actor, then inspect its saved output for the fields the task actually needs.
- Repeat with the same Actor version. Record request failures, missing fields, elapsed time and transferred bytes before increasing concurrency.
Keep test costs separate. Actor execution and any Actor-specific fees belong to one part of the budget; the external proxy's traffic belongs to another. Compare cost per usable output record, including retries. Include the time spent repairing missing records when comparing two runs.
What to publish with an integration example
A useful example identifies the Actor input, supported proxy protocol, where secrets are stored and how to reproduce a small test. Include a sanitized result and the date of the run. Leave private addresses, account identifiers and passwords out of screenshots and example datasets.
Can I paste proxy URLs into every Actor?
Only use a field or code path documented by that Actor. Apify's Console guidance makes the input-schema requirement explicit.
Are external proxy costs included in an Actor run?
Check the Actor's pricing and your external provider's bill separately. This page does not quote a combined price.
For a broader product comparison, read our ScraperAPI, Apify and Proxies.sx comparison. Use the proxy test plan for the practical evaluation.
When the first test fails
| Observation | Next check |
|---|---|
| No proxy field in the Actor input | Check that Actor’s schema. Do not paste guessed JSON into an unrelated field. |
| One request bypasses the proxy | Trace which client makes that request and whether it receives the configuration. |
| One URL produces different IPs | Check the external provider’s session policy, then measure it from the Actor. |
For a proxy authentication failure, follow the HTTP 407 diagnosis. If the destination rate-limits requests, use bounded retries and Retry-After. Changing an IP is not a substitute for fixing the request.
Keep a test record you can compare
Save the platform version, sanitized configuration and expected result for each run. Record unsuccessful attempts too. Keep account credentials, full proxy URLs and private addresses out of shared results.
The worksheet is blank by design. Fill it with your observations; an empty value means unmeasured, not zero. Count a result as valid only when it meets your task’s pass condition. Calculate cost per valid result from the complete test cost, including failed attempts; if no result is valid, report that outcome instead of dividing by zero.
Download the CSV worksheetFor measurement definitions and a bounded pilot, continue to proxy concurrency, rotation and cost measurement.
Sources and review scope
Official references checked on 11 October 2026. Plan names and APIs can change; check the current reference before running the configuration. The test procedure and troubleshooting checks are our suggested evaluation method.
Proxy setup for browsers and workflows
Find the setting for your tool, check its scope, then test the route from the process that makes the request.