Trademark Filing
File a new trademark application with the USPTO. Includes automated conflict checking, attorney review by Brannon McKay, and full filing with the USPTO.
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
| applicant_name | string | Required | Legal name of the applicant |
| applicant_address | string | Required | Full mailing address |
| entity_type | string | Required | Entity type (individual, corporation, LLC, etc.) |
| mark_text | string | Required | The word mark to register |
| mark_image_url | string | Optional | URL to design mark image (if applicable) |
| goods_services_description | string | Required | Description of goods/services |
| uspto_classes | integer[] | Required | Array of USPTO class numbers |
| specimen_url | string | Optional | URL to specimen of use |
| filing_basis | string | Required | "use" or "intent" |
| contact_email | string | Required | Contact email for updates |
| contact_phone | string | Optional | Phone number (recommended) |
| stripe_session_id | string | Optional | Stripe checkout session ID (if paying via one-time Stripe session instead of balance) |
| payment_token | string | Optional | LawPay token (alternative to other payment methods) |
| usdc_tx_hash | string | Optional | USDC transaction hash on Base (alternative to other payment methods) |
If you have a Stripe balance on file, payment is deducted automatically — no payment field needed. See Billing.
Example Request
curl -X POST https://api.cmblaw.ai/api/v1/trademark/file \
-H "X-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-d '{
"applicant_name": "Acme Corp",
"applicant_address": "123 Main St, Atlanta, GA 30339",
"entity_type": "corporation",
"mark_text": "ACME",
"goods_services_description": "Software development services",
"uspto_classes": [42],
"filing_basis": "intent",
"contact_email": "legal@acme.com",
"contact_phone": "+1-555-0100",
"payment_token": "tok_live_abc123"
}'import requests
response = requests.post(
"https://api.cmblaw.ai/api/v1/trademark/file",
headers={
"X-API-Key": "your_api_key",
"Content-Type": "application/json"
},
json={
"applicant_name": "Acme Corp",
"applicant_address": "123 Main St, Atlanta, GA 30339",
"entity_type": "corporation",
"mark_text": "ACME",
"goods_services_description": "Software development services",
"uspto_classes": [42],
"filing_basis": "intent",
"contact_email": "legal@acme.com",
"contact_phone": "+1-555-0100",
"payment_token": "tok_live_abc123"
}
)
print(response.json())const response = await fetch("https://api.cmblaw.ai/api/v1/trademark/file", {
method: "POST",
headers: {
"X-API-Key": "your_api_key",
"Content-Type": "application/json"
},
body: JSON.stringify({
applicant_name: "Acme Corp",
applicant_address: "123 Main St, Atlanta, GA 30339",
entity_type: "corporation",
mark_text: "ACME",
goods_services_description: "Software development services",
uspto_classes: [42],
filing_basis: "intent",
contact_email: "legal@acme.com",
contact_phone: "+1-555-0100",
payment_token: "tok_live_abc123"
})
});
const data = await response.json();
console.log(data);Example Response
{
"order_id": "ord_tm_2026_001",
"matter_id": "CMB-TM-2026-0142",
"status": "pending_review",
"estimated_timeline": "7-10 business days",
"conflict_check_summary": {
"conflicts_found": 0,
"risk_level": "low",
"details": "No conflicting marks found in USPTO database"
}
}