{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"dfa3fa5b-dd02-5b2e-1ea9-589165b969d0","name":"Chattermill API","description":"This is Chattermill's official REST API. You can use it to add or update responses on Chattermill or query your data on Chattermill.\n\n# Authentication\n\nYou need to provide an API Key for every request. You can get your API Key [here](https://app.chattermill.com/settings/api). The key should be provided in the Authorization header:\n\n```\ncurl 'https://api.chattermill.com/v1/projects' \\\n        -H 'Authorization: Bearer {key}'\n\n ```\n\n# Data Structure\n\nYour main data model in Chattermill is Response. Once processed, this object contains the comment, score, any meta-data, and the themes.\n\nYou may have several projects on Chattermill, so you would need to specify a Project when querying other data in the URL.\n\nYou also have several datasets characterised by different data_types (think `nps`, `review` etc.) and data_sources (Zendesk, Typeform etc.). These can be handy if you need to work with only one group of responses.\n\nWe currently provide only read endpoints for Projects, Data Types and Data Sources.\n\n# Typical Workflows\n\n## Fetching new responses\n\nYou will probably need to query the `/projects` endpoint first to find the key of the project you need. Typically, this is similar to a lowercase version of your company's name.\n\nOnce you have that, you can query the `/responses` endpoint specifying the right group of filters. We recommend scoping by a specific date range based on how often your workflow runs (e.g. previous day or previous hour) or storing the last processed `id` and scrolling through the pages until you hit it.\n\n## Adding feedback to Chattermill\n\nYou will probably need to query the `/projects` endpoint first to find the key of the project you need. Typically, this is similar to a lowercase version of your company's name.\n\nThen query `/data_sources` and `/data_types` endpoints to get the keys for those variables. If the correct sources or types do not exist, please contact our Support team to create them.  \nFinally, you would need to send a POST request to the `/responses` endpoint.\n\n## Actioning Data Erasure Requests (eg. per GDPR)\n\nTypically, Chattermill will not store your users' PII data, meaning there is no GDPR liability. However, if you need to delete a specific Response, you can find it by any response attribute (e.g. email or customer ID) through the `/responses/search` endpoint and then trigger permanent deletion through the DELETE `/responses/{id}` endpoint\n\n## Enriching Chattermill Data\n\nFrequently, you will want to add additional attributes (aka enrich) to the data you already have in Chattermill, perhaps from your CRM or your own database / data warehouse.\n\nTo do this, we recommend one of two approaches:\n\n1. Periodically poll for new responses using the GET `/responses` endpoint, using filters to only find new data (either by maintaining an ID-based or date-based cursor on your end or by using filters to find responses without the attribute in question. Then, when a response needs to be enriched, use the PUT `/responses/{id}` endpoint to add the attribute.\n    \n2. Set up a Webhook on Chattermill Workflows to receive an automated notification for new responses, then update them using the PUT `/responses/{id}` endpoint\n    \n\nAn _**anti-pattern**_ that should be avoided is using POST `responses/search` endpoint to find a given response and then update it. This can lead to unpredictable results because the response might not have been fully processed when you kick off your workflow. The approaches above ensure consistency.\n\n# Getting Help\n\nPlease get in touch via [api@chattermill.com](https://mailto:api@chattermill.com) if you have any questions. We will reply quickly.\n\n# API Update Newsletter\n\nPlease let us know if you are an API user, so we can send you any updates relevant to API users. No SPAM. Sign up [here](https://chattermill.typeform.com/to/td6cQJLJ).\n\n# Resources","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"957224","team":65082,"collectionId":"dfa3fa5b-dd02-5b2e-1ea9-589165b969d0","publishedId":"7TT8V8s","public":true,"publicUrl":"https://apidocs.chattermill.com","privateUrl":"https://go.postman.co/documentation/957224-dfa3fa5b-dd02-5b2e-1ea9-589165b969d0","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"documentationLayout":"classic-double-column","customisation":null,"version":"8.10.1","publishDate":"2023-03-14T18:21:06.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/768118b36f06c94b0306958b980558e6915839447e859fe16906e29d683976f0","favicon":"https://chattermill.com/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://apidocs.chattermill.com/view/metadata/7TT8V8s"}