> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zespan.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Outbound request policy

> Which addresses Zespan will call on your behalf — LLM connections, HTTP targets, webhooks, and SSO discovery — and what happens when a URL points somewhere private or redirects.

Several Zespan features call a URL you configure: an LLM connection's base URL, a simulation or dataset HTTP target, a webhook, or your SSO provider's discovery document. Zespan only sends these requests to **public internet addresses**. A request is refused if its host resolves to a private, loopback, link-local, or cloud-metadata address.

## What the policy covers

* LLM connection base URLs, including model listing, **Test**, and the Playground
* Simulation and dataset HTTP targets
* Webhooks: alert webhooks (generic, Slack, Discord), prompt webhooks (generic, Slack), Jira, and Freshservice
* SSO discovery and key-set URLs
* Agent card fetches

Hostnames are resolved and checked again on every request, not only when you save the URL. A hostname that later starts resolving to a private address is blocked from then on.

## Redirects are not followed

If a target answers with a `3xx` redirect, Zespan does not follow it. The simulation run, dataset run, or webhook delivery fails instead. Point the target at its final URL.

## Error messages

| Error text | Meaning |
| - | - |
| `Outbound request blocked: <reason>` | The URL or its resolved address is private, internal, or a metadata address. |
| `Outbound request was redirected; redirects are not followed` | The target returned a `3xx` redirect. Alert webhooks, prompt webhooks, Jira, Freshservice, SSO discovery, and simulation HTTP targets report it this way. |
| `Blocked redirect response (HTTP <status>); redirects are not followed` | The same, reported by dataset HTTP targets. |
| `baseUrl host is not allowed` | You tried to save an LLM connection whose base URL is refused. |

> [!NOTE]
>
> Running a private LLM gateway on a self-hosted deployment? Operators can allow specific private endpoints for LLM connections only. See [LLM Connections → Private and self-hosted endpoints](https://docs.zespan.com/platform/llm-connections.md#private-and-self-hosted-endpoints).

## Self-hosted deployments

Requests covered by this policy connect directly and don't use the `HTTP_PROXY` or `HTTPS_PROXY` environment variables. If your network requires all egress to go through a proxy, enforce an equivalent policy at the proxy.

## Next steps

* [LLM Connections (BYOK)](https://docs.zespan.com/platform/llm-connections.md) — connect your own provider keys
* [Webhooks](https://docs.zespan.com/guides/webhooks.md) — receive alert notifications in your own systems
* [HTTP targets](https://docs.zespan.com/dashboard/http-targets.md) — run datasets against your own endpoint
* [Security](https://docs.zespan.com/platform/security.md) — how Zespan protects your data


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.