Libraries endpoint
A library is a collection of tag resources (extensions, rules, and data elements) that represent the desired behavior of a property. The /libraries
endpoint in the Reactor API allows you to programmatically manage libraries within your tag properties.
A library belongs to exactly one property. A property can have many libraries.
Getting started
The endpoint used in this guide is part of the Reactor API. Before continuing, please review the getting started guide for important information regarding how to authenticate to the API.
Before working with libraries in the Reactor API, it is important to understand the roles that library state and environments play in determining what actions you can make on a particular library. See the guide on the library publishing flow for more information.
Retrieve a list of libraries list
You can retrieve a list of libraries for a property by including the property’s ID in the path of a GET request.
API format
GET /properties/{PROPERTY_ID}/libraries
PROPERTY_ID
id
of the property that owns the libraries.created_at
name
published_at
stale
state
updated_at
Request
curl -X GET \
https://reactor.adobe.io/properties/PR4bc17fb09ed845b1acfb0f6600a1f3c0/libraries \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H "Content-Type: application/vnd.api+json" \
-H 'Accept: application/vnd.api+json;revision=1'
Response
A successful response returns a list of libraries for the specified property.
{
"data": [
{
"id": "LBb174d60bdbd34f87a2e9466fadaacae0",
"type": "libraries",
"attributes": {
"created_at": "2020-12-14T17:44:10.776Z",
"name": "My Library",
"published_at": null,
"state": "development",
"updated_at": "2020-12-14T17:44:10.776Z",
"build_required": true
},
"relationships": {
"builds": {
"links": {
"related": "https://reactor.adobe.io/libraries/LBb174d60bdbd34f87a2e9466fadaacae0/builds"
}
},
"environment": {
"links": {
"self": "https://reactor.adobe.io/libraries/LBb174d60bdbd34f87a2e9466fadaacae0/relationships/environment"
},
"data": null
},
"data_elements": {
"links": {
"related": "https://reactor.adobe.io/libraries/LBb174d60bdbd34f87a2e9466fadaacae0/data_elements",
"self": "https://reactor.adobe.io/libraries/LBb174d60bdbd34f87a2e9466fadaacae0/relationships/data_elements"
}
},
"extensions": {
"links": {
"related": "https://reactor.adobe.io/libraries/LBb174d60bdbd34f87a2e9466fadaacae0/extensions",
"self": "https://reactor.adobe.io/libraries/LBb174d60bdbd34f87a2e9466fadaacae0/relationships/extensions"
}
},
"notes": {
"links": {
"related": "https://reactor.adobe.io/libraries/LBb174d60bdbd34f87a2e9466fadaacae0/notes"
}
},
"rules": {
"links": {
"related": "https://reactor.adobe.io/libraries/LBb174d60bdbd34f87a2e9466fadaacae0/rules",
"self": "https://reactor.adobe.io/libraries/LBb174d60bdbd34f87a2e9466fadaacae0/relationships/rules"
}
},
"upstream_library": {
"data": null
},
"property": {
"links": {
"related": "https://reactor.adobe.io/libraries/LBb174d60bdbd34f87a2e9466fadaacae0/property"
},
"data": {
"id": "PR4bc17fb09ed845b1acfb0f6600a1f3c0",
"type": "properties"
}
},
"last_build": {
"links": {
"related": "https://reactor.adobe.io/libraries/LBb174d60bdbd34f87a2e9466fadaacae0/last_build"
},
"data": null
}
},
"links": {
"property": "https://reactor.adobe.io/properties/PR4bc17fb09ed845b1acfb0f6600a1f3c0",
"self": "https://reactor.adobe.io/libraries/LBb174d60bdbd34f87a2e9466fadaacae0"
},
"meta": {
"build_status": null,
"build_required_detail": "No build found since last state change"
}
}
],
"meta": {
"pagination": {
"current_page": 1,
"next_page": null,
"prev_page": null,
"total_pages": 1,
"total_count": 1
}
}
}
Look up a library lookup
You can look up a library by providing its ID in the path of a GET request.
API format
GET /libraries/{LIBRARY_ID}
LIBRARY_ID
id
of the library that you want to look up.Request
curl -X GET \
https://reactor.adobe.io/libraries/LB5862ee2dc21b4646a5536c8d6edb0c84 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H "Content-Type: application/vnd.api+json" \
-H 'Accept: application/vnd.api+json;revision=1'
Response
A successful response returns the details of the library.
{
"data": {
"id": "LB5862ee2dc21b4646a5536c8d6edb0c84",
"type": "libraries",
"attributes": {
"created_at": "2020-12-14T17:44:00.476Z",
"name": "My Library",
"published_at": null,
"state": "development",
"updated_at": "2020-12-14T17:44:00.476Z",
"build_required": true
},
"relationships": {
"builds": {
"links": {
"related": "https://reactor.adobe.io/libraries/LB5862ee2dc21b4646a5536c8d6edb0c84/builds"
}
},
"environment": {
"links": {
"self": "https://reactor.adobe.io/libraries/LB5862ee2dc21b4646a5536c8d6edb0c84/relationships/environment"
},
"data": null
},
"data_elements": {
"links": {
"related": "https://reactor.adobe.io/libraries/LB5862ee2dc21b4646a5536c8d6edb0c84/data_elements",
"self": "https://reactor.adobe.io/libraries/LB5862ee2dc21b4646a5536c8d6edb0c84/relationships/data_elements"
}
},
"extensions": {
"links": {
"related": "https://reactor.adobe.io/libraries/LB5862ee2dc21b4646a5536c8d6edb0c84/extensions",
"self": "https://reactor.adobe.io/libraries/LB5862ee2dc21b4646a5536c8d6edb0c84/relationships/extensions"
}
},
"notes": {
"links": {
"related": "https://reactor.adobe.io/libraries/LB5862ee2dc21b4646a5536c8d6edb0c84/notes"
}
},
"rules": {
"links": {
"related": "https://reactor.adobe.io/libraries/LB5862ee2dc21b4646a5536c8d6edb0c84/rules",
"self": "https://reactor.adobe.io/libraries/LB5862ee2dc21b4646a5536c8d6edb0c84/relationships/rules"
}
},
"upstream_library": {
"data": null
},
"property": {
"links": {
"related": "https://reactor.adobe.io/libraries/LB5862ee2dc21b4646a5536c8d6edb0c84/property"
},
"data": {
"id": "PRc90084c615844db58201d4e70d47b8bf",
"type": "properties"
}
},
"last_build": {
"links": {
"related": "https://reactor.adobe.io/libraries/LB5862ee2dc21b4646a5536c8d6edb0c84/last_build"
},
"data": null
}
},
"links": {
"property": "https://reactor.adobe.io/properties/PRc90084c615844db58201d4e70d47b8bf",
"self": "https://reactor.adobe.io/libraries/LB5862ee2dc21b4646a5536c8d6edb0c84"
},
"meta": {
"build_status": null,
"build_required_detail": "No build found since last state change"
}
}
}
Create a library create
You can create a new library by making a POST request.
API format
POST /properties/{PROPERTY_ID}/libraries
PROPERTY_ID
id
of the property that you are defining the library under.Request
The following request creates a new library for the specified property. When first creating a library, only its name
attribute can be configured. In order to add data elements, extensions, and rules to the library, you must create relationships. See the section on managing library resources for more information.
curl -X POST \
https://reactor.adobe.io/properties/PR97d92a379a5f48758947cdf44f607a0d/libraries \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'Content-Type: application/json' \
-d '{
"data": {
"attributes": {
"name": "My Library"
},
"type": "libraries"
}
}'
attributes.name
type
libraries
.Response
A successful response return the details of the newly created library.
{
"data": {
"id": "DE8667bc64ceba4b599e8458ea4ab58b8f",
"type": "libraries",
"attributes": {
"created_at": "2020-12-14T17:33:21.774Z",
"deleted_at": null,
"dirty": true,
"enabled": true,
"name": "My library 2020-12-14 17:33:21 +0000",
"published": false,
"published_at": null,
"revision_number": 0,
"updated_at": "2020-12-14T17:33:21.774Z",
"clean_text": false,
"default_value": null,
"delegate_descriptor_id": "kessel-test::dataElements::dom-attribute",
"force_lower_case": false,
"review_status": "unsubmitted",
"storage_duration": null,
"settings": "{\"elementSelector\":\".target-element\",\"elementProperty\":\"html\"}"
},
"relationships": {
"libraries": {
"links": {
"related": "https://reactor.adobe.io/libraries/DE8667bc64ceba4b599e8458ea4ab58b8f/libraries"
}
},
"revisions": {
"links": {
"related": "https://reactor.adobe.io/libraries/DE8667bc64ceba4b599e8458ea4ab58b8f/revisions"
}
},
"notes": {
"links": {
"related": "https://reactor.adobe.io/libraries/DE8667bc64ceba4b599e8458ea4ab58b8f/notes"
}
},
"property": {
"links": {
"related": "https://reactor.adobe.io/libraries/DE8667bc64ceba4b599e8458ea4ab58b8f/property"
},
"data": {
"id": "PR05ad70a8078f44c1a229ecf0da2802f2",
"type": "properties"
}
},
"origin": {
"links": {
"related": "https://reactor.adobe.io/libraries/DE8667bc64ceba4b599e8458ea4ab58b8f/origin"
},
"data": {
"id": "DE8667bc64ceba4b599e8458ea4ab58b8f",
"type": "libraries"
}
},
"extension": {
"links": {
"related": "https://reactor.adobe.io/libraries/DE8667bc64ceba4b599e8458ea4ab58b8f/extension"
},
"data": {
"id": "EX28788723a8e24a2f927fce1b55eb7ffc",
"type": "extensions"
}
},
"updated_with_extension_package": {
"links": {
"related": "https://reactor.adobe.io/libraries/DE8667bc64ceba4b599e8458ea4ab58b8f/updated_with_extension_package"
},
"data": {
"id": "EP75db2452065b44e2b8a38ca883ce369a",
"type": "extension_packages"
}
},
"updated_with_extension": {
"links": {
"related": "https://reactor.adobe.io/libraries/DE8667bc64ceba4b599e8458ea4ab58b8f/updated_with_extension"
},
"data": {
"id": "EXd6bf04b143e64fe0ae7efe55a6655fa9",
"type": "extensions"
}
}
},
"links": {
"property": "https://reactor.adobe.io/properties/PR05ad70a8078f44c1a229ecf0da2802f2",
"origin": "https://reactor.adobe.io/libraries/DE8667bc64ceba4b599e8458ea4ab58b8f",
"self": "https://reactor.adobe.io/libraries/DE8667bc64ceba4b599e8458ea4ab58b8f",
"extension": "https://reactor.adobe.io/extensions/EX28788723a8e24a2f927fce1b55eb7ffc"
},
"meta": {
"latest_revision_number": 0
}
}
}
Manage resources for a library resources
The data elements, extensions, rules, and environment that are associated with a library are established through relationships. The sections below cover how to manage these relationships through API calls.
Add resources to a library add-resources
You can add resources to a library by appending /relationships
to the path of a POST request, followed by the resource type.
API format
POST /libraries/{LIBRARY_ID}/relationships/{RESOURCE_TYPE}
{LIBRARY_ID}
{RESOURCE_TYPE}
The type of resource that you are adding to the library. The following values are accepted:
data_elements
extensions
rules
Request
The following request adds two data elements to a library.
curl -X POST \
https://reactor.adobe.io/libraries/LBdd2f55e9c3bb4ce0a582a0b0c586a6f5/relationships/data_elements \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'Accept: application/vnd.api+json;revision=1' \
-H 'Content-Type: application/json' \
-d '{
"data": [
{
"id": "DEce7fdee2afe44efeb4d974247d1e8dbe",
"type": "data_elements"
},
{
"id": "DE8097636264104451ac3a18c95d5ff833",
"type": "data_elements"
}
]
}'
id
type
Response
A successful response returns the details of the added relationships. Performing a lookup request for the library shows the added relationships under the relationships
property.
{
"data": [
{
"type": "data_elements",
"id": "DEce7fdee2afe44efeb4d974247d1e8dbe"
},
{
"id": "DE8097636264104451ac3a18c95d5ff833",
"type": "data_elements"
}
],
"links": {
"related": "https://reactor.adobe.io/libraries/LB09eca17e012842b49466506f419283a7/data_elements",
"self": "https://reactor.adobe.io/libraries/LB09eca17e012842b49466506f419283a7/relationships/data_elements"
}
}
Replace the resources for a library replace-resources
You can replace all existing resources of a certain type for a library by appending /relationships
to the path of a PATCH request, followed by the resource type that you are replacing.
API format
PATCH /libraries/{LIBRARY_ID}/relationships/{RESOURCE_TYPE}
{LIBRARY_ID}
{RESOURCE_TYPE}
The type of resource that you are replacing. The following values are accepted:
data_elements
extensions
rules
Request
The following request replaces the extensions for a library with those provided in the data
array.
curl -X PATCH \
https://reactor.adobe.io/libraries/LBdd2f55e9c3bb4ce0a582a0b0c586a6f5/relationships/environment \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'Accept: application/vnd.api+json;revision=1' \
-H 'Content-Type: application/json' \
-d '{
"data": [
{
"id": "EX58312732fd0f43f98037d765ef96c4cd",
"type": "extensions"
}
]
}'
id
type
Response
A successful response returns the details of the updated relationships. Performing a lookup request for the library shows the relationships under the relationships
property.
{
"data": [
{
"type": "extensions",
"id": "EX58312732fd0f43f98037d765ef96c4cd"
}
],
"links": {
"related": "https://reactor.adobe.io/libraries/LBdbc7c49ac8f040bc9576db26b127444d/extensions",
"self": "https://reactor.adobe.io/libraries/LBdbc7c49ac8f040bc9576db26b127444d/relationships/extensions"
}
}
Remove resources for a library remove-resources
You can remove existing resources from a library by appending /relationships
to the path of a DELETE request, followed by the resource type that you are removing.
API format
DELETE /libraries/{LIBRARY_ID}/relationships/{RESOURCE_TYPE}
{LIBRARY_ID}
{RESOURCE_TYPE}
The type of resource that you are removing. The following values are accepted:
data_elements
extensions
rules
Request
The following request removes a rule from a library. Any existing rules that are not included in the data
array are not deleted.
curl -X DELETE \
https://reactor.adobe.io/libraries/LBdd2f55e9c3bb4ce0a582a0b0c586a6f5/relationships/environment \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'Accept: application/vnd.api+json;revision=1' \
-H 'Content-Type: application/json' \
-d '{
"data": [
{
"id": "RLa16f7859c7404239940c2cf2ec02b03c",
"type": "rules"
}
]
}'
id
type
Response
A successful response returns the details of the updated relationships for the resource type. If no relationships exist for this resource type, the data
property is returned as an empty array. Performing a lookup request for the library shows the relationships under the relationships
property.
{
"data": [
],
"links": {
"related": "https://reactor.adobe.io/libraries/LBbde5759742844fe59458ca0c988ecd61/rules",
"self": "https://reactor.adobe.io/libraries/LBbde5759742844fe59458ca0c988ecd61/relationships/rules"
}
}
Assign a library to an environment environment
You can assign a library to an environment /relationships/environment
to the path of a POST request.
API format
POST /libraries/{LIBRARY_ID}/relationships/environment
{LIBRARY_ID}
Request
curl -X POST \
https://reactor.adobe.io/libraries/LBdd2f55e9c3bb4ce0a582a0b0c586a6f5/relationships/environment \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'Accept: application/vnd.api+json;revision=1' \
-H 'Content-Type: application/json' \
-d '{
"data": {
"id": "EN867c480dc5ea4158be3ea68e5543bd85",
"type": "environments"
}
}'
id
type
environments
.Response
A successful response returns the details of the relationship. Performing a lookup request for the library shows the added relationship under the relationships
property.
{
"data": {
"id": "EN867c480dc5ea4158be3ea68e5543bd85",
"type": "environments"
},
"links": {
"related": "https://reactor.adobe.io/libraries/LBdd2f55e9c3bb4ce0a582a0b0c586a6f5/environment",
"self": "https://reactor.adobe.io/libraries/LBdd2f55e9c3bb4ce0a582a0b0c586a6f5/relationships/environment"
}
}
Transition a library transition
You can transition a library to a different publishing state by including its ID in the path of a PATCH request and supplying an appropriate meta.action
value in the payload.
API format
PATCH /libraries/{LIBRARY_ID}
LIBRARY_ID
id
of the library that you want to transition.Request
The following request transitions the state of an existing library, based on the value of meta.action
provided in the payload. The available actions for a library depend on its current publishing state, as outlined in the publishing flow.
curl -X PATCH \
https://reactor.adobe.io/libraries/LB5862ee2dc21b4646a5536c8d6edb0c84 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'Content-Type: application/json' \
-d '{
"data": {
"id": "LB80c337c956804738b2db2ea2f69fcdf0",
"type": "libraries",
"meta": {
"action": "submit"
}
}
}'
meta.action
The specific transition action that you want to make on the library. The following actions are available, depending on the library’s current publishing state:
develop
submit
approve
reject
id
id
of the library you want to update. This should match the {LIBRARY_ID}
value provided in the request path.type
libraries
.Response
A successful response returns the details of the updated library.
{
"data": {
"id": "LB80c337c956804738b2db2ea2f69fcdf0",
"type": "libraries",
"attributes": {
"created_at": "2020-12-14T17:47:57.783Z",
"name": "My Library",
"published_at": null,
"state": "submitted",
"updated_at": "2020-12-14T17:48:06.431Z",
"build_required": true
},
"relationships": {
"builds": {
"links": {
"related": "https://reactor.adobe.io/libraries/LB80c337c956804738b2db2ea2f69fcdf0/builds"
}
},
"environment": {
"links": {
"self": "https://reactor.adobe.io/libraries/LB80c337c956804738b2db2ea2f69fcdf0/relationships/environment"
},
"data": null
},
"data_elements": {
"links": {
"related": "https://reactor.adobe.io/libraries/LB80c337c956804738b2db2ea2f69fcdf0/data_elements",
"self": "https://reactor.adobe.io/libraries/LB80c337c956804738b2db2ea2f69fcdf0/relationships/data_elements"
}
},
"extensions": {
"links": {
"related": "https://reactor.adobe.io/libraries/LB80c337c956804738b2db2ea2f69fcdf0/extensions",
"self": "https://reactor.adobe.io/libraries/LB80c337c956804738b2db2ea2f69fcdf0/relationships/extensions"
}
},
"notes": {
"links": {
"related": "https://reactor.adobe.io/libraries/LB80c337c956804738b2db2ea2f69fcdf0/notes"
}
},
"rules": {
"links": {
"related": "https://reactor.adobe.io/libraries/LB80c337c956804738b2db2ea2f69fcdf0/rules",
"self": "https://reactor.adobe.io/libraries/LB80c337c956804738b2db2ea2f69fcdf0/relationships/rules"
}
},
"upstream_library": {
"data": null
},
"property": {
"links": {
"related": "https://reactor.adobe.io/libraries/LB80c337c956804738b2db2ea2f69fcdf0/property"
},
"data": {
"id": "PRbc84c93c1c9f48c9836ade5ea4199006",
"type": "properties"
}
},
"last_build": {
"links": {
"related": "https://reactor.adobe.io/libraries/LB80c337c956804738b2db2ea2f69fcdf0/last_build"
},
"data": {
"id": "BL8d6e931f2f6d48ea96d6730122f13bcc",
"type": "builds"
}
}
},
"links": {
"property": "https://reactor.adobe.io/properties/PRbc84c93c1c9f48c9836ade5ea4199006",
"self": "https://reactor.adobe.io/libraries/LB80c337c956804738b2db2ea2f69fcdf0"
},
"meta": {
"build_status": null,
"build_required_detail": "No build found since last state change"
}
}
}
Publish a library publish
To publish a library to production, ensure that a production environment has been added to the library, then create a build.
API format
POST /libraries/{LIBRARY_ID}/builds
LIBRARY_ID
id
of the library that you want to publish.Request
This request does not require a payload.
curl -X POST \
https://reactor.adobe.io/libraries/LB80c337c956804738b2db2ea2f69fcdf0/builds \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'Content-Type: application/json'
Response
{
"data": {
"id": "BL162b63703eb74c6bb3c12471e0062c05",
"type": "builds",
"attributes": {
"created_at": "2020-12-14T17:48:18.731Z",
"status": "pending",
"updated_at": "2020-12-14T17:48:18.731Z",
"token": "b223fc55df1c"
},
"relationships": {
"data_elements": {
"links": {
"related": "https://reactor.adobe.io/builds/BL162b63703eb74c6bb3c12471e0062c05/data_elements"
}
},
"extensions": {
"links": {
"related": "https://reactor.adobe.io/builds/BL162b63703eb74c6bb3c12471e0062c05/extensions"
}
},
"rules": {
"links": {
"related": "https://reactor.adobe.io/builds/BL162b63703eb74c6bb3c12471e0062c05/rules"
}
},
"environment": {
"links": {
"related": "https://reactor.adobe.io/builds/BL162b63703eb74c6bb3c12471e0062c05/environment"
},
"data": {
"id": "EN5428335fff304c749f06a241db137a60",
"type": "environments"
}
},
"library": {
"links": {
"related": "https://reactor.adobe.io/builds/BL162b63703eb74c6bb3c12471e0062c05/library"
},
"data": {
"id": "LBa937e62887e94d85b77cbe703f5dfc56",
"type": "libraries"
}
},
"property": {
"links": {
"related": "https://reactor.adobe.io/builds/BL162b63703eb74c6bb3c12471e0062c05/property"
},
"data": {
"id": "PR7e2b7aaaffcb499398010ba964603415",
"type": "properties"
}
}
},
"links": {
"environment": "https://reactor.adobe.io/environments/EN5428335fff304c749f06a241db137a60",
"library": "https://reactor.adobe.io/libraries/LBa937e62887e94d85b77cbe703f5dfc56",
"self": "https://reactor.adobe.io/builds/BL162b63703eb74c6bb3c12471e0062c05"
},
"meta": {
"artifact_url": "https://assets.adobedtm.com/staging/f9fd106ab399/8b659dd115cf/launch-5986a1b644a4-development.min.js",
"direct_artifact_url": "https://assets.adobedtm.com/staging/f9fd106ab399/8b659dd115cf/b223fc55df1c/launch-5986a1b644a4-development.min.js",
"archive": false,
"host_type_of": "akamai"
}
}
}
Manage notes for a library notes
Libraries are “notable” resources, meaning you can create and retrieve text-based notes on each individual resource. See the notes endpoint guide for more information on how to manage notes for libraries and other compatible resources.
Retrieve related resources for a library related
The following calls demonstrate how to retrieve the related resources for a library. When looking up a library, these relationships are listed under the relationships
property.
See the relationships guide for more information on relationships in the Reactor API.
List the related data elements for a library data-elements
You can list the data elements that a library utilizes by appending /data_elements
to the path of a lookup request.
API format
GET /libraries/{LIBRARY_ID}/data_elements
{LIBRARY_ID}
id
of the library whose data elements you want to list.Request
curl -X GET \
https://reactor.adobe.io/libraries/LB5862ee2dc21b4646a5536c8d6edb0c84/data_elements \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H "Content-Type: application/vnd.api+json" \
-H 'Accept: application/vnd.api+json;revision=1'
Response
A successful response returns a list of data elements that use the specified library.
{
"data": [
{
"id": "DE4956628e8baa4b358cc592337049b37b",
"type": "data_elements",
"attributes": {
"created_at": "2020-12-14T17:45:11.694Z",
"deleted_at": null,
"dirty": false,
"enabled": true,
"name": "My Data Element 2020-12-14 17:45:10 +0000",
"published": false,
"published_at": null,
"revision_number": 1,
"updated_at": "2020-12-14T17:45:11.694Z",
"clean_text": false,
"default_value": null,
"delegate_descriptor_id": "kessel-test::dataElements::dom-attribute",
"force_lower_case": false,
"review_status": "unsubmitted",
"storage_duration": null,
"settings": "{\"elementProperty\":\"html\",\"elementSelector\":\".target-element\"}"
},
"relationships": {
"libraries": {
"links": {
"related": "https://reactor.adobe.io/data_elements/DE4956628e8baa4b358cc592337049b37b/libraries"
}
},
"revisions": {
"links": {
"related": "https://reactor.adobe.io/data_elements/DE4956628e8baa4b358cc592337049b37b/revisions"
}
},
"notes": {
"links": {
"related": "https://reactor.adobe.io/data_elements/DE4956628e8baa4b358cc592337049b37b/notes"
}
},
"property": {
"links": {
"related": "https://reactor.adobe.io/data_elements/DE4956628e8baa4b358cc592337049b37b/property"
},
"data": {
"id": "PR245ca5e560784249b2a88ef82f2851b6",
"type": "properties"
}
},
"origin": {
"links": {
"related": "https://reactor.adobe.io/data_elements/DE4956628e8baa4b358cc592337049b37b/origin"
},
"data": {
"id": "DE4c027939f2004fdcb15e3b4099e70974",
"type": "data_elements"
}
},
"extension": {
"links": {
"related": "https://reactor.adobe.io/data_elements/DE4956628e8baa4b358cc592337049b37b/extension"
},
"data": {
"id": "EX5942ffd7fac94428875bd664e397bd47",
"type": "extensions"
}
},
"updated_with_extension_package": {
"links": {
"related": "https://reactor.adobe.io/data_elements/DE4956628e8baa4b358cc592337049b37b/updated_with_extension_package"
},
"data": {
"id": "EP75db2452065b44e2b8a38ca883ce369a",
"type": "extension_packages"
}
},
"updated_with_extension": {
"links": {
"related": "https://reactor.adobe.io/data_elements/DE4956628e8baa4b358cc592337049b37b/updated_with_extension"
},
"data": {
"id": "EXbf411638b90843c486254b5ca0fe47d6",
"type": "extensions"
}
}
},
"links": {
"property": "https://reactor.adobe.io/properties/PR245ca5e560784249b2a88ef82f2851b6",
"origin": "https://reactor.adobe.io/data_elements/DE4c027939f2004fdcb15e3b4099e70974",
"self": "https://reactor.adobe.io/data_elements/DE4956628e8baa4b358cc592337049b37b",
"extension": "https://reactor.adobe.io/extensions/EX5942ffd7fac94428875bd664e397bd47"
},
"meta": {
"latest_revision_number": 1
}
}
],
"meta": {
"pagination": {
"current_page": 1,
"next_page": null,
"prev_page": null,
"total_pages": 1,
"total_count": 1
}
}
}
List the related extensions for a library extensions
You can list the extensions that a library utilizes by appending /extensions
to the path of a lookup request.
API format
GET /libraries/{LIBRARY_ID}/extensions
{LIBRARY_ID}
id
of the library whose extensions you want to list.Request
curl -X GET \
https://reactor.adobe.io/libraries/LB5862ee2dc21b4646a5536c8d6edb0c84/extensions \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H "Content-Type: application/vnd.api+json" \
-H 'Accept: application/vnd.api+json;revision=1'
Response
A successful response returns a list of extensions that use the specified library.
{
"data": [
{
"id": "EXac1e55883e5b47eb9a3589b311960677",
"type": "extensions",
"attributes": {
"created_at": "2020-12-14T17:45:23.759Z",
"deleted_at": null,
"dirty": false,
"enabled": true,
"name": "kessel-test",
"published": false,
"published_at": null,
"revision_number": 1,
"updated_at": "2020-12-14T17:45:23.759Z",
"delegate_descriptor_id": null,
"display_name": "Kessel Test",
"review_status": "unsubmitted",
"version": "1.2.0",
"settings": "{}"
},
"relationships": {
"libraries": {
"links": {
"related": "https://reactor.adobe.io/extensions/EXac1e55883e5b47eb9a3589b311960677/libraries"
}
},
"revisions": {
"links": {
"related": "https://reactor.adobe.io/extensions/EXac1e55883e5b47eb9a3589b311960677/revisions"
}
},
"notes": {
"links": {
"related": "https://reactor.adobe.io/extensions/EXac1e55883e5b47eb9a3589b311960677/notes"
}
},
"property": {
"links": {
"related": "https://reactor.adobe.io/extensions/EXac1e55883e5b47eb9a3589b311960677/property"
},
"data": {
"id": "PR2d1f3ba867204dc7a4c17614d23bbab0",
"type": "properties"
}
},
"origin": {
"links": {
"related": "https://reactor.adobe.io/extensions/EXac1e55883e5b47eb9a3589b311960677/origin"
},
"data": {
"id": "EX63cf3b91ec8146889759bbacb15627c3",
"type": "extensions"
}
},
"updated_with_extension_package": {
"links": {
"related": "https://reactor.adobe.io/extensions/EXac1e55883e5b47eb9a3589b311960677/updated_with_extension_package"
},
"data": {
"id": "EP75db2452065b44e2b8a38ca883ce369a",
"type": "extension_packages"
}
},
"extension_package": {
"links": {
"related": "https://reactor.adobe.io/extensions/EXac1e55883e5b47eb9a3589b311960677/extension_package"
},
"data": {
"id": "EP75db2452065b44e2b8a38ca883ce369a",
"type": "extension_packages"
}
}
},
"links": {
"property": "https://reactor.adobe.io/properties/PR2d1f3ba867204dc7a4c17614d23bbab0",
"origin": "https://reactor.adobe.io/extensions/EX63cf3b91ec8146889759bbacb15627c3",
"self": "https://reactor.adobe.io/extensions/EXac1e55883e5b47eb9a3589b311960677",
"extension_package": "https://reactor.adobe.io/extension_packages/EP75db2452065b44e2b8a38ca883ce369a",
"latest_extension_package": "https://reactor.adobe.io/extension_packages/EP75db2452065b44e2b8a38ca883ce369a"
},
"meta": {
"latest_revision_number": 1
}
}
],
"meta": {
"pagination": {
"current_page": 1,
"next_page": null,
"prev_page": null,
"total_pages": 1,
"total_count": 1
}
}
}
List the related rules for a library rules
You can list the rules that a library utilizes by appending /rules
to the path of a lookup request.
API format
GET /libraries/{LIBRARY_ID}/rules
{LIBRARY_ID}
id
of the library whose rules you want to list.Request
curl -X GET \
https://reactor.adobe.io/libraries/LB5862ee2dc21b4646a5536c8d6edb0c84/rules \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H "Content-Type: application/vnd.api+json" \
-H 'Accept: application/vnd.api+json;revision=1'
Response
A successful response returns a list of rules that use the specified library.
{
"data": [
{
"id": "RL460e550125054fffb824cce56c8cb1ac",
"type": "rules",
"attributes": {
"created_at": "2020-12-14T17:45:36.405Z",
"deleted_at": null,
"dirty": false,
"enabled": true,
"name": "Example Rule",
"published": false,
"published_at": null,
"revision_number": 1,
"updated_at": "2020-12-14T17:45:36.405Z",
"review_status": "unsubmitted"
},
"relationships": {
"libraries": {
"links": {
"related": "https://reactor.adobe.io/rules/RL460e550125054fffb824cce56c8cb1ac/libraries"
}
},
"revisions": {
"links": {
"related": "https://reactor.adobe.io/rules/RL460e550125054fffb824cce56c8cb1ac/revisions"
}
},
"notes": {
"links": {
"related": "https://reactor.adobe.io/rules/RL460e550125054fffb824cce56c8cb1ac/notes"
}
},
"property": {
"links": {
"related": "https://reactor.adobe.io/rules/RL460e550125054fffb824cce56c8cb1ac/property"
},
"data": {
"id": "PRa68d0d2c6e0a4ae380fb30f17f7c435d",
"type": "properties"
}
},
"origin": {
"links": {
"related": "https://reactor.adobe.io/rules/RL460e550125054fffb824cce56c8cb1ac/origin"
},
"data": {
"id": "RL04911614524d463a9c115bea442bce72",
"type": "rules"
}
},
"rule_components": {
"links": {
"related": "https://reactor.adobe.io/rules/RL460e550125054fffb824cce56c8cb1ac/rule_components"
}
}
},
"links": {
"property": "https://reactor.adobe.io/properties/PRa68d0d2c6e0a4ae380fb30f17f7c435d",
"origin": "https://reactor.adobe.io/rules/RL04911614524d463a9c115bea442bce72",
"self": "https://reactor.adobe.io/rules/RL460e550125054fffb824cce56c8cb1ac",
"rule_components": "https://reactor.adobe.io/rules/RL460e550125054fffb824cce56c8cb1ac/rule_components"
},
"meta": {
"latest_revision_number": 1
}
}
],
"meta": {
"pagination": {
"current_page": 1,
"next_page": null,
"prev_page": null,
"total_pages": 1,
"total_count": 1
}
}
}
Look up the related environment for a library related-environment
You can look up the environment that a library is assigned to by appending /environment
to the path of a GET request.
API format
GET /libraries/{LIBRARY_ID}/environment
{LIBRARY_ID}
id
of the library whose environment you want to look up.Request
curl -X GET \
https://reactor.adobe.io/libraries/LB5862ee2dc21b4646a5536c8d6edb0c84/environment \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H "Content-Type: application/vnd.api+json" \
-H 'Accept: application/vnd.api+json;revision=1'
Response
A successful response returns the details of the environment that the specified library is assigned to.
{
"data": {
"id": "ENe66122e6793641d8a8453f63c42e4270",
"type": "environments",
"attributes": {
"archive": false,
"created_at": "2020-12-14T17:39:12.484Z",
"library_path": "f9fd106ab399/2df53b69e8a2",
"library_name": "launch-1d2ffee7eef5-development.min.js",
"library_entry_points": [
{
"library_name": "launch-1d2ffee7eef5-development.min.js",
"minified": true,
"references": [
"f9fd106ab399/2df53b69e8a2/launch-1d2ffee7eef5-development.min.js"
],
"license_path": "f9fd106ab399/2df53b69e8a2/launch-1d2ffee7eef5-development.js"
},
{
"library_name": "launch-1d2ffee7eef5-development.js",
"minified": false,
"references": [
"f9fd106ab399/2df53b69e8a2/launch-1d2ffee7eef5-development.js"
]
}
],
"name": "Development Environment A",
"path": "https://assets.adobedtm.com/staging",
"stage": "development",
"updated_at": "2020-12-14T17:39:13.988Z",
"status": "succeeded",
"token": "1d2ffee7eef5"
},
"relationships": {
"library": {
"links": {
"related": "https://reactor.adobe.io/environments/ENe66122e6793641d8a8453f63c42e4270/library"
},
"data": {
"id": "LB52ccd7f1e99146999f90cb3bca4940a2",
"type": "libraries"
}
},
"builds": {
"links": {
"related": "https://reactor.adobe.io/environments/ENe66122e6793641d8a8453f63c42e4270/builds"
}
},
"host": {
"links": {
"related": "https://reactor.adobe.io/environments/ENe66122e6793641d8a8453f63c42e4270/host",
"self": "https://reactor.adobe.io/environments/ENe66122e6793641d8a8453f63c42e4270/relationships/host"
},
"data": {
"id": "HT53a4ebcb177d431e8fd26929930de0af",
"type": "hosts"
}
},
"property": {
"links": {
"related": "https://reactor.adobe.io/environments/ENe66122e6793641d8a8453f63c42e4270/property"
},
"data": {
"id": "PR79de7e0885a9451786f1bf4b9136a72c",
"type": "properties"
}
}
},
"links": {
"property": "https://reactor.adobe.io/properties/PR79de7e0885a9451786f1bf4b9136a72c",
"self": "https://reactor.adobe.io/environments/ENe66122e6793641d8a8453f63c42e4270"
},
"meta": {
"archive_encrypted": false
}
}
}
Look up the related property for a library property
You can look up the property that owns a library by appending /property
to the path of a GET request.
API format
GET /libraries/{LIBRARY_ID}/property
{LIBRARY_ID}
id
of the library whose property you want to look up.Request
curl -X GET \
https://reactor.adobe.io/libraries/LB5862ee2dc21b4646a5536c8d6edb0c84/property \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H "Content-Type: application/vnd.api+json" \
-H 'Accept: application/vnd.api+json;revision=1'
Response
A successful response returns the details of the property that owns the specified library.
{
"data": {
"id": "PRb18ac8f8b69d4f99af43870e91c17543",
"type": "properties",
"attributes": {
"created_at": "2020-12-14T17:51:56.180Z",
"enabled": true,
"name": "Kessel Example Property",
"updated_at": "2020-12-14T17:51:56.180Z",
"platform": "web",
"development": false,
"token": "9d97006b0f9b",
"domains": [
"example.com"
],
"undefined_vars_return_empty": false,
"rule_component_sequencing_enabled": false
},
"relationships": {
"company": {
"links": {
"related": "https://reactor.adobe.io/properties/PRb18ac8f8b69d4f99af43870e91c17543/company"
},
"data": {
"id": "CO2bf094214ffd4785bb4bcf88c952a7c1",
"type": "companies"
}
},
"callbacks": {
"links": {
"related": "https://reactor.adobe.io/properties/PRb18ac8f8b69d4f99af43870e91c17543/callbacks"
}
},
"hosts": {
"links": {
"related": "https://reactor.adobe.io/properties/PRb18ac8f8b69d4f99af43870e91c17543/hosts"
}
},
"environments": {
"links": {
"related": "https://reactor.adobe.io/properties/PRb18ac8f8b69d4f99af43870e91c17543/environments"
}
},
"libraries": {
"links": {
"related": "https://reactor.adobe.io/properties/PRb18ac8f8b69d4f99af43870e91c17543/libraries"
}
},
"data_elements": {
"links": {
"related": "https://reactor.adobe.io/properties/PRb18ac8f8b69d4f99af43870e91c17543/data_elements"
}
},
"extensions": {
"links": {
"related": "https://reactor.adobe.io/properties/PRb18ac8f8b69d4f99af43870e91c17543/extensions"
}
},
"rules": {
"links": {
"related": "https://reactor.adobe.io/properties/PRb18ac8f8b69d4f99af43870e91c17543/rules"
}
},
"notes": {
"links": {
"related": "https://reactor.adobe.io/properties/PRb18ac8f8b69d4f99af43870e91c17543/notes"
}
}
},
"links": {
"company": "https://reactor.adobe.io/companies/CO2bf094214ffd4785bb4bcf88c952a7c1",
"data_elements": "https://reactor.adobe.io/properties/PRb18ac8f8b69d4f99af43870e91c17543/data_elements",
"environments": "https://reactor.adobe.io/properties/PRb18ac8f8b69d4f99af43870e91c17543/environments",
"extensions": "https://reactor.adobe.io/properties/PRb18ac8f8b69d4f99af43870e91c17543/extensions",
"rules": "https://reactor.adobe.io/properties/PRb18ac8f8b69d4f99af43870e91c17543/rules",
"self": "https://reactor.adobe.io/properties/PRb18ac8f8b69d4f99af43870e91c17543"
},
"meta": {
"rights": [
"approve",
"develop",
"manage_environments",
"manage_extensions",
"publish"
]
}
}
}
Look up the upstream for a library upstream
You can look up the next library upstream from a library by appending /upstream_library
to the path of a GET request.
API format
GET /libraries/{LIBRARY_ID}/upstream_library
{LIBRARY_ID}
id
of the library whose upstream library you want to look up.Request
curl -X GET \
https://reactor.adobe.io/libraries/LB5862ee2dc21b4646a5536c8d6edb0c84/upstream_library \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H "Content-Type: application/vnd.api+json" \
-H 'Accept: application/vnd.api+json;revision=1'
Response
A successful response returns the details of the upstream library.
{
"data": {
"id": "LB29cc2f86b3684e00a10d196a60f4b0c0",
"type": "libraries",
"attributes": {
"created_at": "2020-12-14T17:49:32.459Z",
"name": "My Library",
"published_at": null,
"state": "submitted",
"updated_at": "2020-12-14T17:49:41.070Z",
"build_required": true
},
"relationships": {
"builds": {
"links": {
"related": "https://reactor.adobe.io/libraries/LB29cc2f86b3684e00a10d196a60f4b0c0/builds"
}
},
"environment": {
"links": {
"self": "https://reactor.adobe.io/libraries/LB29cc2f86b3684e00a10d196a60f4b0c0/relationships/environment"
},
"data": null
},
"data_elements": {
"links": {
"related": "https://reactor.adobe.io/libraries/LB29cc2f86b3684e00a10d196a60f4b0c0/data_elements",
"self": "https://reactor.adobe.io/libraries/LB29cc2f86b3684e00a10d196a60f4b0c0/relationships/data_elements"
}
},
"extensions": {
"links": {
"related": "https://reactor.adobe.io/libraries/LB29cc2f86b3684e00a10d196a60f4b0c0/extensions",
"self": "https://reactor.adobe.io/libraries/LB29cc2f86b3684e00a10d196a60f4b0c0/relationships/extensions"
}
},
"notes": {
"links": {
"related": "https://reactor.adobe.io/libraries/LB29cc2f86b3684e00a10d196a60f4b0c0/notes"
}
},
"rules": {
"links": {
"related": "https://reactor.adobe.io/libraries/LB29cc2f86b3684e00a10d196a60f4b0c0/rules",
"self": "https://reactor.adobe.io/libraries/LB29cc2f86b3684e00a10d196a60f4b0c0/relationships/rules"
}
},
"upstream_library": {
"data": null
},
"property": {
"links": {
"related": "https://reactor.adobe.io/libraries/LB29cc2f86b3684e00a10d196a60f4b0c0/property"
},
"data": {
"id": "PR7c206ed399644222aef329488cee7fa7",
"type": "properties"
}
},
"last_build": {
"links": {
"related": "https://reactor.adobe.io/libraries/LB29cc2f86b3684e00a10d196a60f4b0c0/last_build"
},
"data": {
"id": "BL87cde018ecd44ac7a20b0271ab06d04b",
"type": "builds"
}
}
},
"links": {
"property": "https://reactor.adobe.io/properties/PR7c206ed399644222aef329488cee7fa7",
"self": "https://reactor.adobe.io/libraries/LB29cc2f86b3684e00a10d196a60f4b0c0"
},
"meta": {
"build_status": null,
"build_required_detail": "No build found since last state change"
}
}
}