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

# How Swisstools Subdomain URLs Work

> Understand how Swisstools builds unique subdomain URLs for each project and how to use them to reach your mock endpoints and webhook inboxes.

Every project in Swisstools gets its own subdomain URL. This means your mock endpoints and webhook inboxes are always reachable at a stable, unique address that belongs specifically to that project — no shared paths or API tokens needed to route traffic to the right place.

## How the subdomain is constructed

Swisstools builds each project's subdomain from two parts joined by a dash:

```
<team_ref>-<project_slug>.swisstools.dev
```

* **`team_ref`** — your team's 8-character reference ID, visible in your team settings. It uses only alphanumeric characters (no dashes), so it never conflicts with the separator.
* **`project_slug`** — the slug you set when creating the project. Slugs can contain dashes.

Because `team_ref` is always dash-free, the first dash in the subdomain unambiguously separates the team reference from the project slug — even when your project slug contains multiple dashes.

## URL patterns

| Feature       | URL pattern                                                         |
| ------------- | ------------------------------------------------------------------- |
| Mock endpoint | `<team_ref>-<project_slug>.swisstools.dev/api/mock/<endpoint>`      |
| Webhook inbox | `<team_ref>-<project_slug>.swisstools.dev/api/webhook/<webhook_id>` |

## Examples

```
https://abc12345-my-api.swisstools.dev/api/mock/users
https://abc12345-my-api.swisstools.dev/api/webhook/01H2X3Y4Z5
```

In these examples, `abc12345` is the team reference ID and `my-api` is the project slug. The full subdomain `abc12345-my-api` uniquely identifies the project across the entire platform.

If your project slug contains dashes — for example, `payment-service-v2` — the URL looks like this:

```
https://abc12345-payment-service-v2.swisstools.dev/api/mock/charge
```

The split still works correctly because `abc12345` contains no dashes.

## Finding your base URL

You don't need to construct the URL manually. The project dashboard shows the complete base URL for your project, and you can copy it from there.

<Tip>
  Open your project in the dashboard and look for the base URL displayed near the top of the page. Copy it from there to avoid transcription errors, especially if your slug contains multiple dashes.
</Tip>
