# Quickstart

From sign-in to a published reference, with your own OpenAPI document. You need a document, YAML or JSON, and a terminal.

### 1. Sign in

Go to the [sign-in page](https://latitude10.tech/workspace/sign-in) and continue with GitHub, or ask for an emailed link. The link works once, for 15 minutes. Your first sign-in creates your workspace, named after you.

### 2. Create a project

On your workspace's page, name a project. A project holds one OpenAPI document and every version of it. Owners, admins and editors can create projects.

### 3. Create a CI key

On the project's page, create a key under **CI keys**. It's shown once: copy it into your environment, never into a file you commit.

```sh
export LATITUDE10_KEY=...   # paste it from the project page
BASE=https://latitude10.tech/api/registry/v1
```

### 4. Push your document

Send the document as the request body:

```sh
curl -sS -X POST "$BASE/versions?label=first" -H "Authorization: Bearer $LATITUDE10_KEY" --data-binary @openapi.yaml
```

The answer is the new version, with `201`: its number (`seq`), its readiness `score` out of 100, and `url`, its page in your workspace. Push the same bytes again and you get the same version back with `200`; no second version is made.

### 5. Read the score

The latest version, and the report that explains its score:

```sh
curl -sS "$BASE/versions/latest" -H "Authorization: Bearer $LATITUDE10_KEY"
```

```sh
curl -sS "$BASE/versions/1/report" -H "Authorization: Bearer $LATITUDE10_KEY"
```

Each rule in the report lists its findings and how to fix them. The [readiness rules](registry/readiness-rules) explain the score.

### 6. Publish the reference

On the project's page, choose **Publish** under Reference. Until then it's private: only members see it. Owners and admins can publish.

### 7. See the outputs

Once it's published, the project's page links each output:

- the reference, with Try it, at `https://latitude10.tech/r/<workspace>/<project>`;
- the docs site, once you push a docs folder and publish it, at `https://latitude10.tech/docs/<workspace>/<project>`;
- the MCP server, at `https://latitude10.tech/mcp/<workspace>/<project>` once you set it up on the project's MCP page.

## When something goes wrong

Every error is JSON with an `error` that says what to do. A `401` means the key is missing or revoked, a `422` that the body isn't an OpenAPI 3.0 or 3.1 document in one file, and a `429` that a quota is reached until `resetsAt`. [Errors](registry-api/errors) lists them all.

## Where this comes from

- `openapi/registry-v1.yaml`
- `app/api/workspace/auth/route.ts`
- `app/workspace/_lib/users.ts`
- `app/workspace/_lib/workspaces.ts`
- `app/workspace/_lib/projects.ts`
- `app/workspace/_lib/onboarding.ts`
- `app/workspace/_lib/keys.ts`
- `app/reference/_lib/access.ts`
- `app/api/registry/v1/versions/route.ts`
- `app/api/registry/v1/versions/latest/route.ts`
