Entities
All 35 core entities across 11 product domains.
Every entity exists because headless.ly needs it to run itself as an autonomous business.
Base Meta-Fields
Every Digital Object carries these $ meta-fields automatically — you never declare them in a Noun, but they're always present:
{
$type: 'Contact', // TypeScript discriminator
$id: 'contact_fX9bL5nRd', // unique, type-prefixed
$context: 'https://headless.ly/~acme', // tenant namespace
$version: 7, // event-sourcing version
$createdAt: '2025-01-15T...',
$createdBy: 'user_Qm8xNfKpL',
$updatedAt: '2025-02-07T...',
}$context supports custom domains — if Acme maps api.acme.com to their org, then https://headless.ly/~acme and https://api.acme.com resolve to the same data.
Domains
| Domain | Package | Entities | Count |
|---|---|---|---|
| Identity | @headlessly/sdk | User, ApiKey | 2 |
| CRM | @headlessly/crm | Organization, Contact, Lead, Deal, Activity, Pipeline | 6 |
| Billing | @headlessly/billing | Customer, Product, Plan, Price, Subscription, Invoice, Payment | 7 |
| Projects | @headlessly/projects | Project, Issue, Comment | 3 |
| Content | @headlessly/content | Content, Asset, Site | 3 |
| Support | @headlessly/support | Ticket | 1 |
| Analytics | @headlessly/analytics | Event, Metric, Funnel, Goal | 4 |
| Marketing | @headlessly/marketing | Campaign, Segment, Form | 3 |
| Experimentation | @headlessly/experiments | Experiment, FeatureFlag | 2 |
| Platform | @headlessly/platform | Workflow, Integration, Agent | 3 |
| Communication | @headlessly/sdk | Message | 1 |
All entities share the same interface: create, get, find, update, delete, count, plus custom verbs defined on each Noun.
All 35 Entities
The complete entity reference, alphabetical. Every entity supports CRUD automatically. Custom verbs add domain-specific lifecycle.
| # | Entity | Domain | Custom Verbs |
|---|---|---|---|
| 1 | Activity | CRM | complete, cancel |
| 2 | Agent | Platform | deploy, pause, retire |
| 3 | ApiKey | Identity | revoke |
| 4 | Asset | Content | — |
| 5 | Campaign | Marketing | launch, pause, complete |
| 6 | Comment | Projects | — |
| 7 | Contact | CRM | qualify |
| 8 | Content | Content | publish, archive, schedule |
| 9 | Customer | Billing | — |
| 10 | Deal | CRM | close, win, lose |
| 11 | Event | Analytics | — |
| 12 | Experiment | Experimentation | start, conclude, pause |
| 13 | FeatureFlag | Experimentation | rollout, enable, disable |
| 14 | Form | Marketing | publish, archive |
| 15 | Funnel | Analytics | — |
| 16 | Goal | Analytics | achieve |
| 17 | Integration | Platform | connect, disconnect |
| 18 | Invoice | Billing | pay, void |
| 19 | Issue | Projects | assign, close, reopen |
| 20 | Lead | CRM | convert, lose |
| 21 | Message | Communication | send, deliver, read |
| 22 | Metric | Analytics | — |
| 23 | Organization | CRM | — |
| 24 | Payment | Billing | refund |
| 25 | Pipeline | CRM | — |
| 26 | Plan | Billing | — |
| 27 | Price | Billing | — |
| 28 | Product | Billing | — |
| 29 | Project | Projects | archive, complete |
| 30 | Segment | Marketing | — |
| 31 | Site | Content | — |
| 32 | Subscription | Billing | pause, cancel, reactivate, upgrade, downgrade |
| 33 | Ticket | Support | resolve, escalate, close, reopen |
| 34 | User | Identity | invite, suspend, activate |
| 35 | Workflow | Platform | activate, pause, archive |