{"id":20987,"date":"2020-09-21T07:23:52","date_gmt":"2020-09-21T07:23:52","guid":{"rendered":"https:\/\/ec2-54-72-10-141.eu-west-1.compute.amazonaws.com\/docs\/?post_type=knowledgebase&#038;p=20987"},"modified":"2026-08-31T11:49:36","modified_gmt":"2026-08-31T11:49:36","slug":"api","status":"publish","type":"knowledgebase","link":"https:\/\/refiner.io\/docs\/kb\/integrations\/api\/","title":{"rendered":"Refiner API"},"content":{"rendered":"\n\n\n<p>The Refiner REST API gives you programmatic access to the data stored in your Refiner environment.<\/p>\n\n\n\n<p>Among other things, you can use our API to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Retrieve individual survey responses<\/li>\n\n\n\n<li>Retrieve contacts together with their survey responses and user traits<\/li>\n\n\n\n<li>Import user traits and events from your backend system<\/li>\n\n\n\n<li>Import survey responses from other systems<\/li>\n<\/ul>\n\n\n\n<p>Updating user traits through the API is particularly useful when you want to attach data that should not be exposed in your frontend application, or when you want to use backend data for user segmentation and survey targeting.<\/p>\n\n\n\n<p>The Refiner API follows REST principles, uses JSON for requests and responses, and authenticates requests using API keys.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"api-docs\">API Reference<\/h2>\n\n\n\n<p>Our API reference contains detailed information about available endpoints, request parameters, authentication, and response formats.<\/p>\n\n\n\n<div class=\"wp-block-ugb-button ugb-button-wrapper ugb-b0f879b ugb-main-block\"><div class=\"ugb-inner-block\"><div class=\"ugb-block-content\"><div class=\"ugb-button-container\"><a class=\"ugb-button1 ugb-button ugb-button--size-normal\" href=\"https:\/\/refiner.io\/docs\/api\/\" rel=\"\" title=\"\"><span class=\"ugb-button--inner\">Read API Documentation<\/span><\/a><\/div><\/div><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"api-keys\">API Keys<\/h2>\n\n\n\n<p>You can create and manage API keys under <strong>Environment Settings &gt; API Keys<\/strong>.<\/p>\n\n\n\n<p>Each API key can be given a descriptive name, making it easier to identify where it is being used. You can also see when a key was last used and revoke it at any time by deleting it.<\/p>\n\n\n\n<p>You can create multiple API keys within the same environment.<\/p>\n\n\n\n<p>We recommend creating a separate API key for each integration or application that connects to the Refiner API. This makes it easier to identify how individual keys are being used and allows you to revoke or replace one key without affecting other integrations.<\/p>\n\n\n\n<p>Treat your API keys as sensitive credentials and never expose them in publicly accessible frontend code.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"rate-limits\">Rate Limits<\/h2>\n\n\n\n<p>To ensure reliable API performance, requests are subject to the following rate limits:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Per API key<\/td><td>4.000 requests \/ minute<br>1.000 requests \/ 15 seconds<\/td><\/tr><tr><td>Per contact \/ user ID<\/td><td>100 requests \/ minute<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>The per-user limit applies to requests associated with the same user identifier, regardless of the API key being used.<\/p>\n\n\n\n<p>If you expect to send a large number of requests, we recommend spreading them evenly over time rather than sending them in large bursts.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Refiner REST API gives you programmatic access to the data stored in your Refiner environment. Among other things, you can use our API to: Updating user traits through the API is particularly useful when you want to attach data that should not be exposed in your frontend application, or when you want to use [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"https:\/\/refiner.io\/docs\/kb\/integrations\/api\/\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","template":"","knowledgebase_tag":[],"class_list":["post-20987","knowledgebase","type-knowledgebase","status-publish","hentry","knowledgebase_cat-integrations"],"acf":[],"featured_image_urls_v2":{"full":"","thumbnail":"","medium":"","medium_large":"","large":"","1536x1536":"","2048x2048":"","ab-block-post-grid-landscape":"","ab-block-post-grid-square":"","gb-block-post-grid-landscape":"","gb-block-post-grid-square":""},"post_excerpt_stackable_v2":"<p>The Refiner REST API gives you programmatic access to the data stored in your Refiner environment. Among other things, you can use our API to: Retrieve individual survey responses Retrieve contacts together with their survey responses and user traits Import user traits and events from your backend system Import survey responses from other systems Updating user traits through the API is particularly useful when you want to attach data that should not be exposed in your frontend application, or when you want to use backend data for user segmentation and survey targeting. The Refiner API follows REST principles, uses JSON&hellip;<\/p>\n","category_list_v2":"","author_info_v2":{"name":"Moritz Dausinger","url":"https:\/\/refiner.io\/docs\/author\/user\/"},"comments_num_v2":"0 comments","yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Refiner API<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/refiner.io\/docs\/kb\/integrations\/api\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Refiner API\" \/>\n<meta property=\"og:description\" content=\"The Refiner REST API gives you programmatic access to the data stored in your Refiner environment. Among other things, you can use our API to: Updating user traits through the API is particularly useful when you want to attach data that should not be exposed in your frontend application, or when you want to use [...]Read More...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/refiner.io\/docs\/kb\/integrations\/api\/\" \/>\n<meta property=\"og:site_name\" content=\"Refiner Documentation\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-31T11:49:36+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/refiner.io\/docs\/kb\/integrations\/api\/\",\"url\":\"https:\/\/refiner.io\/docs\/kb\/integrations\/api\/\",\"name\":\"Refiner API\",\"isPartOf\":{\"@id\":\"https:\/\/refiner.io\/docs\/#website\"},\"datePublished\":\"2020-09-21T07:23:52+00:00\",\"dateModified\":\"2026-08-31T11:49:36+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/refiner.io\/docs\/kb\/integrations\/api\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/refiner.io\/docs\/kb\/integrations\/api\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/refiner.io\/docs\/kb\/integrations\/api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/refiner.io\/docs\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Refiner API\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/refiner.io\/docs\/#website\",\"url\":\"https:\/\/refiner.io\/docs\/\",\"name\":\"Refiner Documentation\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/refiner.io\/docs\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/refiner.io\/docs\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/refiner.io\/docs\/#organization\",\"name\":\"Refiner Documentation\",\"url\":\"https:\/\/refiner.io\/docs\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/refiner.io\/docs\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/refiner.io\/docs\/wp-content\/uploads\/2022\/11\/cropped-Group-8.png\",\"contentUrl\":\"https:\/\/refiner.io\/docs\/wp-content\/uploads\/2022\/11\/cropped-Group-8.png\",\"width\":400,\"height\":61,\"caption\":\"Refiner Documentation\"},\"image\":{\"@id\":\"https:\/\/refiner.io\/docs\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Refiner API","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/refiner.io\/docs\/kb\/integrations\/api\/","og_locale":"en_US","og_type":"article","og_title":"Refiner API","og_description":"The Refiner REST API gives you programmatic access to the data stored in your Refiner environment. Among other things, you can use our API to: Updating user traits through the API is particularly useful when you want to attach data that should not be exposed in your frontend application, or when you want to use [...]Read More...","og_url":"https:\/\/refiner.io\/docs\/kb\/integrations\/api\/","og_site_name":"Refiner Documentation","article_modified_time":"2026-08-31T11:49:36+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/refiner.io\/docs\/kb\/integrations\/api\/","url":"https:\/\/refiner.io\/docs\/kb\/integrations\/api\/","name":"Refiner API","isPartOf":{"@id":"https:\/\/refiner.io\/docs\/#website"},"datePublished":"2020-09-21T07:23:52+00:00","dateModified":"2026-08-31T11:49:36+00:00","breadcrumb":{"@id":"https:\/\/refiner.io\/docs\/kb\/integrations\/api\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/refiner.io\/docs\/kb\/integrations\/api\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/refiner.io\/docs\/kb\/integrations\/api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/refiner.io\/docs\/"},{"@type":"ListItem","position":2,"name":"Refiner API"}]},{"@type":"WebSite","@id":"https:\/\/refiner.io\/docs\/#website","url":"https:\/\/refiner.io\/docs\/","name":"Refiner Documentation","description":"","publisher":{"@id":"https:\/\/refiner.io\/docs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/refiner.io\/docs\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/refiner.io\/docs\/#organization","name":"Refiner Documentation","url":"https:\/\/refiner.io\/docs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/refiner.io\/docs\/#\/schema\/logo\/image\/","url":"https:\/\/refiner.io\/docs\/wp-content\/uploads\/2022\/11\/cropped-Group-8.png","contentUrl":"https:\/\/refiner.io\/docs\/wp-content\/uploads\/2022\/11\/cropped-Group-8.png","width":400,"height":61,"caption":"Refiner Documentation"},"image":{"@id":"https:\/\/refiner.io\/docs\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/refiner.io\/docs\/wp-json\/wp\/v2\/knowledgebase\/20987","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/refiner.io\/docs\/wp-json\/wp\/v2\/knowledgebase"}],"about":[{"href":"https:\/\/refiner.io\/docs\/wp-json\/wp\/v2\/types\/knowledgebase"}],"author":[{"embeddable":true,"href":"https:\/\/refiner.io\/docs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/refiner.io\/docs\/wp-json\/wp\/v2\/comments?post=20987"}],"version-history":[{"count":25,"href":"https:\/\/refiner.io\/docs\/wp-json\/wp\/v2\/knowledgebase\/20987\/revisions"}],"predecessor-version":[{"id":28967,"href":"https:\/\/refiner.io\/docs\/wp-json\/wp\/v2\/knowledgebase\/20987\/revisions\/28967"}],"wp:attachment":[{"href":"https:\/\/refiner.io\/docs\/wp-json\/wp\/v2\/media?parent=20987"}],"wp:term":[{"taxonomy":"knowledgebase_tag","embeddable":true,"href":"https:\/\/refiner.io\/docs\/wp-json\/wp\/v2\/knowledgebase_tag?post=20987"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}