{ "opencollection": "1.0.0", "info": { "name": "Yext Admin Account Settings Knowledge Manager API", "version": "2.0" }, "request": { "auth": { "type": "apikey", "key": "api_key", "value": "{{api_key}}", "placement": "query" } }, "items": [ { "info": { "name": "Knowledge Manager", "type": "folder" }, "items": [ { "info": { "name": "Entities: List", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/entities", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "convertMarkdownToHTML", "value": "", "type": "query", "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": "convertRichTextToHTML", "value": "", "type": "query", "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": "entityTypes", "value": "", "type": "query", "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": "fields", "value": "", "type": "query", "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": "filter", "value": "", "type": "query", "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\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
MatcherDetails
$eq (equals)\n\n {\n \"countryCode\":{\n \"$eq\":\"US\"\n }\n },\n {\n \"countryCode\":{\n \"!$eq\":\"US\"\n }\n }\n\n Supports negation. Case insensitive.\n
$startsWith\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
$in\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
$contains\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
$containsAny\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
$containsAll\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
\n\n**BOOLEAN**\n\n\nThe BOOLEAN filter type is supported for boolean fields and Yes / No custom fields.\n\n \n \n \n \n \n \n \n
MatcherDetails
$eq\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
\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\n \n \n \n \n \n \n \n
MatcherDetails
$hasProperty\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
\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\n \n \n \n \n \n \n \n \n \n \n
MatcherDetails
$eq\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
$in\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
\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\n \n \n \n \n \n \n \n \n \n \n \n \n \n
MatcherDetails
$eq\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
$startsWith\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
$in\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
\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\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
MatcherDetails
$eq\n\n Equals\n\n {\n \"ageRange.maxValue\": {\n \"$eq\": \"80\"\n }\n }\n\n Supports negation.\n\n
$lt\n\n Less than\n\n {\n \"time.start\": {\n \"$lt\": \"2018-08-28T05:56\"\n }\n }\n\n
$gt\n\n Greater than\n\n {\n \"ageRange.maxValue\": {\n \"$gt\": \"50\"\n }\n }\n\n
$le\n\n Less than or equal to\n\n {\n \"ageRange.maxValue\": {\n \"$le\": \"40\"\n }\n }\n\n
$ge\n\n Greater than or equal to\n\n {\n \"time.end\": {\n \"$ge\": \"2018-08-28T05:56\"\n }\n }\n\n
Combinations\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
\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\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
MatcherDetails
$eq\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
$eqAny\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
$eqAll\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
$contains\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
$containsAny\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
$containsAll\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
$startsWith\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
\n\n**LIST OF BOOLEAN, OPTION, PHONE, INTEGER, FLOAT, DATE, DATETIME, OR TIME**\n\n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n
MatcherDetails
$eq\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
$eqAny\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
$eqAll\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
\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\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n
MatcherDetails
$openAt\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
$closedAt\n\n {\n \"hours\": {\n \"$closedAt:\n \"2019-01-06T13:45\"\n }\n }\n\n
$openForAllOf\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
$openForAnyOf\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
$closedForAllOf\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
$closedForAnyOf\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
\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\n \n \n \n \n \n \n \n
MatcherDetails
$anywhere\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
\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": "format", "value": "", "type": "query", "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": "languages", "value": "", "type": "query", "description": "Comma-separated list of language codes.\n\nWhen 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.\n" }, { "name": "limit", "value": "", "type": "query", "description": "Number of results to return." }, { "name": "offset", "value": "", "type": "query", "description": "Number of results to skip. Used to page through results.\nCannot be used together with **`pageToken`**.\n\nFor 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.\n" }, { "name": "pageToken", "value": "", "type": "query", "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": "resolvePlaceholders", "value": "", "type": "query", "description": "Optional parameter to resolve all embedded fields in a Location object response.\n - `false`: Location object returns placeholder labels, e.g., \"Your [[CITY]] store\"\n - `true`: Location object returns placeholder values, e.g., \"Your Fairfax store\"\n" }, { "name": "sortBy", "value": "", "type": "query", "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`.\n\nFor 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\"}]`.\n" } ] }, "docs": "Retrieve a list of Entities within an account\n\n**NOTE**\n\n* If the **`v`** parameter is `20240221` or later: returned entities replace the **`categoryIds`** field with the **`categories`** field.\n" }, { "info": { "name": "Entities: Create", "type": "http" }, "http": { "method": "POST", "url": "https://api.yextapis.com/v2/accounts/:accountId/entities", "headers": [ { "name": "Update-Operation-Id", "value": "" } ], "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "entityType", "value": "", "type": "query", "description": "The type of entity to be created. Should be one of the following:\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": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "format", "value": "", "type": "query", "description": "The formatting language used to parse rich text field values. Present and **required** if an only if the request contains a field with type \"**Rich Text**.\"\n\nValid values:\n * `markdown`\n * `html`\n" }, { "name": "stripUnsupportedFormats", "value": "", "type": "query", "description": "Optional parameter to strip unsupported formats in rich text fields. When this parameter is included, the unsupported formats in rich text fields will be stripped and saved as plain text; otherwise if this parameter is not included, unsupported formats will return an error.\n" }, { "name": "templateFields", "value": "", "type": "query", "description": "Comma-separated list of top-level fields to apply from the template. If provided, only the fields specified will be applied to the entity.\n\nIgnored if **`templateId`** is not provided.\n" }, { "name": "templateId", "value": "", "type": "query", "description": "The external ID of the template to apply to the entity\n\n**NOTE:** Some fields that are part of the provided template but not present in the API will be applied - e.g. Linked Accounts\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a new Entity\n\n**NOTE:**\n * If the **`v`** parameter is before `20181129`: the 201 response contains the created Entity's **`id`**\n * If the **`v`** parameter is on or after `20181129`: the 201 response contains the created Entity in its entirety\n * If the **`v`** parameter is `20240221` or later: returned Entity replaces the **`categoryIds`** field with the **`categories`** field.\n" }, { "info": { "name": "Entities: Get", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/entities/:entityId", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "entityId", "value": "", "type": "path", "description": "The external ID of the requested Entity" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "convertMarkdownToHTML", "value": "", "type": "query", "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": "convertRichTextToHTML", "value": "", "type": "query", "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": "fields", "value": "", "type": "query", "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": "format", "value": "", "type": "query", "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": "resolvePlaceholders", "value": "", "type": "query", "description": "Optional parameter to resolve all embedded fields in a Location object response.\n - `false`: Location object returns placeholder labels, e.g., \"Your [[CITY]] store\"\n - `true`: Location object returns placeholder values, e.g., \"Your Fairfax store\"\n" } ] }, "docs": "Retrieve information for an Entity with a given ID\n\n**NOTE**\n\n* If the **`v`** parameter is `20240221` or later: returned entities replace the **`categoryIds`** field with the **`categories`** field.\n" }, { "info": { "name": "Entities: Update", "type": "http" }, "http": { "method": "PUT", "url": "https://api.yextapis.com/v2/accounts/:accountId/entities/:entityId", "headers": [ { "name": "Update-Operation-Id", "value": "" } ], "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "entityId", "value": "", "type": "path", "description": "The external ID of the requested Entity" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "format", "value": "", "type": "query", "description": "The formatting language used to parse rich text field values. Present and **required** if an only if the request contains a field with type \"**Rich Text**.\"\n\nValid values:\n * `markdown`\n * `html`\n" }, { "name": "stripUnsupportedFormats", "value": "", "type": "query", "description": "Optional parameter to strip unsupported formats in rich text fields. When this parameter is included, the unsupported formats in rich text fields will be stripped and saved as plain text; otherwise if this parameter is not included, unsupported formats will return an error.\n" }, { "name": "templateFields", "value": "", "type": "query", "description": "Comma-separated list of top-level fields to apply from the template. If provided, only the fields specified will be applied to the entity.\n\nIgnored if **`templateId`** is not provided.\n" }, { "name": "templateId", "value": "", "type": "query", "description": "The external ID of the template to apply to the entity\n\n**NOTE:** Some fields that are part of the provided template but not present in the API will be applied - e.g. Linked Accounts\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update the Entity with the given ID\n\n**NOTE**\n\n* If the **`v`** parameter is `20240221` or later: returned Entity replaces the **`categoryIds`** field with the **`categories`** field.\n" }, { "info": { "name": "Entities: Delete", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.yextapis.com/v2/accounts/:accountId/entities/:entityId", "headers": [ { "name": "Update-Operation-Id", "value": "" } ], "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "entityId", "value": "", "type": "path", "description": "The external ID of the requested Entity" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ] }, "docs": "Delete the Entity with the given ID" }, { "info": { "name": "Entity Language Profiles: List", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/entityprofiles/:entityId", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "entityId", "value": "", "type": "path", "description": "The external ID of the requested Entity" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "convertMarkdownToHTML", "value": "", "type": "query", "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": "convertRichTextToHTML", "value": "", "type": "query", "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": "entityTypes", "value": "", "type": "query", "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": "fields", "value": "", "type": "query", "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": "format", "value": "", "type": "query", "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": "languageCodes", "value": "", "type": "query", "description": "The comma-separated language codes corresponding to the languages of the profile that the user wishes to retrieve" }, { "name": "rendered", "value": "", "type": "query", "description": "- `false`: The response will only contain overridable or language-specific fields for the requested language.\n- `true`: The response will contain the full location profile in the requested language, including data that remains the same across languages.\n" } ] }, "docs": "Retrieve Language Profiles for an Entity\n\n* If the **`v`** parameter is before `20190103`: by default, returned alternate Language Profiles include **`googleAttributes`** and **`categoryIds`** fields\n* If the **`v`** parameter is `20190103` or later: by default, returned alternate Language Profiles do not include **`googleAttributes`** and **`categoryIds`** fields. However, these fields can still be retrieved if the **`rendered`** parameter in the request is set to `true`.\n* If the **`v`** param" }, { "info": { "name": "Entity Language Profiles: List All", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/entityprofiles", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "convertMarkdownToHTML", "value": "", "type": "query", "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": "convertRichTextToHTML", "value": "", "type": "query", "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": "entityTypes", "value": "", "type": "query", "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": "fields", "value": "", "type": "query", "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": "filter", "value": "", "type": "query", "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\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
MatcherDetails
$eq (equals)\n\n {\n \"countryCode\":{\n \"$eq\":\"US\"\n }\n },\n {\n \"countryCode\":{\n \"!$eq\":\"US\"\n }\n }\n\n Supports negation. Case insensitive.\n
$startsWith\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
$in\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
$contains\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
$containsAny\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
$containsAll\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
\n\n**BOOLEAN**\n\n\nThe BOOLEAN filter type is supported for boolean fields and Yes / No custom fields.\n\n \n \n \n \n \n \n \n
MatcherDetails
$eq\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
\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\n \n \n \n \n \n \n \n
MatcherDetails
$hasProperty\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
\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\n \n \n \n \n \n \n \n \n \n \n
MatcherDetails
$eq\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
$in\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
\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\n \n \n \n \n \n \n \n \n \n \n \n \n \n
MatcherDetails
$eq\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
$startsWith\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
$in\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
\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\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
MatcherDetails
$eq\n\n Equals\n\n {\n \"ageRange.maxValue\": {\n \"$eq\": \"80\"\n }\n }\n\n Supports negation.\n\n
$lt\n\n Less than\n\n {\n \"time.start\": {\n \"$lt\": \"2018-08-28T05:56\"\n }\n }\n\n
$gt\n\n Greater than\n\n {\n \"ageRange.maxValue\": {\n \"$gt\": \"50\"\n }\n }\n\n
$le\n\n Less than or equal to\n\n {\n \"ageRange.maxValue\": {\n \"$le\": \"40\"\n }\n }\n\n
$ge\n\n Greater than or equal to\n\n {\n \"time.end\": {\n \"$ge\": \"2018-08-28T05:56\"\n }\n }\n\n
Combinations\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
\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\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
MatcherDetails
$eq\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
$eqAny\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
$eqAll\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
$contains\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
$containsAny\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
$containsAll\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
$startsWith\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
\n\n**LIST OF BOOLEAN, OPTION, PHONE, INTEGER, FLOAT, DATE, DATETIME, OR TIME**\n\n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n
MatcherDetails
$eq\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
$eqAny\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
$eqAll\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
\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\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n
MatcherDetails
$openAt\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
$closedAt\n\n {\n \"hours\": {\n \"$closedAt:\n \"2019-01-06T13:45\"\n }\n }\n\n
$openForAllOf\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
$openForAnyOf\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
$closedForAllOf\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
$closedForAnyOf\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
\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\n \n \n \n \n \n \n \n
MatcherDetails
$anywhere\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
\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": "format", "value": "", "type": "query", "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": "languageCodes", "value": "", "type": "query", "description": "The comma-separated language codes corresponding to the languages of the profile that the user wishes to retrieve" }, { "name": "limit", "value": "", "type": "query", "description": "Number of results to return." }, { "name": "offset", "value": "", "type": "query", "description": "Number of results to skip. Used to page through results.\nCannot be used together with **`pageToken`**.\n\nFor 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.\n" }, { "name": "pageToken", "value": "", "type": "query", "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": "rendered", "value": "", "type": "query", "description": "- `false`: The response will only contain overridable or language-specific fields for the requested language.\n- `true`: The response will contain the full location profile in the requested language, including data that remains the same across languages.\n" }, { "name": "sortBy", "value": "", "type": "query", "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`.\n\nFor 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\"}]`.\n" } ] }, "docs": "Retrieve a list of Language Profiles for Entities within an account\n\n**NOTE:**\n\n* If the **`v`** parameter is before `20190103`: by default, returned alternate Language Profiles include **`googleAttributes`** and **`categoryIds`** fields\n* If the **`v`** parameter is `20190103` or later: by default, returned alternate Language Profiles do not include **`googleAttributes`** and **`categoryIds`** fields. However, these fields can still be retrieved if the **`rendered`** parameter in the request is" }, { "info": { "name": "Entity Language Profiles: Get", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/entityprofiles/:entityId/:languageCode", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "entityId", "value": "", "type": "path", "description": "The external ID of the requested Entity" }, { "name": "languageCode", "value": "", "type": "path", "description": "The language code corresponding to the language of the profiles that the user wishes to retrieve" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "convertMarkdownToHTML", "value": "", "type": "query", "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": "convertRichTextToHTML", "value": "", "type": "query", "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": "fields", "value": "", "type": "query", "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": "format", "value": "", "type": "query", "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": "rendered", "value": "", "type": "query", "description": "- `false`: The response will only contain overridable or language-specific fields for the requested language.\n- `true`: The response will contain the full location profile in the requested language, including data that remains the same across languages.\n" } ] }, "docs": "Retrieve a Language Profile for an Entity\n\n**NOTE**:\n\n* If the **`v`** parameter is before `20190103`: by default, returned alternate Language Profiles include **`googleAttributes`** and **`categoryIds`** fields\n* If the **`v`** parameter is `20190103` or later: by default, returned alternate Language Profiles do not include **`googleAttributes`** and **`categoryIds`** fields. However, these fields can still be retrieved if the **`rendered`** parameter in the request is set to `true`.\n* If the *" }, { "info": { "name": "Entity Language Profiles: Upsert", "type": "http" }, "http": { "method": "PUT", "url": "https://api.yextapis.com/v2/accounts/:accountId/entityprofiles/:entityId/:languageCode", "headers": [ { "name": "Update-Operation-Id", "value": "" } ], "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "entityId", "value": "", "type": "path", "description": "The external ID of the requested Entity" }, { "name": "languageCode", "value": "", "type": "path", "description": "The language code corresponding to the language of the profile that the user wishes to create or update" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add a language profile\n\n**NOTE**\n\n* If the **`v`** parameter is `20240221` or later: returned Language Profile replaces the **`categoryIds`** field with the **`categories`** field.\n" }, { "info": { "name": "Entity Language Profiles: Delete", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.yextapis.com/v2/accounts/:accountId/entityprofiles/:entityId/:languageCode", "headers": [ { "name": "Update-Operation-Id", "value": "" } ], "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "entityId", "value": "", "type": "path", "description": "The external ID of the requested Entity" }, { "name": "languageCode", "value": "", "type": "path", "description": "The language code corresponding to the language of the profile that the user wishes to delete" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ] }, "docs": "Delete a language profile" }, { "info": { "name": "Locations (Legacy): List", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/locations", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "limit", "value": "", "type": "query", "description": "Number of results to return." }, { "name": "offset", "value": "", "type": "query", "description": "\nNumber of results to skip. Used to page through results.\nCannot be used together with **`pageToken`**.\n" }, { "name": "resolvePlaceholders", "value": "", "type": "query", "description": "Optional parameter to resolve all embedded fields in a Location object response.\n- `false`: Location object returns placeholder labels, e.g., \"Your [[CITY]] store\"\n- `true`: Location object returns placeholder values, e.g., \"Your Fairfax store\"\n" }, { "name": "pageToken", "value": "", "type": "query", "description": "If a response to a previous request contained the **`nextPageToken`** field, pass that field's value as the **`pageToken`** parameter to retrieve the next page of data.\n" } ] }, "docs": "Get multiple Locations (primary profiles only)." }, { "info": { "name": "Locations (Legacy): Create", "type": "http" }, "http": { "method": "POST", "url": "https://api.yextapis.com/v2/accounts/:accountId/locations", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a new Location.\n\n ## Required fields\n* **`locationName`**\n* **`address`**\n* **`city`**\n* **`state`**\n* **`zip`**\n\n ## Optional fields that trigger warnings\nSubmitting invalid values for certain optional fields will not trigger an error response. Instead, the success response will contain warning messages explaining why the invalid optional values were not stored in the system. The fields that generate warning messages are:\n

\n* **`logo`**\n* **`photos`**\n* **`twitterHandle`**\n* **`fa" }, { "info": { "name": "Locations (Legacy): Search", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/locationsearch", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "limit", "value": "", "type": "query", "description": "Number of results to return." }, { "name": "offset", "value": "", "type": "query", "description": "Number of results to skip. Used to page through results." }, { "name": "filters", "value": "", "type": "query", "description": "A set of filters that is applied to the set of locations that would otherwise be returned. Should be provided as a URL-encoded string containing a JSON array. The array should have one or more filter objects defined. All filter objects will apply as an intersection (i.e., AND). Field names reference Location fields, as well as custom fields using the format `custom###`, where \"###\" is the custom field’s **`id`**.\n\nFor example, to provide a filter that would match location names containing the word \"gourmet\", the filter parameter would be `[{\"name\":{\"contains\":[\"gourmet\"]}}]`, which URL-encoded would be `%5B%7B%22name%22%3A%7B%22contains%22%3A%5B%22gourmet%22%5D%7D%7D%5D`.\n\nNOTE: \"x\", \"xx\", and \"xxx\" are reserved keywords that, when passed in a `contains` matcher for a Full or Text filter, will cause that filter to match on all locations.\n\nThe filter types are the following. Note there may be multiple available specifications for a given filter type:\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Filter TypeSyntaxDescription
FullfieldName: {contains: $search}$search is the search string
TextfieldName: {$type: [$search,...]}$type is one of [contains,doesNotContain,startsWith,equalTo], $search is an array of search strings, combined with OR
TextfieldName: $type$type is one of [empty,notEmpty]
NumberfieldName: {$type: $value}$type is one of [eq,lt,gt,le,ge], $value is the numeric value
NumberfieldName: {$type: [$value1, $value2]}$type is one of [between], $value1 and $value2 are numeric values
DatefieldName: {$type: $value}$type is one of [eq,lt,gt,le,ge], $value is a string of \"YYYY-MM-DD\" formatted date
DatefieldName: $type$type is one of [empty,notEmpty]
DatefieldName: {$type: [$value1, $value2]}$type is one of [between], $value1 and $value2 are strings of \"YYYY-MM-DD\" formatted date
CategoriesfieldName: {$type: [$id,...]}$type is one of [includes,notIncludes], $id is an array of numeric category IDs, combined with OR
CategoriesfieldName: $type$type is one of [none]
AssetsfieldName: {$type: [$id,...]}$type is one of [includes,notIncludes], $id is an array of numeric category IDs, combined with OR
AssetsfieldName: $type$type is one of [none]
CountryfieldName: {$type: [$country,...]}$type is one of [includes,notIncludes], $country is an array of country code strings, combined with OR
PrimaryLanguagefieldName: {$type: [$language,...]}$type is one of [is,isNot], $language is an array of language code strings, combined with OR
AlternateLanguagefieldName: {$type: [$language,...]}$type is one of [includes, notIncludes], $language is an array of language code strings, combined with OR
StringSinglefieldName: {$type: [$string,...]}$type is one of [is,isNot], $string is an array of strings, combined with OR
StringListfieldName: {$type: [$string,...]}$type is one of [includes,notIncludes], $string is an array of strings, combined with OR
LocationTypefieldName: {$type: [$id,...]}$type is one of [is,isNot], $id is an array of location type IDs, combined with OR
BoolfieldName: $type$type is one of [true,false]
OptionfieldName: {$type: $id}$type is one of [is,isNot], $id is an option ID (For single option custom fields)
OptionfieldName: {$type: [$id,...]}$type is one of [includes,notIncludes], $id is an array of option IDs, combined with OR (For multi option custom fields)
FolderfieldName: [$id,...]$id is a numeric folder ID
FolderfieldName: $id$id is a numeric folder ID
FolderfieldName: {$type: [$id,...]}$id is a numeric folder ID, $type is one of ['isIn', 'isNotIn']
LabelsfieldName: {$type: [$id,...]}$type is one of [includes,notIncludes], $id is an array of label IDs, combined with OR
\n\nThe following fields can be specified in the request (Field name/Filter Type/Example(s)):\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Field NameFilter TypeExample(s)
locationFull\"location\": {\"contains\": \"Atlanta\"}
nameText\"name\": {\"startsWith\": [\"Guitar\"]}, \"name\": {\"contains\": [\"A\",\"B\"]}
addressText\"address\": {\"startsWith\": [\"South\"]}
address2Text\"address2\": {\"contains\": [\"Suite\"]}
cityText\"city\": {\"contains\": [\"Atlanta\"]}
stateText\"state\": {\"contains\": [\"AK\",\"VA\"]}
zipText\"zip\": {\"contains\": [\"M5K 7QB\"]}
phonesText\"phones\": {\"startsWith\": [\"703\",\"571\"]}
specialOfferText\"specialOffer\": \"notEmpty\"
emailsText\"emails\": {\"doesNotContain\": [\"@yext.com\"]}
websiteText\"website\": {\"equalTo\": [\"https://www.yext.com/\"]}
categoriesCategories\"categories\": {\"includes\": [23,755,34]}
closedBool\"closed\": true
storeIdText\"storeId\": {\"equalTo\": [\"MCD0001\"]}
countryCodeCountry\"countryCode\": {\"notIncludes\": [\"US\"]}
productsText\"products\": {\"startsWith\": [\"Burger\",\"Fries\"]}
servicesText\"services\": {\"contains\": [\"Manicures\"]}
specialitiesText\"services\": \"notEmpty\"
associationsText\"associations\": \"empty\"
brandsText\"brands\": {\"equalTo\": [\"North Face\"]}
languagesText\"languages\": {\"equalTo\": [\"English\",\"Spanish\"]}
keywordsText\"keywords\": {\"startsWith\": [\"Franchise\"]}
menuIdsIdList\"menuIds\": {\"includes\": [\"m-23\",\"755\",\"menu34\"]}
productListIdsIdList\"productListIds\": {\"notIncludes\": [\"pl-2\"]}
calendarIdsIdList\"calendarIds\": {\"notIncludes\": [\"cal34\"]}
bioIdsIdList\"bioIds\": {\"includes\": [\"b23\",\"34\"]}
custom###Text (for Multiline Text, URL, Text List, and Text Custom Fields), Number, Date, Bool, or Option\"custom123\": {\"equalTo\": [\"asdf\"]}
folderFolder\"folder\": 123, \"folder\": [123,456]
primary_languagePrimaryLanguage\"primary_language\": {\"is\": \"fr_CA\"}
alternateProfileLanguageAlternateLanguage\"alternateProfileLanguage\": {\"includes\": [\"en\", \"fr\"]}
npiStringSingle\"npi\": {\"is\": [\"1234567890\", \"1111111111\"]}
conditionsTreatedText\"conditionsTreated\": {\"startsWith\": [\"Influenza\"]}, \"conditionsTreated\": {\"contains\": [\"A\",\"B\"]}
lastUpdatedDate\"lastUpdated\": {\"eq\": \"2018-01-01\"}, \"lastUpdated\": {\"between\": [\"2017-01-01\", \"2018-01-01\"]}
fieldsWithDataFields\"fieldsWithData\": [\"email\", \"hours\"]
fieldsWithoutDataFields\"fieldsWithoutData\": [\"logo\", \"video\"]
reviewCountNumber\"review_count\": {\"gt\": 1}, \"review_count \": {\"lt\": 10}
averageRatingNumber\"averageRating\": {\"lt\": 3}
locationTypeLocationType\"locationType\": {\"is\": [1]}, \"locationType\": {\"isNot\": [123]}
genderStringSingle\"gender\": {\"is\": [\"FEMALE\"]}, \"gender\": {\"isNot\": [\"MALE\"]}
degreesStringList\"degrees\": {\"includes\": [\"MD\"]}, \"degrees\": {\"notIncludes\": [\"PHD\"]}
experiencesStringList\"experiences\": {\"includes\": [\"FELLOWSHIP\"]}, \"experiences\": {\"notIncludes\":[\"INTERNSHIP\"]}
yearCompletedNumber\"yearCompleted\": {\"gt\": 2000}, \"yearCompleted\": {\"lt\": 2015}
acceptingNewPatientsBool\"acceptingNewPatients\": true
firstNameText\"firstName\": {\"startsWith\": [\"David\"]}, \"firstName\": {\"contains\": [\"A\",\"B\"]}
middleNameText\"middleName\": {\"startsWith\": [\"P\"]}, \"middleName\": {\"contains\": [\"N\",\"E\"]}
lastNameText\"lastName\": {\"startsWith\": [\"Sm\"]}, \"lastName\": {\"contains\": [\"Y\",\"Z\"]}
officeNameText\"officeName\": {\"startsWith\": [\"Chiropractic\"]}, \"officeName\": {\"contains\":[\"Center\",\"P\"]}
certificationsText\"certifications\": {\"contains\": [\"Radiation Oncology\"]}
institutionNameText\"institutionName\": {\"startsWith\": [\"New York\"]}
insuranceAcceptedText\"insuranceAccepted\": {\"startsWith\": [\"United\"]}, \"insuranceAccepted\":{\"contains\": [\"C\",\"Health\"]}
admittingHospitalsText\"admittingHospitals\": {\"startsWith\": [\"Children's\"]}, \"admittingHospitals\":{\"contains\": [\"Medical\",\"University\"]}
subscriptionsIdList\"subscriptions\": {\"notIncludes\": [\"123\"]}
facebookAccountsIdList\"facebookAccounts\": {\"notIncludes\": [\"1111\"]}
foursquareAccountsIdList\"foursquareAccounts\": {\"notIncludes\": [\"1111\"]}
googleplusAccountsIdList\"googleplusAccounts\": {\"notIncludes\": [\"1111\"]}
labelsLabels\"labels\": {\"includes\": [1, 100]}
\n" } ] }, "docs": "Get multiple Locations (primary profiles only) that match provided filters." }, { "info": { "name": "Locations (Legacy): Get", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/locations/:locationId", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "locationId", "value": "", "type": "path" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "resolvePlaceholders", "value": "", "type": "query", "description": "Optional parameter to resolve all embedded fields in a Location object response.\n- `false`: Location object returns placeholder labels, e.g., \"Your [[CITY]] store\"\n- `true`: Location object returns placeholder values, e.g., \"Your Fairfax store\"\n" } ] }, "docs": "Gets the primary profile for a single Location." }, { "info": { "name": "Locations (Legacy): Update", "type": "http" }, "http": { "method": "PUT", "url": "https://api.yextapis.com/v2/accounts/:accountId/locations/:locationId", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "locationId", "value": "", "type": "path" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Updates the primary profile for a Location.\n\n**NOTE:** Despite using the PUT method, Locations: Update only updates supplied fields. Omitted fields are not modified.\n\n**NOTE:** The Location's primary profile language can be changed by calling this endpoint with a different, but unused, language code.\n" }, { "info": { "name": "Folders: List", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/folders", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "offset", "value": "", "type": "query", "description": "\nNumber of results to skip. Used to page through results.\nCannot be used together with **`pageToken`**.\n" }, { "name": "limit", "value": "", "type": "query", "description": "Number of results to return." }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ] }, "docs": "Returns a list of Location Folders in an Account." }, { "info": { "name": "Menus: List", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/menus", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "limit", "value": "", "type": "query", "description": "Number of results to return." }, { "name": "offset", "value": "", "type": "query", "description": "\nNumber of results to skip. Used to page through results.\nCannot be used together with **`pageToken`**.\n" } ] }, "docs": "Retrieve all Menus for an account." }, { "info": { "name": "Menus: Create", "type": "http" }, "http": { "method": "POST", "url": "https://api.yextapis.com/v2/accounts/:accountId/menus", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Menus: Create" }, { "info": { "name": "Menus: Get", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/menus/:listId", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "listId", "value": "", "type": "path", "description": "ID of this List." }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ] }, "docs": "Retrieve a specific Menu." }, { "info": { "name": "Menus: Update", "type": "http" }, "http": { "method": "PUT", "url": "https://api.yextapis.com/v2/accounts/:accountId/menus/:listId", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "listId", "value": "", "type": "path", "description": "ID of this List." }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update an existing Menu." }, { "info": { "name": "Menus: Delete", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.yextapis.com/v2/accounts/:accountId/menus/:listId", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "listId", "value": "", "type": "path", "description": "ID of this List." }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ] }, "docs": "Delete an existing Menu." }, { "info": { "name": "Bios: List", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/bios", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "limit", "value": "", "type": "query", "description": "Number of results to return." }, { "name": "offset", "value": "", "type": "query", "description": "\nNumber of results to skip. Used to page through results.\nCannot be used together with **`pageToken`**.\n" } ] }, "docs": "Retrieve all Bio Lists for an account." }, { "info": { "name": "Bios: Create", "type": "http" }, "http": { "method": "POST", "url": "https://api.yextapis.com/v2/accounts/:accountId/bios", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create new Bio List." }, { "info": { "name": "Bios: Get", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/bios/:listId", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "listId", "value": "", "type": "path", "description": "ID of this List." }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ] }, "docs": "Retrieve a specific Bios List." }, { "info": { "name": "Bios: Update", "type": "http" }, "http": { "method": "PUT", "url": "https://api.yextapis.com/v2/accounts/:accountId/bios/:listId", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "listId", "value": "", "type": "path", "description": "ID of this List." }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update an existing Bios List." }, { "info": { "name": "Bios: Delete", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.yextapis.com/v2/accounts/:accountId/bios/:listId", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "listId", "value": "", "type": "path", "description": "ID of this List." }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ] }, "docs": "Delete an existing Bios List." }, { "info": { "name": "Products: List", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/products", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "limit", "value": "", "type": "query", "description": "Number of results to return." }, { "name": "offset", "value": "", "type": "query", "description": "\nNumber of results to skip. Used to page through results.\nCannot be used together with **`pageToken`**.\n" } ] }, "docs": "Retrieve all Product Lists for an account." }, { "info": { "name": "Products: Create", "type": "http" }, "http": { "method": "POST", "url": "https://api.yextapis.com/v2/accounts/:accountId/products", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a new Product List." }, { "info": { "name": "Products: Get", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/products/:listId", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "listId", "value": "", "type": "path", "description": "ID of this List." }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ] }, "docs": "Retrieve a specific Product List." }, { "info": { "name": "Products: Update", "type": "http" }, "http": { "method": "PUT", "url": "https://api.yextapis.com/v2/accounts/:accountId/products/:listId", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "listId", "value": "", "type": "path", "description": "ID of this List." }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update an existing Product List." }, { "info": { "name": "Products: Delete", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.yextapis.com/v2/accounts/:accountId/products/:listId", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "listId", "value": "", "type": "path", "description": "ID of this List." }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ] }, "docs": "Delete an existing Products List." }, { "info": { "name": "Events (Legacy): List", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/events", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "limit", "value": "", "type": "query", "description": "Number of results to return." }, { "name": "offset", "value": "", "type": "query", "description": "\nNumber of results to skip. Used to page through results.\nCannot be used together with **`pageToken`**.\n" } ] }, "docs": "Retrieve all Event Lists for an account." }, { "info": { "name": "Events (Legacy): Create", "type": "http" }, "http": { "method": "POST", "url": "https://api.yextapis.com/v2/accounts/:accountId/events", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a new Event List." }, { "info": { "name": "Events (Legacy): Get", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/events/:listId", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "listId", "value": "", "type": "path", "description": "ID of this List." }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ] }, "docs": "Retrieve a specific Event List." }, { "info": { "name": "Events (Legacy): Update", "type": "http" }, "http": { "method": "PUT", "url": "https://api.yextapis.com/v2/accounts/:accountId/events/:listId", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "listId", "value": "", "type": "path", "description": "ID of this List." }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update an existing Event List." }, { "info": { "name": "Events (Legacy): Delete", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.yextapis.com/v2/accounts/:accountId/events/:listId", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "listId", "value": "", "type": "path", "description": "ID of this List." }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ] }, "docs": "Delete an existing Event List." }, { "info": { "name": "Categories: List", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/categories", "params": [ { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "language", "value": "", "type": "query", "description": "Only categories that apply to this language will be returned.\n\nValid values: ISO 639-1 language codes\n\n**Example:** en\n" }, { "name": "country", "value": "", "type": "query", "description": "Only categories that apply in this country will be returned.\n\nValid values: ISO 3166-1 alpha-2 country codes\n\n**Example:** US\n" }, { "name": "entityType", "value": "", "type": "query", "description": "Only categories that apply to the specified entity type will be returned.\n" } ] }, "docs": "Get available Categories.\n\nAll Locations are required to have an associated Category to assist with organization and search. Yext provides a hierarchy of business categories for this purpose, exposed by this API.\n" }, { "info": { "name": "Google Fields: List", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/googlefields", "params": [ { "name": "language", "value": "", "type": "query", "description": "The language code corresponding to the language in which the user would like to retrieve the Google Fields. Only categories that apply to this language will be returned.\n" }, { "name": "clientCategoryId", "value": "", "type": "query", "description": "A category id for the business or a Google category ID that, if specified, will filter the result to only include any Google Fields that the provided id maps to.\n" }, { "name": "entityId", "value": "", "type": "query", "description": "The external ID of an entity that, if specified, will filter the result to only include any Google Fields that the provided entity has access to.\n\n**NOTE:** The **`entityId`** parameter will only be respected for **`v`** parameters of `20241030` or later.\n" }, { "name": "countryCode", "value": "", "type": "query", "description": "The two-character ISO 3166-1 country code, if specified, will filter the result to only include any Google Fields that are eligible for that country.\n" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ] }, "docs": "\nUse the Google Fields endpoint to retrieve a complete list of Google's location attributes for each business category. This list includes attributes that may not apply to all Locations in an account. The set of attributes available to a Location depends on its primary business category and country. You can view and edit the attributes of Locations in the **`googleAttributes`** Location field.\n\n**NOTE:**\n * Google Attributes are managed by Google and are subject to change without notice. To pre" }, { "info": { "name": "Custom Fields: List", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/customfields", "params": [ { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "accountId", "value": "", "type": "path" }, { "name": "offset", "value": "", "type": "query", "description": "\nNumber of results to skip. Used to page through results.\nCannot be used together with **`pageToken`**.\n" }, { "name": "limit", "value": "", "type": "query", "description": "Number of results to return." }, { "name": "pageToken", "value": "", "type": "query", "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.\n" } ] }, "docs": "Returns a list of Custom Fields in an Account.\n\n**NOTE:** Custom Fields of unsupported types will be filtered out.\n\nThe Custom Fields API will be deprecated in Spring '24. See [here](https://hitchhikers.yext.com/releases/spring23/?target=announcement---custom-fields-api-deprecation) for more details.\n" }, { "info": { "name": "Custom Fields: Create", "type": "http" }, "http": { "method": "POST", "url": "https://api.yextapis.com/v2/accounts/:accountId/customfields", "params": [ { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "accountId", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Creates new Custom Field(s) in an Account.\n\n**NOTE:** If the **`v`** parameter is on or after `20220615`, the request body must be an array, as to allow multiple field creates per request.\n\nThe Custom Fields API will be deprecated in Spring '24. See [here](https://hitchhikers.yext.com/releases/spring23/?target=announcement---custom-fields-api-deprecation) for more details.\n" }, { "info": { "name": "Custom Fields: Get", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/customfields/:customFieldId", "params": [ { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "accountId", "value": "", "type": "path" }, { "name": "customFieldId", "value": "", "type": "path", "description": "ID that should be used when referencing the field in API calls. This ID will also serve as the Custom Field's key in our upcoming Entities API endpoints.\nNote that the Custom Fields can still be accessed using their numeric **`id`** by invoking the endpoints with a **`v`** param before `20180809`.\n" } ] }, "docs": "Gets a specific Custom Field in an Account.\n\nThe Custom Fields API will be deprecated in Spring '24. See [here](https://hitchhikers.yext.com/releases/spring23/?target=announcement---custom-fields-api-deprecation) for more details.\n" }, { "info": { "name": "Custom Fields: Update", "type": "http" }, "http": { "method": "PUT", "url": "https://api.yextapis.com/v2/accounts/:accountId/customfields/:customFieldId", "params": [ { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "accountId", "value": "", "type": "path" }, { "name": "customFieldId", "value": "", "type": "path", "description": "ID that should be used when referencing the field in API calls. This ID will also serve as the Custom Field's key in our upcoming Entities API endpoints.\nNote that the Custom Fields can still be accessed using their numeric **`id`** by invoking the endpoints with a **`v`** param before `20180809`.\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Updates a single Custom Field in an Account.\n\nNote that the only updatable values in an existing Custom Field are its name, group, description, alternate language behavior, as well as available options if its `type` is `SINGLE_OPTION` or `MULTI_OPTION`.\n* If options are modified, every location with that option selected will have the new value.\n* If options are deleted, all locations with that option will no longer have that option selected.\n* If the deleted options are the only options selected" }, { "info": { "name": "Custom Fields: Delete", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.yextapis.com/v2/accounts/:accountId/customfields/:customFieldId", "params": [ { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "accountId", "value": "", "type": "path" }, { "name": "customFieldId", "value": "", "type": "path", "description": "ID that should be used when referencing the field in API calls. This ID will also serve as the Custom Field's key in our upcoming Entities API endpoints.\nNote that the Custom Fields can still be accessed using their numeric **`id`** by invoking the endpoints with a **`v`** param before `20180809`.\n" } ] }, "docs": "Deletes a Custom Field in an Account.\n\nThe Custom Field will be removed from all locations, and all content entered in the Custom Field will be deleted permanently.\n\nThe Custom Fields API will be deprecated in Spring '24. See [here](https://hitchhikers.yext.com/releases/spring23/?target=announcement---custom-fields-api-deprecation) for more details.\n" }, { "info": { "name": "Language Profiles (Legacy): List", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/locations/:locationId/profiles", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "locationId", "value": "", "type": "path" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "resolvePlaceholders", "value": "", "type": "query", "description": "Optional parameter to resolve all embedded fields in a Location object response.\n- `false`: Location object returns placeholder labels, e.g., \"Your [[CITY]] store\"\n- `true`: Location object returns placeholder values, e.g., \"Your Fairfax store\"\n" } ] }, "docs": "Get Language Profiles for a Location." }, { "info": { "name": "Language Profiles (Legacy): Get", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/locations/:locationId/profiles/:language_code", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "locationId", "value": "", "type": "path" }, { "name": "language_code", "value": "", "type": "path", "description": "Locale code." }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "resolvePlaceholders", "value": "", "type": "query", "description": "Optional parameter to resolve all embedded fields in a Location object response.\n- `false`: Location object returns placeholder labels, e.g., \"Your [[CITY]] store\"\n- `true`: Location object returns placeholder values, e.g., \"Your Fairfax store\"\n" } ] }, "docs": "Gets the the requested Language Profile for a given Location." }, { "info": { "name": "Language Profiles (Legacy): Upsert", "type": "http" }, "http": { "method": "PUT", "url": "https://api.yextapis.com/v2/accounts/:accountId/locations/:locationId/profiles/:language_code", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "locationId", "value": "", "type": "path" }, { "name": "language_code", "value": "", "type": "path", "description": "Locale code." }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "primary", "value": "", "type": "query", "description": "When present and set to true, the specified profile will become the location’s primary Language Profile." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Creates and / or sets the fields for a Language Profile\n\n**NOTE:** You can change a Language Profile’s language by supplying a different (but unused) language code.\n" }, { "info": { "name": "Language Profiles (Legacy): Delete", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.yextapis.com/v2/accounts/:accountId/locations/:locationId/profiles/:language_code", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "locationId", "value": "", "type": "path" }, { "name": "language_code", "value": "", "type": "path", "description": "Locale code." }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ] }, "docs": "Remove a Language Profile from a location." }, { "info": { "name": "Assets: List", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/assets", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "offset", "value": "", "type": "query", "description": "\nNumber of results to skip. Used to page through results.\nCannot be used together with **`pageToken`**.\n" }, { "name": "limit", "value": "", "type": "query", "description": "Number of results to return." }, { "name": "pageToken", "value": "", "type": "query", "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": "format", "value": "", "type": "query", "description": "Present if and only if type of subfield is \"**Rich Text**.\"\n\nValid values:\n * `markdown`\n * `html`\n * `none`\n" } ] }, "docs": "List assets in an account." }, { "info": { "name": "Assets: Create", "type": "http" }, "http": { "method": "POST", "url": "https://api.yextapis.com/v2/accounts/:accountId/assets", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "format", "value": "", "type": "query", "description": "The formatting langauge used to parse rich text field values.\nPresent if and only if type of field is \"**Rich Text**.\"\n\nValid values:\n * `markdown`\n * `html`\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Creates a new asset in an account.\n\n**NOTE:**\n* If the **`v`** parameter is on or before `20190624`: only the first folder the Asset is available for will be returned in the legacy **`folderId`** field.\n* If the **`v`** parameter is after `20190624`: the complete list of folders the Asset is available to will be returned in the new **`folderIds`** field. **`folderId`** will not be returned.\n" }, { "info": { "name": "Assets: Get", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/assets/:assetId", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "assetId", "value": "", "type": "path" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "format", "value": "", "type": "query", "description": "Present if and only if type of subfield is \"**Rich Text**.\"\n\nValid values:\n * `markdown`\n * `html`\n * `none`\n" } ] }, "docs": "Get a specific asset." }, { "info": { "name": "Assets: Update", "type": "http" }, "http": { "method": "PUT", "url": "https://api.yextapis.com/v2/accounts/:accountId/assets/:assetId", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "assetId", "value": "", "type": "path" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "format", "value": "", "type": "query", "description": "The formatting langauge used to parse rich text field values.\nPresent if and only if type of field is \"**Rich Text**.\"\n\nValid values:\n * `markdown`\n * `html`\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a specific asset.\n\n**NOTE**: This endpoint is a true PUT. Fields that are not provided in an update will be cleared. The entire Asset object must be provided in the request, except for its **`id`**, which is given in the path.\n\n**NOTE:**\n* If the **`v`** parameter is on or before `20190624`: only the first folder the Asset is available for will be returned in the legacy **`folderId`** field.\n* If the **`v`** parameter is after `20190624`: the complete list of folders the Asset is availabl" }, { "info": { "name": "Assets: Delete", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.yextapis.com/v2/accounts/:accountId/assets/:assetId", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "assetId", "value": "", "type": "path" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ] }, "docs": "Delete a specific asset." }, { "info": { "name": "Suggestions: List", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/suggestions", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "format", "value": "", "type": "query", "description": "The formatting language used to parse rich text field values. Present if and only if the field is of type “**Rich Text**.\"\n\nValid values:\n * `markdown`\n * `html`\n * `none`\n" }, { "name": "entityIds", "value": "", "type": "query", "description": "Comma-separated list of entity IDs to pull suggestions for. Defaults to all entities in the account if unspecified.\n" }, { "name": "entityUids", "value": "", "type": "query", "description": "Comma-separated list of entity UIDs (formerly known as Yext IDs) to pull suggestions for. Defaults to all entities in the account if unspecified.\n" }, { "name": "statuses", "value": "", "type": "query", "description": "Comma-separated list of statuses of suggestions to pull. Defaults to all, but can be any of APPROVED, REJECTED, PENDING, CANCELED.\n" }, { "name": "limit", "value": "", "type": "query", "description": "Number of results to return. Default to 10, can go up to 50." }, { "name": "pageToken", "value": "", "type": "query", "description": "If a response to a previous request contained the **`nextPageToken`** field, pass that field's value as the **`pageToken`** parameter to retrieve the next page of data.\n" }, { "name": "sortBy", "value": "", "type": "query", "description": "Field and sort direction to order results by. The ordering should be a list with one element in the format of **`{\"field_name\": \"sort_direction\"}`**, where **`sort_direction`** is either \"ascending\" or \"descending\".\n\nThis param value needs to be URL encoded.\n\nThe following fields are supported for sorting:\n * uid\n * lastUpdatedDate\n" } ] }, "docs": "Retrieve a list of Suggestions within an account\n\n**NOTE:**\n * App must have either **Create Suggestions: Read** permission or **Manage Suggestions: Read** permission to utilize endpoint.\n * If App only has **Create Suggestions: Read** permission, only Suggestions created by the App in question will be returned.\n * Suggestions on ECLs are not supported.\n * Suggestions to the Categories field are only returned if they are for the Base Category List for your account. This means Suggestions on " }, { "info": { "name": "Suggestion: Upsert", "type": "http" }, "http": { "method": "POST", "url": "https://api.yextapis.com/v2/accounts/:accountId/suggestions", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "format", "value": "", "type": "query", "description": "The formatting language used to parse rich text field values. Present if and only if the field is of type “**Rich Text**.\"\n\nValid values:\n * `markdown`\n * `html`\n * `none`\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create or update a suggestion via API.\n\n**NOTE:**\n * App must have **Create Suggestions: Read/Write** permission to utilize endpoint.\n * If a suggestion already exists from your app on the specified field, the suggestion will be updated.\n * Suggestions on ECLs are not currently supported.\n" }, { "info": { "name": "Suggestion: Cancel", "type": "http" }, "http": { "method": "POST", "url": "https://api.yextapis.com/v2/accounts/:accountId/suggestions/cancel/:suggestionUid", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "suggestionUid", "value": "", "type": "path", "description": "The Yext-generated unique identifier for the Suggestion." }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ] }, "docs": "Cancel a suggestion which was submitted by the App.\n\n**NOTE:**\n * App must have **Create Suggestions: Read/Write** permission to utilize endpoint.\n * Suggestions can only be canceled by the submitter.\n" }, { "info": { "name": "Suggestion: Get", "type": "http" }, "http": { "method": "GET", "url": "https://api.yextapis.com/v2/accounts/:accountId/suggestions/:suggestionUid", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "suggestionUid", "value": "", "type": "path", "description": "The Yext-generated unique identifier for the Suggestion." }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "format", "value": "", "type": "query", "description": "The formatting language used to parse rich text field values. Present if and only if the field is of type “**Rich Text**.\"\n\nValid values:\n * `markdown`\n * `html`\n * `none`\n" } ] }, "docs": "Retrieve information for a Suggestion with a given ID\n\n**NOTE:**\n * App must have either **Create Suggestions: Read** permission or **Manage Suggestions: Read** permission to utilize endpoint.\n * If App only has **Create Suggestions: Read** permission, only Suggestions created by the App in question will be returned.\n * Suggestions on ECLs are not supported.\n * Suggestions to the Categories field are only returned if they are for the Base Category List for your account. This means Suggestion" }, { "info": { "name": "Suggestion: Comment", "type": "http" }, "http": { "method": "PUT", "url": "https://api.yextapis.com/v2/accounts/:accountId/suggestions/comment/:suggestionUid", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "suggestionUid", "value": "", "type": "path", "description": "The Yext-generated unique identifier for the Suggestion." }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add a comment to a suggestion.\n\n**NOTE:**\n * App must have **Manage Suggestions: Read/Write** permission to utilize endpoint.\n" }, { "info": { "name": "Suggestion: Action", "type": "http" }, "http": { "method": "PUT", "url": "https://api.yextapis.com/v2/accounts/:accountId/suggestions/action/:suggestionUid", "params": [ { "name": "accountId", "value": "", "type": "path" }, { "name": "suggestionUid", "value": "", "type": "path", "description": "The Yext-generated unique identifier for the Suggestion." }, { "name": "v", "value": "", "type": "query", "description": "A date in `YYYYMMDD` format." }, { "name": "format", "value": "", "type": "query", "description": "The formatting language used to parse rich text field values. Present if and only if the field is of type “**Rich Text**.\"\n\nValid values:\n * `markdown`\n * `html`\n * `none`\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Perform an action on the Suggestion with the given ID.\n\nThis endpoint allows apps to lock, unlock, reassign, modify the status (approve or reject), and update the content of suggestions. The source of the update will be the Yext App ID of the app making the request.\n\n**NOTE:**\n * App must have **Manage Suggestions: Read/Write** permission to utilize endpoint.\n * Only one of **`locked`**, **`assignee`**, **`status`**, or **`entityFieldSuggestion`** can be provided in the request.\n" } ] } ], "bundled": true }