Get metadata for all users

Returns a paginated list of UUID metadata, optionally including custom properties.

Path Parameters
sub_key string REQUIRED

Your app's subscribe key from Admin Portal.

Query Parameters
include string[]

Possible values: [custom, type, status]

List of additional/complex UUID metadata to include in the response. Omit this query parameter if you don't want to retrieve additional metadata.

limit integer

Possible values: value ≤ 100

Number of objects to return in response. Default is 100, which is also the maximum value.

start 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 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 boolean

Request totalCount to be included in the paginated response. By default, totalCount is omitted.

filter 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.

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 == true

Example (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: id,name:desc,updated,status,type

auth string

String 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 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 for details on how to compute the signature.

timestamp 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.

Responses
200

Successfully returned the list of UUID metadata.

Schema OPTIONAL
data object[]

List of returned objects.

id string OPTIONAL

Possible values: 1 ≤ length ≤ 92

A UTF-8 encoded string used to identify the client. 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.

updated date-time

Date and time the object was last updated.

eTag string

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.

name string OPTIONAL

Possible values: 1 ≤ length

Name of the UUID. Max. 2,048 characters. Must not be empty or consist only of whitespace characters.

externalId string OPTIONAL

UUID's identifier in an external system. Max. 2,048 characters.

profileUrl uri OPTIONAL

URL for the UUID's profile picture. Max. 2,048 characters. Syntax is as defined in RFC 3986.

email email OPTIONAL

The UUID's email address. Max. 320 characters. Syntax is as defined by RFC 5322 and extended by RFC 6532, with one exception: the display-name part is not allowed (only the addr-spec part is allowed).

type string OPTIONAL

User type. Max. 50 characters.

status string OPTIONAL

User 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.

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.

304

Requested resource has not been modified since the last retrieval.

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 OPTIONAL
status integer OPTIONAL

HTTP status code.

error object OPTIONAL

Error response.

message string OPTIONAL

User-facing error message.

source string OPTIONAL

Possible values: [metadata, authz]

Internal source of the error.

details object[] OPTIONAL
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 OPTIONAL
status integer OPTIONAL

HTTP status code.

error object OPTIONAL

Error response.

message string OPTIONAL

User-facing error message.

source string OPTIONAL

Possible values: [metadata, authz]

Internal source of the error.

details object[] OPTIONAL
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 OPTIONAL
status integer OPTIONAL

HTTP status code.

error object OPTIONAL

Error response.

message string OPTIONAL

User-facing error message.

source string OPTIONAL

Possible values: [metadata, authz]

Internal source of the error.

details object[] OPTIONAL
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 OPTIONAL
status integer OPTIONAL

HTTP status code.

error object OPTIONAL

Error response.

message string OPTIONAL

User-facing error message.

source string OPTIONAL

Possible values: [metadata, authz]

Internal source of the error.

details object[] OPTIONAL
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]

* required
sub_key*
Type: string
Your app's subscribe key from Admin Portal.
include
Type: array
List of additional/complex UUID 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.

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) 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 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.
data
Type: array
List of returned objects.
Array items:
items
Type: object
Object with UUID metadata used in responses.
Example: {"id":"uuid-1","name":"John Doe","externalId":null,"profileUrl":null,"email":"jack@twitter.com","updated":"2019-02-20T23:11:20.893Z","eTag":"MDcyQ0REOTUtNEVBOC00QkY2LTgwOUUtNDkwQzI4MjgzMTcwCg=="}
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": [
    {
      "id": "uuid-2",
      "name": "John Doe",
      "externalId": null,
      "profileUrl": null,
      "email": "jack@twitter.com",
      "custom": null,
      "updated": "2019-02-20T23:11:20.893Z",
      "eTag": "MDcyQ0REOTUtNEVBOC00QkY2LTgwOUUtNDkwQzI4MjgzMTcwCg=="
    },
    {
      "id": "uuid-3",
      "name": "Bob Cat",
      "externalId": null,
      "profileUrl": null,
      "email": "bobc@example.com",
      "custom": {
        "phone": "999-999-9999"
      },
      "updated": "2019-02-21T03:29:00.173Z",
      "eTag": "QkRENDA5MjItMUZCNC00REI5LUE4QTktRjJGNUMxNTc2MzE3Cg=="
    }
  ]
}
status
Type: integer
HTTP status code.
error
Type: object
Error response.
Example Response
{
  "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": 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"
  }
}