Opal Labels API

## 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 **Content** inherits labels from **Moment** which inherits labels from **Story**. **Content** also inherits labels from the selected **Account**. If a **Moment** belongs to more than one **Story**, labels are inherited from all related stories (i.e. the labels inherited comprise the union of the labels for each story). For example: ![Label Inheritance](/api/documentation/static/svg/label_inheritance) Inheritance is "broken" when one or more labels is explicitly set directly on a resource. For example, if you set the labels _x_ and _y_ for a piece of **Content**, that content will then only be considered to have exactly the labels _x_ and _y_ and no longer the labels of its parent **Moment** or **Story** (or associated **Account**). The default behavior of the Opal Web frontend is actually such that when **Content** gets explicit direct labels, it takes on all existing inherited labels _and_ the new direct labels, but it does not gain new inherited labels going forward. This behavior is achieved by requesting all of the current labels for that **Content** and then explicitly setting the new labels to all existing inherited labels plus the new labels. ![Broken Label Inheritance at Content](/api/documentation/static/svg/label_inheritance_broken) Inheritance can also be broken by explicitly setting labels on a **Moment**. Using our _x_ and _y_ labels again: ![Broken Label Inheritance at Moment](/api/documentation/static/svg/label_inheritance_broken_at_moment) Notice that **Content** still inherits from **Moment** and **Account** even when **Moment** stops inheriting from **Story**.

Operations 4

GET /labels/v2 Find labels for a Workspace #
POST /labels/v2 Create a new label #
PATCH /labels/v2/{label_id} Update a label #
DELETE /labels/v2/{label_id} Delete a label #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/opal-labels-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

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

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.

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

OpenAPI Specification

opal-labels-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.0.0
  title: Opal Labels API
  license:
    name: Opal API License
    url: https://www.workwithopal.com/api-license
  description: The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.
servers:
- url: https://login.ouropal.com
tags:


# --- truncated at 32 KB (48 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/opal/refs/heads/main/openapi/opal-labels-api-openapi.yml