# Publishing the reference

Owners and admins publish from the Reference panel on the project's page. The project needs at least one version first.

## The switches

| Switch | What it does |
| --- | --- |
| **Publish** | Anyone with the link can read the reference, and you can embed it. |
| **Unpublish** | The public link and every embed stop working at once. |
| **Let readers download the OpenAPI file** | Readers get a link to the file exactly as you pushed it. |
| **Hide from search engines** | Every page of the reference asks search engines not to index it. **Show to search engines** undoes it. |

A reference made from the sample document stays hidden from search engines until you push your own.

## Its addresses

| Path | What it serves |
| --- | --- |
| `/r/<workspace>/<project>` | The latest version. |
| `/r/<workspace>/<project>/v/<seq>` | A version the registry still keeps. Only the latest is indexed by search engines. |
| `/r/<workspace>/<project>/openapi.yaml` | The latest version's file, if you pushed YAML and downloads are on. |
| `/r/<workspace>/<project>/openapi.json` | The same, if you pushed JSON. |
| `/r/<workspace>/<project>/embed` | The frameable page: see [Embedding](embed). |

The file is served only in the format you pushed: the other path answers `404`.

## On the Free plan

A reference on Free carries a small "Made with Latitude 10" link in its footer. The paid plans don't.

## Where this comes from

- `app/workspace/actions.ts`
- `app/reference/_lib/access.ts`
- `app/reference/_lib/page.ts`
- `app/r/_lib/respond.ts`
- `app/r/[ws]/[project]/route.ts`
- `app/r/[ws]/[project]/v/[seq]/route.ts`
- `app/r/[ws]/[project]/openapi.yaml/route.ts`
- `app/r/[ws]/[project]/openapi.json/route.ts`
