# Opal Categories API

**Canonical:** https://apis.io/apis/opal/opal-categories-api/  
**Provider:** Opal — https://apis.io/providers/opal/  
**Base URL:** https://login.ouropal.com  
**Documentation:** https://login.ouropal.com/api/documentation/v2

Opal Categories API is one of 79 APIs that [Opal](https://apis.io/providers/opal/) publishes on the [APIs.io](https://apis.io/) network, described by a machine-readable OpenAPI specification. Tagged areas include Categories. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, and an API reference.

## Overview Categories are in a tree: a given category has zero or more ancestors and zero or more descendants. The tree is built by recursively following `parent_category` relationships. Currently our trees are at most two nodes deep (that is, a root with zero or more leaves), but clients **MUST** be able to handle trees of any depth. ### Category type and custom fields Categories can be associated with [Category Types](/api/documentation/v3#tag/Category-Types), determining which [Custom Fields](/api/documentation/v3#tag/Custom-Fields) are available to [Blocks](/api/documentation/v3#tag/Blocks) in the category. If the category has a relationship with a deactivated category type it is considered to have no category type. ### <q>Effective</q> category type The <q>effective</q> category type allows the category to inherit a category type relationship. *Note:* The following description of the algorithm is informational: clients that want the <q>effective</q> category type **MUST** use the `effective_category_type_id` property in the category resource object’s `meta` information, and **MUST NOT** manually compute the value using this algorithm, as the exact behavior may change without warning. If the given category has a relationship with an active (not deactivated, not deleted) category type that is the <q>effective</q> category type. If the given category does *not* have a relationship with an active category type, any ancestors that have a relationship with an active category type are selected, and the nearest ancestor (the ancestor with the largest `depth`) provides the <q>effective</q> category type. If the given category has no ancestors, or none of its ancestors have a relationship with an active category type, *and* the view *does* have a relationship to an active category type, the view’s category type is the <q>effective</q> category type. If none of the above conditions are met, the category does not have an <q>effective</q> category type. *Note*: The behavior doesn’t change based on where the given category is in the tree — the logic is the same for the root, leaves, and everything in-between. This is why the following table refers to ‘parent’ and ‘grandparent’, rather than using tree terminology. In the following * ‘✓’ means the column’s entry is associated to an active category type * the parent and grandparent demonstrate inheritance behavior if the given category has ancestors with an associated active category type | view | grandparent category | parent category | given category | <q>effective</q> category type comes from… | | :----: | :--------------------: | :---------------: | :--------------: | -------------------- | | | | | ✓ | given | | | | ✓ | ✓ | given | | | ✓ | | ✓ | given | | ✓ | | | ✓ | given | | | | ✓ | | parent | | | ✓ | ✓ | | parent | |✓ | | ✓ | | parent | | | ✓ | | | grandparent | | ✓ | ✓ | | | grandparent | | ✓ | | | | view | | | | | | 🚫 (no category type) |

## Machine-readable artifacts (6)

- **OpenAPI** — https://raw.githubusercontent.com/api-evangelist/opal/refs/heads/main/openapi/opal-categories-api-openapi.yml
- **Documentation** — https://login.ouropal.com/api/documentation/v2
- **APIReference** — https://login.ouropal.com/api/documentation/v2
- **Documentation** — https://login.ouropal.com/api/documentation/v3
- **APIReference** — https://login.ouropal.com/api/documentation/v3
- **Documentation** — https://login.ouropal.com/api/documentation/asgard_bff

## Other Opal APIs (12)

- [Opal Accounts API](https://apis.io/apis/opal/opal-accounts-api/)
- [Opal Activities API](https://apis.io/apis/opal/opal-activities-api/)
- [Opal Annotations API](https://apis.io/apis/opal/opal-annotations-api/)
- [Opal Asset Reference Options API](https://apis.io/apis/opal/opal-asset-reference-options-api/)
- [Opal Asset Reference Usage Rights Options API](https://apis.io/apis/opal/opal-asset-reference-usage-rights-options-api/)
- [Opal Asset References API](https://apis.io/apis/opal/opal-asset-references-api/)
- [Opal Assets API](https://apis.io/apis/opal/opal-assets-api/)
- [Opal Block Connectors API](https://apis.io/apis/opal/opal-block-connectors-api/)
- [Opal Block Custom Field Values API](https://apis.io/apis/opal/opal-block-custom-field-values-api/)
- [Opal Block Duplication API](https://apis.io/apis/opal/opal-block-duplication-api/)
- [Opal Blocks API](https://apis.io/apis/opal/opal-blocks-api/)
- [Opal Board Collaborators API](https://apis.io/apis/opal/opal-board-collaborators-api/)

## Tags

Categories

---

Profiled by [API Evangelist](https://apievangelist.com) and published on [APIs.io](https://apis.io/apis/opal/opal-categories-api/). The API's provider profile, Kin Score and agent-readiness rating are at https://apis.io/providers/opal/.
