Your first request, explained.
Use your existing HTTP client. DDC manages provider credentials, route selection, and admission behind one proxy address.
Get a proxy address and tenant key
Request access from DDC, or ask the operator of your deployment. An operator creates your customer workspace, issues a scoped tenant key, and sets the applicable quotas. Console sign-in is for operators.
- DDC_PROXY_URL: the proxy listener address supplied by your operator.
- DDC_CLIENT_KEY: your tenant API key. Keep it in your secret manager or local environment.
- Ephemeral requests require proxy:use. Sticky requests also require proxy:sticky.
Send an ephemeral request
Set the two environment variables to the values you received, then run this command. The API key is the proxy username; the password field selects the traffic mode.
curl --show-error --fail-with-body \
--proxy "$DDC_PROXY_URL" \
--proxy-user "$DDC_CLIENT_KEY:mode=ephemeral" \
https://example.com/Check the response
A successful request to this example returns the Example Domain HTML from example.com. The gateway forwards the target response; it does not wrap the page in a JSON result. HTTPS uses CONNECT, followed by TLS between your client and the target.
Use curl --verbose locally to inspect the connection when necessary. Verbose output can contain credentials; remove secrets before sharing diagnostics.
Keep a route for a session
Use a stable session key for a stateful browser or agent workflow. Requests with that key bind to a sticky route while its lease remains valid. Your client still owns its browser cookies and application state.
A session key alone may acquire a new lease after the old one ends. Workflows that must detect an identity change should acquire a lease first and send its expected lease ID with every request.
curl --proxy "$DDC_PROXY_URL" \
--proxy-user "$DDC_CLIENT_KEY:session=browser-job-01" \
https://example.com/Use the lease contract
Lease control is available on the proxy listener at /v1/leases and uses Proxy-Authorization. Send POST with a target_domain to acquire a lease; use GET or DELETE on /v1/leases/{lease_id} to inspect or release it. Use the returned lease_id in the proxy password alongside the same session key.
Default lease limits are 10 minutes absolute and 5 minutes idle. Your deployment may configure different limits. Expiry, release, or a mismatched expected lease produces a lease error rather than silently moving that request to another route.
curl --proxy "$DDC_PROXY_URL" \
--proxy-user "$DDC_CLIENT_KEY:lease=$DDC_LEASE_ID;session=browser-job-01" \
https://example.com/Read failures at the right layer
Operators can inspect request attempts by customer, target, route, and exit IP. A CONNECT tunnel does not expose the target's encrypted HTTP response; signed client feedback can add target-level evidence.
- ddc_reject: authentication, scope, validation, or admission policy.
- upstream_proxy_error: connecting or communicating with the upstream proxy.
- target_error: an observable target failure or accepted client feedback.
- lease_error: the expected session binding is no longer valid.
Plan your deployment
DDC Agent Proxy supports Docker Compose and Kubernetes through Helm. PostgreSQL stores configuration and durable usage; shared Redis coordinates admission and route capacity across gateway replicas.
Supply supported upstream provider accounts or static proxy endpoints. Provider access is provisioned separately. DDC can discuss the deployment materials, required secrets, public endpoints, and a workload-specific evaluation with your team.