Docs pages

Quickstart

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 has the same steps for a company.

1. Check the name

Screen it for common refusal grounds:

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:

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

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.

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:

{
  "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.

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

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.

Next: MCP server