{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Making API requests - Development Portal | Outreach","description":"Outreach extensibility development and documentation portal","siteUrl":"https://developers.outreach.io","keywords":"outreach developer portal, api documentation, api reference docs, sdk documentation","lang":"en-US","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"making-requests","__idx":0},"children":["Making requests"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"content-negotiation","__idx":1},"children":["Content Negotiation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Outreach API implements the JSON API 1.0 specification. All requests must specify the JSON API media"," ","type (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["application/vnd.api+json"]},") within the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Content-Type"]}," request header."," ","Requests failing to specify this content type will receive a 415 HTTP response with a descriptive error message:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json5","header":{"controls":{"copy":{}}},"source":"{\n  errors: [\n    {\n      id: \"unsupportedMediaType\",\n      title: \"Unsupported Media Type\",\n      details: \"Expected Content-Type header to be 'application/vnd.api+json'.\",\n    },\n  ],\n}\n","lang":"json5"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For more information, see ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"http://jsonapi.org/format/1.0/#content-negotiation","target":"_blank"},"children":["JSON API content negotiation"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"fetch-a-collection-of-resources","__idx":2},"children":["Fetch a Collection of Resources"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To fetch a collection of resources, make a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET"]}," request against a resource's pluralized type. The body of the response"," ","will be a JSON payload. If the request was successful, the response will contain a top-level ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]}," property; otherwise,"," ","the response will contain a top-level ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["errors"]}," property containing a list of error reasons."," ","See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#error-responses"},"children":["Error Responses"]}," for more details."]},{"$$mdtype":"Tag","name":"p","attributes":{"className":"small"},"children":["Request"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"GET https://api.outreach.io/api/v2/prospects\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{"className":"small"},"children":["Response"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json5","header":{"controls":{"copy":{}}},"source":"{\n  data: [\n    {\n      type: \"prospect\",\n      id: 1,\n      attributes: {\n        firstName: \"Sally\",\n        lastName: null,\n        //...\n      },\n      relationships: {\n        account: {\n          data: {\n            type: \"account\",\n            id: 1,\n          },\n        },\n        mailings: {\n          links: {\n            related: \"https://api.outreach.io/api/v2/mailings?filter[prospect][id]=1\",\n          },\n        },\n        //...\n      },\n    },\n    //...\n  ],\n}\n","lang":"json5"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In this case of fetching a collection of resources, the data property will be a list of up to 50 resource objects. A *"," ","*resource object** is a JSON object that contains at minimum the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," values of the resource, but may also"," ","contain properties for the resource's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["attributes"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["relationships"]},", as well as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["meta"]}," data."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This resource object contains two types of relationship information. The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["account"]}," relationship contains a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]}," ","property with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," values. When we reference just a resource's type and ID, we call the object a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["resource"," ","identifier"]},". The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["mailings"]}," relationship, however, does not contain a data property. Instead, it provides a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["links"]}," ","property with a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["related"]}," URL that references the list of mailings associated with this prospect. Relationship objects"," ","may contain ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["links"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["meta"]}," properties."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For more information, see ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://jsonapi.org/format/#fetching-resources","target":"_blank"},"children":["Fetching Resources"]}," in the JSON API"," ","specification."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"filter-and-sort","__idx":3},"children":["Filter and Sort"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Oftentimes we want to return just a specific subset of a resource collection. The Outreach API provides two query"," ","parameters for specifying collections:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sort"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Filter parameters restrict collections by certain key-value combinations; the sort parameter orders collections by"," ","attributes and relationships' attributes; See the following examples for more details."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Note that not all attributes permit filter and sort criteria. Please consult"," ","the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/api/reference/"},"children":["API Reference"]}," for more details."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"filter-by-exact-attribute","__idx":4},"children":["Filter by exact attribute"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"GET https://api.outreach.io/api/v2/prospects?filter[firstName]=Sally\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"filter-by-exact-relationships-attribute","__idx":5},"children":["Filter by exact relationship's attribute"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Update (May, 2023): In order to maintain the performance and reliability of our API services and allow modernization of our service architecture, Outreach has decided to deprecate support for filtering by some of the relationship's attributes."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Please consult the reference documentation for each relationship to see whether you can use filters like ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter[relationship_abc][attribute_1]=Acme"]},","," ","or only ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter[relationship_abc][id]=1"]}," is allowed. In the latter case you need to do two requests, first get a list of relationship IDs querying"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/api/v2/model_abc?filter[name]=Acme"]}," and then pass them to the original query as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter[relationship_abc][id]=1,2,3"]},"."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"GET https://api.outreach.io/api/v2/prospects?filter[account][name]=Acme // deprecated\n\nGET https://api.outreach.io/api/v2/account?filter[name]=Acme\nGET https://api.outreach.io/api/v2/prospects?filter[account][id]=1,2,3,5,8,13\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"filter-by-exact-attribute-and-relationships-attribute","__idx":6},"children":["Filter by exact attribute and relationship's attribute"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"GET https://api.outreach.io/api/v2/prospects?filter[firstName]=Sally&filter[account][name]=Acme\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"filter-by-a-list-of-values","__idx":7},"children":["Filter by a list of values"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"GET https://api.outreach.io/api/v2/prospects?filter[id]=1,2,3,5,8,13\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"filter-by-range-of-values","__idx":8},"children":["Filter by range of values"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"GET https://api.outreach.io/api/v2/prospects?filter[id]=5..10\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"filter-by-a-less-than-or-equal-to-condition","__idx":9},"children":["Filter by a less-than-or-equal-to condition"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"GET https://api.outreach.io/api/v2/prospects?filter[updatedAt]=neginf..2017-01-01\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"filter-by-greater-than-or-equal-to-condition","__idx":10},"children":["Filter by greater-than-or-equal-to condition"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"GET https://api.outreach.io/api/v2/prospects?filter[updatedAt]=2017-01-01..inf\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"filter-null-values","__idx":11},"children":["Filter NULL values"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["There are two special values supported by all filterable attributes that can be used to select NULLs or NOT NULLs:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"GET https://api.outreach.io/api/v2/accounts?filter[buyerIntentScore]=__null__\n\nGET https://api.outreach.io/api/v2/accounts?filter[buyerIntentScore]=__notnull__\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"sort-by-ascending-attribute","__idx":12},"children":["Sort by ascending attribute"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"GET https://api.outreach.io/api/v2/prospects?sort=firstName\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"sort-by-descending-attribute","__idx":13},"children":["Sort by descending attribute"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"GET https://api.outreach.io/api/v2/prospects?sort=-firstName\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"sort-by-relationships-attribute-deprecated","__idx":14},"children":["Sort by relationship's attribute (deprecated)"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Update (May, 2023): In order to maintain the performance and reliability of our API services and allow modernization of our service architecture, Outreach has decided to deprecate support for sorting by the relationship's attributes."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Please fetch the result of your query with the relationship's attribute included and apply sorting locally in your service."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"GET https://api.outreach.io/api/v2/prospects?sort=account.name // deprecated\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"sort-by-multiple-criteria","__idx":15},"children":["Sort by multiple criteria"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"GET https://api.outreach.io/api/v2/prospects?sort=lastName,-firstName\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"new-filter-syntax","__idx":16},"children":["New filter syntax"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["We have added a new parameter, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["newFilterSyntax=true"]},", that you can use when you need to match values that contain the"," ","comma character (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[","]},") or two dots (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".."]},"). This was not possible with the old syntax as the comma character and the two"," ","dots had special meaning."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Instead of separating the values with commas, you now use brackets to list an array of values. This means you can use a"," ","literal comma in the value. Example:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"# old syntax:\nGET https://api.outreach.io/api/v2/prospects?filter[firstName]=Sally,Katie\n\n# new syntax:\nGET https://api.outreach.io/api/v2/prospects?newFilterSyntax=true&filter[firstName][]=Sally&filter[firstName][]=Katie\n\n# old syntax (does not return the desired result, filters for accounts named \"Company\" and \" Inc\"):\nGET https://api.outreach.io/api/v2/accounts?filter[name]=Company,%20Inc\n\n# new syntax (filters for \"Company, Inc\"):\nGET https://api.outreach.io/api/v2/accounts?newFilterSyntax=true&filter[name][]=Company,%20Inc\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Instead of specifying a range with two dots, you instead use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[gte]"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[lte]"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gte"]}," is short for"," ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["greater-than-or-equal-to"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["lte"]}," is short for ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["less-than-or-equal-to"]},"). So instead of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["5..10"]}," you use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[gte]=5"]}," ","and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[lte]=10"]},". This means you can use two dots when filtering for values. Instead of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["neginf"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["inf"]},", simply leave"," ","out either ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[gte]"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[lte]"]}," instead. Example:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"# old syntax:\nGET https://api.outreach.io/api/v2/prospects?filter[id]=5..10\n\n# new syntax:\nGET https://api.outreach.io/api/v2/prospects?newFilterSyntax=true&filter[id][gte]=5&filter[id][lte]=10\n\n# old syntax:\nGET https://api.outreach.io/api/v2/prospects?filter[updatedAt]=neginf..2017-01-01\n\n# new syntax:\nGET https://api.outreach.io/api/v2/prospects?newFilterSyntax=true&filter[updatedAt][lte]=2017-01-01\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"pagination","__idx":17},"children":["Pagination"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If after using sort and filter you need to further reduce the number of returned entries, you can use pagination. The"," ","Outreach API provides ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["page"]}," query parameter for this purpose. Page size/limit and offset parameters limit views into"," ","large collections. See the following examples for more details."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"cursor-based-pagination","__idx":18},"children":["Cursor-based Pagination"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Cursor-based pagination works by returning a pointer to a specific item in the dataset."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"GET https://api.outreach.io/api/v2/prospects?page[size]=50&count=false\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Along with the first 50 entries, the response contains a top-level ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["links"]}," property with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["first"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prev"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["next"]}," links that allow efficient pagination."," ","Using it with the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["count=false"]}," query parameter is recommended to improve performance of the query."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json5","header":{"controls":{"copy":{}}},"source":"{\n  data: [\n    //...\n  ],\n  links: {\n    first: \"https://api.outreach.io/api/v2/prospects?page[size]=50\",\n    prev: \"https://api.outreach.io/api/v2/prospects?page[size]=50&page[before]=eyJjbiI6IkFwaVYyOjpQcm9zcGVjdHNDb250cm9sbGVyIiwic3AiOm51bGwsInN2IjpbXSwiaWQiOjEzNiwidiI6MX0\",\n    next: \"https://api.outreach.io/api/v2/prospects?page[size]=50&page[after]=eyJjbiI6IkFwaVYyOjpQcm9zcGVjdHNDb250cm9sbGVyIiwic3AiOm51bGwsInN2IjpbXSwiaWQiOjIyNSwidiI6MX0\"\n  },\n}\n","lang":"json5"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"offset-pagination-deprecated","__idx":19},"children":["Offset Pagination (Deprecated)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Please use the cursor-based pagination described above and the top-level ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["links"]}," property to advance to next page."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To offset the page start:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"GET https://api.outreach.io/api/v2/prospects?page[offset]=50\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Note that large offsets on large collections can cause a significant performance hit. For this reason we enforce a maximum offset of 10,000."," ","To work around this limitation, consider using more specific filter criteria or paging across ranges of IDs."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To limit the page size:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"GET https://api.outreach.io/api/v2/prospects?page[limit]=3\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Note that page limits must not be larger than 1000."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In addition, each collection response will include a top-level ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["links"]}," property that will"," ","contain ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["first"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prev"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["next"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["last"]}," keys, if applicable. Use these links to easily navigate between slices of a"," ","collection."]},{"$$mdtype":"Tag","name":"p","attributes":{"className":"small"},"children":["Request"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"GET https://api.outreach.io/api/v2/prospects?page[offset]=150\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{"className":"small"},"children":["Response"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json5","header":{"controls":{"copy":{}}},"source":"{\n  data: [\n    //...\n  ],\n  links: {\n    first: \"https://api.outreach.io/api/v2/prospects?page[limit]=50&page[offset]=0\",\n    prev: \"https://api.outreach.io/api/v2/prospects?page[limit]=50&page[offset]=100\",\n    next: \"https://api.outreach.io/api/v2/prospects?page[limit]=50&page[offset]=200\",\n    last: \"https://api.outreach.io/api/v2/prospects?page[limit]=50&page[offset]=850\",\n  },\n}\n","lang":"json5"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"counting-resources","__idx":20},"children":["Counting resources"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["It is possible to count the resources matching certain filter criteria using the collection query. Just add a query parameter ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["count"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"GET https://api.outreach.io/api/v2/prospects?filter[firstName]=Sally&count=true\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If there are prospects named \"Sally\" there will be a first page of them returned in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]}," property that is followed by ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["meta"]}," containing total number of matching prospects:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json5","header":{"controls":{"copy":{}}},"source":"{\n    data: [\n      //...\n    ],\n    meta: {\n      count: 53,\n      count_truncated: false\n    },\n    links: {\n      //...\n    }\n}\n","lang":"json5"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In case there are no matching resources the response is short:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json5","header":{"controls":{"copy":{}}},"source":"{\n    data: [],\n    meta: {\n        count: 0,\n        count_truncated: false\n    },\n    links: {\n        //...\n    }\n}\n","lang":"json5"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"when-is-count-truncated","__idx":21},"children":["When is count truncated?"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Counting all resources matching specific filter criteria is often a more expensive operation than finding a next page of data."," ","In order to limit the effect of count queries on the overall system performance Outreach has implemented following control mechanisms."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Max total count"]}," - stops counter upon the discovery of 2,000,000 matching resources. A sample response is:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json5","header":{"controls":{"copy":{}}},"source":"{\n    data: [\n      //...\n    ],\n    meta: {\n        count: 2000000,\n        count_truncated: true\n    },\n    links: {\n        //...\n    }\n}\n","lang":"json5"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Resource utilization throttling"]}," - in case the system is under extreme load there is a dedicated throttling applied for count queries to avoid amplification of the resource utilization. In such case the next page of data is returned but the count value is not known and the response is the following:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json5","header":{"controls":{"copy":{}}},"source":"{\n    data: [\n      //...\n    ],\n    meta: {\n        count: 0,\n        count_truncated: true\n    },\n    links: {\n        //...\n    }\n}\n","lang":"json5"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"fetch-an-individual-resource","__idx":22},"children":["Fetch an Individual Resource"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can fetch individual resources by making a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET"]}," request against any particular resource's pluralized type and ID"," ","combination. For example, to retrieve an individual prospect resource:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"GET https://api.outreach.io/api/v2/prospects/1\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The response format will be the same as when fetching collections except that the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]}," property will contain only the"," ","found resource object instead of a list of resource objects."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If a resource could not be found, the request will receive a 404 HTTP response with a descriptive JSON error message:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json5","header":{"controls":{"copy":{}}},"source":"{\n  errors: [\n    {\n      id: \"resourceNotFound\",\n      title: \"Resource Not Found\",\n      detail: \"Could not find 'prospect' with ID '1'.\",\n    },\n  ],\n}\n","lang":"json5"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For more information, see ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://jsonapi.org/format/#fetching-resources","target":"_blank"},"children":["Fetching Resources"]}," in the JSON API"," ","specification."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"include-related-resources","__idx":23},"children":["Include Related Resources"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Sometimes when you retrieve a resource you want more than just a ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["reference"]}," to its relationships, you want the full"," ","details of those relationships, too. With the Outreach API, you can easily specify which relationships to fully include"," ","within the request. Specify included resources in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["include"]}," query parameter; separate multiple resources by commas"," ","and relationship-attribute pairs by periods."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For example, to retrieve not just a individual prospect, but also its related stage and account, as well as its"," ","account's owner:"]},{"$$mdtype":"Tag","name":"p","attributes":{"className":"small"},"children":["Request"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"GET https://api.outreach.io/api/v2/prospects/1?include=account.owner,stage\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{"className":"small"},"children":["Response"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json5","header":{"controls":{"copy":{}}},"source":"{\n  data: {\n    type: \"prospect\",\n    id: 1,\n    attributes: {\n      firstName: \"Sally\",\n      lastName: null,\n      //...\n    },\n    relationships: {\n      account: {\n        data: {\n          type: \"account\",\n          id: 1,\n        },\n      },\n      stage: {\n        data: {\n          type: \"stage\",\n          id: 1,\n        },\n      },\n      //...\n    },\n  },\n  included: [\n    {\n      type: \"account\",\n      id: 1,\n      attributes: {\n        domain: \"www.acme.example.com\",\n        name: \"Acme\",\n        //...\n      },\n      relationships: {\n        //...\n      },\n    },\n    {\n      type: \"stage\",\n      id: 1,\n      attributes: {\n        name: \"Initial\",\n        order: 1,\n        //...\n      },\n      relationships: {\n        //...\n      },\n    },\n    {\n      type: \"user\",\n      id: 1,\n      attributes: {\n        email: \"test-user@example.com\",\n        //...\n      },\n      relationships: {\n        //...\n      },\n    },\n  ],\n}\n","lang":"json5"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Keeping the primary data separate from the list of included resources provides a better separation of concerns, and the"," ","final resource tree can be composed by referencing the included ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["resource objects"]}," with the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["resource identifiers"]}," ","within relationships properties."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For more information, see ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://jsonapi.org/format/#fetching-includes","target":"_blank"},"children":["Inclusion of Related Resources"]}," in the JSON API"," ","specification."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"specify-sparse-fieldsets","__idx":24},"children":["Specify Sparse Fieldsets"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["By default, resource objects return all of their public attributes and relationships. But sometimes you're only"," ","interested in a few specific fields. In these cases you can specify sparse fieldsets by utilizing the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fields"]}," query"," ","parameter."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For example, to select only the prospect's first and last name, as well as the name of the account and stage:"]},{"$$mdtype":"Tag","name":"p","attributes":{"className":"small"},"children":["Request"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"GET https://api.outreach.io/api/v2/prospects/1?include=account,stage&fields[account]=name&fields[prospect]=firstName,lastName&fields[stage]=name\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{"className":"small"},"children":["Response"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json5","header":{"controls":{"copy":{}}},"source":"{\n  data: {\n    type: \"prospect\",\n    id: 1,\n    attributes: {\n      firstName: \"Sally\",\n      lastName: null,\n    },\n  },\n  included: [\n    {\n      type: \"account\",\n      id: 1,\n      attributes: {\n        name: \"Acme\",\n      },\n    },\n    {\n      type: \"stage\",\n      id: 1,\n      attributes: {\n        name: \"Initial\",\n      },\n    },\n  ],\n}\n","lang":"json5"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To request data about a relationship whose type does not match the relationship name (e.g. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["owner"]}," is of type ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["user"]}," for"," ","prospects), you will need to specify the resource type for sparse fieldsets."]},{"$$mdtype":"Tag","name":"p","attributes":{"className":"small"},"children":["Request"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"GET https://api.outreach.io/api/v2/prospects/1?include=owner&fields[user]=firstName,lastName&fields[prospect]=firstName,lastName\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{"className":"small"},"children":["Response"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json5","header":{"controls":{"copy":{}}},"source":"{\n  data: {\n    type: \"prospect\",\n    id: 1,\n    attributes: {\n      firstName: \"Sally\",\n      lastName: null,\n    },\n  },\n  included: [\n    {\n      type: \"user\",\n      id: 1,\n      attributes: {\n        firstName: \"Amelia\",\n        lastName: \"Estevez\",\n      },\n    },\n  ],\n}\n","lang":"json5"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For more information, see ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"http://jsonapi.org/format/#fetching-sparse-fieldsets","target":"_blank"},"children":["Fetching Sparse Fieldsets"]}," in the JSON API"," ","specification."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"create-a-new-resource","__idx":25},"children":["Create a New Resource"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can create a new resource by making a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST"]}," request against the resource's collection path. The request body must"," ","contain a JSON payload with a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["resource object"]}," as the primary data. Note that unlike in other circumstances, this"," ","resource object must not contain an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," property."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For example, to create a new prospect resource with a first name and to associated the new prospect with an existing"," ","account:"]},{"$$mdtype":"Tag","name":"p","attributes":{"className":"small"},"children":["Request"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"POST https://api.outreach.io/api/v2/prospects\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json5","header":{"controls":{"copy":{}}},"source":"{\n  data: {\n    type: \"prospect\",\n    attributes: {\n      firstName: \"John\",\n    },\n    relationships: {\n      account: {\n        data: {\n          type: \"account\",\n          id: 1,\n        },\n      },\n    },\n  },\n}\n","lang":"json5"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{"className":"small"},"children":["Response"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json5","header":{"controls":{"copy":{}}},"source":"{\n  data: {\n    type: \"prospect\",\n    id: 2,\n    attributes: {\n      firstName: \"John\",\n      lastName: null,\n      //...\n    },\n    relationships: {\n      account: {\n        data: {\n          type: \"account\",\n          id: 1,\n        },\n      },\n      //...\n    },\n  },\n}\n","lang":"json5"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If the request was successful, the request will receive a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["201"]}," HTTP response with the same response body that you would"," ","retrieve should you fetch the newly created resource again via its permanent URL."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If there was a validation error and the request could not be completed, then the request will receive a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["422"]}," HTTP"," ","response with a descriptive JSON error message:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json5","header":{"controls":{"copy":{}}},"source":"{\n  errors: [\n    {\n      id: \"validationError\",\n      title: \"Validation Error\",\n      detail: \"Name can't be blank.\",\n      source: {\n        pointer: \"/data/attributes/name\",\n      },\n    },\n  ],\n}\n","lang":"json5"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For more information, see ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://jsonapi.org/format/#crud-creating","target":"_blank"},"children":["Creating Resources"]}," in the JSON API specification."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Update (May, 2023): In order to maintain the performance and reliability of our API services and allow modernization of our service architecture, Outreach has decided to remove support for including related objects on create/update operations."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Note that you can specify sparse fieldsets for create actions just like you can when fetching resources. However, if you want to include related objects you need an additional GET request."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"update-an-existing-resource","__idx":26},"children":["Update an Existing Resource"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can update an existing resource by making a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PATCH"]}," request to the resource's path. The request body must contain a"," ","JSON payload with a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["resource object"]}," as the primary data, and only present fields will be updated. The resource"," ","object's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," fields must be present and its ID must match the ID within the URL."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For example, to update an existing prospect with a new first name and to remove the account relationship:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"PATCH https://api.outreach.io/api/v2/prospects/1\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json5","header":{"controls":{"copy":{}}},"source":"{\n  data: {\n    type: \"prospect\",\n    id: 1,\n    attributes: {\n      firstName: \"Sal\",\n    },\n    relationships: {\n      account: {\n        data: null,\n      },\n    },\n  },\n}\n","lang":"json5"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If the request was successful, the request will receive a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["200"]}," HTTP response with the same response body that you would"," ","retrieve should you fetch the newly updated resource again via its permanent URL. If there was a validation error and"," ","the request could not be completed, then the request will receive a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["422"]}," HTTP response with a descriptive JSON error"," ","message."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For more information, see ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://jsonapi.org/format/#crud-updating","target":"_blank"},"children":["Updating Resources"]}," in the JSON API specification."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Update (May, 2023): In order to maintain the performance and reliability of our API services and allow modernization of our service architecture, Outreach has decided to remove support for including related objects on create/update operations."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Note that you can specify sparse fieldsets for create actions just like you can when fetching resources. However, if you want to include related objects you need an additional GET request."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"delete-an-existing-resource","__idx":27},"children":["Delete an Existing Resource"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can remove a resource by making a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DELETE"]}," request to the resource's path:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"DELETE https://api.outreach.io/api/v2/prospects/1\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If the request was successful, the request will receive a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["204"]}," HTTP response with an empty response body. If there was"," ","a validation error and the request could not be completed, then the request will receive a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["422"]}," HTTP response with a"," ","descriptive JSON error message."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For more information, see ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://jsonapi.org/format/#crud-deleting","target":"_blank"},"children":["Deleting Resources"]}," in the JSON API specification."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"other-actions-on-a-resource","__idx":28},"children":["Other Actions on a Resource"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Certain resources have further actions defined for individual items. These are accessed by making a request to a path"," ","like:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"POST https://api.outreach.io/api/v2/tasks/1/actions/snooze\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If the request is successful, the request will receive a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["200"]}," HTTP response with the body being the resource's response"," ","body as if you had performed a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET"]}," for that resource. If there was an error of some kind in performing the action, you"," ","will receive a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["422"]}," HTTP response with a descriptive JSON error message."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Some action requests have optional query parameters and/or required query parameters that influence how the action is"," ","performed:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"txt","header":{"controls":{"copy":{}}},"source":"POST https://api.outreach.io/api/v2/tasks/1/actions/markComplete?actionParams[completionNote]=I+completed+this\n","lang":"txt"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Providing additional, unacceptable parameters will result in a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["400"]}," HTTP response being returned."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"error-responses","__idx":29},"children":["Error Responses"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When an error occurs, the response body's JSON payload will contain an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["errors"]}," property list instead of a data section."," ","Each error object will contain a unique ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["title"]},", as well as specific ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["details"]}," about this particular occurrence"," ","of the error. Errors referencing specific fields will include a JSON ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["source"]}," pointer."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For more information, see ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://jsonapi.org/format/#error-objects","target":"_blank"},"children":["Error Objects"]}," in the JSON API specification."]}]},"headings":[{"value":"Making requests","id":"making-requests","depth":1},{"value":"Content Negotiation","id":"content-negotiation","depth":2},{"value":"Fetch a Collection of Resources","id":"fetch-a-collection-of-resources","depth":2},{"value":"Filter and Sort","id":"filter-and-sort","depth":2},{"value":"Filter by exact attribute","id":"filter-by-exact-attribute","depth":3},{"value":"Filter by exact relationship's attribute","id":"filter-by-exact-relationships-attribute","depth":3},{"value":"Filter by exact attribute and relationship's attribute","id":"filter-by-exact-attribute-and-relationships-attribute","depth":3},{"value":"Filter by a list of values","id":"filter-by-a-list-of-values","depth":3},{"value":"Filter by range of values","id":"filter-by-range-of-values","depth":3},{"value":"Filter by a less-than-or-equal-to condition","id":"filter-by-a-less-than-or-equal-to-condition","depth":3},{"value":"Filter by greater-than-or-equal-to condition","id":"filter-by-greater-than-or-equal-to-condition","depth":3},{"value":"Filter NULL values","id":"filter-null-values","depth":3},{"value":"Sort by ascending attribute","id":"sort-by-ascending-attribute","depth":3},{"value":"Sort by descending attribute","id":"sort-by-descending-attribute","depth":3},{"value":"Sort by relationship's attribute (deprecated)","id":"sort-by-relationships-attribute-deprecated","depth":3},{"value":"Sort by multiple criteria","id":"sort-by-multiple-criteria","depth":3},{"value":"New filter syntax","id":"new-filter-syntax","depth":2},{"value":"Pagination","id":"pagination","depth":2},{"value":"Cursor-based Pagination","id":"cursor-based-pagination","depth":3},{"value":"Offset Pagination (Deprecated)","id":"offset-pagination-deprecated","depth":3},{"value":"Counting resources","id":"counting-resources","depth":2},{"value":"When is count truncated?","id":"when-is-count-truncated","depth":3},{"value":"Fetch an Individual Resource","id":"fetch-an-individual-resource","depth":2},{"value":"Include Related Resources","id":"include-related-resources","depth":2},{"value":"Specify Sparse Fieldsets","id":"specify-sparse-fieldsets","depth":2},{"value":"Create a New Resource","id":"create-a-new-resource","depth":2},{"value":"Update an Existing Resource","id":"update-an-existing-resource","depth":2},{"value":"Delete an Existing Resource","id":"delete-an-existing-resource","depth":2},{"value":"Other Actions on a Resource","id":"other-actions-on-a-resource","depth":2},{"value":"Error Responses","id":"error-responses","depth":2}],"frontmatter":{"seo":{"title":"Making API requests - Development Portal | Outreach"}},"lastModified":"2026-04-29T11:57:31.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/api/making-requests","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}