The stable REST surface of the Opal marketing planning platform — 66 paths and 97 operations across stories, moments, content, placements, assets, asset references, labels, label sets, stamps, brands, brand settings, accounts, activities, annotations, messages, reactions, budgets, rich text, workflows, workflow assignments/stages/responses and users. Endpoints in the JSON:API, Unstable and Proposed categories are JSON:API-compliant and expect `Accept: application/vnd.api+json`; "Other" endpoints are stable but plain `application/json`. Authenticated with OAuth 2.0 authorization code; a `Session-Token` header is still accepted but is documented as deprecated.
This API exposes
97 operations
across 66 paths,
organized into 31 resource areas,
and defines 31 schemas.
It is described by OpenAPI 3.0.0, at version 2.0.0.
Requests are made against a single base URL, https://login.ouropal.com.
97 operations66 paths31 schemas13 DELETE41 GET14 PATCH27 POST2 PUT
Metadata
The identity and technical contract details declared by the specification.
Opal API v2 declares
2 security schemes
for authenticating requests.
It supports OAuth 2.0 (oauth2) using the authorizationCode flow, exposing 1 scope.
An API key is passed in the header as Session-Token (api_key).
oauth2 — This API uses OAuth 2.0 with the authorization code grant flow. You can find more detailed authentication instructions in the [Authentication Strategies](/api/…
api_key — (Deprecated) This API also supports authentication via an API or session token set in the request headers.
Paths & Operations 97
Across 66 paths, the API surfaces 97 operations — 13 DELETE, 41 GET, 14 PATCH, 27 POST, 2 PUT. They span 31 resource areas, including Accounts, Activities, Annotations, Assets, Url Uploads, Asset References, Asset Reference Options, URL Previews, and 23 more. Each is listed below with its method, path, parameters, and response codes.
Accounts 7
GET
/accounts/{account_id}/placements
List placements associated with given account
ReadPlacementsV02 params→ 200404
POST
/accounts/{account_id}/placements
Create a placement to associate with the given account
CreatePlacementV01 parambody→ 200404
GET
/accounts/{account_id}/placements/{id}
Get placement by ID
ReadPlacementV03 params→ 200404
PATCH
/accounts/{account_id}/placements/{id}
Update placement
UpdatePlacementV02 paramsbody→ 200404
DELETE
/accounts/{account_id}/placements/{id}
Delete placement
DeletePlacementV02 params→ 204404
GET
/accounts/v2
Get all accounts available to the authenticated user
ReadAccountsV24 params→ 200400403404
GET
/accounts/v2/{account_id}
Get the specified account
ReadAccountV22 params→ 200400403404
Activities 5
Activities Overview In Opal, "activities" encompass both things like someone adding an asset to content and also someone sending a chat message. In the user interface, these are c…
GET
/activities/v1/{entity_type}/activity_types
Returns a list of possible activity types for a given object, as specified by the entitytype parameter
ReadActivityTypesV11 param→ 200
GET
/activities/v1/{entity_type}/{entity_id}
Returns all activities for a given object, as specified by the entitytype parameter.
ReadActivitiesV13 params→ 200404
POST
/activities/v1/{entity_type}/{entity_id}
Create an activity for a given moment or piece of content
Assets Overview Assets represent images, videos, PDFs, and any other file uploads. Any upload to the Opal platform must start with an asset. Some resources like boards can be dire…
POST
/assets/v2
Upload an asset available to the authenticated user.
CreateAssetV21 parambody→ 201400401422
GET
/assets/v2
[UNSTABLE] Get a collection of assets available to the authenticated user.
GetAssetsV22 params→ 200400401
GET
/assets/v2/{asset_id}
Get an assets metadata
GetAssetV21 param→ 200400401403404422
Url Uploads 3
GET
/assets/v2/url_uploads/{url_upload_id}
Get a URL upload
GetUrlUploadV22 params→ 200400401404
POST
/assets/v2/url_uploads
Create a url upload
CreateUrlUploadV23 paramsbody→ 201400401404
GET
/assets/v2/url_uploads
Get a collection of URL uploads
ReadUrlUploadsV22 params→ 200400401404
Asset References 4
Asset References Overview In Opal, you create assets to represent files uploaded to the platform and assetreferences to surface those assets for use in the Asset Library, Moments,…
POST
/api/v1/asset_references
Create an asset reference, optionally associated with Opal objects.
CreateAssetReferenceV1body→ 201400401404409422
GET
/api/v1/asset_references/{asset_reference_id}
Get an asset reference available to the authenticated user.
ReadAssetReferencesV11 param→ 200400401422
PATCH
/api/v1/asset_references/{asset_reference_id}
Updates an asset reference and its associations with Opal objects.
Labels Overview In Opal, Labels are a useful way of categorizing resources to be filtered or grouped. Label Inheritance Labels follow StoryFirst inheritance rules. This means that…
GET
/labels/v2
Find labels for a Workspace.
ReadLabelsV25 params→ 200401404
POST
/labels/v2
Create a new label.
CreateLabelV2body→ 201400401409422
PATCH
/labels/v2/{label_id}
Update a label.
UpdateLabelV21 parambody→ 201400401404409422
DELETE
/labels/v2/{label_id}
Delete a label.
DeleteLabelV21 param→ 204400401404
Label Sets 1
GET
/label_sets/v2
Get label sets available to the authenticated user.
ReadLabelSetsV24 params→ 200400401
Messages 1
DELETE
/message/v1/{message_id}
Delete a message
DeleteMessageV21 param→ 200404
Moments 5
GET
/moments/v2
Return all moments available to the authenticated user.
ReadMomentsV26 params→ 200400401422
POST
/moments/v2
Create a new public or private moment.
CreateMomentV2body→ 201400401404409422
GET
/moments/v2/{moment_id}
Return the specified Moment
ReadMomentV24 params→ 200401403404
PATCH
/moments/v2/{moment_id}
Update the specified Moment
UpdateMomentV21 parambody→ 200401403404409
DELETE
/moments/v2/{moment_id}
Delete the specified Moment
DeleteMomentV21 param→ 202401403404
Phase Items 2
GET
/phase_items/v2
Return all phase items available to the authenticated user.
Create a richtext object, given creator entitytype and entityid
CreateRichTextV12 paramsbody→ 201404422500
Services 1
GET
/services/v2
Returns a list of Services
ReadServicesV24 params→ 200
Stamps 1
Stamps Overview In Opal, a Stamp acts as a pre-configured template for creating moments or content. The stamptype attribute specifies if the stamp is intended for moments or conte…
GET
/stamps/v2
Show all stamps
ReadStampsV22 params→ 200404
Stories 4
GET
/stories/v2/{story_id}
Find a Story by ID
ReadStoryV21 param→ 200404
PATCH
/stories/v2/{story_id}
Update the specified story
UpdateStoryV21 parambody→ 200400403404
GET
/stories/v2
Get a collection of stories
ReadStoriesV24 params→ 200
POST
/stories/v2
Create a story
CreateStoryV2body→ 201400403404
Users 5
GET
/users/v2/{user_id}
Return a user by ID
ReadUserV22 params→ 200401
PATCH
/users/v2/{user_id}
Update the specified user
UpdateUserV21 parambody→ 200400403404422
GET
/users/v2/me
Return the authenticated user
ReadMeV22 params→ 200401
PATCH
/users/v2/me/moments_setting
Update the Moments Setting for the authenticated user
UpdateMomentsSettingV2body→ 200400403404
GET
/users/v2/users
List all users in the requesting users Opal
ReadUsersV25 params→ 200401
User Domain Views 1
POST
/user_domain_views/v2/user_domain_views
Create a User Domain View
CreateUserDomainViewV2body→ 200400401422
Workflows 17
Workflows Overview In Opal, a workflow is an arrangement of tasks and approvals required to progress through the lifecycle of a StoryFirst resource. Historical Note: The v2 Workfl…
The contract defines 31 schemas that model the data the API accepts and returns. The most detailed are user (5 properties), opal (5 properties), content (5 properties), brand (5 properties). Each schema is shown below with its type and property counts.
account
object
4 properties4 required
asset
object
4 properties4 required
asset_reference
object
4 properties4 required
assignment
object
4 properties4 required
brand
object
5 properties4 required
budget
object
4 properties4 required
content
object
5 properties5 required
context
object
4 properties4 required
dispatch_provider
object
3 properties3 required
label
object
4 properties4 required
label_set
object
4 properties4 required
link
object
4 properties4 required
link_data
object
4 properties4 required
moment
object
4 properties4 required
moments_setting
object
4 properties4 required
opal
object
5 properties5 required
option
object
4 properties4 required
option_value
object
3 properties3 required
phase_item
object
4 properties3 required
plan
object
3 properties3 required
post_component
object
4 properties4 required
post_option
object
4 properties4 required
response
object
4 properties4 required
rich_text_document
object
4 properties4 required
service
object
4 properties4 required
stage
object
4 properties4 required
stamp
object
4 properties4 required
story
object
4 properties3 required
user
object
5 properties4 required
user_profile
object
4 properties4 required
workflow
object
5 properties3 required
Specification
The full machine-readable OpenAPI contract behind this narrative.
Every API here is available over the API and to AI agents over MCP. APIs is not yet its own endpoint on the v1 API. Reach this content through network search and the tag graph, or the MCP server below.
Installs https://mcp.apievangelist.com/mcp in Claude, Cursor, VS Code and the rest — one button, every client.
MCP tools for apis
4 tools reach this content
search_api_evangelistSearch every content type across the network at once.
find_relatedThe shared-tag relevance graph — what else covers this.
get_tagEverything one tag labels, across all content types.
guide_topicPRO — a curated bundle for a topic: area, guidance, rules, papers, stories, services.
A second provider on the same verified email joins the account you already have.
Your account
ⓘWhere this information came from
This is an independent, third-party profile of Opal API v2, published by
API Evangelist. We do not operate, host, resell, or
support these APIs, and we are not affiliated with or endorsed by the company unless stated above.
Everything here is built from publicly available information — the company's own site,
developer portal, documentation, public repositories, and the specifications it publishes for public use.
Nothing is obtained by breaching a system, defeating an access control, or using credentials.
The Kin Score and Agent Readiness rating are independently calculated assessments of a company's
public API artifacts, scored against a published rubric. They are not certifications,
endorsements, security assessments, or audits.
Corrections, re-scores, and removal are free — no partnership or purchase required, and
you do not need to justify the request. A removed company is recorded as unrated, never scored
zero for having asked. Acknowledgement within one business day; removal within two.
info@apievangelist.com
·
Read the full data-sourcing policy → On a security or compliance team? Put security in the subject line and
you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.