---
title: Service bindings
description: "Call another of your projects on the same server over loopback."
---

## Configuration

```jsonc
"services": [{ "binding": "PEER", "service": "quote-service" }]
```

## Usage

```js
const res = env.PEER.fetch(new Request("https://peer/random"));
```

`service` is the target project's name. The call goes to the server's edge over loopback with the target's hostname, so it uses the same routing, process pool and logs as a public request. It does not leave the server, so the [`outbound`](/docs/bindings/outbound-fetch) allowlist does not apply.

## Constraints

:::warning
- **Your own projects only.** A binding to a project that is not deployed returns an error saying so.
- **No self-calls.** A sprout serves one request at a time, so a binding back to its own project waits on itself until the request times out.
- **Platform only.** A [standalone binary](/docs/get-started/standalone) has no edge to route through.
:::

## Related

- [Outbound fetch](/docs/bindings/outbound-fetch): for calls that leave the server
