# Opal > Opal is a marketing planning and content calendar platform. Marketing and communications teams > use it as a single visual workspace to plan campaigns, build editorial calendars, manage creative > workflows and approvals, and connect strategy to execution across channels and markets. Opal > publishes three OpenAPI 3.0 definitions — v2, v3 and an Asgard BFF service — from > login.ouropal.com. The documentation is public; API credentials are not: Opal states access > requires an active account or an NDA plus approval from Opal leadership, and OAuth client > registration is a manual process handled by its integrations team. Generated by API Evangelist on 2026-08-13. Opal does not publish an llms.txt of its own (https://workwithopal.com/llms.txt returns the WordPress HTML page, not a document), so this file is generated from the provider's published artifacts. Base URL for all three APIs: https://login.ouropal.com ## APIs - [Opal API v2](https://login.ouropal.com/api/documentation/v2): The recommended, more complete surface — 66 paths / 97 operations across stories, moments, content, placements, assets, asset references, labels, stamps, brands, accounts, activities, annotations, reactions, budgets, rich text, workflows and users. JSON:API-compliant on the JSON:API / Unstable / Proposed categories. - [Opal API v3](https://login.ouropal.com/api/documentation/v3): Work in progress — 97 paths / 154 operations across boards, board objects, blocks, categories, charts, custom fields, views, filter sets, key dates, moments, content schedules, stories, rich text documents, presentation themes, user groups, workspaces, bulk operations, workflows, channels and Gem chats. - [Opal Asgard BFF API](https://login.ouropal.com/api/documentation/asgard_bff): 11 workspace-scoped backend-for-frontend operations. Every operation is Unstable, Proposed or Experimental. ## Specs - [OpenAPI v2](openapi/opal-v2-openapi.yml): OpenAPI 3.0.0, harvested verbatim from https://login.ouropal.com/api/documentation/static/v2/opal.json - [OpenAPI v3](openapi/opal-v3-openapi.yml): OpenAPI 3.0.0, harvested verbatim from https://login.ouropal.com/api/documentation/static/v3/opal.json - [OpenAPI Asgard BFF](openapi/opal-asgard-bff-openapi.yml): OpenAPI 3.0.0, harvested verbatim from https://login.ouropal.com/api/documentation/static/asgard_bff/opal.json ## How to call it - Auth: OAuth 2.0 authorization code. Authorize at https://login.ouropal.com/oauth2/auth, exchange the code at https://login.ouropal.com/oauth2/token, then send `Authorization: Bearer `. Request the `offline_access` scope to receive a refresh token. Access tokens expire in 3600s. A server-to-server client-credentials flow exists for onboarding only (`write:onboarding`). A `Session-Token` header is still accepted but Opal documents it as deprecated. - Media type: set `Accept: application/vnd.api+json` on JSON:API endpoints; `Accept: application/json` on the v2 "Other" category. - Errors: JSON:API error documents — `{"errors":[{"status","title","detail","code"}]}`. NOT RFC 9457. - 404 is not proof of absence: Opal's published "Obscurity" principle returns 404 instead of 403 for many authorization failures. - Pagination/shaping: `page[offset]`, `page[limit]`, `filter[...]`, `sort`, `include`, `fields`. Opal's "Firehose Rule" means endpoints return everything the caller can see unless narrowed. - No idempotency keys, no published rate limits, no Sunset/Deprecation headers. ## Artifacts - [Authentication](authentication/opal-authentication.yml) - [OAuth scopes](scopes/opal-scopes.yml) - [Conventions](conventions/opal-conventions.yml) - [Error catalog](errors/opal-problem-types.yml) - [Data model](data-model/opal-data-model.yml) - [Lifecycle](lifecycle/opal-lifecycle.yml) - [Conformance](conformance/opal-conformance.yml) - [Changelog](changelog/opal-changelog.yml) - [Plans and pricing](plans/opal-plans-pricing.yml) - [Rate limits](rate-limits/opal-rate-limits.yml) - [Well-known probe](well-known/opal-well-known.yml) - [MCP candidate](mcp/opal-mcp.yml) - [Agent skills](skills/_index.yml) - [Domain security](security/opal-domain-security.yml) - [Trust center](security/opal-trust-center.yml) ## Docs - [Opal API reference index](https://login.ouropal.com/api/documentation) - [How to get API access](https://help.workwithopal.com/article/17imdltzi1-opal-api) - [Opal API License](https://workwithopal.com/api-license/) - [Help center](https://help.workwithopal.com/) - [Getting started](https://help.workwithopal.com/category/knashxt7tw-getting-started) - [Integrations](https://workwithopal.com/integrations/) - [Changelog](https://help.workwithopal.com/article/42ysdzfa2y-change-log) - [Security and compliance](https://workwithopal.com/security/) - [Pricing](https://workwithopal.com/pricing/)