---
source_url: https://www.pubnub.com/docs/sdks/rest-api/set-membership-metadata
title: Set membership metadata
---

# Set membership metadata

> For AI agents: documentation index at https://www.pubnub.com/llms-full.txt

Sets channel membership metadata for the specified UUID. Use the `set` and `delete` properties in the request body to perform those operations on one or more memberships.

Returns the updated UUID's channel membership metadata, optionally including:

* UUID's custom properties
* Custom properties for the UUID's membership in each channel
* Each channel's custom properties

**Note:**

* You can change all of the membership object's properties except its identifier.
* Invalid property names are silently ignored and will not cause a request to fail.
* If you set the `custom` property, you must completely replace it since partial updates are not supported.
* The custom object can only contain scalar values.
* Enabling [referential integrity](https://www.pubnub.com/docs/data-storage/metadata/overview.md) on your app’s keyset in the Admin Portal ensures that memberships can only be created for existing users and channels, and automatically deletes memberships when their associated user or channel is deleted.

   If it’s not enabled, memberships can be created even for the non-existent user and channel entities, while deleting a user or channel entity does not automatically delete any associated membership objects.

| Path Parameters |
| --- |
| `sub_key`string—**REQUIRED**Your app's subscribe key from Admin Portal. |
| `uuid`string—**REQUIRED**A UTF-8 encoded string used to identify the client. Must not be empty and can contain up to 92 UTF-8 byte sequences.Prohibited characters are: ,, /, \, *, :, channel, non-printable ASCII control characters, and Unicode zero. |

| Query Parameters |
| --- |
| `include`string[]Possible values: [custom, type, status, channel, channel.custom, channel.status, channel.type]List of additional/complex metadata to include in the response. Omit this query parameter if you don't want to retrieve additional metadata. |
| `limit`integerPossible values: value ≤ 100Number of objects to return in response. Default is 100, which is also the maximum value. |
| `start`stringRandom string returned from the server, including a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
| `end`stringRandom string returned from the server, including a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is provided. |
| `count`booleanRequest totalCount to be included in the paginated response. By default, totalCount is omitted. |
| `filter`stringExpression used to filter the results. Only objects whose properties satisfy the given expression are returned.For details on App Context Filtering, refer to documentation.Note the following:Date/time properties, such as updated, must be compared to valid date/time strings formatted according to ISO 8601., Custom properties must have the same type as the value used in the expression; it is an error to compare a custom property of one type to another., Objects that do not have the referenced custom property are excluded regardless of the operator or value used in the expression. The null value can be used to filter out objects that do or do not have the referenced custom property., The LIKE operator supports wildcards denoted by the * character. A wildcard matches any sequence of arbitrary Unicode characters, including the empty sequence. The literal asterisk is matched when escaped using the backslash (\) character., Values used with LIKE must be properly encoded just like any other string value. Thus, to escape an asterisk, the raw value must contain \\*., The entire expression must be properly URL-encoded when used in the query string.Example (Simple expression): custom.public == trueExample (Date/time comparison): updated >= "2019-08-31T00:00:00Z"Example (Compound expression): description == null && (custom.label != "" || custom.description != "")Example (Wildcard): name LIKE 'X*'Example (Escaped wildcard): name LIKE '*\**' |
| `sort`string[]Possible values: Value must match regular expression ^[^:]+(:(asc|desc))?$List of properties to sort by. Append :asc or :desc to a property to specify sort direction. The default sort direction is ascending.Example: updated,status,type,channel.id,channel.name,channel.updated,channel.status,channel.type |
| `auth`stringString which is either the auth key (Access Manager legacy) or a valid token (Access Manager) used to authorize the operation if access control is enabled. Authorization token with permissions to perform the request. |
| `signature`stringSignature used to verify that the request was signed with the secret key associated with the subscribe key.If Access Manager is enabled, either a valid authorization token or a signature are required. Check Access Manager documentation for details on how to compute the signature. |
| `timestamp`integerUnix epoch timestamp used as a nonce for signature computation. Must have no more than ± 60 seconds offset from NTP. Required if signature parameter is supplied. |

| Request Body—**REQUIRED**JSON object with changes to the UUID's channel membership metadata. |
| --- |
| `set`object[]type stringMembership type. Max. 50 characters.status stringMembership status. Max. 50 characters.channel object — REQUIREDObject with a channel identifier.id stringPossible values: 1 ≤ length ≤ 92The channel ID to perform the operation on. Must not be empty, and may contain up to 92 UTF-8 byte sequences.Prohibited characters are: ,, /, \, *, :, channel, non-printable ASCII control characters, and Unicode zero.custom objectJSON object of key/value pairs with supported data-types. Values must be scalar only; arrays or objects are not supported.NOTE: If you set custom fields with integer values, do not specify numbers larger than 9007199254740991 due to precision limitations in JSON implementations. For large integer values, for example PubNub timetoken values, use string values instead of integers. | `type`stringMembership type. Max. 50 characters. | `status`stringMembership status. Max. 50 characters. | `channel`object—**REQUIRED**Object with a channel identifier.id stringPossible values: 1 ≤ length ≤ 92The channel ID to perform the operation on. Must not be empty, and may contain up to 92 UTF-8 byte sequences.Prohibited characters are: ,, /, \, *, :, channel, non-printable ASCII control characters, and Unicode zero. | `id`stringPossible values: 1 ≤ length ≤ 92The channel ID to perform the operation on. Must not be empty, and may contain up to 92 UTF-8 byte sequences.Prohibited characters are: ,, /, \, *, :, channel, non-printable ASCII control characters, and Unicode zero. | `custom`objectJSON object of key/value pairs with supported data-types. Values must be scalar only; arrays or objects are not supported.NOTE: If you set custom fields with integer values, do not specify numbers larger than 9007199254740991 due to precision limitations in JSON implementations. For large integer values, for example PubNub timetoken values, use string values instead of integers. |
| `type`stringMembership type. Max. 50 characters. |
| `status`stringMembership status. Max. 50 characters. |
| `channel`object—**REQUIRED**Object with a channel identifier.id stringPossible values: 1 ≤ length ≤ 92The channel ID to perform the operation on. Must not be empty, and may contain up to 92 UTF-8 byte sequences.Prohibited characters are: ,, /, \, *, :, channel, non-printable ASCII control characters, and Unicode zero. | `id`stringPossible values: 1 ≤ length ≤ 92The channel ID to perform the operation on. Must not be empty, and may contain up to 92 UTF-8 byte sequences.Prohibited characters are: ,, /, \, *, :, channel, non-printable ASCII control characters, and Unicode zero. |
| `id`stringPossible values: 1 ≤ length ≤ 92The channel ID to perform the operation on. Must not be empty, and may contain up to 92 UTF-8 byte sequences.Prohibited characters are: ,, /, \, *, :, channel, non-printable ASCII control characters, and Unicode zero. |
| `custom`objectJSON object of key/value pairs with supported data-types. Values must be scalar only; arrays or objects are not supported.NOTE: If you set custom fields with integer values, do not specify numbers larger than 9007199254740991 due to precision limitations in JSON implementations. For large integer values, for example PubNub timetoken values, use string values instead of integers. |
| `delete`object[]channel object — REQUIREDObject with a channel identifier.id stringPossible values: 1 ≤ length ≤ 92The channel ID to perform the operation on. Must not be empty, and may contain up to 92 UTF-8 byte sequences.Prohibited characters are: ,, /, \, *, :, channel, non-printable ASCII control characters, and Unicode zero. | `channel`object—**REQUIRED**Object with a channel identifier.id stringPossible values: 1 ≤ length ≤ 92The channel ID to perform the operation on. Must not be empty, and may contain up to 92 UTF-8 byte sequences.Prohibited characters are: ,, /, \, *, :, channel, non-printable ASCII control characters, and Unicode zero. | `id`stringPossible values: 1 ≤ length ≤ 92The channel ID to perform the operation on. Must not be empty, and may contain up to 92 UTF-8 byte sequences.Prohibited characters are: ,, /, \, *, :, channel, non-printable ASCII control characters, and Unicode zero. |
| `channel`object—**REQUIRED**Object with a channel identifier.id stringPossible values: 1 ≤ length ≤ 92The channel ID to perform the operation on. Must not be empty, and may contain up to 92 UTF-8 byte sequences.Prohibited characters are: ,, /, \, *, :, channel, non-printable ASCII control characters, and Unicode zero. | `id`stringPossible values: 1 ≤ length ≤ 92The channel ID to perform the operation on. Must not be empty, and may contain up to 92 UTF-8 byte sequences.Prohibited characters are: ,, /, \, *, :, channel, non-printable ASCII control characters, and Unicode zero. |
| `id`stringPossible values: 1 ≤ length ≤ 92The channel ID to perform the operation on. Must not be empty, and may contain up to 92 UTF-8 byte sequences.Prohibited characters are: ,, /, \, *, :, channel, non-printable ASCII control characters, and Unicode zero. |

| Responses |
| --- |
| `200`Successfully set the UUID's channel membership metadata.Schema — OPTIONALdata object[]List of returned objects.channel object — OPTIONALObject with channel metadata used in responses.id string — OPTIONALPossible values: 1 ≤ length ≤ 92The channel ID to perform the operation on. Must not be empty, and may contain up to 92 UTF-8 byte sequences.Prohibited characters are: ,, /, \, *, :, channel, non-printable ASCII control characters, and Unicode zero.name string — OPTIONALPossible values: 1 ≤ lengthThe channel name to perform the operation on. Max. 2,048 characters. Must not be empty or consist only of whitespace characters.description string — OPTIONALDescription of the channel. Max. 2,048 characters.type string — OPTIONALChannel type. Max. 50 characters.status string — OPTIONALChannel status. Max. 50 characters.custom object — OPTIONALJSON object of key/value pairs with supported data-types. Values must be scalar only; arrays or objects are not supported.NOTE: If you set custom fields with integer values, do not specify numbers larger than 9007199254740991 due to precision limitations in JSON implementations. For large integer values, for example PubNub timetoken values, use string values instead of integers.updated date-time — OPTIONALDate and time the object was last updated.eTag string — OPTIONALInformation on the object's content fingerprint.NOTE: eTag from GET requests can be used alongside the If-Match HTTP header in conditional PATCH requests in users/channels' metadata APIs. This functionality is currently not supported in the membership/members' metadata APIs.type string — OPTIONALMembership type. Max. 50 characters.status string — OPTIONALMembership status. Max. 50 characters.custom object — OPTIONALJSON object of key/value pairs with supported data-types. Values must be scalar only; arrays or objects are not supported.NOTE: If you set custom fields with integer values, do not specify numbers larger than 9007199254740991 due to precision limitations in JSON implementations. For large integer values, for example PubNub timetoken values, use string values instead of integers.updated date-timeDate and time the object was last updated.eTag stringInformation on the object's content fingerprint.NOTE: eTag from GET requests can be used alongside the If-Match HTTP header in conditional PATCH requests in users/channels' metadata APIs. This functionality is currently not supported in the membership/members' metadata APIs.status integer — OPTIONALHTTP status code.totalCount integer — OPTIONALTotal count of objects without pagination.next string — OPTIONALRandom string returned from the server, including a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.prev string — OPTIONALRandom string returned from the server, including a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. | Schema—**OPTIONAL** | `data`object[]List of returned objects.channel object — OPTIONALObject with channel metadata used in responses.id string — OPTIONALPossible values: 1 ≤ length ≤ 92The channel ID to perform the operation on. Must not be empty, and may contain up to 92 UTF-8 byte sequences.Prohibited characters are: ,, /, \, *, :, channel, non-printable ASCII control characters, and Unicode zero.name string — OPTIONALPossible values: 1 ≤ lengthThe channel name to perform the operation on. Max. 2,048 characters. Must not be empty or consist only of whitespace characters.description string — OPTIONALDescription of the channel. Max. 2,048 characters.type string — OPTIONALChannel type. Max. 50 characters.status string — OPTIONALChannel status. Max. 50 characters.custom object — OPTIONALJSON object of key/value pairs with supported data-types. Values must be scalar only; arrays or objects are not supported.NOTE: If you set custom fields with integer values, do not specify numbers larger than 9007199254740991 due to precision limitations in JSON implementations. For large integer values, for example PubNub timetoken values, use string values instead of integers.updated date-time — OPTIONALDate and time the object was last updated.eTag string — OPTIONALInformation on the object's content fingerprint.NOTE: eTag from GET requests can be used alongside the If-Match HTTP header in conditional PATCH requests in users/channels' metadata APIs. This functionality is currently not supported in the membership/members' metadata APIs.type string — OPTIONALMembership type. Max. 50 characters.status string — OPTIONALMembership status. Max. 50 characters.custom object — OPTIONALJSON object of key/value pairs with supported data-types. Values must be scalar only; arrays or objects are not supported.NOTE: If you set custom fields with integer values, do not specify numbers larger than 9007199254740991 due to precision limitations in JSON implementations. For large integer values, for example PubNub timetoken values, use string values instead of integers.updated date-timeDate and time the object was last updated.eTag stringInformation on the object's content fingerprint.NOTE: eTag from GET requests can be used alongside the If-Match HTTP header in conditional PATCH requests in users/channels' metadata APIs. This functionality is currently not supported in the membership/members' metadata APIs. | `channel`object—**OPTIONAL**Object with channel metadata used in responses.id string — OPTIONALPossible values: 1 ≤ length ≤ 92The channel ID to perform the operation on. Must not be empty, and may contain up to 92 UTF-8 byte sequences.Prohibited characters are: ,, /, \, *, :, channel, non-printable ASCII control characters, and Unicode zero.name string — OPTIONALPossible values: 1 ≤ lengthThe channel name to perform the operation on. Max. 2,048 characters. Must not be empty or consist only of whitespace characters.description string — OPTIONALDescription of the channel. Max. 2,048 characters.type string — OPTIONALChannel type. Max. 50 characters.status string — OPTIONALChannel status. Max. 50 characters.custom object — OPTIONALJSON object of key/value pairs with supported data-types. Values must be scalar only; arrays or objects are not supported.NOTE: If you set custom fields with integer values, do not specify numbers larger than 9007199254740991 due to precision limitations in JSON implementations. For large integer values, for example PubNub timetoken values, use string values instead of integers.updated date-time — OPTIONALDate and time the object was last updated.eTag string — OPTIONALInformation on the object's content fingerprint.NOTE: eTag from GET requests can be used alongside the If-Match HTTP header in conditional PATCH requests in users/channels' metadata APIs. This functionality is currently not supported in the membership/members' metadata APIs. | `id`string—**OPTIONAL**Possible values: 1 ≤ length ≤ 92The channel ID to perform the operation on. Must not be empty, and may contain up to 92 UTF-8 byte sequences.Prohibited characters are: ,, /, \, *, :, channel, non-printable ASCII control characters, and Unicode zero. | `name`string—**OPTIONAL**Possible values: 1 ≤ lengthThe channel name to perform the operation on. Max. 2,048 characters. Must not be empty or consist only of whitespace characters. | `description`string—**OPTIONAL**Description of the channel. Max. 2,048 characters. | `type`string—**OPTIONAL**Channel type. Max. 50 characters. | `status`string—**OPTIONAL**Channel status. Max. 50 characters. | `custom`object—**OPTIONAL**JSON object of key/value pairs with supported data-types. Values must be scalar only; arrays or objects are not supported.NOTE: If you set custom fields with integer values, do not specify numbers larger than 9007199254740991 due to precision limitations in JSON implementations. For large integer values, for example PubNub timetoken values, use string values instead of integers. | `updated`date-time—**OPTIONAL**Date and time the object was last updated. | `eTag`string—**OPTIONAL**Information on the object's content fingerprint.NOTE: eTag from GET requests can be used alongside the If-Match HTTP header in conditional PATCH requests in users/channels' metadata APIs. This functionality is currently not supported in the membership/members' metadata APIs. | `type`string—**OPTIONAL**Membership type. Max. 50 characters. | `status`string—**OPTIONAL**Membership status. Max. 50 characters. | `custom`object—**OPTIONAL**JSON object of key/value pairs with supported data-types. Values must be scalar only; arrays or objects are not supported.NOTE: If you set custom fields with integer values, do not specify numbers larger than 9007199254740991 due to precision limitations in JSON implementations. For large integer values, for example PubNub timetoken values, use string values instead of integers. | `updated`date-timeDate and time the object was last updated. | `eTag`stringInformation on the object's content fingerprint.NOTE: eTag from GET requests can be used alongside the If-Match HTTP header in conditional PATCH requests in users/channels' metadata APIs. This functionality is currently not supported in the membership/members' metadata APIs. | `status`integer—**OPTIONAL**HTTP status code. | `totalCount`integer—**OPTIONAL**Total count of objects without pagination. | `next`string—**OPTIONAL**Random string returned from the server, including a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. | `prev`string—**OPTIONAL**Random string returned from the server, including a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. |
| Schema—**OPTIONAL** |
| `data`object[]List of returned objects.channel object — OPTIONALObject with channel metadata used in responses.id string — OPTIONALPossible values: 1 ≤ length ≤ 92The channel ID to perform the operation on. Must not be empty, and may contain up to 92 UTF-8 byte sequences.Prohibited characters are: ,, /, \, *, :, channel, non-printable ASCII control characters, and Unicode zero.name string — OPTIONALPossible values: 1 ≤ lengthThe channel name to perform the operation on. Max. 2,048 characters. Must not be empty or consist only of whitespace characters.description string — OPTIONALDescription of the channel. Max. 2,048 characters.type string — OPTIONALChannel type. Max. 50 characters.status string — OPTIONALChannel status. Max. 50 characters.custom object — OPTIONALJSON object of key/value pairs with supported data-types. Values must be scalar only; arrays or objects are not supported.NOTE: If you set custom fields with integer values, do not specify numbers larger than 9007199254740991 due to precision limitations in JSON implementations. For large integer values, for example PubNub timetoken values, use string values instead of integers.updated date-time — OPTIONALDate and time the object was last updated.eTag string — OPTIONALInformation on the object's content fingerprint.NOTE: eTag from GET requests can be used alongside the If-Match HTTP header in conditional PATCH requests in users/channels' metadata APIs. This functionality is currently not supported in the membership/members' metadata APIs.type string — OPTIONALMembership type. Max. 50 characters.status string — OPTIONALMembership status. Max. 50 characters.custom object — OPTIONALJSON object of key/value pairs with supported data-types. Values must be scalar only; arrays or objects are not supported.NOTE: If you set custom fields with integer values, do not specify numbers larger than 9007199254740991 due to precision limitations in JSON implementations. For large integer values, for example PubNub timetoken values, use string values instead of integers.updated date-timeDate and time the object was last updated.eTag stringInformation on the object's content fingerprint.NOTE: eTag from GET requests can be used alongside the If-Match HTTP header in conditional PATCH requests in users/channels' metadata APIs. This functionality is currently not supported in the membership/members' metadata APIs. | `channel`object—**OPTIONAL**Object with channel metadata used in responses.id string — OPTIONALPossible values: 1 ≤ length ≤ 92The channel ID to perform the operation on. Must not be empty, and may contain up to 92 UTF-8 byte sequences.Prohibited characters are: ,, /, \, *, :, channel, non-printable ASCII control characters, and Unicode zero.name string — OPTIONALPossible values: 1 ≤ lengthThe channel name to perform the operation on. Max. 2,048 characters. Must not be empty or consist only of whitespace characters.description string — OPTIONALDescription of the channel. Max. 2,048 characters.type string — OPTIONALChannel type. Max. 50 characters.status string — OPTIONALChannel status. Max. 50 characters.custom object — OPTIONALJSON object of key/value pairs with supported data-types. Values must be scalar only; arrays or objects are not supported.NOTE: If you set custom fields with integer values, do not specify numbers larger than 9007199254740991 due to precision limitations in JSON implementations. For large integer values, for example PubNub timetoken values, use string values instead of integers.updated date-time — OPTIONALDate and time the object was last updated.eTag string — OPTIONALInformation on the object's content fingerprint.NOTE: eTag from GET requests can be used alongside the If-Match HTTP header in conditional PATCH requests in users/channels' metadata APIs. This functionality is currently not supported in the membership/members' metadata APIs. | `id`string—**OPTIONAL**Possible values: 1 ≤ length ≤ 92The channel ID to perform the operation on. Must not be empty, and may contain up to 92 UTF-8 byte sequences.Prohibited characters are: ,, /, \, *, :, channel, non-printable ASCII control characters, and Unicode zero. | `name`string—**OPTIONAL**Possible values: 1 ≤ lengthThe channel name to perform the operation on. Max. 2,048 characters. Must not be empty or consist only of whitespace characters. | `description`string—**OPTIONAL**Description of the channel. Max. 2,048 characters. | `type`string—**OPTIONAL**Channel type. Max. 50 characters. | `status`string—**OPTIONAL**Channel status. Max. 50 characters. | `custom`object—**OPTIONAL**JSON object of key/value pairs with supported data-types. Values must be scalar only; arrays or objects are not supported.NOTE: If you set custom fields with integer values, do not specify numbers larger than 9007199254740991 due to precision limitations in JSON implementations. For large integer values, for example PubNub timetoken values, use string values instead of integers. | `updated`date-time—**OPTIONAL**Date and time the object was last updated. | `eTag`string—**OPTIONAL**Information on the object's content fingerprint.NOTE: eTag from GET requests can be used alongside the If-Match HTTP header in conditional PATCH requests in users/channels' metadata APIs. This functionality is currently not supported in the membership/members' metadata APIs. | `type`string—**OPTIONAL**Membership type. Max. 50 characters. | `status`string—**OPTIONAL**Membership status. Max. 50 characters. | `custom`object—**OPTIONAL**JSON object of key/value pairs with supported data-types. Values must be scalar only; arrays or objects are not supported.NOTE: If you set custom fields with integer values, do not specify numbers larger than 9007199254740991 due to precision limitations in JSON implementations. For large integer values, for example PubNub timetoken values, use string values instead of integers. | `updated`date-timeDate and time the object was last updated. | `eTag`stringInformation on the object's content fingerprint.NOTE: eTag from GET requests can be used alongside the If-Match HTTP header in conditional PATCH requests in users/channels' metadata APIs. This functionality is currently not supported in the membership/members' metadata APIs. |
| `channel`object—**OPTIONAL**Object with channel metadata used in responses.id string — OPTIONALPossible values: 1 ≤ length ≤ 92The channel ID to perform the operation on. Must not be empty, and may contain up to 92 UTF-8 byte sequences.Prohibited characters are: ,, /, \, *, :, channel, non-printable ASCII control characters, and Unicode zero.name string — OPTIONALPossible values: 1 ≤ lengthThe channel name to perform the operation on. Max. 2,048 characters. Must not be empty or consist only of whitespace characters.description string — OPTIONALDescription of the channel. Max. 2,048 characters.type string — OPTIONALChannel type. Max. 50 characters.status string — OPTIONALChannel status. Max. 50 characters.custom object — OPTIONALJSON object of key/value pairs with supported data-types. Values must be scalar only; arrays or objects are not supported.NOTE: If you set custom fields with integer values, do not specify numbers larger than 9007199254740991 due to precision limitations in JSON implementations. For large integer values, for example PubNub timetoken values, use string values instead of integers.updated date-time — OPTIONALDate and time the object was last updated.eTag string — OPTIONALInformation on the object's content fingerprint.NOTE: eTag from GET requests can be used alongside the If-Match HTTP header in conditional PATCH requests in users/channels' metadata APIs. This functionality is currently not supported in the membership/members' metadata APIs. | `id`string—**OPTIONAL**Possible values: 1 ≤ length ≤ 92The channel ID to perform the operation on. Must not be empty, and may contain up to 92 UTF-8 byte sequences.Prohibited characters are: ,, /, \, *, :, channel, non-printable ASCII control characters, and Unicode zero. | `name`string—**OPTIONAL**Possible values: 1 ≤ lengthThe channel name to perform the operation on. Max. 2,048 characters. Must not be empty or consist only of whitespace characters. | `description`string—**OPTIONAL**Description of the channel. Max. 2,048 characters. | `type`string—**OPTIONAL**Channel type. Max. 50 characters. | `status`string—**OPTIONAL**Channel status. Max. 50 characters. | `custom`object—**OPTIONAL**JSON object of key/value pairs with supported data-types. Values must be scalar only; arrays or objects are not supported.NOTE: If you set custom fields with integer values, do not specify numbers larger than 9007199254740991 due to precision limitations in JSON implementations. For large integer values, for example PubNub timetoken values, use string values instead of integers. | `updated`date-time—**OPTIONAL**Date and time the object was last updated. | `eTag`string—**OPTIONAL**Information on the object's content fingerprint.NOTE: eTag from GET requests can be used alongside the If-Match HTTP header in conditional PATCH requests in users/channels' metadata APIs. This functionality is currently not supported in the membership/members' metadata APIs. |
| `id`string—**OPTIONAL**Possible values: 1 ≤ length ≤ 92The channel ID to perform the operation on. Must not be empty, and may contain up to 92 UTF-8 byte sequences.Prohibited characters are: ,, /, \, *, :, channel, non-printable ASCII control characters, and Unicode zero. |
| `name`string—**OPTIONAL**Possible values: 1 ≤ lengthThe channel name to perform the operation on. Max. 2,048 characters. Must not be empty or consist only of whitespace characters. |
| `description`string—**OPTIONAL**Description of the channel. Max. 2,048 characters. |
| `type`string—**OPTIONAL**Channel type. Max. 50 characters. |
| `status`string—**OPTIONAL**Channel status. Max. 50 characters. |
| `custom`object—**OPTIONAL**JSON object of key/value pairs with supported data-types. Values must be scalar only; arrays or objects are not supported.NOTE: If you set custom fields with integer values, do not specify numbers larger than 9007199254740991 due to precision limitations in JSON implementations. For large integer values, for example PubNub timetoken values, use string values instead of integers. |
| `updated`date-time—**OPTIONAL**Date and time the object was last updated. |
| `eTag`string—**OPTIONAL**Information on the object's content fingerprint.NOTE: eTag from GET requests can be used alongside the If-Match HTTP header in conditional PATCH requests in users/channels' metadata APIs. This functionality is currently not supported in the membership/members' metadata APIs. |
| `type`string—**OPTIONAL**Membership type. Max. 50 characters. |
| `status`string—**OPTIONAL**Membership status. Max. 50 characters. |
| `custom`object—**OPTIONAL**JSON object of key/value pairs with supported data-types. Values must be scalar only; arrays or objects are not supported.NOTE: If you set custom fields with integer values, do not specify numbers larger than 9007199254740991 due to precision limitations in JSON implementations. For large integer values, for example PubNub timetoken values, use string values instead of integers. |
| `updated`date-timeDate and time the object was last updated. |
| `eTag`stringInformation on the object's content fingerprint.NOTE: eTag from GET requests can be used alongside the If-Match HTTP header in conditional PATCH requests in users/channels' metadata APIs. This functionality is currently not supported in the membership/members' metadata APIs. |
| `status`integer—**OPTIONAL**HTTP status code. |
| `totalCount`integer—**OPTIONAL**Total count of objects without pagination. |
| `next`string—**OPTIONAL**Random string returned from the server, including a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
| `prev`string—**OPTIONAL**Random string returned from the server, including a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. |
| `400`The request body contains invalid data.Schema — OPTIONALstatus integer — OPTIONALHTTP status code.error object — OPTIONALError response.message string — OPTIONALUser-facing error message.source string — OPTIONALPossible values: [metadata, authz]Internal source of the error.details object[] — OPTIONALmessage string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | Schema—**OPTIONAL** | `status`integer—**OPTIONAL**HTTP status code. | `error`object—**OPTIONAL**Error response.message string — OPTIONALUser-facing error message.source string — OPTIONALPossible values: [metadata, authz]Internal source of the error.details object[] — OPTIONALmessage string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**User-facing error message. | `source`string—**OPTIONAL**Possible values: [metadata, authz]Internal source of the error. | `details`object[]—**OPTIONAL**message string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**A user-facing error message. | `location`string—**OPTIONAL**Name of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable. | `locationType`string—**OPTIONAL**Possible values: [path, query, header, body] |
| Schema—**OPTIONAL** |
| `status`integer—**OPTIONAL**HTTP status code. |
| `error`object—**OPTIONAL**Error response.message string — OPTIONALUser-facing error message.source string — OPTIONALPossible values: [metadata, authz]Internal source of the error.details object[] — OPTIONALmessage string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**User-facing error message. | `source`string—**OPTIONAL**Possible values: [metadata, authz]Internal source of the error. | `details`object[]—**OPTIONAL**message string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**A user-facing error message. | `location`string—**OPTIONAL**Name of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable. | `locationType`string—**OPTIONAL**Possible values: [path, query, header, body] |
| `message`string—**OPTIONAL**User-facing error message. |
| `source`string—**OPTIONAL**Possible values: [metadata, authz]Internal source of the error. |
| `details`object[]—**OPTIONAL**message string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**A user-facing error message. | `location`string—**OPTIONAL**Name of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable. | `locationType`string—**OPTIONAL**Possible values: [path, query, header, body] |
| `message`string—**OPTIONAL**A user-facing error message. |
| `location`string—**OPTIONAL**Name of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable. |
| `locationType`string—**OPTIONAL**Possible values: [path, query, header, body] |
| `403`Disabled - The subscribe key doesn't have App Context API enabled.Forbidden - The client isn't authorized to perform this operation. The authorization key you provided doesn't have the required permissions for this operation.Schema — OPTIONALstatus integer — OPTIONALHTTP status code.error object — OPTIONALError response.message string — OPTIONALUser-facing error message.source string — OPTIONALPossible values: [metadata, authz]Internal source of the error.details object[] — OPTIONALmessage string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | Schema—**OPTIONAL** | `status`integer—**OPTIONAL**HTTP status code. | `error`object—**OPTIONAL**Error response.message string — OPTIONALUser-facing error message.source string — OPTIONALPossible values: [metadata, authz]Internal source of the error.details object[] — OPTIONALmessage string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**User-facing error message. | `source`string—**OPTIONAL**Possible values: [metadata, authz]Internal source of the error. | `details`object[]—**OPTIONAL**message string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**A user-facing error message. | `location`string—**OPTIONAL**Name of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable. | `locationType`string—**OPTIONAL**Possible values: [path, query, header, body] |
| Schema—**OPTIONAL** |
| `status`integer—**OPTIONAL**HTTP status code. |
| `error`object—**OPTIONAL**Error response.message string — OPTIONALUser-facing error message.source string — OPTIONALPossible values: [metadata, authz]Internal source of the error.details object[] — OPTIONALmessage string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**User-facing error message. | `source`string—**OPTIONAL**Possible values: [metadata, authz]Internal source of the error. | `details`object[]—**OPTIONAL**message string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**A user-facing error message. | `location`string—**OPTIONAL**Name of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable. | `locationType`string—**OPTIONAL**Possible values: [path, query, header, body] |
| `message`string—**OPTIONAL**User-facing error message. |
| `source`string—**OPTIONAL**Possible values: [metadata, authz]Internal source of the error. |
| `details`object[]—**OPTIONAL**message string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**A user-facing error message. | `location`string—**OPTIONAL**Name of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable. | `locationType`string—**OPTIONAL**Possible values: [path, query, header, body] |
| `message`string—**OPTIONAL**A user-facing error message. |
| `location`string—**OPTIONAL**Name of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable. |
| `locationType`string—**OPTIONAL**Possible values: [path, query, header, body] |
| `415`The format of the request body you supplied isn't supported. The request body must be in JSON format.Schema — OPTIONALstatus integer — OPTIONALHTTP status code.error object — OPTIONALError response.message string — OPTIONALUser-facing error message.source string — OPTIONALPossible values: [metadata, authz]Internal source of the error.details object[] — OPTIONALmessage string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | Schema—**OPTIONAL** | `status`integer—**OPTIONAL**HTTP status code. | `error`object—**OPTIONAL**Error response.message string — OPTIONALUser-facing error message.source string — OPTIONALPossible values: [metadata, authz]Internal source of the error.details object[] — OPTIONALmessage string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**User-facing error message. | `source`string—**OPTIONAL**Possible values: [metadata, authz]Internal source of the error. | `details`object[]—**OPTIONAL**message string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**A user-facing error message. | `location`string—**OPTIONAL**Name of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable. | `locationType`string—**OPTIONAL**Possible values: [path, query, header, body] |
| Schema—**OPTIONAL** |
| `status`integer—**OPTIONAL**HTTP status code. |
| `error`object—**OPTIONAL**Error response.message string — OPTIONALUser-facing error message.source string — OPTIONALPossible values: [metadata, authz]Internal source of the error.details object[] — OPTIONALmessage string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**User-facing error message. | `source`string—**OPTIONAL**Possible values: [metadata, authz]Internal source of the error. | `details`object[]—**OPTIONAL**message string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**A user-facing error message. | `location`string—**OPTIONAL**Name of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable. | `locationType`string—**OPTIONAL**Possible values: [path, query, header, body] |
| `message`string—**OPTIONAL**User-facing error message. |
| `source`string—**OPTIONAL**Possible values: [metadata, authz]Internal source of the error. |
| `details`object[]—**OPTIONAL**message string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**A user-facing error message. | `location`string—**OPTIONAL**Name of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable. | `locationType`string—**OPTIONAL**Possible values: [path, query, header, body] |
| `message`string—**OPTIONAL**A user-facing error message. |
| `location`string—**OPTIONAL**Name of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable. |
| `locationType`string—**OPTIONAL**Possible values: [path, query, header, body] |
| `429`Request rate limit exceeded.Schema — OPTIONALstatus integer — OPTIONALHTTP status code.error object — OPTIONALError response.message string — OPTIONALUser-facing error message.source string — OPTIONALPossible values: [metadata, authz]Internal source of the error.details object[] — OPTIONALmessage string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | Schema—**OPTIONAL** | `status`integer—**OPTIONAL**HTTP status code. | `error`object—**OPTIONAL**Error response.message string — OPTIONALUser-facing error message.source string — OPTIONALPossible values: [metadata, authz]Internal source of the error.details object[] — OPTIONALmessage string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**User-facing error message. | `source`string—**OPTIONAL**Possible values: [metadata, authz]Internal source of the error. | `details`object[]—**OPTIONAL**message string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**A user-facing error message. | `location`string—**OPTIONAL**Name of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable. | `locationType`string—**OPTIONAL**Possible values: [path, query, header, body] |
| Schema—**OPTIONAL** |
| `status`integer—**OPTIONAL**HTTP status code. |
| `error`object—**OPTIONAL**Error response.message string — OPTIONALUser-facing error message.source string — OPTIONALPossible values: [metadata, authz]Internal source of the error.details object[] — OPTIONALmessage string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**User-facing error message. | `source`string—**OPTIONAL**Possible values: [metadata, authz]Internal source of the error. | `details`object[]—**OPTIONAL**message string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**A user-facing error message. | `location`string—**OPTIONAL**Name of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable. | `locationType`string—**OPTIONAL**Possible values: [path, query, header, body] |
| `message`string—**OPTIONAL**User-facing error message. |
| `source`string—**OPTIONAL**Possible values: [metadata, authz]Internal source of the error. |
| `details`object[]—**OPTIONAL**message string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**A user-facing error message. | `location`string—**OPTIONAL**Name of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable. | `locationType`string—**OPTIONAL**Possible values: [path, query, header, body] |
| `message`string—**OPTIONAL**A user-facing error message. |
| `location`string—**OPTIONAL**Name of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable. |
| `locationType`string—**OPTIONAL**Possible values: [path, query, header, body] |
| `500`An internal server error occurred.Schema — OPTIONALstatus integer — OPTIONALHTTP status code.error object — OPTIONALError response.message string — OPTIONALUser-facing error message.source string — OPTIONALPossible values: [metadata, authz]Internal source of the error.details object[] — OPTIONALmessage string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | Schema—**OPTIONAL** | `status`integer—**OPTIONAL**HTTP status code. | `error`object—**OPTIONAL**Error response.message string — OPTIONALUser-facing error message.source string — OPTIONALPossible values: [metadata, authz]Internal source of the error.details object[] — OPTIONALmessage string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**User-facing error message. | `source`string—**OPTIONAL**Possible values: [metadata, authz]Internal source of the error. | `details`object[]—**OPTIONAL**message string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**A user-facing error message. | `location`string—**OPTIONAL**Name of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable. | `locationType`string—**OPTIONAL**Possible values: [path, query, header, body] |
| Schema—**OPTIONAL** |
| `status`integer—**OPTIONAL**HTTP status code. |
| `error`object—**OPTIONAL**Error response.message string — OPTIONALUser-facing error message.source string — OPTIONALPossible values: [metadata, authz]Internal source of the error.details object[] — OPTIONALmessage string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**User-facing error message. | `source`string—**OPTIONAL**Possible values: [metadata, authz]Internal source of the error. | `details`object[]—**OPTIONAL**message string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**A user-facing error message. | `location`string—**OPTIONAL**Name of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable. | `locationType`string—**OPTIONAL**Possible values: [path, query, header, body] |
| `message`string—**OPTIONAL**User-facing error message. |
| `source`string—**OPTIONAL**Possible values: [metadata, authz]Internal source of the error. |
| `details`object[]—**OPTIONAL**message string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**A user-facing error message. | `location`string—**OPTIONAL**Name of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable. | `locationType`string—**OPTIONAL**Possible values: [path, query, header, body] |
| `message`string—**OPTIONAL**A user-facing error message. |
| `location`string—**OPTIONAL**Name of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable. |
| `locationType`string—**OPTIONAL**Possible values: [path, query, header, body] |
| `503`Request processing exceeded the maximum allowed time.Schema — OPTIONALstatus integer — OPTIONALHTTP status code.error object — OPTIONALError response.message string — OPTIONALUser-facing error message.source string — OPTIONALPossible values: [metadata, authz]Internal source of the error.details object[] — OPTIONALmessage string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | Schema—**OPTIONAL** | `status`integer—**OPTIONAL**HTTP status code. | `error`object—**OPTIONAL**Error response.message string — OPTIONALUser-facing error message.source string — OPTIONALPossible values: [metadata, authz]Internal source of the error.details object[] — OPTIONALmessage string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**User-facing error message. | `source`string—**OPTIONAL**Possible values: [metadata, authz]Internal source of the error. | `details`object[]—**OPTIONAL**message string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**A user-facing error message. | `location`string—**OPTIONAL**Name of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable. | `locationType`string—**OPTIONAL**Possible values: [path, query, header, body] |
| Schema—**OPTIONAL** |
| `status`integer—**OPTIONAL**HTTP status code. |
| `error`object—**OPTIONAL**Error response.message string — OPTIONALUser-facing error message.source string — OPTIONALPossible values: [metadata, authz]Internal source of the error.details object[] — OPTIONALmessage string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**User-facing error message. | `source`string—**OPTIONAL**Possible values: [metadata, authz]Internal source of the error. | `details`object[]—**OPTIONAL**message string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**A user-facing error message. | `location`string—**OPTIONAL**Name of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable. | `locationType`string—**OPTIONAL**Possible values: [path, query, header, body] |
| `message`string—**OPTIONAL**User-facing error message. |
| `source`string—**OPTIONAL**Possible values: [metadata, authz]Internal source of the error. |
| `details`object[]—**OPTIONAL**message string — OPTIONALA user-facing error message.location string — OPTIONALName of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable.locationType string — OPTIONALPossible values: [path, query, header, body] | `message`string—**OPTIONAL**A user-facing error message. | `location`string—**OPTIONAL**Name of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable. | `locationType`string—**OPTIONAL**Possible values: [path, query, header, body] |
| `message`string—**OPTIONAL**A user-facing error message. |
| `location`string—**OPTIONAL**Name of the offending query string parameter, or a dot-delimited JSON path to the source of the error in the input document, if applicable. |
| `locationType`string—**OPTIONAL**Possible values: [path, query, header, body] |

sub_key
*
Type:
string
Your app's subscribe key from
[Admin Portal](https://admin.pubnub.com)
.
uuid
*
Type:
string
A UTF-8 encoded string used to
[identify the client](https://www.pubnub.com/docs/architecture/core-concepts.md)
. Must not be empty and can contain up to 92 UTF-8 byte sequences.

Prohibited characters
are:
,
,
/
,
\
,
*
,
:
, channel, non-printable ASCII control characters, and Unicode zero.
include
Type:
array
List of additional/complex metadata to include in the response. Omit this query parameter if you don't want to retrieve additional metadata.
limit
Type:
integer
Number of objects to return in response. Default is
100
, which is also the maximum value.
start
Type:
string
Random string returned from the server, including a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
end
Type:
string
Random string returned from the server, including a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the
start
parameter is provided.
count
Type:
boolean
Request
totalCount
to be included in the paginated response. By default,
totalCount
is omitted.
filter
Type:
string
Expression used to filter the results. Only objects whose properties satisfy the given expression are returned.

For details on App Context Filtering, refer to
[documentation](https://www.pubnub.com/docs/data-storage/metadata/filtering.md)
.

Note the following:

* Date/time properties, such as
updated
, must be compared to valid date/time strings formatted according to ISO 8601.

* Custom properties must have the same type as the value used in the expression; it is an error to compare a custom property of one type to another.

* Objects that do not have the referenced custom property are excluded regardless of the operator or value used in the expression. The
null
value can be used to filter out objects that do or do not have the referenced custom property.

The LIKE operator supports wildcards denoted by the `
character. A wildcard matches any sequence of arbitrary Unicode characters, including the empty sequence. The literal asterisk is matched when escaped using the backslash (
\`) character.

Values used with LIKE must be properly encoded just like any other string value. Thus, to escape an asterisk, the raw value must contain `\\
`.

* The entire expression must be properly URL-encoded when used in the query string.
sort
Type:
array
List of properties to sort by.

Append
:asc
or
:desc
to a property to specify sort direction. The default sort direction is ascending.
auth
Type:
string
String which is either the auth key (Access Manager legacy) or a valid token (
[Access Manager](https://www.pubnub.com/docs/security/access-control/overview.md)
) used to authorize the operation if access control is enabled. Authorization token with permissions to perform the request.
signature
Type:
string
Signature used to verify that the request was signed with the secret key associated with the subscribe key.

If Access Manager is enabled, either a valid authorization token or a signature are required.

Check
[Access Manager documentation](https://www.pubnub.com/docs/sdks/rest-api/access-manager-introduction.md)
for details on how to compute the signature.
timestamp
Type:
integer
Unix epoch timestamp used as a nonce for signature computation. Must have no more than ± 60 seconds offset from NTP.

Required if
signature
parameter is supplied.
JSON object with changes to the UUID's channel membership metadata.
set
Type:
array
Array items:
items
Type:
object
Property used in objects that support application-defined custom properties.
Example:
{"channel":{"id":"myChannel4"}}
delete
Type:
array
Array items:
items
Type:
object
Object with an identifier of UUID's channel membership metadata.
Example:
{"channel":{"id":"myChannel4"}}
Example Request

```
{
  "set": [
    {
      "channel": {
        "id": "my-channel"
      },
      "custom": {
        "starred": true
      }
    }
  ],
  "delete": [
    {
      "channel": {
        "id": "my-channel"
      }
    }
  ]
}
```

data
Type:
array
List of returned objects.
Array items:
items
Type:
object
Object with UUID membership metadata used in responses.
Example:
{"channel":{"id":"myChannel1","name":"My channel","description":"A channel that is mine.","custom":null,"updated":"2019-02-20T23:11:20.893Z","eTag":"RTc1NUQwNUItREMyNy00Q0YxLUJCNDItMEZDMTZDMzVCN0VGCg=="},"custom":{"starred":false},"updated":"2019-02-20T23:11:20.893Z","eTag":"RUNDMDUwNjktNUYwRC00RTI0LUI1M0QtNUUzNkE2NkU0MEVFCg=="}
status
Type:
integer
HTTP status code.
totalCount
Type:
integer
Total count of objects without pagination.
next
Type:
string
Random string returned from the server, including a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
prev
Type:
string
Random string returned from the server, including a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
Example Response

```
{
  "status": 200,
  "data": [
    {
      "channel": {
        "id": "myChannel1",
        "name": "My channel",
        "description": "A channel that is mine.",
        "custom": null,
        "updated": "2019-02-20T23:11:20.893Z",
        "eTag": "RTc1NUQwNUItREMyNy00Q0YxLUJCNDItMEZDMTZDMzVCN0VGCg=="
      },
      "custom": {
        "starred": false
      },
      "updated": "2019-02-20T23:11:20.893Z",
      "eTag": "RUNDMDUwNjktNUYwRC00RTI0LUI1M0QtNUUzNkE2NkU0MEVFCg=="
    },
    {
      "channel": {
        "id": "myChannel2",
        "name": "myChannel",
        "description": "My channel",
        "custom": {
          "public": true,
          "motd": "Always check your spelling!"
        },
        "updated": "2019-02-20T23:11:20.893Z",
        "eTag": "RTc1NUQwNUItREMyNy00Q0YxLUJCNDItMEZDMTZDMzVCN0VGCg=="
      },
      "updated": "2019-02-20T23:11:20.893Z",
      "eTag": "RUNDMDUwNjktNUYwRC00RTI0LUI1M0QtNUUzNkE2NkU0MEVFCg=="
    }
  ],
  "totalCount": 7,
  "next": "RDIwQUIwM0MtNUM2Ni00ODQ5LUFGRjMtNDk1MzNDQzE3MUVCCg==",
  "prev": "MzY5RjkzQUQtNTM0NS00QjM0LUI0M0MtNjNBQUFGODQ5MTk2Cg=="
}
```

status
Type:
integer
HTTP status code.
error
Type:
object
Error response.
Example Response

```
{
  "status": 400,
  "error": {
    "message": "Request payload contained invalid input.",
    "source": "metadata",
    "details": [
      {
        "message": "The email must be a valid email address.",
        "location": "uuid.email",
        "locationType": "body"
      }
    ]
  }
}
```

Disabled - The subscribe key doesn't have App Context API enabled.

Forbidden - The client isn't authorized to perform this operation. The authorization key you provided doesn't have the required permissions for this operation.
status
Type:
integer
HTTP status code.
error
Type:
object
Error response.
Example Response
Example
1
Example
2

```
{
  "status": 403,
  "error": {
    "message": "Invalid signature",
    "source": "authz",
    "details": [
      {
        "message": "Client and server produced different signatures for the same inputs.",
        "location": "signature",
        "locationType": "query"
      }
    ]
  }
}
```

status
Type:
integer
HTTP status code.
error
Type:
object
Error response.
Example Response

```
{
  "status": 415,
  "error": {
    "message": "Request payload must be in JSON format.",
    "source": "metadata"
  }
}
```

status
Type:
integer
HTTP status code.
error
Type:
object
Error response.
Example Response

```
{
  "status": 429,
  "error": {
    "message": "You have exceeded the maximum number of requests per second allowed for your subscribe key.",
    "source": "metadata"
  }
}
```

status
Type:
integer
HTTP status code.
error
Type:
object
Error response.
Example Response

```
{
  "status": 500,
  "error": {
    "message": "An unexpected error occurred while processing the request.",
    "source": "metadata"
  }
}
```

status
Type:
integer
HTTP status code.
error
Type:
object
Error response.
Example Response

```
{
  "status": 503,
  "error": {
    "message": "The server took longer to respond than the maximum allowed processing time.",
    "source": "metadata"
  }
}
```
