{"id":14693,"date":"2025-12-01T11:17:12","date_gmt":"2025-12-01T11:17:12","guid":{"rendered":"https:\/\/www.snapsurveys.com\/support-snapxmp\/?post_type=epkb_post_type_1&#038;p=14693"},"modified":"2025-12-01T11:28:59","modified_gmt":"2025-12-01T11:28:59","slug":"snap-xmp-developer-api-need-to-know","status":"publish","type":"epkb_post_type_1","link":"https:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp\/snap-xmp-developer-api-need-to-know\/","title":{"rendered":"Need to Know"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introduction<\/h2>\n\n\n\n<p>The Snap XMP Online API (application programming interface) allows customers to access the data in their account programmatically. <\/p>\n\n\n\n<p><strong>Note that if you give anyone else API access to your account you will be giving them access to <u>all<\/u> of your surveys and <u>all<\/u> of your survey responses <u>and <\/u>(depending on the share permissions) access to all surveys and survey responses shared to you by others. Do not give anyone API access if this will be a problem for you.<\/strong><\/p>\n\n\n\n<p>The API is a RESTful API (Representational State Transfer). It utilises the HTTP transport mechanism and is stateless. Data submitted in the body of a request and data returned in the body of the response is in the JSON format. The API only supports the JSON representation at present. We may allow other representations such as XML in future versions.<\/p>\n\n\n\n<p>Each call made to the API is stateless and as such each call must include the authorisation information. The return from each call consists of a standard HTTP response which consists of a HTTP response code, response body and response headers.<\/p>\n\n\n\n<p><strong>Please note<\/strong> that from Monday 5th December 2022 usage of the API becomes chargeable. The charge is that 0.1 unit will be consumed each time a survey response is delivered by the API.&nbsp; This applies if the API delivers the same survey response multiple times. Use the Get Survey Responses endpoint to deliver the survey responses.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Prerequisite skills<\/h2>\n\n\n\n<p>Making use of any API involves writing code and is best done by a suitably qualified computer programmer. Prior to creating your code we strongly recommend (if you don&#8217;t already) that you make use of a tool called Postman. Postman can be installed on a PC or accessed via a web browser. It is free for most of the tasks that an API consuming developer would want to perform. Postman allows the developer to \u201cplay\u201d with an API prior to writing any code. Please note that you will still be charged for every response returned via the &#8220;get survey responses&#8221; end point. Once the request has been formulated in Postman it can then be used to give a head start to writing the actual code.<\/p>\n\n\n\n<p>The following sections (up to the API History \/ Changes section) are required reading so as to call any of the API endpoints in the correct manner.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Security<\/h2>\n\n\n\n<p>The API is stateless so each API call needs to be authenticated. Each call to the API must include the following request headers: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>X-USERNAME<\/strong> containing the Snap XMP Online email address for the user<\/li>\n\n\n\n<li><strong>X-API-KEY<\/strong> containing the API key for the user<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Creating the key<\/h3>\n\n\n\n<p>   To create the key for the user\u2019s account do the following: <\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li> Log onto Snap XMP Online. <\/li>\n\n\n\n<li>Go to the <strong>Your account<\/strong> section. <\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"206\" height=\"215\" src=\"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-content\/uploads\/2021\/09\/word-image.png\" alt=\"\" class=\"wp-image-6467\"\/><\/figure>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>   Click on the <strong>Integrations <\/strong>link. <\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"253\" height=\"354\" src=\"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-content\/uploads\/2021\/12\/APImenu.png\" alt=\"\" class=\"wp-image-7015\" srcset=\"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-content\/uploads\/2021\/12\/APImenu.png 253w, https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-content\/uploads\/2021\/12\/APImenu-214x300.png 214w\" sizes=\"(max-width: 253px) 100vw, 253px\" \/><\/figure>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>   Click the <strong>Generate key <\/strong>button. <\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"601\" height=\"425\" src=\"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-content\/uploads\/2021\/12\/NewAPIkey.png\" alt=\"\" class=\"wp-image-7016\" srcset=\"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-content\/uploads\/2021\/12\/NewAPIkey.png 601w, https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-content\/uploads\/2021\/12\/NewAPIkey-300x212.png 300w\" sizes=\"(max-width: 601px) 100vw, 601px\" \/><figcaption class=\"wp-element-caption\">Note: This API key is shown as an example. Your API key should remain private.<\/figcaption><\/figure>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li>   Click the <strong>Copy to clipboard<\/strong> button. <\/li>\n<\/ol>\n\n\n\n<p>   Your API key is now in the clipboard and you can paste this into your API calls. <\/p>\n\n\n\n<p>Failure to include the <strong>X-USERNAME<\/strong> and <strong>X-API-KEY<\/strong> header parameters, or an incorrect <strong>X-API-KEY<\/strong> or use of a revoked API token will result in a 401 \u2013 Unauthorised response code, from all API calls. <\/p>\n\n\n\n<p>   Note: You should never reveal your API key to anyone or add it to code that is publicly accessible \u2013 this includes code in JavaScript files that is easily viewed using the Developer tools in a web browser.  <\/p>\n\n\n\n<p><strong>Failure to secure your API key could result in your data being accessible by someone else.<\/strong> <\/p>\n\n\n\n<p>   If you think your API key has become known, then you should revoke your key (with the <strong>Revoke now<\/strong> button on the <strong>Integrations <\/strong>page) or replace the key (with the <strong>Replace key<\/strong> button which will make the previous key no longer usable). You will then have to change your client code to use the new key. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"handling-throttling\">Handling Throttling<\/h2>\n\n\n\n<p>To protect the resources of Snap XMP Online we have implemented throttling. This means that some of your API calls may return a status code of 429 &#8211; Too many requests.<\/p>\n\n\n\n<p>You should ensure that you don\u2019t attempt to make more than one call per second or more than ten calls per minute. One way to achieve this is to perform a \u201csleep\u201d in between calls.<\/p>\n\n\n\n<p>We reserve the right to change the throttling limits at any time.<\/p>\n\n\n\n<p>Current throttling metrics are returned in the following response headers:<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-regular\"><table class=\"has-fixed-layout\"><thead><tr><th>Response header<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td>X-RateLimit-Limit-Per-Sec<\/td><td>the current limit per second<\/td><\/tr><tr><td>X-RateLimit-Remaining-Per-Sec<\/td><td>how many requests are remaining in this second period. This can be negative.<\/td><\/tr><tr><td>X-RateLimit-Reset-Per-Sec<\/td><td>the UNIX time of when the next request is allowed<\/td><\/tr><tr><td>X-RateLimit-Limit-Per-Min<\/td><td>the current limit per minute<\/td><\/tr><tr><td>X-RateLimit-Remaining-Per-Min<\/td><td>how many requests are remaining in this minute period. This can be negative.<\/td><\/tr><tr><td>X-RateLimit-Reset-Per-Min<\/td><td>the UNIX time of when the next request is allowed<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Ideally, when a <strong>429<\/strong> status code is received your code should automatically change its \u201csleep\u201d behaviour based on these metrics. Alternatively, you may decide to wait say 15 seconds between calls which should satisfy all future per second and per minute requirements.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Versioning<\/h2>\n\n\n\n<p>From time to time we need to make changes to the API. In order to prevent our changes from breaking your client code we will employ the following versioning strategy.<\/p>\n\n\n\n<p>Versioning is achieved by use of request and response headers.<\/p>\n\n\n\n<p>If you don\u2019t specify a version in your request, then you will be using the v1.0 version of the API.<\/p>\n\n\n\n<p>The following response header tells you which versions are available:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>api-supported-versions<\/li>\n<\/ul>\n\n\n\n<p>The value is a comma-separated list of versions.<\/p>\n\n\n\n<p>To use a new version you have to supply the following header parameter in the request:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>X-VERSION<\/li>\n<\/ul>\n\n\n\n<p>Set the value to the version that you require.<\/p>\n\n\n\n<p>You should check to see whether use of the new version is advised and what changes (if any) you<br>need to make to your code in order to use a new version.<\/p>\n\n\n\n<p>Note. At some point it may become necessary to deprecate a version. We will strive to avoid this but sometimes it is unavoidable. We will give you plenty of notice.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Considerations of client code<\/h2>\n\n\n\n<p>A <strong>breaking change<\/strong> is a change that may require you to make changes to your integration. The following are examples of changes we consider to be breaking changes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Removal of a parameter, request field or response field<\/li>\n\n\n\n<li>Addition of a required parameter or request field without default values<\/li>\n\n\n\n<li>Changes to the intended functionality of an endpoint<\/li>\n\n\n\n<li>Introduction of additional validation<\/li>\n<\/ul>\n\n\n\n<p>A <strong>non-breaking change<\/strong> is a change that should not require you to make changes to your integration. In most cases, we will communicate non-breaking changes after they have been released. <\/p>\n\n\n\n<p>Please ensure that your application is designed to be able to handle the following types of non-breaking<br>changes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Addition of new endpoints<\/li>\n\n\n\n<li>Addition of new methods to existing endpoints<\/li>\n\n\n\n<li>Addition of new fields in the following scenarios:\n<ul class=\"wp-block-list\">\n<li>New fields in responses<\/li>\n\n\n\n<li>New optional request fields or parameters<\/li>\n\n\n\n<li>New required request fields that have default values<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Addition of a new value returned for an existing text field<\/li>\n\n\n\n<li>Changes to the order of fields returned within a response<\/li>\n\n\n\n<li>Addition of an optional request header<\/li>\n\n\n\n<li>Removal of redundant request header<\/li>\n\n\n\n<li>Changes to the length of data returned within a field<\/li>\n\n\n\n<li>Changes to the overall response size<\/li>\n\n\n\n<li>Changes to error messages. We do not recommend parsing error messages to perform business logic. Instead, you should only rely on HTTP response codes and error codes.<\/li>\n\n\n\n<li>Fixes to HTTP response codes and error codes from incorrect code to correct code<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">HTTP Status Codes<\/h2>\n\n\n\n<p>As well as specific return codes listed in the API Reference section, all end-points can return the following HTTP status codes:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>HTTP status code<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td>400 Bad Request<\/td><td>If a query parameter is incorrect or does not exist or is not provided when not optional. <br>Note: This is a change from v1.0 version.<\/td><\/tr><tr><td>401 Unauthorized<\/td><td>If the user does not exist or API access is not enabled for the user or the X-API-KEY parameter is incorrect.<br>If the end-point requires a surveyId and either the survey does not exist or the user does not have access to the survey.<\/td><\/tr><tr><td>429 Too Many Requests<\/td><td>Too many API requests have been made.<br>Further information is available at <a href=\"#handling-throttling\">Handling throttling<\/a>.<\/td><\/tr><tr><td>500 Internal Server Error<\/td><td>Unanticipated system error<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">API Validation<\/h2>\n\n\n\n<p>Version 2.0 adds additional validation to query parameters and to JSON request bodies.<\/p>\n\n\n\n<p>If you provide a query parameter that does not exist, you will get a <strong>400 Bad Request<\/strong> response and the return body will state \u201cInvalid query string parameters\u201d in the <strong>message<\/strong> property followed by the parameters that don\u2019t exist in the <strong>parameters<\/strong> property. E.g.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"message\": \"Invalid query string parameters\",\n    \"parameters\": &#91;\n       \"sortorder\"\n    ]\n}<\/code><\/pre>\n\n\n\n<p>If the parameters provided exist but are not valid you will receive a message such as:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"message\": \"The request is invalid.\",\n    \"modelState\": {\n        \"includeCodes\": &#91;\n            \"The value 'yes' is not valid for Boolean.\"\n        ]\n    }\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Recommended use of the API progress token<\/h2>\n\n\n\n<p>You can retrieve a survey\u2019s responses using the <a href=\"https:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp\/api-get-survey-responses\/\" target=\"_blank\" rel=\"noopener\"><strong>Get Survey Responses<\/strong><\/a> endpoint.<\/p>\n\n\n\n<p>There are 2 approaches to retrieving the survey responses:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Our&nbsp;<strong>recommended approach<\/strong>, which is to use the startingFrom token so you only get the responses that have been submitted or modified since your last call.<\/li>\n\n\n\n<li>Get all the responses each call and you will be charged for each response for every call.<\/li>\n<\/ul>\n\n\n\n<p><strong>Use of the API is chargeable. <\/strong>The charge is 0.1 unit each time the API delivers a survey response.&nbsp; This applies if you use the API to retrieve the same survey response multiple times.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Comparing unit usage<\/h3>\n\n\n\n<p>This table compares the number of units that when getting all the responses with getting the responses using the progress token, which is our recommended approach. This comparison shows the results for a survey that receives 100 responses per day, and the organisation gets the responses once per day.<\/p>\n\n\n\n<p>Using the progress token uses far fewer units, reduces network traffic and provide a faster response.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th><strong>Day<\/strong><\/th><th><strong>Responses received per day<\/strong><\/th><th><strong>Responses delivered by getting all responses each day<\/strong><\/th><th><strong>Units used per day (0.1 unit per response)<\/strong><\/th><th><strong>Responses delivered using the API progress token each day<\/strong><\/th><th><strong>Units used per day(0.1 unit per response)<\/strong><\/th><\/tr><\/thead><tbody><tr><td>1<\/td><td>100<\/td><td>100<\/td><td>10<\/td><td>100<\/td><td>10<\/td><\/tr><tr><td>2<\/td><td>100<\/td><td>200<\/td><td>20<\/td><td>100<\/td><td>10<\/td><\/tr><tr><td>3<\/td><td>100<\/td><td>300<\/td><td>30<\/td><td>100<\/td><td>10<\/td><\/tr><tr><td>4<\/td><td>100<\/td><td>400<\/td><td>40<\/td><td>100<\/td><td>10<\/td><\/tr><tr><td>5<\/td><td>100<\/td><td>500<\/td><td>50<\/td><td>100<\/td><td>10<\/td><\/tr><tr><td>6<\/td><td>100<\/td><td>600<\/td><td>60<\/td><td>100<\/td><td>10<\/td><\/tr><tr><td>7<\/td><td>100<\/td><td>700<\/td><td>70<\/td><td>100<\/td><td>10<\/td><\/tr><tr><td><strong>Totals<\/strong><\/td><td><strong>700<\/strong><\/td><td><strong>2800<\/strong><\/td><td><strong>280<\/strong><\/td><td><strong>700<\/strong><\/td><td><strong>70<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Recommended approach<\/h3>\n\n\n\n<p>Using our recommended approach, you can retrieve only the latest responses since the last call was made. This is done by using the <strong>startingFrom <\/strong>parameter in the <a href=\"https:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp\/api-get-survey-responses\/\" target=\"_blank\" rel=\"noopener\"><strong>Get Survey Responses<\/strong><\/a> call. When you make a call to get the responses, this returns a progress token, which will need to be stored. This is a mark in the data file for where the call got up to. The next time you make the call, pass this progress token in as the <strong>startingFrom <\/strong>point, and then only new data is returned.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step 1: Make the first request for the survey\u2019s responses<\/h4>\n\n\n\n<p>When you make the first call to request the survey\u2019s responses, set the <strong>startingFrom <\/strong>parameter to 0.<\/p>\n\n\n\n<p>This retrieves<strong> all <\/strong>the requested survey responses.<\/p>\n\n\n\n<p>Optional parameter settings will affect the requested survey responses. For example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If you include a filter, this will be all the survey responses that match the filter.<\/li>\n\n\n\n<li>If you set a maximum number of responses, e.g. maxResponses=100, this will be the first 100 responses.<\/li>\n\n\n\n<li>If you set restricted variables, this will return only the specified variables rather than all the variables in the survey.<\/li>\n<\/ul>\n\n\n\n<p>This is an example of a request that retrieves the specified data from all the survey responses by using startingFrom=0. (In the code, you need to replace {APIKEY} with your actual API key and {USERNAME} with your actual username.)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl --location --request GET 'https:\/\/&lt;servername&gt;\/snaponline\/api\/surveys\/c23a0fd8-6219-4130-a6a7-f312829e56eb\/responses?maxResponses=100&amp;restrictedVariables= V16,V45~V47&amp;returnUniqueIds=true&amp;useCodeLabels=true&amp;startingFrom=0' \\\n--header 'X-USERNAME: {USERNAME}' \\\n--header 'X-API-KEY: {APIKEY}' \\\n--header 'X-VERSION: 2.0' \\\n--data-raw ''<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Step 2: Receive the response containing the survey\u2019s responses<\/h4>\n\n\n\n<p>This is an example of the response to the request for the survey responses. This contains the survey responses in the <strong>responses <\/strong>return item, and the progress token in the <strong>progress<\/strong> return item.<\/p>\n\n\n\n<p>200 OK with body:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"surveyId\": \"6834a5f1-46e5-4b12-9e0c-a38a3d9be12c\",\n    \"filter\": \"Q1&gt;1\",\n    \"startingFrom\": \"0\",\n    \"progress\": \"#IBCGEGG\",\n    \"upToDate\": \"false\",\n    \"responses\": &#91;\n        {\n            \"status\": \"new\",\n            \"caseId\": \"8e4591b0-c1e3-4612-88b4-7b96cd28dd2d\",\n            \"variables\": &#91;\n                {\n                    \"id\": \"V46\",\n                    \"v\": \"Plane\"\n                },\n                {\n                    \"id\": \"V48\",\n                    \"v\": \"\\\"Restaurant \/ Cafe\\\",\\\"Gift Shop\\\",\\\"Customer Services\\\"\"\n                },\n                {\n                    \"id\": \"V52\",\n                    \"s\": \"NR\"\n                }\n            ]\n        },\n        {\n            \"status\": \"new\",\n            \"caseId\": \"5458bfcb-97df-4326-879d-4868406761ae\",\n            \"variables\": &#91;\n                {\n                    \"id\": \"V46\",\n                    \"v\": \"Bike\"\n                },\n                {\n                    \"id\": \"V48\",\n                    \"v\": \"\\\"Gift Shop\\\"\"\n                },\n                {\n                    \"id\": \"V52\",\n                    \"v\": \"Very busy.\"\n                }\n            ]\n        }\n    ]\n}\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Step 3: Store the progress token for the next call<\/h4>\n\n\n\n<p>In the sample response in Step 2, \u2018progress\u2019 represents where you have got to in the data file.<\/p>\n\n\n\n<p>\u201cprogress\u201d: \u201c#IBCGEGG\u201d<\/p>\n\n\n\n<p>Store the progress token to use in the next survey response request.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step 4: Use the progress token in the next request<\/h4>\n\n\n\n<p>The progress token from the previous response is then used as the startingFrom value in the next Get Survey Responses request, to retrieve responses that have been submitted or modified since your last call.<\/p>\n\n\n\n<p>This is an example that uses the progress token in the startingFrom parameter.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl --location --request GET 'https:\/\/&lt;servername&gt;\/snaponline\/api\/surveys\/c23a0fd8-6219-4130-a6a7-f312829e56eb\/responses?maxResponses=100&amp;restrictedVariables= V16,V45~V47&amp;returnUniqueIds=true&amp;useCodeLabels=true&amp;startingFrom=#IBCGEGG' \\\n--header 'X-USERNAME: {USERNAME}' \\\n--header 'X-API-KEY: {APIKEY}' \\\n--header 'X-VERSION: 2.0' \\\n--data-raw ''<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Using Max Responses<\/h3>\n\n\n\n<p>Max responses is optional and can be used in combination with the progress token. Use the \u2018upToDate\u2019 value to decide if you have more responses to get, then use the progress token to get the next group of survey responses. If you know the number of survey responses for each call is never going to exceed the limit of 5000, then you can exclude this parameter.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction The Snap XMP Online API (application programming interface) allows customers to access the data in their account programmatically. Note that if you give anyone else API access to your account you will be giving them access to all of your surveys and all of your survey responses and (depending on the share permissions) access [&hellip;]<\/p>\n","protected":false},"author":16,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"epkb_post_type_1_category":[111],"epkb_post_type_1_tag":[],"class_list":["post-14693","epkb_post_type_1","type-epkb_post_type_1","status-publish","hentry","epkb_post_type_1_category-snap-online-developer-api"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Need to Know | SnapSurveys<\/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:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp\/snap-xmp-developer-api-need-to-know\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Need to Know | SnapSurveys\" \/>\n<meta property=\"og:description\" content=\"Introduction The Snap XMP Online API (application programming interface) allows customers to access the data in their account programmatically. Note that if you give anyone else API access to your account you will be giving them access to all of your surveys and all of your survey responses and (depending on the share permissions) access [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp\/snap-xmp-developer-api-need-to-know\/\" \/>\n<meta property=\"og:site_name\" content=\"SnapSurveys\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/snapsurveys\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-01T11:28:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-content\/uploads\/2021\/09\/word-image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"206\" \/>\n\t<meta property=\"og:image:height\" content=\"215\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@snapsurveys\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp\/snap-xmp-developer-api-need-to-know\/\",\"url\":\"https:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp\/snap-xmp-developer-api-need-to-know\/\",\"name\":\"Need to Know | SnapSurveys\",\"isPartOf\":{\"@id\":\"https:\/\/www.snapsurveys.com\/support-snapxmp\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp\/snap-xmp-developer-api-need-to-know\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp\/snap-xmp-developer-api-need-to-know\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-content\/uploads\/2021\/09\/word-image.png\",\"datePublished\":\"2025-12-01T11:17:12+00:00\",\"dateModified\":\"2025-12-01T11:28:59+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp\/snap-xmp-developer-api-need-to-know\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp\/snap-xmp-developer-api-need-to-know\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp\/snap-xmp-developer-api-need-to-know\/#primaryimage\",\"url\":\"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-content\/uploads\/2021\/09\/word-image.png\",\"contentUrl\":\"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-content\/uploads\/2021\/09\/word-image.png\",\"width\":206,\"height\":215},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp\/snap-xmp-developer-api-need-to-know\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.snapsurveys.com\/support-snapxmp\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Snap XMP Support\",\"item\":\"https:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp-archive\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Need to Know\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.snapsurveys.com\/support-snapxmp\/#website\",\"url\":\"https:\/\/www.snapsurveys.com\/support-snapxmp\/\",\"name\":\"Snap XMP Support Hub\",\"description\":\"Support documentation for Snap Surveys products\",\"publisher\":{\"@id\":\"https:\/\/www.snapsurveys.com\/support-snapxmp\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.snapsurveys.com\/support-snapxmp\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.snapsurveys.com\/support-snapxmp\/#organization\",\"name\":\"Snap Surveys\",\"url\":\"https:\/\/www.snapsurveys.com\/support-snapxmp\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.snapsurveys.com\/support-snapxmp\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-content\/uploads\/2020\/06\/snap-surveys-logo-fc.svg\",\"contentUrl\":\"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-content\/uploads\/2020\/06\/snap-surveys-logo-fc.svg\",\"width\":867,\"height\":159,\"caption\":\"Snap Surveys\"},\"image\":{\"@id\":\"https:\/\/www.snapsurveys.com\/support-snapxmp\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/snapsurveys\",\"https:\/\/x.com\/snapsurveys\",\"https:\/\/www.linkedin.com\/company\/snapsurveys\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Need to Know | SnapSurveys","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:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp\/snap-xmp-developer-api-need-to-know\/","og_locale":"en_GB","og_type":"article","og_title":"Need to Know | SnapSurveys","og_description":"Introduction The Snap XMP Online API (application programming interface) allows customers to access the data in their account programmatically. Note that if you give anyone else API access to your account you will be giving them access to all of your surveys and all of your survey responses and (depending on the share permissions) access [&hellip;]","og_url":"https:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp\/snap-xmp-developer-api-need-to-know\/","og_site_name":"SnapSurveys","article_publisher":"https:\/\/www.facebook.com\/snapsurveys","article_modified_time":"2025-12-01T11:28:59+00:00","og_image":[{"width":206,"height":215,"url":"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-content\/uploads\/2021\/09\/word-image.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_site":"@snapsurveys","twitter_misc":{"Estimated reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp\/snap-xmp-developer-api-need-to-know\/","url":"https:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp\/snap-xmp-developer-api-need-to-know\/","name":"Need to Know | SnapSurveys","isPartOf":{"@id":"https:\/\/www.snapsurveys.com\/support-snapxmp\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp\/snap-xmp-developer-api-need-to-know\/#primaryimage"},"image":{"@id":"https:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp\/snap-xmp-developer-api-need-to-know\/#primaryimage"},"thumbnailUrl":"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-content\/uploads\/2021\/09\/word-image.png","datePublished":"2025-12-01T11:17:12+00:00","dateModified":"2025-12-01T11:28:59+00:00","breadcrumb":{"@id":"https:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp\/snap-xmp-developer-api-need-to-know\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp\/snap-xmp-developer-api-need-to-know\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp\/snap-xmp-developer-api-need-to-know\/#primaryimage","url":"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-content\/uploads\/2021\/09\/word-image.png","contentUrl":"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-content\/uploads\/2021\/09\/word-image.png","width":206,"height":215},{"@type":"BreadcrumbList","@id":"https:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp\/snap-xmp-developer-api-need-to-know\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.snapsurveys.com\/support-snapxmp\/"},{"@type":"ListItem","position":2,"name":"Snap XMP Support","item":"https:\/\/www.snapsurveys.com\/support-snapxmp\/snapxmp-archive\/"},{"@type":"ListItem","position":3,"name":"Need to Know"}]},{"@type":"WebSite","@id":"https:\/\/www.snapsurveys.com\/support-snapxmp\/#website","url":"https:\/\/www.snapsurveys.com\/support-snapxmp\/","name":"Snap XMP Support Hub","description":"Support documentation for Snap Surveys products","publisher":{"@id":"https:\/\/www.snapsurveys.com\/support-snapxmp\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.snapsurveys.com\/support-snapxmp\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/www.snapsurveys.com\/support-snapxmp\/#organization","name":"Snap Surveys","url":"https:\/\/www.snapsurveys.com\/support-snapxmp\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.snapsurveys.com\/support-snapxmp\/#\/schema\/logo\/image\/","url":"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-content\/uploads\/2020\/06\/snap-surveys-logo-fc.svg","contentUrl":"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-content\/uploads\/2020\/06\/snap-surveys-logo-fc.svg","width":867,"height":159,"caption":"Snap Surveys"},"image":{"@id":"https:\/\/www.snapsurveys.com\/support-snapxmp\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/snapsurveys","https:\/\/x.com\/snapsurveys","https:\/\/www.linkedin.com\/company\/snapsurveys"]}]}},"_links":{"self":[{"href":"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-json\/wp\/v2\/epkb_post_type_1\/14693","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-json\/wp\/v2\/epkb_post_type_1"}],"about":[{"href":"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-json\/wp\/v2\/types\/epkb_post_type_1"}],"author":[{"embeddable":true,"href":"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-json\/wp\/v2\/comments?post=14693"}],"version-history":[{"count":43,"href":"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-json\/wp\/v2\/epkb_post_type_1\/14693\/revisions"}],"predecessor-version":[{"id":15109,"href":"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-json\/wp\/v2\/epkb_post_type_1\/14693\/revisions\/15109"}],"wp:attachment":[{"href":"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-json\/wp\/v2\/media?parent=14693"}],"wp:term":[{"taxonomy":"epkb_post_type_1_category","embeddable":true,"href":"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-json\/wp\/v2\/epkb_post_type_1_category?post=14693"},{"taxonomy":"epkb_post_type_1_tag","embeddable":true,"href":"https:\/\/www.snapsurveys.com\/support-snapxmp\/wp-json\/wp\/v2\/epkb_post_type_1_tag?post=14693"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}