# Deep links

> Open Fregata Mobile at a review, an event, the newest alert, a camera's live view or a moment in its recordings with a fregata-mobile:// link — from a Home Assistant notification, a shortcut, a web page or an NFC tag — with every link and parameter.

A `fregata-mobile://` link opens Fregata Mobile at a particular place: a review's recording, an
event, the newest alert, a camera's live view, a moment in a camera's recordings, or a list
filtered the way you want. Put one in a Home Assistant notification, a shortcut's **Open URLs**
action, a web page or an NFC tag. The app's widgets open it with the same links.

```
fregata-mobile://review/latest?severity=alert&camera=front_door
```

## The links

| Link | Opens |
|---|---|
| `fregata-mobile://review?id=…` | A review's recording, on **Review**, as tapping its alert does. |
| `fregata-mobile://review/latest` | The newest review. Add `severity` and `camera` to choose from fewer. |
| `fregata-mobile://event?id=…` | An event in **Explore**: its picture and details. |
| `fregata-mobile://event/latest` | The newest event. Add `camera` and `label` to choose from fewer. |
| `fregata-mobile://camera?name=…` | A camera's live view. `name=birdseye` opens Birdseye. |
| `fregata-mobile://recording?camera=…&time=…` | A camera's recording from that moment, on **Review**. |
| `fregata-mobile://cameras` | The **Cameras** tab. Add `group` to show a camera group. |
| `fregata-mobile://reviews` | The **Review** list. Add `severity`, and `camera` or `group`, to filter it. |
| `fregata-mobile://alerts` | The **Review** list, showing **Alerts**. |
| `fregata-mobile://explore` | **Explore**. Add `camera` and `label` to filter it, and `q` to search it. |
| `fregata-mobile://filters` | Your **Notification Filters**. |
| `fregata-mobile://settings` | **Settings**. |

