Developers

Ascen Mark REST API v1

Create filings, upload supporting documents and read live status from your own systems. Every request is authenticated with an API key scoped to your account.

Base URL & versioning

The version lives in the path, so /v1 stays backwards compatible. Responses include an api_version date for additive changes.

https://ascenmark.com/api/public/v1

Authentication

Generate a key on the API keys page. Keys are hashed at rest and shown once. Scopes: filings:read, filings:write.

Authorization: Bearer am_live_xxxxxxxxxxxxxxxxxxxx

Endpoints

GET/v1/filings

List your filings. Query params: limit (1–100), offset, status.

POST/v1/filings

Create a filing. Fees are priced server-side from the public rate card and returned as quote.

GET/v1/filings/{id_or_reference}

Full status: workflow events, assigned local agents, documents and registry records.

POST/v1/filings/{id_or_reference}/documents

Upload a document (multipart file field, or JSON with base64 content). Max 20 MB.

GET/v1/filings/{id_or_reference}/documents

List documents with short-lived signed download URLs.

Create a filing

curl -X POST https://ascenmark.com/api/public/v1/filings \
  -H "Authorization: Bearer $ASCENMARK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "service": "trademark",
    "subject": "ACME CLOUD",
    "units": 1,
    "countries": ["US", "AU", "IN"],
    "applicant_name": "Acme Pty Ltd",
    "applicant_country": "AU",
    "description": "Word mark for SaaS analytics"
  }'
{
  "object": "filing",
  "api_version": "2026-08-01",
  "id": "5f0c…",
  "reference": "AM-2026-K3D9Q",
  "status": "submitted",
  "payment_status": "unpaid",
  "total_usd": 2145,
  "quote": [
    { "country": "US", "government_fee_usd": 350, "professional_fee_usd": 399, "total_usd": 749 }
  ]
}

Upload a document

curl -X POST https://ascenmark.com/api/public/v1/filings/AM-2026-K3D9Q/documents \
  -H "Authorization: Bearer $ASCENMARK_API_KEY" \
  -F "file=@power-of-attorney.pdf"

Read status

curl https://ascenmark.com/api/public/v1/filings/AM-2026-K3D9Q \
  -H "Authorization: Bearer $ASCENMARK_API_KEY"

Errors

Errors use standard HTTP codes with a JSON body: 400 malformed, 401 bad key, 403 missing scope, 404 not found, 413 file too large, 422 validation, 500 server.

{ "error": { "code": "insufficient_scope", "message": "This API key is missing the `filings:write` scope." } }