# Quickstart

Source: https://joinopenfile.com/docs/quickstart
Index: https://joinopenfile.com/llms.txt

You don't need a key. Lookups are public, and each formation or application has its own token. This page files a trademark. [Form a company](https://joinopenfile.com/docs/formations.md) has the same steps for a company.

## 1. Check the name

Screen it for common refusal grounds:

```bash
curl -X POST https://api.joinopenfile.com/v1/marks/screen \
  -H "content-type: application/json" \
  -d '{"mark":"Quillbrook","description":"scented candles"}'
```

Then search USPTO records:

```bash
curl -X POST https://api.joinopenfile.com/v1/marks/search \
  -H "content-type: application/json" \
  -d '{"mark":"Quillbrook","classes":[4]}'
```

`checked: true` means the USPTO answered. If the search fails you get an error, not an empty list, so a failure can't pass for a clear result.

## 2. Pick a class

```bash
curl -X POST https://api.joinopenfile.com/v1/classes/suggest \
  -H "content-type: application/json" \
  -d '{"description":"Hand-poured scented candles sold online"}'
```

## 3. Prepare the application

Send what the owner told you. Every field is optional, so you can build it up as they answer.

```bash
curl -X POST https://api.joinopenfile.com/v1/applications \
  -H "content-type: application/json" \
  -d '{"mark":"Quillbrook","classes":[{"number":4,"wording":"Candles; scented candles; candle wicks"}]}'
```

The response has what you need next:

```json
{
  "id": "k7m2p9xw4q",
  "object": "application",
  "status": "draft",
  "ready": false,
  "issues": [
    { "field": "owner.type", "message": "Ask whether the owner is an individual, LLC, corporation or partnership." }
  ],
  "review_url": "https://joinopenfile.com/trademark/start?draft=k7m2p9xw4q&k=...",
  "token": "..."
}
```

Keep `token`. Ask the owner what `issues` lists, and send their answers with [update application](https://joinopenfile.com/docs/api/update-application.md).

## 4. Send the owner the link

Send them `review_url`. It opens the application on our site, where they check every answer and sign. Nothing reaches the attorney until they do.

## 5. Follow it

```bash
curl https://api.joinopenfile.com/v1/applications/$ID \
  -H "Authorization: Bearer $TOKEN"
```

Once they sign, `status` is `signed` and `filing` holds the filing's status, then its USPTO serial number once it's filed.
