Yext Live API API

The Live API API from Yext — 21 operation(s) for live api.

OpenAPI Specification

yext-live-api-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Yext Admin Account Settings Live API API
  version: '2.0'
servers:
- url: https://api.yextapis.com/v2
security:
- api_key: []
- api-key: []
tags:
- name: Live API
paths:
  /accounts/{accountId}/entities:
    get:
      operationId: listEntities
      parameters:
      - schema:
          minLength: 0
          type: string
        name: accountId
        in: path
        required: true
      - schema:
          minLength: 0
          type: string
        description: A date in `YYYYMMDD` format.
        name: v
        in: query
        required: true
      - schema:
          minLength: 0
          type: string
        description: "Optional parameter to return fields of type **Markdown** as HTML.\n  - `false`: **Markdown** fields will be returned as JSON\n  - `true`: **Markdown** fields will be returned as HTML\n"
        name: convertMarkdownToHTML
        in: query
        required: false
      - schema:
          minLength: 0
          type: string
        description: "Optional parameter to return fields of type **Rich Text** as HTML.\n  - `false`: **Rich Text** fields will be returned as JSON\n  - `true`: **Rich Text** fields will be returned as HTML\n"
        name: convertRichTextToHTML
        in: query
        required: false
      - schema:
          minLength: 0
          type: string
        description: "Comma-separated list of Entity types to filter on. Example: `\"location,event\"`\n\nShould be from the following types:\n  * `atm`\n  * `event`\n  * `faq`\n  * `financialProfessional`\n  * `healthcareFacility`\n  * `healthcareProfessional`\n  * `hotel`\n  * `hotelRoomType`\n  * `job`\n  * `location`\n  * `organization`\n  * `product`\n  * `restaurant`\n\nOR the API name of a custom entity type.\n"
        name: entityTypes
        in: query
        required: false
      - schema:
          minLength: 0
          type: string
        description: Comma-separated list of field names. When present, only the fields listed will be returned. You can use dot notation to specify substructures (e.g., `"address.line1"`). Custom fields are specified in the same way, albeit with their `c_*` name.
        name: fields
        in: query
        required: false
      - schema:
          minLength: 0
          type: string
        description: "This parameter represents one or more filtering conditions that are applied to the set of entities that would otherwise be returned. This parameter should be provided as a URL-encoded string containing a JSON object.\n\nFor example, if the filter JSON is `{\"name\":{\"$eq\":\"John\"}}`, then the filter param after URL-encoding will be: `filter=%7B%22name%22%3A%7B%22%24eq%22%3A%22John%22%7D%7D`\n\n**Basic Filter Structure**\n\nThe filter object at its core consists of a *matcher*, a *field*, and an *argument*.\n\nFor example, in the following filter JSON:\n\n```\n{\n  \"name\":{\n    \"$eq\":\"John\"\n  }\n}\n```\n\n`$eq` is the *matcher*, or filtering operation (equals, in this example),\n\n`name` is the *field* being filtered by, and\n\n`John` is *value* to be matched against.\n\n**Combining Multiple Filters**\n\nMultiple filters can be combined into one object using *combinators*. For example, the following filter JSON combines multiple filters using the combinator `$and`. `$or` is also supported.\n```\n{\n  \"$and\":[\n    {\n      \"firstName\":{\n        \"$eq\":\"John\"\n      }\n    },\n    {\n      \"countryCode\":{\n        \"$in\":[\n          \"US\",\n          \"GB\"\n        ]\n      }\n    }\n  ]\n}\n```\n\n**Filter Negation**\n\nCertain filter types may be negated. For example:\n\n```\n{\n  \"$not\": {\n    \"name\": {\n      \"$eq\": \"John\"\n    }\n  }\n}\n```\n\nThis can also be written more simply with a `!` in the `$eq` parameter. The following filter would have the same effect:\n\n```\n{\n  \"name\":{\n    \"!$eq\":\"John\"\n  }\n}\n```\n\n**Filter Complement**\n\nYou can also search for the complement of a filter. This filter would match entities that do not contain \"hello\" in their descriptions, or do not have a description set. This is different from negation which can only match entities who have the negated field set to something.\n\n```\n{\n  \"$complement\":{\n    \"description\":{\n      \"$contains\":\"hello\"\n    }\n  }\n}\n```\n\n**Addressing Subfields**\n\nSubfields of fields can be addressed using the \"dot\" notation while filtering. For example, if you have a custom field called **`c_myCustomField`**:\n\n```\n{\n  \"c_myCustomField\":{\n    \"age\": 30,\n    \"name\": \"Jim\",\n  }\n}\n```\n\nWhile filtering, subfields may be addressed using the \"dot\" notation.\n\n```\n{\n  \"c_myCustomField.name\":{\n    \"!$eq\":\"John\"\n  }\n}\n```\n\nFields that are nested deeper may be addressed using dot notation, as well. For example, if **`name`** in the above example was a compound field with two subfields **`first`** and **`last`**, **`first`** may be addressed as **`c_myCustomField.name.first`**.\n\n**Field Support**\n\nEntity fields correspond to certain filter types, which support matchers. Going by the example above, the field **`name`** supports the `TEXT` filter type, which supports `$eq` (equals) and `$startsWith` (starts with).\n\n**TEXT**\n\nThe `TEXT` filter type is supported for text fields. (e.g., **`name`**, **`countryCode`**)\n\n<table style=\"width:100%\">\n  <tr>\n    <th>Matcher</th>\n    <th>Details</th>\n  </tr>\n  <tr>\n    <th>$eq (equals)</th>\n    <th>\n\n    {\n      \"countryCode\":{\n        \"$eq\":\"US\"\n      }\n    },\n    {\n      \"countryCode\":{\n        \"!$eq\":\"US\"\n      }\n    }\n\n  Supports negation. Case insensitive.\n  </tr>\n  <tr>\n    <th>$startsWith</th>\n    <th>\n\n  Matches if the field starts with the argument value.\n\n  e.g., \"Amazing\" starts with \"amaz\"\n\n    {\n       \"address.line1\":{\n          \"$startsWith\": \"Jo\"\n       }\n    }\n\n  Supports negation. Case insensitive.\n  </tr>\n  <tr>\n    <th>$in</th>\n    <th>\n\n  Matches if field value is a member of the argument list.\n\n    {\n      \"firstName\":{\n        \"$in\": [\"John\", \"Jimmy\"]\n      }\n    }\n\n  Does not support negation. Negation can be mimicked by using an \"OR\" matcher, for example:\n\n    {\n      \"$and\":[\n        {\n          \"firstName\":{\n            \"!$eq\": \"John\"\n          }\n        },\n        {\n          \"firstName\":{\n            \"!$eq\": \"Jimmy\"\n          }\n        }\n      ]\n    }\n\n  </tr>\n  <tr>\n    <th>$contains</th>\n    <th>\n\n    {\n      \"c_myString\":{\n        \"$contains\":\"sample\"\n      }\n    }\n\n  This filter will match if \"sample\" is contained in any string within **`c_myString`**.\n\n  Note that this matching is \"left-edge n-gram\", meaning the argument string must be the beginning of a token. The string \"sample\" will match strings like \"This a sample\", \"Sample one\", and \"Sample 2\", but not strings like \"thisisasamplewithoutspaces\".\n\n  Supports negation.\n  </tr>\n  <tr>\n    <th>$containsAny</th>\n    <th>\n\n    {\n      \"c_myString\":{\n        \"$containsAny\":[\n          \"sample1\", \"sample2\"\n        ]\n      }\n    }\n\n  This filter will match if either \"sample1\" or \"sample2\" is contained in any string within **`c_myString`**. The argument list can contain more than two strings.\n\n  Note that this matching is \"left-edge n-gram\", meaning the argument string must be the beginning of a token. The string \"sample\" will match strings like \"This a sample\", \"Sample one\", and \"Sample 2\", but not strings like \"thisisasamplewithoutspaces\".\n\n  Supports negation.\n  </tr>\n  <tr>\n    <th>$containsAll</th>\n    <th>\n\n    {\n      \"c_myString\":{\n        \"$containsAll\":[\n          \"sample1\",\n          \"sample2\"\n        ]\n      }\n    }\n\n  This filter will match if both \"sample1\" and \"sample2\" are contained in any string within **`c_myString`**. The argument list can contain more than two strings.\n\n  Note that this matching is \"left-edge n-gram\", meaning the argument string must be the beginning of a token. The string \"sample\" will match strings like \"This a sample\", \"Sample one\", and \"Sample 2\", but not strings like \"thisisasamplewithoutspaces\".\n\n  Supports negation.\n  </tr>\n</table>\n\n**BOOLEAN**\n\n\nThe BOOLEAN filter type is supported for boolean fields and Yes / No custom fields.\n<table style=\"width:100%\">\n  <tr>\n    <th>Matcher</th>\n    <th>Details</th>\n  </tr>\n  <tr>\n    <th>$eq</th>\n    <th>\n\n    {\n      \"isFreeEvent\": {\n        \"$eq\": true\n      }\n    }\n\n  For booleans, the filter takes a boolean value, not a string.\n  Supports negation.\n  </tr>\n</table>\n\n**STRUCT**\n\nThe STRUCT filter type is supported for compound fields with subfields.\n\n*e.g., **`address`**, **`featuredMessage`**, fields of custom types*\n\n<table style=\"width:100%\">\n  <tr>\n    <th>Matcher</th>\n    <th>Details</th>\n  </tr>\n  <tr>\n    <th>$hasProperty</th>\n    <th>\n\n  Matches if argument is a key (subfield) of field being filtered by. This filter type is useful for filtering by compound fields or to check if certain fields have a value set.\n\n    {\n      \"address\": {\n        \"$hasProperty\": \"line1\"\n      }\n    }\n\n  Note that if a given property of a compound field is not set, the filter will not match. For example, if `line1` of **`address`** is not set for an entity, then the above matcher will not match the entity.\n\n  Supports negation.\n\n  </tr>\n</table>\n\n**OPTION**\n\nThe OPTION filter type is supported for options custom fields and fields that have a predetermined list of valid values.\n\n *e.g., **`eventStatus`**, **`gender`**, `SINGLE_OPTION` and `MULTI_OPTION` types of custom fields.*\n\n<table style=\"width:100%\">\n  <tr>\n    <th>Matcher</th>\n    <th>Details</th>\n  </tr>\n  <tr>\n    <th>$eq</th>\n    <th>\n\n  Matching is case insensitive and insensitive to consecutive whitespace.\n\n  e.g., \"XYZ 123\" matches \"xyz       123\"\n\n    {\n      \"eventStatus\": {\n        \"$eq\": \"SCHEDULED\"\n      }\n    }\n\n  Supports negation. Negating `$eq` on the list will match any field that does not hold any of the provided values.\n\n  </tr>\n  <tr>\n    <th>$in</th>\n    <th>\n\n    {\n      \"eventStatus\": {\n        \"$in\": [\n          \"SCHEDULED\",\n          \"POSTPONED\"\n        ]\n      }\n    }\n\n  Does not support negation. However, negation can be mimicked by using an `$and` matcher to negate individually over the desired values. For example:\n\n    {\n      \"$and\": [\n        {\n          \"eventStatus\":{\n            \"!$eq\": \"SCHEDULED\"\n          }\n        },\n        {\n          \"firstName\":{\n            \"!$eq\": \"POSTPONED\"\n          }\n        }\n      ]\n    }\n\n  </tr>\n</table>\n\n**PHONE**\n\nThe PHONE filter type is supported for phone number fields only. PHONE will support the same matchers as TEXT, except that for `$eq`, the same phone number with or without calling code will match.\n\n<table style=\"width:100%\">\n  <tr>\n    <th>Matcher</th>\n    <th>Details</th>\n  </tr>\n  <tr>\n    <th>$eq</th>\n    <th>\n\n    {\n      \"mainPhone\":{\n        \"$eq\":\"+18187076189\"\n      }\n    },\n    {\n      \"mainPhone\":{\n        \"$eq\":\"8187076189\"\n      }\n    },\n    {\n      \"mainPhone\":{\n        \"!$eq\":\"9177076189\"\n      }\n    }\n\n  Supports negation. Case insensitive.\n\n  </tr>\n  <tr>\n    <th>$startsWith</th>\n    <th>\n\n  Matches if the field starts with the argument value.\n\n  e.g., \"8187076189\" starts with \"818\"\n\n    {\n      \"mainPhone\":{\n        \"$startsWith\": \"818\"\n      }\n    }\n\n  Supports negation. Case insensitive.\n\n  </tr>\n  <tr>\n    <th>$in</th>\n    <th>\n\n  Matches if field value is a member of the argument list.\n\n    {\n      \"mainPhone\":{\n        \"$in\": [\n          \"8185551616\",\n          \"9171112211\"\n        ]\n      }\n    }\n\n  Does not support negation. However, negation can be mimicked by using an `$and` matcher to negate individually over the desired values.\n\n  </tr>\n</table>\n\n**INTEGER, FLOAT, DATE, DATETIME, and TIME**\n\nThese filter types are strictly ordered -- therefore, they support the following matchers:\n- Equals\n- Less Than / Less Than or Equal To\n- Greater Than / Greater Than or Equal To\n\n<table style=\"width:100%\">\n  <tr>\n    <th>Matcher</th>\n    <th>Details</th>\n  </tr>\n  <tr>\n    <th>$eq</th>\n    <th>\n\n  Equals\n\n    {\n      \"ageRange.maxValue\": {\n        \"$eq\": \"80\"\n      }\n    }\n\n  Supports negation.\n\n  </tr>\n  <tr>\n    <th>$lt</th>\n    <th>\n\n  Less than\n\n    {\n      \"time.start\": {\n        \"$lt\": \"2018-08-28T05:56\"\n      }\n    }\n\n  </tr>\n  <tr>\n    <th>$gt</th>\n    <th>\n\n  Greater than\n\n    {\n      \"ageRange.maxValue\": {\n        \"$gt\": \"50\"\n      }\n    }\n\n  </tr>\n  <tr>\n    <th>$le</th>\n    <th>\n\n  Less than or equal to\n\n    {\n      \"ageRange.maxValue\": {\n        \"$le\": \"40\"\n      }\n    }\n\n  </tr>\n  <tr>\n    <th>$ge</th>\n    <th>\n\n  Greater than or equal to\n\n    {\n      \"time.end\": {\n        \"$ge\":  \"2018-08-28T05:56\"\n      }\n    }\n\n  </tr>\n  <tr>\n    <th>Combinations</th>\n    <th>\n\n  While we do not support \"between\" in our filtering syntax, it is possible to combine multiple matchers for a result similar to an \"and\" operation:\n\n    {\n      \"ageRange.maxValue : {\n        \"$gt\" : 10,\n        \"$lt\": 20\n      }\n    }\n\n  </tr>\n</table>\n\n**LIST OF TEXT**\n\nAny field that has a list of valid values and supports any of the previously mentioned filter types will also support the `$contains` matcher.\n\n<table style=\"width:100%\">\n  <tr>\n    <th>Matcher</th>\n    <th>Details</th>\n  </tr>\n  <tr>\n    <th>$eq</th>\n    <th>\n\n    {\n      \"c_myStringList\": {\n        \"$eq\": \"sample\"\n      }\n    }\n\n  This filter will match if \"sample\" EXACTLY matches any string within **`c_myStringList`**.\n\n  Supports negation.\n\n  </tr>\n  <tr>\n    <th>$eqAny</th>\n    <th>\n\n    {\n      \"c_myStringList\": {\n        \"$eqAny\": [\n          \"sample1\",\n          \"sample2\"\n        ]\n      }\n    }\n\n  This filter will match if any one of \"sample1\" or \"sample2\" EXACTLY match a string within **`c_myStringList`** . The argument can have more than two strings.\n\n  Supports negation.\n\n  </tr>\n  <tr>\n    <th>$eqAll</th>\n    <th>\n\n    {\n      \"c_myStringList\": {\n        \"$eqAll\": [\n          \"sample1\",\n          \"sample2\"\n        ]\n      }\n    }\n\n  This filter will match if both \"sample1\" AND \"sample2\" EXACTLY match a string within **`c_myStringList`**. The argument can have more than two strings.\n\n  Supports negation.\n\n  </tr>\n  <tr>\n    <th>$contains</th>\n    <th>\n\n    {\n      \"c_myStringList\":{\n        \"$contains\":\"sample\"\n      }\n    }\n\n  This filter will match if \"sample\" is contained in any string within **`c_myStringList`**.\n\n  Note that this matching is \"left edge n-gram\", meaning the argument string must be the beginning of a token. The string \"sample\" will match strings like \"This is a sample\", \"Sample one\", \"Sample 2\" but not strings like \"thisisasamplewithoutspaces\".\n\n  Supports negation.\n\n  </tr>\n  <tr>\n    <th>$containsAny</th>\n    <th>\n\n    {\n      \"c_myStringList\": {\n        \"$containsAny\": [\n          \"sample1\",\n          \"sample2\"\n        ]\n      }\n    }\n\n\n  This filter will match if either \"sample1\" or \"sample2\" is contained in any string within **`c_myStringList`**. The argument list can have more than two strings.\n\n  Note that similar to `$contains`, the matching for `$containsAny` is \"left edge n-gram\", meaning the argument string must be the beginning of a token. The string \"sample\" will match strings like \"This is a sample\", \"Sample one\", \"Sample 2\" but not strings like \"thisisasamplewithoutspaces\".\n\n  Supports negation.\n\n  </tr>\n  <tr>\n    <th>$containsAll</th>\n    <th>\n\n    {\n      \"c_myStringList\": {\n        \"$containsAll\": [\n          \"sample1\",\n          \"sample2\"\n        ]\n      }\n    }\n\n  This filter will match if BOTH \"sample1\" and \"sample2\" are contained in strings within **`c_myStringList`**. The argument list can have more than two strings.\n\n  Note that similar to `$contains`, the matching for `$containsAll` is \"left-edge n-gram\", meaning the argument string must be the beginning of a token. The string \"sample\" will match strings like \"This a sample\", \"Sample one\", and \"Sample 2\", but not strings like \"thisisasamplewithoutspaces\".\n\n  Supports negation.\n\n  </tr>\n  <tr>\n    <th>$startsWith</th>\n    <th>\n\n    {\n      \"c_myStringList\": {\n        \"$startsWith\":\"sample\"\n      }\n    }\n\n  This filter will match if any string within **`c_myStringList`** starts with \"sample\".\n\n  Does not supports negation. Case Insensitive.\n\n  </tr>\n</table>\n\n**LIST OF BOOLEAN, OPTION, PHONE, INTEGER, FLOAT, DATE, DATETIME, OR TIME**\n\n<table style=\"width:100%\">\n  <tr>\n    <th>Matcher</th>\n    <th>Details</th>\n  </tr>\n  <tr>\n    <th>$eq</th>\n    <th>\n\n    {\n      \"c_myDateList\": {\n        \"$eq\": \"2019-01-01\"\n      }\n    }\n\n\n  This filter will match if \"2019-01-01\" EXACTLY matches any date within **`c_myDateList`**.\n\n  Supports negation.\n\n  </tr>\n  <tr>\n    <th>$eqAny</th>\n    <th>\n\n    {\n      \"c_myIntegerList\": {\n        \"$eqAny\": [1, 2]\n      }\n    }\n\n  This filter will match if 1 or 2 EXACTLY match any integer within **`c_myIntegerList`**. The argument list can have more than two elements.\n\n  Supports negation.\n\n  </tr>\n\n  <tr>\n    <th>$eqAll</th>\n    <th>\n\n    {\n      \"c_myStringList\": {\n        \"$eqAll\": [\n          \"sample1\",\n          \"sample2\"\n        ]\n      }\n    }\n\n  This filter will match if both \"2019-01-01\" AND \"2019-01-02\" EXACTLY match a date within **`c_myDateList`**. The argument list can have more than two elements.\n\n  Supports negation.\n\n  </tr>\n</table>\n\n**LIST OF STRUCT**\n\nFiltering on lists of struct types is a bit nuanced. Filtering can only be done on lists of structs of the SAME type.\nFor example, if **`c_myStructList`** is a list of compound fields with the subfields **`age`** and **`name`**, then one can address the **`age`** properties of each field in **`c_myStructList`** as a flattened list of integers and filtering upon them. For example, the following filter:\n\n```\n{\n  \"c_myStructList.age\":{\n    \"$eq\": 20\n  }\n}\n```\n\nwill match if any field in the list has an **`age`** property equal to 20. Similarly, any filter that can be applied to lists of integers could be applied to **`age`** in this case (`$eq`, `$eqAll`, `$eqAny`).\n\n\n**HOURS**\n\nBy filtering on an hours field, you can find which entities are open or closed at a specified time or during a certain time range. All of these filters also take an entity’s holiday hours and reopen date into account.\n\n<table style=\"width:100%\">\n  <tr>\n    <th>Matcher</th>\n    <th>Details</th>\n  </tr>\n  <tr>\n    <th>$openAt</th>\n    <th>\n\n    {\n      \"hours\": {\n        \"$openAt\":\n          \"2019-01-06T13:45\"\n      }\n    }\n\n\n  This filter would match entities open at the specified time.\n\n  </tr>\n  <tr>\n    <th>$closedAt</th>\n    <th>\n\n    {\n      \"hours\": {\n        \"$closedAt:\n          \"2019-01-06T13:45\"\n      }\n    }\n\n  </tr>\n\n  <tr>\n    <th>$openForAllOf</th>\n    <th>\n\n    {\n      \"hours\": {\n        \"$openForAllOf\": {\n          \"start\":\n            \"2019-01-06T13:45\",\n          \"end\":\n            \"2019-01-06T15:00\"\n        }\n      }\n    }\n\n\n  This filter would match only those entities that are open for the entire range between 2019-01-06T13:45 and 2019-01-06T15:00.\n\n    {\n      \"hours\": {\n        \"$openForAllOf\":\n          \"2019-05-10\"\n      }\n    }\n\n  This filter would match entities open for the entire 24 hour period on 2019-05-10.\n\n  You can also supply a year, a month, or an hour to filter for entities open for the entire year, month, or hour, respectively.\n\n  </tr>\n  <tr>\n    <th>$openForAnyOf</th>\n    <th>\n\n    {\n      \"hours\": {\n        \"$openForAnyOf\": {\n          \"start\": \"now\",\n          \"end\": \"now+2h\"\n        }\n      }\n    }\n\n  This filter will match any entities that are open for at least a portion of the time range between now and two hours from now.\n\n  </tr>\n  <tr>\n    <th>$closedForAllOf</th>\n    <th>\n\n    {\n      \"hours\": {\n        \"$closedForAllOf\": {\n          \"start\":\n            \"2019-01-06T13:45\",\n          \"end\":\n            \"2019-01-06T15:00\"\n        }\n      }\n    }\n\n  This filter will match only those entities that are closed for the entire given time range.\n  </tr>\n  <tr>\n    <th>$closedForAnyOf</th>\n    <th>\n\n    {\n      \"hours\": {\n        \"$closedForAnyOf\": {\n          \"start\":\n            \"2019-01-06T13:45\",\n          \"end\":\n            \"2019-01-06T15:00\"\n        }\n      }\n    }\n\n  This filter will match any entities that are closed for at least a portion of the given time range.\n  </tr>\n</table>\n\n\n**Filtering by Dates and Times**\n\n**Time zones**\n\nThe filtering language supports searching both in local time and within a certain time zone. Searching in local time will simply ignore the time zone on the target entities, while providing one will convert the zone of your queried time to the zone of the target entities.\n\nTo search in local time, simply provide the date or time without any zone: `2019-06-07T15:30` or `2019-06-07`.\n\nTo conduct a zoned search, provide the name of the time zone in brackets after the time, as it is shown in the tz database: `2019-06-07T15:30[America/New_York]` or `2019-06-06[America/Phoenix]`.\n\n\n**Date and time types**\n\nIn addition to searching with dates and datetimes, you can also query with years, months, and hours. For example, the filter:\n\n```\n{\n  \"time.start\": {\n    \"$eq\": \"2018\"\n  }\n}\n```\n\nwould match all start times in the year 2018. The same logic would apply for a month (`2019-05`), a date (`2019-05-01`), or an hour (`2019-05-01T06`).\n\nThese types also work with ordered searches. For example:\n\n```\n{\n \"time.start\": {\n    \"$lt\": \"2018\"\n }\n}\n```\n\nwould match start times before 2018 (i.e., anything in 2017 or before). On the other hand, the same query with a `$le` matcher would include anything in or before 2018.\n\n**\"Now\" and Date Math**\n\nInstead of providing a static date or time, you can also use `now` in place of any date time. When you do so, the system will calculate the time when the query is made and conduct a zoned search.\n\nIn order to search for a future or past time relative to `now`, you can use date math. For example, you can enter `now+3h` or `now-1d`, which would mean 3 hours from now and 1 day ago, respectively. You can also add and subtract minutes (`m`), months (`M`), and years (`y`).\n\nIt is also possible to add or subtract time from a static date or datetime. Simply add `||` between the static value and any addition or subtraction. For example, `2019-02-03||+1d` would be the same as `2019-02-04`.\n\nYou can also convert date and time types to other types. For example, to convert the datetime `2019-05-06T22:15` to a date, use `2019-05-06T22:15||/d`. Doing so would yield the same result as using `2019-05-06`. This method also works with `now`: `now/d` will give you today’s date without the time.\n\n**Filtering Across an Entity**\n\nIt is possible to search for a specific text string across all fields of an entity by using the `$anywhere` matcher.\n\n<table style=\"width:100%\">\n  <tr>\n    <th>Matcher</th>\n    <th>Details</th>\n  </tr>\n  <tr>\n    <th>$anywhere</th>\n    <th>\n\n  Matches if the argument text appears anywhere in the entity (including subfields, structs, and lists)\n\n    {\n      \"$anywhere\": \"hello\"\n    }\n\n  This filter will match all entities that contain the string \"hello\" or strings that begin with \"hello\".\n\n  </tr>\n</table>\n\n**Examples**\n\nThe following filter will match against entities that:\n- Are of type `event` (note that entity types can also be filtered by the **`entityTypes`** query parameter)\n- Have a name that starts with the text \"Century\"\n- Have a maximum age between 10 and 20\n- Have a minimum age between 5 and 7\n- Start after 7 PM (19:00) on August 28, 2018\n\n```\n{\n  \"$and\":[\n    {\n      \"entityType\":{\n        \"$eq\":\"event\"\n      }\n    },\n    {\n      \"name\":{\n        \"$startsWith\":\"Century\"\n      }\n    },\n    {\n      \"ageRange.maxValue\":{\n        \"$gt\":10,\n        \"$lt\":20\n      }\n    },\n    {\n      \"ageRange.minValue\":{\n        \"$gt\":5,\n        \"$lt\":7\n      }\n    },\n    {\n      \"time.start\":{\n        \"$ge\":\"2018-08-28T19:00\"\n      }\n    }\n  ]\n}\n```\n"
        name: filter
        in: query
        required: false
      - schema:
          minLength: 0
          type: string
          default: markdown
        description: "Present if and only if at least one field is of type \"**Legacy Rich Text**.\"\n\nValid values:\n  * `markdown`\n  * `html`\n  * `none`\n"
        name: format
        in: query
        required: false
      - schema:
          minLength: 0
          type: string
        description: 'Comma-separated list of language codes.


          When present, the system will return Entities that have profiles in one or more of the provided languages. For each Location, only the first available profile from the provided list of languages will be returned. The keyword `"primary"` can be used to refer to a Location’s primary profile without providing a specific language code. If an Entity does not have profiles in any of the languages provided, that Entity''s primary profile will be returned.

          '
        name: languages
        in: query
        required: false
      - schema:
          multipleOf: 1
          maximum: 50
          type: number
          default: '10'
        description: Number of results to return.
        name: limit
        in: query
        required: false
      - schema:
          multipleOf: 1
          type: number
          default: '0'
        description: 'Number of results to skip. Used to page through results.

          Cannot be used together with **`pageToken`**.


          For Live API requests, the offset cannot be higher than 9,950. For Knowledge API the maximum limit is only enforced if a filter and/or sortBy parameter are given.

          '
        name: offset
        in: query
        required: false
      - schema:
          minLength: 0
          type: string
        description: If a response to a previous request contained the **`pageToken`** field, pass that field's value as the **`pageToken`** parameter to retrieve the next page of data.
        name: pageToken
        in: query
        required: false
      - schema:
          minLength: 0
          type: string
        description: 'A comma-separated list of saved filter IDs.


          When present, the system will return entities that are included in the filters matching **all** of the provided IDs.

          '
        name: savedFilterIds
        in: query
        required: false
      - schema:
          minLength: 0
          type: string
        description: 'A list of fields and sort directions to order results by. Each ordering in the list should be in the format `{"field_name", "sort_direction"}`, where `sort_direction` is either `ASCENDING` or `DESCENDING`.


          For example, to order by `name` the sort order would be `[{"name":"ASCENDING"}]`. To order by `name` and then `description`, the sort order would be `[{"name":"ASCENDING"},{"description":"ASCENDING"}]`.

          '
        name: sortBy
        in: query
        required: false
      tags:
      - Live API
      summary: 'Entities: List'
      description: 'Retrieve a list of Entities within an account


        **NOTE:** Responses will contain resolved values for embedded fields

        '
      responses:
        '200':
          description: Success Response
          content:
            application/json:
              schema:
                additionalProperties: false
                type: object
                properties:
                  meta:
                    additionalProperties: false
                    type: object
                    properties:
                      uuid:
                        minLength: 0
                        type: string
                        description: Unique ID for this request / response.
                  response:
                    additionalProperties: false
                    type: object
                    properties:
                      count:
                        multipleOf: 1
                        type: number
                        description: Total number of Entities that meet the filter criteria (ignores **``limit``** / **``offset``** parameters)
                      entities:
                        uniqueItems: false
                        type: array
                        items:
                          additionalProperties: false
                          type: object
                          properties:
                            meta:
                              additionalProperties: false
                              type: object
                              properties:
                                accountId:
                                  minLength: 0
                                  type: string
                                  description: ID of the account associated with this Entity
                                countryCode:
                                  minLength: 0
                                  type: string
                                  description: 'Country code of this Entity''s Language Profile (defaults to the country of the account)


                                    Filtering Type: `text`'
                                createdTimestamp:
                                  minLength: 0
                                  type: string
                                  description: The timestamp of when the entity record was created.
                                entityType:
                                  minLength: 0
                                  type: string
                                  description: 'This Entity''s type (e.g., location, event)


                                    Filtering Type: `text`'
                                folderId:
                                  minLength: 0
                                  type: string
                                  description: 'The ID of the folder containing this Entity


                                    Filtering Type: `text`'
                                id:
                                  minLength: 0
                                  type: string
                                  description: 'ID of this Entity


                                    Filtering Type: `text`'
                                labels:
                                  uniqueItems: false
                                  type: array
                                  items:
                                    minLength: 0
                                    type: string
                                    description: 'Filtering Type: `text`'
                                  description: 'This Entity''s labels. If the **`v`** parameter is before `20211215`, this will be an integer.


                                    Filtering Type: `list of text`'
                                language:
                                  minLength: 0
                                  type: string
                                  description: 'Language code of this Entity''s Language Profile (defaults to the language code of the account)


                                    Filtering Type: `text`'
                                timestamp:
                                  minLength: 0
                                  type: string
                                  description: 'The timestamp of the most recent change to this entity record. Will be ignored when the client is saving entity data to Yext.


                                    **NOTE:** The timestamp may change even if observable fields stay the same.

                                    '
               

# --- truncated at 32 KB (2691 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/yext/refs/heads/main/openapi/yext-live-api-api-openapi.yml