Skip to main content
This page collects the public structures of objects returned by the Exode API and webhooks. The set of fields strictly matches the server-side zod schemas of the public contracts: internal and private fields are not returned.
List methods (.../list/raw) often return a compact projection of an object. The full structure of each entity is described on its page below.

Users and access

User

user and profile: logins, contacts, statuses, extId, permissions.

Session

session: authorization token, device, online status.

Group

group: learning/product groups, restrictions, Telegram.

Group member

groupMember: the link between a user and a group, blocks.

Learning and sales

Course and learning

course, courseProgress, courseLesson, courseLessonPractice, courseLessonPracticeAttempt.

Product and accesses

product, productAccess, productPrice, discount.

Payment and invoice

payment, invoice, invoiceProduct, acquiring.

School and seller

school, seller, organization.

Certificate

certificate: a personalized course completion certificate and its verification.

Forms

Forms and fields

formLayout and formFieldValue: form layouts and custom field values.

General field conventions

  • Dates (createdAt, expireAt, …) are ISO 8601 strings (UTC). Fields with the At suffix and a null value mean that the event has not occurred.
  • Money fields (totalAmount, amount, balance, …) are numbers.
  • Audit fields are present on most entities: id, createdAt, updatedAt, archivedAt.
  • *Id fields reference another entity (for example, courseId, userId).
  • Optional fields (type … | null, not marked required) may come with a null value or be absent entirely — handle both cases.
  • Enum values are PascalCase strings (Active, OnReview); compare them case-sensitively.

Updated: 2026-09-25 14:33 UTC