org_ key is a service identity for partner reads; it cannot publish a module or issue credentials. Keep the admin session for module authoring, then mint the org_ key after the module is published and installed.
1. Create a private module draft
Create the module with the admin session. The server assigns the authenticated organization asowner_organization_id; the request does not accept an owner field. Partner admins create third_party modules. A request for in_house or proprietary returns 403.
409 is a slug a platform or vendor module already holds, or one you already used yourself.
2. Create a version with its manifest
The manifest declares the module’s native event type, the platform canonical event type it maps to, the native payload schema, and the projection.3. Publish the version
Publish with the admin session, not theorg_ key:
422 and the version stays in draft.
4. Install the published version
Install the version for the owning organization with the admin session:5. Issue an organization API key
Now issue anorg_ key from the partner admin session for a service that needs partner reads. The raw_key is returned only in this response, so save it before continuing.
GET /v1/api-keys returns masked metadata only. If the raw key is lost, revoke it and issue a replacement. An organization can have at most 10 enabled keys.
6. Issue an ingest credential
Issue a module credential for the installation. This credential is separate from the organization API key and is accepted only byPOST /v1/ingest.
raw_key as the module credential. It is shown once and is not returned by the credential list endpoint.
7. Sign and send an event
The signature is HMAC-SHA256 over the exact raw body prefixed with the Unix timestamp and a period. The body sent bycurl must be byte-for-byte identical to the body used to compute the signature.
202 Accepted with the durable outcome:
What to remember
- Use an admin session to create, version, publish, install, and issue credentials.
- Use an
org_key for server-side partner reads. Key management, like module authoring, needs the admin session. - Use an
mk_live_module credential, the HMAC signature, and the matchingIdempotency-KeyforPOST /v1/ingest. - A private module is visible and installable only to its owning organization.