Docs pages

Create an application

POST /api/v1/applications

Saves a draft and returns review_url for the owner, who checks it and signs. Nothing goes to the attorney or the USPTO until they do. A draft can be partial: issues lists what's left. Drafts expire after 30 days.

In the MCP server this is create_application.

Example

curl -X POST https://api.joinopenfile.com/v1/applications \
  -H "content-type: application/json" \
  -d '{
  "mark": "Quillbrook",
  "kind": "name",
  "classes": [
    {
      "number": 4,
      "wording": "Candles; scented candles; candle wicks"
    }
  ],
  "owner": {
    "type": "llc",
    "name": "Quillbrook Candle Co. LLC",
    "state_of_organization": "Delaware",
    "street": "1 Main St",
    "city": "Austin",
    "state": "TX",
    "zip": "78701",
    "email": "owner@example.com"
  },
  "basis": "itu"
}'

Body

NameTypeRequiredDescription
markstringNoThe name, slogan or wording to protect, exactly as the person wants it.
kindname, slogan, logoNoWhat the mark is. A logo is filed as words first.
descriptionstringNoWhat's sold under the mark, in the person's words.
websitestringNoThe brand's website.
classesarray of objectNoThe classes to file in, 1 to 10.
ownerobjectNoWho will own the mark. On an update, only the fields you send change.
owner.typeindividual, llc, corporation, partnershipNoThe owner's legal form.
owner.namestringNoThe owner's exact legal name.
owner.citizenshipstringNoIndividual owners: citizenship.
owner.state_of_organizationstringNoCompany owners: the state it was formed in.
owner.streetstringNoStreet address where the owner lives or is based. Not a PO box.
owner.citystringNoCity.
owner.statestringNoState.
owner.zipstringNo5-digit ZIP code.
owner.emailstringNoWhere we reach the owner about this application.
basisuse, ituNouse: already selling under the mark. itu: planning to, with a real intent.
first_usestringNoWith use: first used anywhere, as YYYY-MM or YYYY-MM-DD.
first_use_in_commercestringNoWith use: first sold across state lines, as YYYY-MM or YYYY-MM-DD.

Response

201

NameTypeRequiredDescription
idstringNoApplication id.
objectapplicationNoAlways application.
statusdraft, signed, expiredNodraft: waiting for the owner. signed: the owner signed and it went to the attorney. expired: 30 days passed unsigned.
readybooleanNoTrue when nothing is missing and the owner can sign.
issuesarray of objectNoWhat's missing, each with the field and what to ask.
review_urlstringNoSend this to the owner: it opens the application for them to check and sign. Contains the token.
tokenstringNoOnly on create. Keep it: reads and updates need it.
applicationobjectNoEvery field is optional, so an application can be built up as the person answers. Send only what the person told you or confirmed.
application.markstringNoThe name, slogan or wording to protect, exactly as the person wants it.
application.kindname, slogan, logoNoWhat the mark is. A logo is filed as words first.
application.descriptionstringNoWhat's sold under the mark, in the person's words.
application.websitestringNoThe brand's website.
application.classesarray of objectNoThe classes to file in, 1 to 10.
application.ownerobjectNoWho will own the mark. On an update, only the fields you send change.
application.owner.typeindividual, llc, corporation, partnershipNoThe owner's legal form.
application.owner.namestringNoThe owner's exact legal name.
application.owner.citizenshipstringNoIndividual owners: citizenship.
application.owner.state_of_organizationstringNoCompany owners: the state it was formed in.
application.owner.streetstringNoStreet address where the owner lives or is based. Not a PO box.
application.owner.citystringNoCity.
application.owner.statestringNoState.
application.owner.zipstringNo5-digit ZIP code.
application.owner.emailstringNoWhere we reach the owner about this application.
application.basisuse, ituNouse: already selling under the mark. itu: planning to, with a real intent.
application.first_usestringNoWith use: first used anywhere, as YYYY-MM or YYYY-MM-DD.
application.first_use_in_commercestringNoWith use: first sold across state lines, as YYYY-MM or YYYY-MM-DD.
quoteobjectNo
quote.objectquoteNoAlways quote.
quote.currencystringNoAlways usd.
quote.classesintegerNoClasses priced.
quote.linesarray of objectNoEvery fee, one line each.
quote.totalintegerNoSum of lines, in dollars.
checksarray of objectNoRefusal grounds this mark may run into. Empty when none came up.
filingobjectNoOnce signed: the filing, with its own token.
filing.idstringNoFiling id.
filing.objectfilingNoAlways filing.
filing.statusreceived, changes, approved, filed, declinedNoWhere the filing is.
filing.status_labelstringNoThe status in plain words.
filing.notestringNoFrom the attorney, when the status is changes or declined.
filing.markstringNoThe mark.
filing.ownerstringNoThe owner.
filing.basisuse, ituNoFiling basis.
filing.classesarray of objectNoThe classes filed.
filing.has_specimenbooleanNoTrue once a specimen is attached.
filing.signed_bystringNoWho signed.
filing.paidbooleanNoTrue once payment is recorded.
filing.serialstringNoUSPTO serial number, once filed.
filing.filed_atstringNoWhen it was filed.
filing.uspto_urlstringNoThe USPTO's record, once filed.
filing.status_urlstringNoThe customer's status link. It contains the token.
filing.created_atstringNoWhen it was signed.
created_atstringNoWhen it was created.
updated_atstringNoWhen it last changed.
expires_atstringNoWhen an unsigned draft expires.

Errors

StatusWhen
400Invalid input.
429Too many requests.

The body is the error shape.

Next: Get an application