Privacy and analytics

We use necessary technical cookies and, only with your consent, analytics and marketing pixels to improve the website and measure campaigns.

Privacy policyCookie policy
Docs
English
EspañolEnglishFrançaisDeutschItalianoPortuguês

Getting started

  • What is Nömad?
  • Getting started with Nömad
  • Create your brand and complete the Genome
  • Invite your team
  • Glossary

Brand OS

  • What is inside Brand OS
  • What is the Genome?
  • Who is Nödo?
  • Talk to Nödo: voice, cards and ordering from the Store
  • Conversations: your team and Nödo
  • What does a Brand Manager do?
  • Brand Kit and Library
  • Posts and calendar
  • Connections
  • Meetings
  • Files we send you with NödoTransfer
  • Your quotes

Work

  • Work and tasks
  • Ordering work
  • Following, reviewing and approving deliveries
  • Approving the posts Nömad prepares
  • Custom quotes
  • Brand history
  • Yes, there are humans behind it

Account and billing

  • Plans and pricing
  • Billing and payments
  • Paying from the apps (iPhone and Android)
  • People and access
  • Organization and brand roles
  • Workspaces and multiple brands
  • Your name and @username
  • Languages, apps and data
  • Leave, close or delete: account, brands and workspaces
  • Delete and restore: what goes and what stays
  • Inbox and notifications: how we let you know
  • Push notifications on your phone and browser
  • Nömad emails and your preferences

Help

  • How to get help

API

  • Brand API
    • Errors
    • Permissions and roles
    • Events and webhooks
    • Brand
    • Genome
    • Brand Kit
    • Library
    • Works
    • Calendar
    • Connections
    • Publishing
    • Inbox
    • Team
    • Account and team
    • Conversation
    • Memory
    • Questions
    • Media
    • Store
    • Plan
    • Orders
    • Activity
    • Workspace
    • Your account
    • Billing
    • Sync
    • Website and domains
    • Statistics
    • Events

MCP

  • MCP server

Connectors

  • Brand connectors

Nödo and agents

  • Nödo in the brand

Genome

  • Genome specification
API
Guide3 min read

Brand API

Methods, authentication, writes, idempotency, pagination and errors.

On this page
  • Calling a method
  • Authentication
  • Brand
  • Writes
  • Pagination
  • Errors
  • Versioning

Updated on January 1, 1970

Русский
한국어
日本語
中文
हिन्दी
Open the app
PreviousHow to get help
NextErrors
Can't find what you need? Write to usWrite to usGo to the app
© 2026 Nömad · Nömad documentationLinkedInInstagramThreadsFacebookTikTokYouTubeX
Go to nomad.oooBack to top

On this page

  • Calling a method
  • Authentication
  • Brand
  • Writes
  • Pagination
  • Errors
  • Versioning

Everything that can be done inside a Nömad brand is defined once as a capability. The same capability serves Nödo in chat, an external agent over MCP and an integration over HTTP. There are 532 capabilities across 26 areas; 530 are available and the rest roll out in phases.

Status. Capabilities marked «Available» work today over HTTP with scoped keys, over MCP and through Nödo, all behind the same permission gate. The rest roll out in phases; this page is generated from the code and changes with it.

Calling a method

Each capability is a method: POST to its id with a JSON body carrying the brand and the input. The response is JSON with the typed output.

curl https://app.nomad.ooo/api/v1/works.list \
  -H "Authorization: Bearer nmu_live_v1_…" \
  -H "Content-Type: application/json" \
  -d '{ "brand": "BRD-8C1TZA", "status": "active", "limit": 10 }'
{
  "data": {
    "items": [{ "id": "…", "name": "Identidad visual", "status": "in_progress", "dueDate": null,
                "progress": { "done": 3, "total": 7 }, "waitingOnBrand": 1 }],
    "nextCursor": null
  }
}

Every successful answer is { "data": … }. Every answer carries X-Request-Id (quote it to support), X-Nomad-Api-Version and RateLimit with what is left of the minute. An error is application/problem+json (RFC 9457) with a stable code.

Authentication

  • Personal tokens nmu_live_v1_…, in your account › Developers. They act as you, only with the permissions and brands you choose.
  • Service accounts nmw_live_v1_…, in the workspace › Developers. An identity of the organisation with its own access to brands: it keeps working when whoever made it leaves.
  • A token never grants more than its holder has in the app: every call intersects its permissions with the live role in that brand. They expire after 90 days by default (7, 30, 90 days, a year or the day you pick); if you need it, one can have no expiration. They rotate without downtime (the old one keeps working up to 7 days) and revoke at once.
  • Every token carries a checksum: a secret scanner recognises it without asking us. If you find one where it should not be, send it to POST /api/credentials/revoke and it is revoked, no sign-in needed.
  • Revoking the token, removing the person or service account from the brand, or closing the brand cuts access on the next call.

Brand

The brand field accepts the short id (BRD-8C1TZA) or the UUID. Call brands.list or GET /api/v1/me to see which brands a token can use.

Writes

With a token a write happens at once, as if its holder made it in the app: it is your integration. Outside agents (Claude, ChatGPT…) come in through MCP and follow the brand's agent policy: read only, with the person's approval, or direct.

Send Idempotency-Key (8 to 128 characters) on every write you may retry: the same key with the same input answers once for 24 hours (Idempotent-Replayed: true on the replay) and with another input answers idempotency_conflict.

Every write with expectedRevision fails with revision_conflict if the record changed meanwhile: read again and retry.

Pagination

Lists return items and nextCursor. Pass cursor for the next page; limit goes from 1 to 50.

Errors

Every error has a stable code, its HTTP status and, when it helps, detail (the missing permission) or issues (the fields). A usage refusal also carries usage and message, a sentence you can show as is. The full list is in Errors.

HTTP/1.1 403 Forbidden
Content-Type: application/problem+json

{
  "type": "https://docs.nomad.ooo/en/api/errors#error-insufficient_scope",
  "title": "Insufficient scope",
  "status": 403,
  "code": "insufficient_scope",
  "detail": "works.write",
  "request_id": "…"
}

Versioning

Changes are additive: new optional fields and new capabilities. A published id never changes meaning; when one must be replaced the old one keeps working while the new one is announced.