Any of them can also name a [server](https://mobile.fregata.app/docs/beyond-the-app/deep-links/#which-server).

## Parameters

| Parameter | What to give it |
|---|---|
| `id` | A review's or an event's id, as Frigate gives it, such as `1718987129.308396-fqk5ka`. |
| `camera` | A camera's name in your Frigate config, such as `front_door`, rather than the name it shows as. Links that take more than one (`review/latest`, `event/latest`, `reviews` and `explore`) take several separated by commas. |
| `name` | On `camera`, the camera to open, named as for `camera`. `birdseye` opens Birdseye, when it's turned on in Frigate and your account can see every camera. |
| `label` | An object Frigate detects, such as `person` or `car`. Several, separated by commas. |
| `severity` | `alert`, `detection` or `all`. |
| `group` | A camera group's name, as Frigate has it. |
| `time` | Seconds since 1970, as in Frigate's `start_time` or from Home Assistant's `as_timestamp()` (milliseconds work too), or a date and time with its UTC offset, such as `2026-10-30T14:03:22+01:00`. A time with no offset is refused, because it could be in any time zone. |
| `q` | Words to search **Explore** for, as in its search field. It needs Frigate's semantic search turned on. |
| `server` | Which server to open it on. See [Which server](https://mobile.fregata.app/docs/beyond-the-app/deep-links/#which-server). |

Names, ids and labels match exactly as Frigate writes them, capitals included. Write a space or
another special character in a value with percent-encoding: a group called Out Back is
`Out%20Back`. In a Home Assistant template, `| urlencode` does it for you.

On `reviews`, `severity` chooses the **Alerts**, **Detections** or **All** chip, and it stays
chosen, just as when you tap it. Leave `severity` out to keep the chip that's on.

## Which server

With one server, leave `server` out. With more than one, a link opens on the server you're looking
at unless it names another, and then the app switches to it. Name a server by:

- the **Name** you gave it in its Connection settings, such as `Home`;
- its At home or Away address's host, such as `frigate.local` or `192.168.1.10`. Add the port,
  `frigate.local:8971`, if two of your servers share a host.

Capitals don't matter. If no server matches, the app says so rather than opening the link on
another server, where the same id would be a different review or none at all.

## From Home Assistant

In the Home Assistant app on iPhone, a notification's `url` opens when you tap the notification,
and an action button's `uri` when you tap that button. Give either a `fregata-mobile://` link, and
the tap opens Fregata Mobile instead of Home Assistant. Frigate's `frigate/reviews` MQTT topic has
everything a link needs: the review's `id`, its `camera` and its `start_time`.

This automation, adapted from Frigate's
[Home Assistant notifications](https://docs.frigate.video/guides/ha_notifications) guide, opens the
review on a tap, and has a button that opens the camera live. Each update to the review replaces
the notification, because they share its `tag`.

```yaml
automation:
  - alias: Frigate alerts open in Fregata Mobile
    triggers:
      - trigger: mqtt
        topic: frigate/reviews
        value_template: "{{ value_json['after']['severity'] }}"
        payload: alert
    actions:
      - action: notify.mobile_app_iphone
        data:
          message: "{{ trigger.payload_json['after']['data']['objects'] | join(', ') | title }} at {{ trigger.payload_json['after']['camera'] }}"
          data:
            tag: "{{ trigger.payload_json['after']['id'] }}"
            url: "fregata-mobile://review?id={{ trigger.payload_json['after']['id'] }}"
            actions:
              - action: URI
                title: Live
                uri: "fregata-mobile://camera?name={{ trigger.payload_json['after']['camera'] }}"
```

Other links to try in `url`:

- `fregata-mobile://recording?camera={{ trigger.payload_json['after']['camera'] }}&time={{ trigger.payload_json['after']['start_time'] }}`
  opens the recording from when the activity began.
- `fregata-mobile://event?id={{ trigger.payload_json['after']['id'] }}`, in an automation on
  Frigate's `frigate/events` topic, opens the tracked object in **Explore**.
- `fregata-mobile://review/latest?camera=front_door` needs no template at all.

Home Assistant may ask **Open URL?** before it opens a link. **Always Open** stops it asking.

## From Shortcuts, Safari and NFC tags

- **Shortcuts**: the **Open URLs** action opens a link, from a shortcut, a Home Screen icon or an
  automation. An **NFC** automation can open one when you hold your iPhone to a tag.
- **Safari and other apps**: tap a link on a web page or in a note to open it. Safari asks first.

## What links change

Links only take you somewhere. None of them changes your server's configuration, your notification
filters or your settings, so a link from anywhere is safe to tap. What does happen is what happens
when you get there by hand:

- opening a review marks it as reviewed, on your server as well as in the app;
- `alerts`, and `severity` on `reviews`, choose the chip;
- `group` on `cameras` chooses the group the **Cameras** tab shows.

## If a link doesn't open

The app says what's wrong, in an alert headed **Can’t open this link**:

- "Fregata Mobile doesn’t recognize this link": it's mistyped, or it's a link a newer version of
  the app understands. Update the app.
- "No server in Fregata Mobile has the name or address …": check `server` against
  [Which server](https://mobile.fregata.app/docs/beyond-the-app/deep-links/#which-server).
- "The server this link opens is no longer in Fregata Mobile": the link, or the widget it came
  from, is for a server you've removed.
- "This server has no camera, group or object called …": check the name against your Frigate
  config. Cameras go by their config name, such as `front_door`.
- "Nothing on this server matches the link yet": there's no review or event like the one it asks
  for, often because a `camera` or `label` is misspelled.
- "This server doesn’t have semantic search turned on, so the link’s search was left out": the
  list opens filtered, without the search.

Some problems show on the screen the link opens instead:

- "… is no longer in the server's configuration", on **Cameras** or **Review**: a `camera` link
  to a camera the server doesn't have, or a review from one.
- "Birdseye is turned off on this server", on **Cameras**: turn it on in Frigate's config.
- "Your account on this server can see only some cameras, so it can’t watch Birdseye", on
  **Cameras**: Frigate shows Birdseye only to accounts that can see every camera, such as its
  admin and viewer roles.

If the server can't be reached, **Cameras**, **Review** or **Explore** says so, as it would if you
opened it yourself.
