# Try the API without hardware

> Exercise the full API with the mock engine, on any machine, with no model or accelerator.

## When to use this

The **mock engine** returns deterministic test output instead of a model's answer. Use it to try the API on a machine without Intel hardware (including macOS), to develop against Cascadia, or to test it in CI. It covers the complete API path, so the same requests work once you switch to a real model.

To serve a real model instead, follow the [quickstart](/getting-started/quickstart/).

## 1. Get Cascadia

On Linux or Windows, download a [release archive](https://github.com/labscommunity/cascadia/releases/latest) and use `./cascadia` or `.\cascadia.exe` from the unpacked folder in the steps below.

On macOS, or to build from source, you need Git and Rust 1.89 or later:

```bash
git clone https://github.com/labscommunity/cascadia.git
cd cascadia
cargo build --release -p cascadia
```

The binary is `./target/release/cascadia`. This stub build has no OpenVINO, so only the mock engine works. See [installation](/getting-started/installation/) for details.

## 2. Start the mock server

```bash
./target/release/cascadia run mock-model --engine mock --api 127.0.0.1:8000
```

Keep this terminal open. The API is now listening on port **8000**.

## 3. Send a request

In a second terminal:

```bash
curl http://127.0.0.1:8000/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "mock-model",
    "messages": [{"role": "user", "content": "Hello, Cascadia!"}]
  }'
```

A JSON chat-completion response confirms the API and engine are working together. The mock engine echoes words; it does not generate a real answer.

## What comes next?

- [Connect an existing application](/features/make-a-request/) to the API.
- [Serve a real model](/getting-started/quickstart/) on Intel hardware.
