Adobe Experience Platform Reactor API

Use the Reactor API to programmatically manage resources and develop tag extensions in Adobe Experience Platform. **Related documentation**: * [Tags overview and UI documentation](https://adobe.com/go/launch_help_en) * [Reactor API guides](https://adobe.com/go/reactor-api-overview) **API paths**: *

GitHub OpenAPI

Operations 137

GET /companies List companies #
GET /companies/{COMPANY_ID} Retrieve a company #
GET /companies/{COMPANY_ID}/properties List a company's properties #
POST /companies/{COMPANY_ID}/properties Create a new property #
GET /companies/{COMPANY_ID}/app_configurations List a company's app configurations #
POST /companies/{COMPANY_ID}/app_configurations Create an app configuration #
GET /properties/{PROPERTY_ID} Retrieve a property #
DELETE /properties/{PROPERTY_ID} Delete a property #
PATCH /properties/{PROPERTY_ID} Update a property #
GET /app_configurations/{CONFIG_ID} Retrieve an app configuration #
DELETE /app_configurations/{CONFIG_ID} Delete an app configuration #
PATCH /app_configurations/{CONFIG_ID} Update an app configuration #
GET /app_configurations/{CONFIG_ID}/company Retrieve the company that owns an app configuration #
GET /properties/{PROPERTY_ID}/company Retrieve the company that owns a property #
GET /properties/{PROPERTY_ID}/callbacks List a property's callbacks #
POST /properties/{PROPERTY_ID}/callbacks Create a new callback #
GET /properties/{PROPERTY_ID}/data_elements List a property's data elements #
POST /properties/{PROPERTY_ID}/data_elements Create a data element #
GET /properties/{PROPERTY_ID}/environments List a property's environments #
POST /properties/{PROPERTY_ID}/environments Create an environment #
GET /properties/{PROPERTY_ID}/extensions List a property's extensions #
POST /properties/{PROPERTY_ID}/extensions Create an extension #
GET /properties/{PROPERTY_ID}/hosts List a property's hosts #
POST /properties/{PROPERTY_ID}/hosts Create a host #
GET /properties/{PROPERTY_ID}/libraries List a property's libraries #
POST /properties/{PROPERTY_ID}/libraries Create a library #
GET /properties/{PROPERTY_ID}/rules List a property's rules #
POST /properties/{PROPERTY_ID}/rules Create a rule #
GET /properties/{PROPERTY_ID}/secrets List a property's secrets #
POST /properties/{PROPERTY_ID}/secrets Create a secret #
GET /callbacks/{CALLBACK_ID} Retrieve a callback #
DELETE /callbacks/{CALLBACK_ID} Delete a callback #
PATCH /callbacks/{CALLBACK_ID} Update a callback #
GET /data_elements/{DATA_ELEMENT_ID} Retrieve a data element #
PATCH /data_elements/{DATA_ELEMENT_ID} Update a data element #
GET /environments/{ENVIRONMENT_ID} Retrieve an environment #
DELETE /environments/{ENVIRONMENT_ID} Delete an environment #
PATCH /environments/{ENVIRONMENT_ID} Update an environment #
GET /secrets/{SECRET_ID} Retrieve a secret #
DELETE /secrets/{SECRET_ID} Delete a secret #
PATCH /secrets/{SECRET_ID} Test or retry a secret #
GET /environments/{ENVIRONMENT_ID}/builds List an environment's builds #
GET /environments/{ENVIRONMENT_ID}/secrets List an environment's secrets #
GET /environments/{ENVIRONMENT_ID}/host Retrieve a host #
GET /environments/{ENVIRONMENT_ID}/relationships/host Retrieve the host relationship for an environment #
GET /environments/{ENVIRONMENT_ID}/library Retrieve an environment's related library #
GET /environments/{ENVIRONMENT_ID}/property Retrieve the property that owns an environment #
GET /extension_packages List extension packages #
POST /extension_packages Create an extension package #
GET /extension_packages/{EXTENSION_PACKAGE_ID} Retrieve an extension package #
POST /extension_packages/{EXTENSION_PACKAGE_ID} Update an extension package #
PATCH /extension_packages/{EXTENSION_PACKAGE_ID} Privately release or discontinue an extension package #
GET /extension_packages/{EXTENSION_PACKAGE_ID}/versions Retrieve an extension package's versions #
GET /extension_packages/{EXTENSION_PACKAGE_ID}/extension_package_usage_authorizations Retrieve extension package usage authorizations for an extension package #
POST /extension_packages/{EXTENSION_PACKAGE_ID}/extension_package_usage_authorizations Create an extension package usage authorization #
GET /extension_package_usage_authorizations Retrieve a list of extension package usage authorizations #
DELETE /extension_package_usage_authorizations/{ID} Delete an extension package usage authorization #
PATCH /extension_package_usage_authorizations/{ID} Update an extension package usage authorization #
GET /extension_package_usage_authorizations/{EXTENSION_PACKAGE_USAGE_AUTHORIZATION_ID}/extension_package Retrieve data for the extension package for an extension package usage authorization #
GET /extensions/{EXTENSION_ID} Retrieve an extension #
DELETE /extensions/{EXTENSION_ID} Delete an extension #
PATCH /extensions/{EXTENSION_ID} Revise an extension #
GET /extensions/{EXTENSION_ID}/extension_package Retrieve the extension package for an extension #
GET /extensions/{EXTENSION_ID}/libraries List the libraries that use an extension #
GET /extensions/{EXTENSION_ID}/property Retrieve an extension's property #
GET /extensions/{EXTENSION_ID}/origin Retrieve an extension's origin #
GET /extensions/{EXTENSION_ID}/revisions List an extension's revisions #
GET /hosts/{HOST_ID} Retrieve a host #
DELETE /hosts/{HOST_ID} Delete a host #
PATCH /hosts/{HOST_ID} Update a host #
GET /hosts/{HOST_ID}/property Retrieve a host's property #
GET /libraries/{LIBRARY_ID} Retrieve a library #
DELETE /libraries/{LIBRARY_ID} Delete a library #
PATCH /libraries/{LIBRARY_ID} Update a library #
GET /libraries/{LIBRARY_ID}/property Retrieve a library's property #
GET /libraries/{LIBRARY_ID}/builds List a library's builds #
POST /libraries/{LIBRARY_ID}/builds Create a build #
GET /libraries/{LIBRARY_ID}/environment Retrieve a library's related environment #
GET /libraries/{LIBRARY_ID}/upstream_library Retrieve a library's upstream library #
GET /libraries/{LIBRARY_ID}/data_elements List a library's related data elements #
GET /libraries/{LIBRARY_ID}/relationships/data_elements List a library's data element relationships #
POST /libraries/{LIBRARY_ID}/relationships/data_elements Add data elements to a specific library. #
DELETE /libraries/{LIBRARY_ID}/relationships/data_elements Remove a library's data element relationships #
PATCH /libraries/{LIBRARY_ID}/relationships/data_elements Replace all data element relationships for a specific library #
GET /libraries/{LIBRARY_ID}/relationships/environment Retrieve a library's environment relationship #
DELETE /libraries/{LIBRARY_ID}/relationships/environment Remove a library's environment relationship #
PATCH /libraries/{LIBRARY_ID}/relationships/environment Set a library's environment relationship #
GET /libraries/{LIBRARY_ID}/extensions List a library's related extensions #
GET /libraries/{LIBRARY_ID}/relationships/extensions List a library's extension relationships #
POST /libraries/{LIBRARY_ID}/relationships/extensions Add extensions to a specific library #
DELETE /libraries/{LIBRARY_ID}/relationships/extensions Remove a library's extensions #
PATCH /libraries/{LIBRARY_ID}/relationships/extensions Replace all extensions for a specific library #
GET /libraries/{LIBRARY_ID}/rules List a library's related rules #
GET /libraries/{LIBRARY_ID}/relationships/rules List a library's rule relationships #
POST /libraries/{LIBRARY_ID}/relationships/rules Add rules to a specific library #
DELETE /libraries/{LIBRARY_ID}/relationships/rules Remove a library's rules #
PATCH /libraries/{LIBRARY_ID}/relationships/rules Replace all rules for a specific library #
GET /builds/{BUILD_ID} Look up a build by ID. #
PATCH /builds/{BUILD_ID} Republish a build #
GET /rules/{RULE_ID} Retrieve a rule #
DELETE /rules/{RULE_ID} Delete a rule #
PATCH /rules/{RULE_ID} Update a rule #
GET /rules/{RULE_ID}/rule_components List a rule's components #
POST /rules/{RULE_ID}/rule_components Create a new rule component #
GET /rules/{RULE_ID}/libraries List all libraries that use a specific rule #
GET /rules/{RULE_ID}/property Retrieve the property that owns a specific rule #
GET /rules/{RULE_ID}/origin Retrieve a rule's related origin #
GET /rules/{RULE_ID}/revisions List a rule's revisions #
GET /rules/{RULE_ID}/rule_component_notes List the notes for a rule's components #
GET /rule_components/{RULE_COMPONENT_ID} Retrieve a rule component #
DELETE /rule_components/{RULE_COMPONENT_ID} Delete a rule component #
PATCH /rule_components/{RULE_COMPONENT_ID} Update a rule component #
GET /rule_components/{RULE_COMPONENT_ID}/extension Look up the extension that provides a specific rule component. #
GET /rule_components/{RULE_COMPONENT_ID}/origin Retrieve a rule component's origin #
GET /rule_components/{RULE_COMPONENT_ID}/rules List the rules that utilize a rule component #
GET /notes/{NOTE_ID} Retrieve a note #
GET /properties/{PROPERTY_ID}/notes List a property's notes #
POST /properties/{PROPERTY_ID}/notes Create a note for a property #
GET /data_elements/{DATA_ELEMENT_ID}/notes List a data element's notes #
POST /data_elements/{DATA_ELEMENT_ID}/notes Create a note for a data element #
GET /secrets/{SECRET_ID}/notes List a secret's notes #
POST /secrets/{SECRET_ID}/notes Create a note for a secret #
GET /secrets/{SECRET_ID}/data_elements List the data elements that reference a secret #
GET /secrets/{SECRET_ID}/environment Retrieve a secret's environment #
GET /secrets/{SECRET_ID}/property Retrieve a secret's property #
GET /extensions/{EXTENSION_ID}/notes List an extension's notes #
POST /extensions/{EXTENSION_ID}/notes Create a note for an extension #
GET /libraries/{LIBRARY_ID}/notes List a library's notes #
POST /libraries/{LIBRARY_ID}/notes Create a note for a library #
GET /rules/{RULE_ID}/notes List a rule's notes #
POST /rules/{RULE_ID}/notes Create a note for a rule #
GET /rule_components/{RULE_COMPONENT_ID}/notes List a rule component's notes #
POST /rule_components/{RULE_COMPONENT_ID}/notes Create a note for a rule component #
GET /audit_events List audit events #
GET /audit_events/{EVENT_ID} Retrieve an audit event #
GET /profile Retrieve the details of the currently logged-in user #
POST /search Perform a search #

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/adobe:adobe-aep-reactor-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

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.

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

OpenAPI Specification

adobe-aep-reactor-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Reactor API
  description: "Use the Reactor API to programmatically manage resources and develop tag extensions in Adobe Experience Platform.\n**Related documentation**:\n  * [Tags overview and UI documentation](https://adobe.com/go/launch_help_en)\n  * [Reactor API guides](https://adobe.com/go/reactor-api-overview)\n\n**API paths**:\n  * Reactor Gateway URL: https://<span>reactor.adobe.io\n  * Example of a complete path for making a call to `/properties`: https://<span>reactor.adobe.io/properties\n\n**Required headers**:\n  * All calls require the headers `Authorization`, `x-gw-ims-org-id`, and `x-api-key`. For more information on how to obtain these values, see the [authentication tutorial](http://www.adobe.com/go/launch-authentication-en).\n  * All GET requests to the Reactor API require an `Accept` header to determine what data is returned by the system. In most cases, this value will be `application/vnd.api+json;revision=#` (where `#` is the revision number of the resource you want to retrieve, e.g. `1`).\n  * All requests with a payload in the request body (such as POST, PUT, and PATCH calls) must include the header `Content-Type`. The specific `Content-Type` value for each call is provided in the parameters sections in the endpoints listed below.\n\n- **API error handling**:\n    - Refer to the Experience Platform API troubleshooting guide for [FAQs](https://experienceleague.adobe.com/docs/experience-platform/landing/troubleshooting.html#faq), [API status codes](https://experienceleague.adobe.com/docs/experience-platform/landing/troubleshooting.html#api-status-codes), and [request header errors](https://experienceleague.adobe.com/docs/experience-platform/landing/troubleshooting.html#request-header-errors)."
  version: '1.0'
servers:
- url: //reactor.adobe.io
tags:
- name: (NEW) Interactive API documentation
  description: You can now interact with the Experience Platform API endpoints directly from this API reference page. Get your [authentication credentials](https://www.adobe.com/go/platform-api-get-credentials-en) and use the **Try it** functionality in the right rail. Note that by using this functionality, you are making real API calls. Keep this in mind when you interact with production sandboxes.
- name: Companies
  description: A company represents the organization of a tags user, typically a business. These companies match 1:1 with IMS Organization IDs. API users will only have visibility into the companies to which they have access. Nearly all API usage is performed using an Adobe I/O integration which is scoped to a single IMS Org, and therefore the /companies endpoint is not a major part of most workflows. Most use cases start with a property instead.
- name: Properties
  description: A property is a container that holds most of the other resources available within the Reactor API. The only resources that are not owned by a property are audit events, companies, extension packages, and profiles. A property belongs to exactly one company, and a company can have many properties.
- name: Data elements
  description: A data element functions as a variable which points to an important piece of data within your application. Data elements are used within rules and extension configurations. When the rule is triggered at runtime in a browser or an application, the value of the data element is resolved and used within the rule.
- name: Rules
  description: Rules control the behavior of the resources contained in a deployed library. A rule is a group of one or more rule components, and exists to tie the rule components together in a logical way.
- name: Rule components
  description: 'Rule components are the individual items that make up a rule. Rule components have three basic types: events (what triggers a rule), conditions (what the rule checks to determine an action), and actions (what the rule executes depending on whether the condition is met). A rule component can **only** belong to exactly one rule.'
- name: Extension packages
  description: An extension package represents a grouping of individual capabilities that can be made available to a tags user. Most commonly, these capabilities come in the form of rule components (events, conditions, and actions) and data elements, but can also include main modules and shared modules. The capabilities provided by an extension package are installed as an extension when it is included in a library.
- name: Extension package usage authorization
  description: An extension package usage authorization is an authorization granted by the package owner to other companies for the private use of the extension package versions.
- name: Extensions
  description: An extension represents the installed instance of an extension package. An extension makes the features defined by an extension package available to a property. These features are leveraged when creating data elements and rule components.
- name: Libraries
  description: A library is a collection of resources (extensions, rules, and data elements) that represent the desired behavior of a property. Libraries are compiled into builds, and those builds are assigned to different environments as they move down the publishing flow from testing to production.
- name: Builds
  description: A tag library is compiled into a build in order for it to be assigned to an environment for testing and deployment. The contents of a build varies depending on the resources included in the library, the configuration of the environment to which the build is assigned, and the platform of the property that the build belongs to.
- name: Environments
  description: An environment indicates the specific host where a build can be deployed, and whether the build should be deployed as a set of files or compressed in an archive format. In the Reactor API, environments are separate from hosts themselves, which are managed by the /hosts endpoint.
- name: Hosts
  description: A host represents a hosted destination where a library build can be delivered and ultimately deployed. Hosts can be either Akamai or SFTP servers.
- name: Secrets
  description: A secret is a resource that represents an authentication credential. Secrets are used in event forwarding to authenticate to another system for secure data exchange. Secrets can only be created within event forwarding properties (properties whose `platform` attribute is set to `edge`).
- name: App configurations
  description: App configurations allow credentials to be stored and retrieved for later use.
- name: Audit events
  description: An audit event is a record of a specific change to another tag resource, generated at the time the change is made. These are system events which can be subscribed to through the use of a callback function.
- name: Callbacks
  description: A callback is a message that Platform sends to a URL host whenever a new audit event is generated.
- name: Notes
  description: Notes are textual annotations that you can add to certain tag resources, such as data elements, extensions, libraries, properties, rules, and rule components.
- name: Profiles
  description: A profile represents a tags user. Platform does not maintain its own database of users and permissions, and instead relies on Adobe IDs managed by Adobe’s company-wide Identity Management System (IMS). A profile contains all the information about the logged-in user, including all the Adobe Orgs to which they belong, the product profiles they belong to within each Org, and the rights they have from each product profile.


# --- truncated at 32 KB (562 KB total) ---
# Full source: https://artifacts.apis.io/adobe/openapi/adobe-aep-reactor-openapi.yml