Lacuna (lacuna.fm), operated by JOYLINK LTD, is an AI music creation platform that turns lyrics or a plain-text style description into complete songs with vocals, alongside lyrics writing, word-level timed lyrics (LRC/SRT/VTT), lyric video export, AI mastering, mashups, stem separation, album-cover art, MIDI tooling and sheet-music conversion, plus long-form AI radio for focus, sleep and ambience. Developers get a documented REST music-generation API (OpenAPI 3.1 published at /api/openapi.json), an official TypeScript SDK, a `lacuna` CLI, and an unusually complete agent surface: a hosted Streamable-HTTP MCP server at /mcp with an anonymous tools/list, an A2A JSON-RPC agent endpoint at /a2a with a published agent card, an RFC 9727 api-catalog, RFC 8414 / RFC 9728 / RFC 7009 OAuth discovery and revocation, an agent-oriented auth.md, an llms.txt, and packaged Agent Skills. The REST contract carries three operations: submit a generation, poll it, and — added since August — a free GET /v1/me that returns the calling credential's plan, credit balance, scopes, key expiry and effective rate limits, which is the only precondition check available on an API that offers no idempotency key, no dry run and no way to cancel or refund a generation once submitted. API access requires a Pro plan or above and is billed in credits per generation.
Lacuna publishes 5 API contracts indexed on the APIs.io network, including Music API Events, Music API, Account API, and 2 more. Tagged areas include AI Music, Music Generation, AI Song Generator, AI Lyrics Generator, and Audio.
The Lacuna catalog on APIs.io includes 1 event-driven AsyncAPI specification and 1 Spectral governance ruleset.
Lacuna’s developer surface includes developer portal, documentation, API reference, getting-started guide, support, engineering blog, pricing, and 37 more developer resources.
Regulatory Posture applies to this provider. Its tags matched the
AI & Biometrics regime, so
Regulatory Posture carries 15 points of the composite.
If this regime is wrong for your business, say so on your
provider repo — the
applicability map is public and we will correct it.
Create-or-Update Ergonomics applies to this provider. This API accepts writes, so it
carries 10 points of the composite. It is scored from the published contracts
themselves: whether a caller can create-or-update in one call, whether the write accepts a key the caller already
holds, and whether the response says which branch ran. Without that, every write needs a search-and-branch in
front of it, and the first time that check is skipped a duplicate record is created.
Scored against the observed mean rather than raw — a provider at the catalog average is unchanged by this facet,
not penalised by it.
The six quality facets above are damped to 75 points between them,
because the conditional facet above carries the other
25. That is why each facet's contribution is shown against a damped
maximum: raising a quality facet moves the composite by 75% of its nominal
weight, not 100%. The full arithmetic is at apis.io/rating/.
Show this score on your site.
It updates itself when the score changes. Paste this where you link to your API docs:
<a href="https://apis.io/providers/lacuna/"><img src="https://apis.io/badge/lacuna/card.svg" alt="Lacuna on APIs.io — Kin Score by API Evangelist"></a>
Other styles, a README pill and a shields.io endpoint are on the badge page.
Raise your score.
Agent readiness — checks not met, largest first (exact, from this profile):
Idempotency+9 pts — OpenAPI mutating operations declare an idempotency key — a header, a request-body property, or a named de-duplication token whose own description says so (verified); else common[].type matches /idempoten/i (documented)
Documented Reversibility+6 pts — a reversal operation in the contract, graded up when a window is documented too
Agentic Commerce Well-Known Document+5 pts — a parsing /.well-known/ucp.json or acp.json declaring a version and at least one service, OR (0.27) a live x402 payment challenge from _data/x402-adoption.json — `self` when its endpoints are on the provider's own domain, `platform` when they are on a vendor's
The Kin Score Market layer reads a provider inside its market:
its position, and how deep its integrations go. Depth is only comparable within a position. Provisional and unweighted:
not part of the Kin Score or agent readiness.
Registered MCP server and declares compatibility are report only — not weighted.
Undeclared means we found nothing we can read, so there is no number: we never infer integrations.
Standards this provider implements or carries. De facto ones are profiled and measured by the API Commons; formal ones come from the standards directory and are linked by the provider's own tags. The evidence column says how each claim was established — not that it was made.
Hosted Model Context Protocol server (Streamable HTTP) at https://www.lacuna.fm/mcp, protocol 2025-06-18. initialize and tools/list answer anonymously and return real input sche...
Agent-to-Agent JSON-RPC endpoint at https://www.lacuna.fm/a2a advertising the "Lacuna Music" agent card at /.well-known/agent-card.json (protocolVersion 0.3.0). One skill, gener...
The outbound event surface of the Lacuna Music API. Lacuna publishes no AsyncAPI document; it describes its events natively in the OpenAPI 3.1 `webhooks` block — four events (jo...
Submits a music generation task to the Lacuna Music API, polls it to a terminal state, and returns the hosted audio URL of the first rendered track. Both operationIds are verifi...
Overlays applied on top of this provider's contracts. Each card says who wrote it: a document the provider publishes, or one API Evangelist derived or generated.
name: Lacuna
description: 'Lacuna (lacuna.fm), operated by JOYLINK LTD, is an AI music creation platform that turns lyrics or a plain-text
style description into complete songs with vocals, alongside lyrics writing, word-level timed lyrics (LRC/SRT/VTT), lyric
video export, AI mastering, mashups, stem separation, album-cover art, MIDI tooling and sheet-music conversion, plus long-form
AI radio for focus, sleep and ambience. Developers get a documented REST music-generation API (OpenAPI 3.1 published at
/api/openapi.json), an official TypeScript SDK, a `lacuna` CLI, and an unusually complete agent surface: a hosted Streamable-HTTP
MCP server at /mcp with an anonymous tools/list, an A2A JSON-RPC agent endpoint at /a2a with a published agent card, an
RFC 9727 api-catalog, RFC 8414 / RFC 9728 / RFC 7009 OAuth discovery and revocation, an agent-oriented auth.md, an llms.txt,
and packaged Agent Skills. The REST contract carries three operations: submit a generation, poll it, and — added since August
— a free GET /v1/me that returns the calling credential''s plan, credit balance, scopes, key expiry and effective rate limits,
which is the only precondition check available on an API that offers no idempotency key, no dry run and no way to cancel
or refund a generation once submitted. API access requires a Pro plan or above and is billed in credits per generation.'
url: https://raw.githubusercontent.com/api-evangelist/lacuna/refs/heads/main/apis.yml
deliveryModel:
model: saas
open_source: false
commercial: true
callable_host: true
label: Hosted service · you call their endpoint
confidence: high
source:
- openapi
- pricing
generated: '2026-08-28'
method: derived
accessModel:
pricing: freemium
onboarding: self-serve
trial: false
try_now: true
public: false
gated: none
gated_source:
- onboarding
label: Freemium · Self-serve signup
confidence: high
source:
- plans
- authentication
- scopes
- rate-limits
- security
generated: '2026-11-06'
method: derived
image: https://www.lacuna.fm/favicon-192x192.png
created: '2026-08-02'
modified: '2026-09-11'
specificationVersion: '0.23'
tags:
- AI Music
- Music Generation
- AI Song Generator
- AI Lyrics Generator
- Audio
- MIDI
- Songwriting
- Generative AI
- MCP Server
- Agent Skills
- A2A
- Developer Tools
- Account
- OAuth
- Authentication
tags_raw:
- AI Music
- Music Generation
- AI Song Generator
- AI Lyrics Generator
- Audio
- MIDI
- Songwriting
- Generative AI
- MCP Server
- Agent Skill
- A2A
- Developer Tools
- Account
- OAuth
- Authentication
apis:
- name: Lacuna MCP Server
description: Hosted Model Context Protocol server (Streamable HTTP) at https://www.lacuna.fm/mcp, protocol 2025-06-18. initialize
and tools/list answer anonymously and return real input schemas; tools/call requires an OAuth 2.0 access token with music:generate
or a lyr_live_ API key. Three tools — generate_music, get_generation, list_models. A stdio sibling ships on npm as lacuna-mcp
for local clients.
humanURL: https://www.lacuna.fm/docs/mcp
baseURL: https://www.lacuna.fm/mcp
tags:
- MCP Server
- Generative AI
- AI Music
- Developer Tools
properties:
- type: MCPServer
url: mcp/lacuna-mcp.yml
- type: ToolCrosswalk
url: mcp/lacuna-tool-crosswalk.yml
- type: Documentation
url: https://www.lacuna.fm/docs/mcp
- name: Lacuna A2A Agent
description: Agent-to-Agent JSON-RPC endpoint at https://www.lacuna.fm/a2a advertising the "Lacuna Music" agent card at
/.well-known/agent-card.json (protocolVersion 0.3.0). One skill, generate_music, which accepts a style description or
a structured data part, runs asynchronously, and returns audio artifacts via tasks/get. Auth is required on every method;
anonymous calls return 401 authentication_error.
humanURL: https://www.lacuna.fm/docs/api
baseURL: https://www.lacuna.fm/a2a
tags:
- A2A
- Agent Skills
- Generative AI
- AI Music
tags_raw:
- A2A
- Agent Skill
- Generative AI
- AI Music
properties:
- type: AgentCard
url: a2a/lacuna-a2a.yml
- type: Documentation
url: https://www.lacuna.fm/docs/api
- aid: lacuna:lacuna-lacuna-music-api-api
name: Lacuna Music API Events
description: 'The outbound event surface of the Lacuna Music API. Lacuna publishes no AsyncAPI document; it describes its
events natively in the OpenAPI 3.1 `webhooks` block — four events (job.completed, job.failed, credits.low, key.expiring)
over a shared WebhookEnvelope, signed HMAC-SHA256 in X-Lacuna-Signature with a five-minute replay window. Zero request
operations by design: this document is the event catalog, subscribed to from the dashboard at /profile/api.'
humanURL: https://www.lacuna.fm/docs/api
baseURL: https://www.lacuna.fm/api
tags:
- Lacuna Music API
properties:
- type: OpenAPI
url: openapi/lacuna-lacuna-music-api-api-openapi.yml
- type: Documentation
url: https://www.lacuna.fm/docs/api
- type: APIReference
url: https://www.lacuna.fm/api/openapi.json
- type: Webhooks
url: asyncapi/lacuna-webhooks.yml
- type: ErrorCatalog
url: errors/lacuna-problem-types.yml
- type: RateLimits
url: rate-limits/lacuna-rate-limits.yml
- aid: lacuna:lacuna-music-api
name: Lacuna Music API
description: Music generation endpoints.
humanURL: https://www.lacuna.fm/docs/api
baseURL: https://www.lacuna.fm/api
tags:
- Music
properties:
- type: OpenAPI
url: openapi/lacuna-music-api-openapi.yml
- type: Documentation
url: https://www.lacuna.fm/docs/api
- type: APIReference
url: https://www.lacuna.fm/api/openapi.json
- type: Webhooks
url: asyncapi/lacuna-webhooks.yml
- type: ErrorCatalog
url: errors/lacuna-problem-types.yml
- type: RateLimits
url: rate-limits/lacuna-rate-limits.yml
- aid: lacuna:lacuna-account-api
name: Lacuna Account API
description: Account, plan and credential introspection.
humanURL: https://www.lacuna.fm/docs/mcp
baseURL: https://www.lacuna.fm/mcp
tags:
- Account
properties:
- type: OpenAPI
url: openapi/lacuna-account-api-openapi.yml
- type: Documentation
url: https://www.lacuna.fm/docs/api
- type: APIReference
url: https://www.lacuna.fm/api/openapi.json
- type: Authentication
url: authentication/lacuna-authentication.yml
- type: ErrorCatalog
url: errors/lacuna-problem-types.yml
- type: RateLimits
url: rate-limits/lacuna-rate-limits.yml
x-enrichment:
date: '2026-09-11'
status: enriched
artifacts_added: 2
pass: local-v3
maintainers:
- FN: JOYLINK LTD
email: support@lacuna.fm
url: https://github.com/JOYLINK-LTD/lacuna-toolkit
common:
- type: AgentSkill
url: skills/lacuna-preflight-and-budget.md
- type: Website
url: https://www.lacuna.fm/
- type: AgenticAccess
url: agentic-access/lacuna-agentic-access.yml
- type: DeveloperPortal
url: https://www.lacuna.fm/docs
- type: Portal
name: AI Music API overview
url: https://www.lacuna.fm/ai-music-api
- type: Documentation
url: https://www.lacuna.fm/docs
- type: APIReference
url: https://www.lacuna.fm/docs/api
- type: GettingStarted
url: https://www.lacuna.fm/docs
- type: Support
url: https://www.lacuna.fm/contact
- type: Blog
url: https://www.lacuna.fm/blog
- type: GitHubOrganization
url: https://github.com/JOYLINK-LTD
- type: Pricing
url: https://www.lacuna.fm/pricing
- type: SignUp
url: https://www.lacuna.fm/signin
- type: TermsOfService
url: https://www.lacuna.fm/terms
- type: PrivacyPolicy
url: https://www.lacuna.fm/privacy
- type: ChangeLog
url: https://www.lacuna.fm/changelog
- type: ChangeLog
name: Lacuna changelog (structured)
url: changelog/lacuna-changelog.yml
- type: OpenAPI
url: openapi/_original/lacuna-music-openapi-original.json
- type: LLMsTxt
url: llms/lacuna-llms.txt
- type: WellKnown
url: well-known/lacuna-well-known.yml
- type: SecurityTxt
url: well-known/lacuna-security.txt
- type: APICatalog
url: well-known/lacuna-api-catalog.json
- type: MCPServer
url: mcp/lacuna-mcp.yml
- type: ToolCrosswalk
url: mcp/lacuna-tool-crosswalk.yml
- type: AgentCard
url: a2a/lacuna-a2a.yml
- type: AgentSkill
url: skills/_index.yml
- type: Packages
url: packages/lacuna-packages.yml
- type: SDKs
url: packages/lacuna-packages.yml
- type: CLI
url: cli/lacuna-cli.yml
- type: Authentication
url: authentication/lacuna-authentication.yml
- type: OAuthScopes
url: scopes/lacuna-scopes.yml
- type: Conventions
url: conventions/lacuna-conventions.yml
- type: ErrorCatalog
url: errors/lacuna-problem-types.yml
- type: Webhooks
url: asyncapi/lacuna-webhooks.yml
- type: Lifecycle
url: lifecycle/lacuna-lifecycle.yml
- type: Conformance
url: conformance/lacuna-conformance.yml
- type: DomainSecurity
url: security/lacuna-domain-security.yml
- type: VulnerabilityDisclosure
url: security/lacuna-vulnerability-disclosure.yml
- type: Security
url: https://www.lacuna.fm/.well-known/security.txt
- type: RateLimits
url: rate-limits/lacuna-rate-limits.yml
- type: Plans
url: plans/lacuna-plans.yml
- type: DataModel
url: data-model/lacuna-data-model.yml
- type: Overlay
url: overlays/lacuna-music-overlay.yaml
- type: Arazzo
name: Generate a Lacuna track and collect the audio
url: arazzo/lacuna-generate-and-collect.yml
x-a2a:
verified: true
probed: '2026-09-26'
url: https://www.lacuna.fm/.well-known/agent-card.json
grade: conformant
protocol_version: 0.3.0
control: 404
Lacuna API — frequently asked questions
Does Lacuna have an API?
Yes. APIs.io lists 5 APIs from Lacuna, including Lacuna MCP Server, Lacuna A2A Agent and Lacuna Music API Events, and 2 more.
Is there an OpenAPI specification for the Lacuna API?
Yes. APIs.io indexes 3 OpenAPI specifications for Lacuna, each linked for download from this page.
How do I authenticate with the Lacuna API?
Lacuna documents its authentication (http/oauth2 · 2 schemes). The details are profiled on APIs.io as Lacuna Authentication.
How much does the Lacuna API cost?
Lacuna publishes its prices; its Basic plan is $19.0 as of 2026-09-11. APIs.io lists 4 pricing plans for Lacuna, with each plan's price, limits and inclusions under Pricing on this page.
Does Lacuna have an MCP server?
Yes. APIs.io lists 1 MCP server for Lacuna: Generate AI music from a style description and optional lyrics. Submit a task, poll it, collect the rendered audio.
Is the Lacuna API ready for AI agents?
Lacuna has a Kin Score of 70.0 out of 100 (exemplar) and an Agent Readiness score of 58.1 (agent-ready), scored by API Evangelist on 2026-11-06.
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.