Lacuna · AsyncAPI Specification

Lacuna Webhooks

Version

View Spec View on GitHub AI MusicMusic GenerationAI Song GeneratorAI Lyrics GeneratorAudioMIDISongwritingGenerative AIMCP ServerAgentSkillA2ADeveloper ToolsAsyncAPIEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-09'
method: derived
source: openapi/lacuna-music-openapi-original.json
spec_type: Webhooks
note: >-
  Lacuna publishes no AsyncAPI document (/asyncapi.yaml and /api/asyncapi.json both 404, and nothing in
  the GitHub org). It does, however, describe its event surface natively in the OpenAPI 3.1 `webhooks`
  block with full JSON Schema payloads — four outbound events, a shared envelope, and a documented HMAC
  signature scheme. This artifact is the derived catalog of that surface; it is NOT an AsyncAPI and is
  not offered as one.
transport: HTTPS POST to a subscriber-configured endpoint
subscribe_at: https://www.lacuna.fm/profile/api
envelope:
  schema: '#/components/schemas/WebhookEnvelope'
  required: [id, type, created, data]
  fields:
    - {name: id, type: string, example: evt_abc123}
    - {name: type, type: string, description: Event name.}
    - {name: created, type: integer, description: Unix timestamp in seconds.}
    - {name: data, type: object, description: Event-specific payload.}
security:
  signature_header: X-Lacuna-Signature
  format: 't=<unix-seconds>,v1=<hex>'
  algorithm: HMAC-SHA256
  signed_payload: '`${timestamp}.${rawBody}`'
  verification: >-
    Recompute the HMAC with the endpoint secret and compare; reject if the timestamp is more than five
    minutes old or the signatures do not match.
  helpers: 'lacuna-sdk ships packages/sdk/src/webhooks.ts'
delivery:
  ack: Any 2xx response prevents retry.
  retry_policy: not published
events:
  - name: job.completed
    summary: Music generation completed
    description: Sent when a task transitions to `ready`. `tracks` carries the final hosted audio URLs.
    schema: '#/components/schemas/JobCompletedEvent'
    data_fields: [task_id, status, tracks, credits_used, created_at]
    related_operation: openapi/lacuna-music-openapi-original.json#getGeneration
  - name: job.failed
    summary: Music generation failed
    description: Sent when the task transitions to `failed`. Credits are refunded automatically.
    schema: '#/components/schemas/JobFailedEvent'
    data_fields: [task_id, status, error, credits_refunded, created_at]
  - name: credits.low
    summary: Credit balance dropped below threshold
    description: >-
      Edge-triggered — fires once when the balance crosses below `creditAlertThreshold` and will not
      re-fire until the balance rises above the threshold and crosses again.
    schema: '#/components/schemas/CreditsLowEvent'
    data_fields: [threshold, balance, subscription_credits, onetime_credits]
  - name: key.expiring
    summary: API key expiring within 24 hours
    description: Sent once per key, 24 hours before expiry.
    schema: '#/components/schemas/KeyExpiringEvent'
    data_fields: [api_key_id, prefix, name, expires_at, days_until_expiry]
ui_events_not_webhooks:
  note: >-
    The August 9 2026 changelog adds in-product completion notifications for stem splits, mastering,
    artwork and mixdowns. Those are product notifications, not documented webhook event types — only the
    four events above appear in the OpenAPI webhooks block.
gaps:
  - No AsyncAPI document is published for this event surface.
  - No retry/backoff policy is documented for failed deliveries.
  - Event types are limited to the music-generation product; the other tools emit no webhooks.

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/lacuna-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.