{"id":9141,"date":"2020-09-25T17:35:17","date_gmt":"2020-09-25T17:35:17","guid":{"rendered":"https:\/\/zappysys.com\/blog\/?p=9141"},"modified":"2025-09-25T21:02:07","modified_gmt":"2025-09-25T21:02:07","slug":"ssis-read-api-data-load-sql-table","status":"publish","type":"post","link":"https:\/\/zappysys.com\/blog\/ssis-read-api-data-load-sql-table\/","title":{"rendered":"How to Read API data in SSIS and Load into SQL Table"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/09\/api-180x180.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-1854 alignleft\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/09\/api-180x180.png\" alt=\"\" width=\"109\" height=\"109\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/09\/api-180x180.png 180w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/09\/api-180x180-150x150.png 150w\" sizes=\"(max-width: 109px) 100vw, 109px\" \/><\/a>If you have need to integrate REST API in SSIS (i.e. fetch JSON, XML, CSV via HTTP call) and wondering how to Read API data in SSIS and Load into SQL DB (i.e. SQL Server, MySQL, Oracle) then you are at the right place.<\/p>\n<p>In this article we will cover simple step by step approach how to achieve API integration in few clicks. For detailed introduction please refer to our <a href=\"https:\/\/zappysys.com\/blog\/call-rest-api-using-ssis-web-service-task\/\" target=\"_blank\" rel=\"noopener\">previous article<\/a>.<\/p>\n<p>In next few sections we will cover the following SSIS Components to read data from API like a Table (Parse in Rows \/ Column). Our instructions will be mostly for JSON Format but concepts are same for other formats (i.e. XML \/ CSV).<\/p>\n<div class=\"su-table su-table-alternate\">\n<table>\n<colgroup>\n<col style=\"vertical-align: top\" width=\"100\" \/>\n<col style=\"vertical-align: top\" \/><\/colgroup>\n<tbody>\n<tr>\n<td><img decoding=\"async\" style=\"width: 72px;height: 72px\" src=\"\/\/zappysys.com\/images\/ssis-powerpack\/SSIS-Json-Source-Adapter.png\" alt=\"Custom SSIS Components - Json Source\" \/><\/td>\n<td style=\"vertical-align: top\"><a href=\"\/\/zappysys.com\/products\/ssis-powerpack\/ssis-json-file-source\/\">JSON Source Connector<\/a> (Read from REST API, JSON File or OData Service): Use this dataflow component when you have to <strong>fetch data from REST API webservice like a table<\/strong>. This component allows you to extract JSON data from webservice and de-normalize nested structure so you can save to Relational database such as SQL Server or any other target (Oracle, FlatFile, Excel, MySQL). This component also supports reading local JSON files or direct JSON string (Wildcard pattern supported too e.g. c:\\data\\file*.json).<\/td>\n<\/tr>\n<tr>\n<td><img decoding=\"async\" style=\"width: 72px;height: 72px\" src=\"\/\/zappysys.com\/images\/ssis-powerpack\/ssis-xml-source.png\" alt=\"Custom SSIS Components - XML Source (Read File\/SOAP\/REST Web Service)\" \/><\/td>\n<td style=\"vertical-align: top\"><a href=\"\/\/zappysys.com\/products\/ssis-powerpack\/ssis-xml-source\/\">XML\u00a0Source Connector<\/a> (SOAP, File, REST) : Use this dataflow component when you have to fetch data from XML or SOAP webservice and consume data like a table. This component allows you to extract data from webservice and save to SQL Server or any other target (Oracle, FlatFile, Excel, MySQL).\u00a0This component also supports reading local XML files or direct XML string.<\/td>\n<\/tr>\n<tr>\n<td><img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" style=\"width: 72px;height: 72px\" src=\"https:\/\/zappysys.com\/onlinehelp\/ssis-powerpack\/scr\/images\/csv-source\/ssis-csv-file-source.png\" alt=\"Custom SSIS Components - CSV Source (Read File\/REST API)\" width=\"128\" height=\"128\" \/><\/td>\n<td style=\"vertical-align: top\"><a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/ssis-csv-file-source-flat-file-web-api\/\">CSV Source Connector<\/a> (File, REST) : Use this dataflow component when you have to fetch data from File or REST API which returns data in CSV format . This component allows you to extract data from webservice and save to SQL Server or any other target (Oracle, FlatFile, Excel, MySQL).\u00a0This component also supports reading local CSV files or direct CSV string.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>There are few more API components not discussed in this articles. They are <a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/ssis-rest-api-web-service-task\/\" target=\"_blank\" rel=\"noopener\">REST API Task<\/a> (no Parser &#8211; Just raw API calls) and <a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/ssis-web-api-destination-connector\/\" target=\"_blank\" rel=\"noopener\">Web API Destination<\/a>\u00a0(Write \/ Send Data To API \/ Delete rows). They both have different use case to check them see it fits in your need.<\/p>\n<div class=\"content_block\" id=\"custom_post_widget-2523\"><h2><span id=\"Prerequisites\">Prerequisites<\/span><\/h2>\r\nBefore we perform the steps listed in this article, you will need to make sure the following prerequisites are met:\r\n<ol style=\"margin-left: 1.5em;\">\r\n \t<li><abbr title=\"SQL Server Integration Services\">SSIS<\/abbr> designer installed.\u00a0Sometimes it is referred to as <abbr title=\"Business Intelligence Development Studio\">BIDS<\/abbr> or <abbr title=\"SQL Server Data Tools\">SSDT<\/abbr> (<a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/ssdt\/download-sql-server-data-tools-ssdt\" target=\"_blank\" rel=\"noopener\">download it from the Microsoft site<\/a>).<\/li>\r\n \t<li>Basic knowledge of SSIS package\u00a0development using\u00a0<em>Microsoft SQL Server Integration Services<\/em>.<\/li>\r\n \t<li>Make sure\u00a0<span style=\"text-decoration: underline;\"><a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/\" target=\"_blank\" rel=\"noopener\">ZappySys SSIS PowerPack<\/a><\/span>\u00a0is installed (<a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/download\/\" target=\"_blank\" rel=\"noopener\">download it<\/a>, if you haven't already).<\/li>\r\n \t<li>(<em>Optional step<\/em>)<em>.<\/em>\u00a0<a href=\"https:\/\/zappysys.zendesk.com\/hc\/en-us\/articles\/360035974593\" target=\"_blank\" rel=\"noopener\">Read this article<\/a>, if you are planning to deploy packages to a server and schedule their execution later.<\/li>\r\n<\/ol><\/div>\n<h2>Video Tutorial<\/h2>\n<h2><div class=\"lyte-wrapper fourthree\" style=\"width:480px;max-width:100%;margin:5px auto;\"><div class=\"lyMe\" id=\"WYL_aO8cVRyCBWw\"><div id=\"lyte_aO8cVRyCBWw\" data-src=\"https:\/\/zappysys.com\/blog\/wp-content\/plugins\/wp-youtube-lyte\/lyteCache.php?origThumbUrl=%2F%2Fi.ytimg.com%2Fvi%2FaO8cVRyCBWw%2Fhqdefault.jpg\" class=\"pL\"><div class=\"tC\"><div class=\"tT\"><\/div><\/div><div class=\"play\"><\/div><div class=\"ctrl\"><div class=\"Lctrl\"><\/div><div class=\"Rctrl\"><\/div><\/div><\/div><noscript><a href=\"https:\/\/youtu.be\/aO8cVRyCBWw\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/plugins\/wp-youtube-lyte\/lyteCache.php?origThumbUrl=https%3A%2F%2Fi.ytimg.com%2Fvi%2FaO8cVRyCBWw%2F0.jpg\" alt=\"\" width=\"480\" height=\"340\" \/><br \/>Watch this video on YouTube<\/a><\/noscript><\/div><\/div><div class=\"lL\" style=\"max-width:100%;width:480px;margin:5px auto;\"><\/div><\/h2>\n<h2>Step-By-Step &#8211; Read API data in SSIS using JSON \/ XML \/ CSV Source<\/h2>\n<p>In this section you will learn how to use JSON Source Adapter to Read data from API URL.<\/p>\n<div>\n<ol>\n<li>Open Visual Studio and Create New SSIS Package Project.<\/li>\n<li>Now, Drag and Drop the SSIS\u00a0<strong>Data Flow Task<\/strong> from the SSIS Toolbox.<br \/>\n<img decoding=\"async\" class=\"figureimage\" title=\"SSIS Data Flow Task - Drag and Drop\" src=\"https:\/\/zappysys.com\/onlinehelp\/ssis-powerpack\/scr\/images\/drag-and-drop-data-flow-task.png\" alt=\"SSIS Data Flow Task - Drag and Drop\" \/><\/li>\n<li>Double click on the Data Flow task to see Data Flow designer surface.<\/li>\n<li>From the SSIS toolbox drag and drop JSON Source on the dataflow designer surface. If your data format is XML then <a href=\"https:\/\/zappysys.com\/onlinehelp\/ssis-powerpack\/scr\/ssis-xml-source.htm\" target=\"_blank\" rel=\"noopener\">use XML Source<\/a>, if your data format is CSV then <a href=\"https:\/\/zappysys.com\/onlinehelp\/ssis-powerpack\/scr\/ssis-csv-source.htm\">use CSV Source<\/a>.<br \/>\n<img decoding=\"async\" class=\"figureimage\" title=\"SSIS JSON Source - Drag and Drop\" src=\"https:\/\/zappysys.com\/onlinehelp\/ssis-powerpack\/scr\/images\/json-source\/ssis-json-source-adapter-drag.png\" alt=\"SSIS JSON Source - Drag and Drop\" \/><\/li>\n<li>Double click JSON Source to configure it.<\/li>\n<li>From the Access Mode dropdown select [File path or web Url] and paste the following Url for this example .\n<pre class=\"infopanel\">https:\/\/services.odata.org\/V3\/OData\/OData.svc\/Products?$format=json<\/pre>\n<\/li>\n<li>Now next step is to select Filter (Click <strong>Browse<\/strong> button next to <strong>Array Filter<\/strong>) or just type below expression in the text box to define which Hierarchy you like to Flatten (i.e. Array).\n<div id=\"attachment_11491\" style=\"width: 838px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/json-source-configuration.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-11491\" class=\"wp-image-11491 size-full\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/json-source-configuration.png\" alt=\"\" width=\"828\" height=\"745\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/json-source-configuration.png 828w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/json-source-configuration-300x270.png 300w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/json-source-configuration-768x691.png 768w\" sizes=\"(max-width: 828px) 100vw, 828px\" \/><\/a><p id=\"caption-attachment-11491\" class=\"wp-caption-text\">JSON Source Select Filter<\/p><\/div>\n<div class=\"mceTemp\"><\/div>\n<\/li>\n<li>JSON\/XML can contain multiple arrays within a single document (similar to many tables within a single database). So you have to define which branch you like to extract.\u00a0 Enter <a href=\"http:\/\/goessner.net\/articles\/JSONPath\/\" target=\"_blank\" rel=\"noopener\">JSONPath expression<\/a>\u00a0in the Filter textbox to extract only specific part of JSON file as below (<strong>$.value[*]<\/strong> will get content of value property from JSON document. Value property is an array of JSON documents so we have to use <strong>[*]<\/strong> to indicate we want all records of that array)\n<pre class=\"infopanel\">$.value[*]<\/pre>\n<div id=\"attachment_11492\" style=\"width: 838px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/json-source-rsult.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-11492\" class=\"size-full wp-image-11492\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/json-source-rsult.png\" alt=\"\" width=\"828\" height=\"745\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/json-source-rsult.png 828w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/json-source-rsult-300x270.png 300w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/json-source-rsult-768x691.png 768w\" sizes=\"(max-width: 828px) 100vw, 828px\" \/><\/a><p id=\"caption-attachment-11492\" class=\"wp-caption-text\">JSON Source preview data<\/p><\/div><\/li>\n<li>Click &#8216;Preview&#8217; to check if our settings are correct.<\/li>\n<li>Click OK to save settings.<\/li>\n<li>How to Pass Credentials to the Service (Basic Authorization Header) Check <a href=\"https:\/\/zappysys.com\/blog\/how-to-set-base64-encoded-authorization-header-for-http-web-request\/\" target=\"_blank\" rel=\"noopener\">this article<\/a>\u00a0for more information<\/li>\n<\/ol>\n<p>After this section we will see how to connect Source to Target like SQL Server and Load API data into SQL Server Table.<\/p>\n<\/div>\n<h2>Load API data into SQL Server Table \/ Other Target<\/h2>\n<div class=\"content_block\" id=\"custom_post_widget-5617\"><p>ZappySys SSIS PowerPack makes it easy to load data from various sources such as REST, SOAP, JSON, XML, CSV or from other source into SQL Server, or PostgreSQL, or Amazon Redshift, or other  targets. The <strong>Upsert Destination<\/strong> component allows you to automatically insert new records and update existing ones based on key columns. Below are the detailed steps to configure it.<\/p>\r\n<h3>Step 1: Add Upsert Destination to Data Flow<\/h3>\r\n<ol>\r\n<li>Drag and drop the <strong>Upsert Destination<\/strong> component from the SSIS Toolbox.<\/li>\r\n<li>Connect your source component (e.g., JSON \/ REST \/ Other Source) to the Upsert Destination.<\/li>\r\n<\/ol>\r\n<div class=\"wp-caption aligncenter\">\r\n<a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/08\/ssis-data-flow-drag-drop-upsert-destination.png\">\r\n<img loading=\"lazy\" decoding=\"async\" class=\"size-full\" alt=\"\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/08\/ssis-data-flow-drag-drop-upsert-destination.png\" \/><\/a>\r\n<p class=\"wp-caption-text\">SSIS - Data Flow - Drang and Drop Upsert Destination Component<\/p>\r\n<\/div>\r\n<h3>Step 2: Configure Target Connection<\/h3>\r\n<ol>\r\n<li>Double-click the <strong>Upsert Destination<\/strong> component to open the configuration window.<\/li>\r\n<li>Under <strong>Connection<\/strong>, select an existing target connection or click <strong>NEW<\/strong> to create a new connection.\r\n<ul>\r\n<li>Example: SQL Server, or PostgreSQL, or Amazon Redshift.<\/li>\r\n<\/ul>\r\n<\/li>\r\n<\/ol>\r\n<h3>Step 3: Select or Create Target Table<\/h3>\r\n<ol>\r\n<li>In the <strong>Target Table<\/strong> dropdown, select the table where you want to load data.<\/li>\r\n<li>Optionally, click <strong>NEW<\/strong> to create a new table based on the source columns.<\/li>\r\n<\/ol>\r\n<div class=\"wp-caption aligncenter\">\r\n<a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/upsert-destination-configuration.png\">\r\n<img loading=\"lazy\" decoding=\"async\" class=\"size-full\" alt=\"\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/upsert-destination-configuration.png\" \/><\/a>\r\n<p class=\"wp-caption-text\">Configure SSIS Upsert Destination Connection - Loading data (REST \/ SOAP \/ JSON \/ XML \/CSV) into SQL Server or other target using SSIS<\/p>\r\n<\/div>\r\n<h3>Step 4: Map Columns<\/h3>\r\n<ol>\r\n<li>Go to the <strong>Mappings<\/strong> tab.<\/li>\r\n<li>Click <strong>Auto Map<\/strong> to map source columns to target columns by name.<\/li>\r\n<li>Ensure you <strong>check the Primary key column(s)<\/strong> that will determine whether a record is inserted or updated.<\/li>\r\n<li>You can manually adjust the mappings if necessary.<\/li>\r\n<\/ol>\r\n <div class=\"wp-caption aligncenter\">\r\n<a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/upsert-destination-key.png\">\r\n<img loading=\"lazy\" decoding=\"async\" class=\"size-full\" alt=\"\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/upsert-destination-key.png\" \/><\/a>\r\n<p class=\"wp-caption-text\">SSIS Upsert Destination - Columns Mappings<\/p>\r\n<\/div>\r\n<h3>Step 5: Save Settings<\/h3>\r\n<ul>\r\n<li>Click <strong>OK<\/strong> to save the Upsert Destination configuration.<\/li>\r\n<\/ul>\r\n<h3>Step 6: Optional: Add Logging or Analysis<\/h3>\r\n<ul>\r\n<li>You may add extra destination components to log the number of inserted vs. updated records for monitoring or auditing purposes.<\/li>\r\n<\/ul>\r\n<h3>Step 7: Execute the Package<\/h3>\r\n<ul>\r\n<li>Run your SSIS package and verify that the data is correctly inserted and updated in the target table.<\/li>\r\n<\/ul>\r\n<div class=\"wp-caption aligncenter\">\r\n<a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/12\/ssis-upsert-destination-execute.png\">\r\n<img loading=\"lazy\" decoding=\"async\" class=\"size-full\" alt=\"\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/12\/ssis-upsert-destination-execute.png\" \/><\/a>\r\n<p class=\"wp-caption-text\">SSIS Upsert Destination Execution<\/p>\r\n<\/div><\/div>\n<h2>API Authentication<\/h2>\n<p>In our step by step example we did not cover Authentication to keep things simple but in real world you have to pass some sort of authentication details to make API calls (e.g. UserID\/Password or Secure Token).\u00a0There are many ways to authenticate with API Services. ZappySys offer mainly 2 Connection Managers to cover most Authentication scenarios.<\/p>\n<ol>\n<li><a href=\"https:\/\/zappysys.com\/onlinehelp\/ssis-powerpack\/scr\/ssis-http-connection-manager.htm\" target=\"_blank\" rel=\"noopener\">HTTP Connection Manager<\/a><\/li>\n<li><a href=\"https:\/\/zappysys.com\/onlinehelp\/ssis-powerpack\/scr\/ssis-oauth-connection-manager.htm\" target=\"_blank\" rel=\"noopener\">OAuth Connection Manager<\/a><\/li>\n<\/ol>\n<h3>Using HTTP Connection Manager<\/h3>\n<p>If you have use case of using UserID \/ Password or any other method supported by HTTP Connection Manager then use below option (Below example is for Basic Authentication)<\/p>\n<div id=\"attachment_11495\" style=\"width: 835px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/using-HTTP-connection.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-11495\" class=\"wp-image-11495 size-full\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/using-HTTP-connection.png\" alt=\"SSIS JSON Source - Passing Basic Credentials (Supply UserID \/ Password) using HTTP Connection\" width=\"825\" height=\"812\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/using-HTTP-connection.png 825w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/using-HTTP-connection-300x295.png 300w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/using-HTTP-connection-768x756.png 768w\" sizes=\"(max-width: 825px) 100vw, 825px\" \/><\/a><p id=\"caption-attachment-11495\" class=\"wp-caption-text\">SSIS JSON Source &#8211; Passing Basic Credentials (Supply UserID \/ Password) using HTTP Connection<\/p><\/div>\n<h3>Using OAuth Connection Manager<\/h3>\n<p>If your API support <a href=\"https:\/\/zappysys.com\/blog\/rest-api-authentication-with-oauth-2-0-using-ssis\/\" target=\"_blank\" rel=\"noopener\">OAuth Standard<\/a> for Authorization then use OAuth Connection Type as below.<\/p>\n<div id=\"attachment_11496\" style=\"width: 838px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/using-OAUTH-connection.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-11496\" class=\"size-full wp-image-11496\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/using-OAUTH-connection.png\" alt=\"\" width=\"828\" height=\"896\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/using-OAUTH-connection.png 828w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/using-OAUTH-connection-277x300.png 277w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2020\/09\/using-OAUTH-connection-768x831.png 768w\" sizes=\"(max-width: 828px) 100vw, 828px\" \/><\/a><p id=\"caption-attachment-11496\" class=\"wp-caption-text\">Generate Token for Google API using OAuth 2.0<\/p><\/div>\n<h2>API Pagination<\/h2>\n<p>Pagination is another important concept to understand when you call API using ZappySys Connector. If you ready many records from your API then by default API might not return all rows so you have to paginate until all records are read (Like a Loop in Programming). ZappySys makes it easy to paginate. Check this article to configure <a href=\"https:\/\/zappysys.com\/blog\/ssis-rest-api-looping-until-no-more-pages-found\/\" target=\"_blank\" rel=\"noopener\">many different Pagination Modes<\/a><\/p>\n<div class=\"content_block\" id=\"custom_post_widget-1887\"><h3>Truncation related error<\/h3>\r\n<p style=\"text-align: justify;\">The most common error you may face when you run an SSIS package is truncation error. During the design time only 300 rows are scanned from a source (a file or a REST API call response) to detect datatypes but at runtime, it is likely you will retrieve far more records. So it is possible that you will get longer strings than initially expected.\u00a0For detailed instructions on how to fix common metadata related errors read an article \"<a href=\"\/\/zappysys.com\/blog\/handling-ssis-component-metadata-issues\/\" target=\"_blank\" rel=\"noopener\">How to handle SSIS errors (truncation, metadata issues)<\/a>\".<\/p>\r\n\r\n<h3>Authentication related error<\/h3>\r\nAnother frequent error you may get is an authentication error, which happens when you deploy\/copy a package to another machine and run it there. Check <a href=\"#Deployment_to_Production\">the paragraph below<\/a>\u00a0to see why it happens and how to solve this problem.<\/div>\n<div class=\"content_block\" id=\"custom_post_widget-2021\"><h2>Things have gone bad: Error handling &amp; debugging<\/h2>\r\n<p style=\"text-align: justify;\">Incidentally, bad things can happen<i>. <\/i>A remote server may go offline or your server may go out of memory. In any case, you may want to know when that happens and take actions accordingly. For that purpose, you have to redirect bad rows to some other destination. For this example, we will take and use <em>Web API Destination<\/em>, but basically, you can use any SSIS component:<\/p>\r\n\r\n<h3>Handling errors<\/h3>\r\n<ol style=\"margin-left: 0;\">\r\n \t<li>Add a <em>Derived Column<\/em>\u00a0above <em>Web API Destination<\/em> with expression\u00a0<strong>\"(DT_WSTR,4000)ZS_JSON_OUT\"<\/strong>\u00a0and name it <strong>\"JsonAsString\"<\/strong>. This will let you see what JSON you are actually passing.<\/li>\r\n \t<li>Then add a database or file destination or use another\u00a0<em>Trash Destination<\/em>\u00a0for debugging purposes and redirect the bad rows (<span style=\"color: #d66565;\">red arrow<\/span>) from <em><em>Web API Destination <\/em><\/em>into it<em><em>. <\/em><\/em>Don't forget to set <span class=\"lang:default decode:true crayon-inline\">Redirect row<\/span>\u00a0option for both, <em>Error<\/em> and <em>Truncation<\/em> columns:<em><em>\r\n<\/em><\/em>\r\n<div class=\"wp-caption\">\r\n\r\n<a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/06\/ssis-sql-server-to-elasticsearch-error-handling-redirecting-bad-rows.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1487 size-full\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/06\/ssis-sql-server-to-elasticsearch-error-handling-redirecting-bad-rows.png\" alt=\"Redirect bad rows from &lt;em&gt;Web API Destination&lt;\/em&gt; to &lt;em&gt;Trash Destination&lt;\/em&gt; when load from SQL Server to Elasticsearch is failing. Add derived column JsonAsString to be able to read JSON you are using.\" width=\"739\" height=\"267\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/06\/ssis-sql-server-to-elasticsearch-error-handling-redirecting-bad-rows.png 739w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/06\/ssis-sql-server-to-elasticsearch-error-handling-redirecting-bad-rows-300x108.png 300w\" sizes=\"(max-width: 739px) 100vw, 739px\" \/><\/a>\r\n<p class=\"wp-caption-text\">Redirected failed requests from <em>Web API Destination<\/em> to a desired destination when loading from SQL Server to REST API Service is failing. Derived Column <em>JsonAsString<\/em> added to be able to read JSON which was passed to Elasticsearch<\/p>\r\n\r\n<\/div><\/li>\r\n \t<li>Finally, add a\u00a0<a href=\"https:\/\/technet.microsoft.com\/en-us\/library\/ms140318%28v=sql.90%29.aspx?f=255&amp;MSPPError=-2147217396\" target=\"_blank\" rel=\"noopener\"><em>Data Viewer<\/em><\/a> for the red path, if you want to debug the flow. You will be able to see URL, JSON and the error message for each record. You may want to copy-paste <em>ErrorMessage<\/em>\u00a0to <em>Notepad <\/em>if you want it to be more readable:\r\n<div class=\"wp-caption\">\r\n\r\n<a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/06\/ssis-sql-server-to-elasticsearch-error-handling.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1494 size-full\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/06\/ssis-sql-server-to-elasticsearch-error-handling.png\" alt=\"Use Data Viewer to view HTTP requests that failed to be fulfilled in Elasticsearch\" width=\"752\" height=\"280\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/06\/ssis-sql-server-to-elasticsearch-error-handling.png 752w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/06\/ssis-sql-server-to-elasticsearch-error-handling-300x112.png 300w\" sizes=\"(max-width: 752px) 100vw, 752px\" \/><\/a>\r\n<p class=\"wp-caption-text\">Use Data Viewer to view HTTP requests that failed to be fulfilled.<\/p>\r\n\r\n<\/div><\/li>\r\n<\/ol>\r\n<div class=\"su-note\" style=\"border-color: #e5dea5; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px;\">\r\n<div class=\"su-note-inner su-clearfix\" style=\"background-color: #fff7b7; border-color: #fffdf1; color: #333333; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px;\"><strong>NOTE<\/strong>: You can read more about redirecting rows in <a href=\"\/\/zappysys.com\/blog\/ssis-error-handling-in-data-flow-redirect-bad-rows\/\" target=\"_blank\" rel=\"noopener\">SSIS Error Handling (Redirect bad rows)<\/a> article.<\/div>\r\n<\/div>\r\n<h3>Debugging HTTP requests<\/h3>\r\n<p style=\"text-align: justify;\">A common thing you have to do when working with HTTP requests is to debug those requests; e.g. to check what headers, body or URL was passed.\u00a0<span id=\"Debug_Web_API_call_using_Fiddler\"><\/span>To test how things look behind the scenes we strongly suggest to use <a href=\"https:\/\/zappysys.com\/blog\/how-to-use-fiddler-to-analyze-http-web-requests\/\" target=\"_blank\" rel=\"noopener\">Fiddler<\/a>\u00a0- a popular web debugging tool.<\/p>\r\n<p style=\"text-align: justify;\">Inside it, you can double-click the URL entry (Right side) to see Request and Response Panels. The top panel is Request (URL, Headers, Body) and Bottom Panel is Response. For https:\/\/ (secure URL) make sure you enable HTTPS option in Fiddler (Tools &gt; Options &gt; HTTPS &gt; Check Decrypt https request):<\/p>\r\n\r\n<div id=\"attachment_2344\" class=\"wp-caption alignnone\">\r\n\r\n<a href=\"https:\/\/i1.wp.com\/zappysys.com\/blog\/wp-content\/uploads\/2016\/05\/ssis-rest-api-call-debug-via-fiddler.png?ssl=1\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2344 size-full\" style=\"border: 0px; max-width: 100%; height: auto; box-shadow: rgba(0, 0, 0, 0.176) 0px 1px 2px;\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/05\/ssis-rest-api-call-debug-via-fiddler.png\" alt=\"Debugging Web API call using Fiddler in SSIS\" width=\"1287\" height=\"564\" data-attachment-id=\"2344\" data-permalink=\"https:\/\/zappysys.com\/blog\/pass-authorization-header-redirected-location\/ssis-rest-api-call-debug-via-fiddler\/#main\" data-orig-file=\"https:\/\/i1.wp.com\/zappysys.com\/blog\/wp-content\/uploads\/2016\/05\/ssis-rest-api-call-debug-via-fiddler.png?fit=1287%2C564&amp;ssl=1\" data-orig-size=\"1287,564\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ssis-rest-api-call-debug-via-fiddler\" data-image-description=\"&lt;p&gt;Debugging Web API call using Fiddler in SSIS&lt;\/p&gt; \" data-medium-file=\"https:\/\/i1.wp.com\/zappysys.com\/blog\/wp-content\/uploads\/2016\/05\/ssis-rest-api-call-debug-via-fiddler.png?fit=300%2C131&amp;ssl=1\" data-large-file=\"https:\/\/i1.wp.com\/zappysys.com\/blog\/wp-content\/uploads\/2016\/05\/ssis-rest-api-call-debug-via-fiddler.png?fit=720%2C316&amp;ssl=1\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/05\/ssis-rest-api-call-debug-via-fiddler.png 1287w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/05\/ssis-rest-api-call-debug-via-fiddler-300x131.png 300w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/05\/ssis-rest-api-call-debug-via-fiddler-768x337.png 768w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2016\/05\/ssis-rest-api-call-debug-via-fiddler-1024x449.png 1024w\" sizes=\"(max-width: 1287px) 100vw, 1287px\" \/><\/a>\r\n<p class=\"wp-caption-text\">Debugging Web API call using Fiddler in SSIS<\/p>\r\n\r\n<\/div><\/div>\n<h2>Conclusion<\/h2>\n<p>REST API is becoming more and more popular each day. With that Data integration from RESTful API services going to be challenge. Luckily ZappySys\u00a0<a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/\" target=\"_blank\" rel=\"noopener\">SSIS PowerPack<\/a>\u00a0provides a great way to integrate any API in SSIS via simple drag and drop approach without coding. Try <a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/\" target=\"_blank\" rel=\"noopener\">SSIS PowerPack for FREE<\/a>\u00a0 see how much time \/ money you can save and to integrate virtually any REST API.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction If you have need to integrate REST API in SSIS (i.e. fetch JSON, XML, CSV via HTTP call) and wondering how to Read API data in SSIS and Load into SQL DB (i.e. SQL Server, MySQL, Oracle) then you are at the right place. In this article we will cover simple step by step [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1854,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[225,16,447,17,62],"tags":[60],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\r\n<title>How to Read API data in SSIS and Load into SQL Table | ZappySys Blog<\/title>\r\n<meta name=\"description\" content=\"Learn how to read API data in SSIS and Load into SQL Table without coding. Learn various techniques for API Authentication, Pagination, Error Handling\" \/>\r\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\r\n<link rel=\"canonical\" href=\"https:\/\/zappysys.com\/blog\/ssis-read-api-data-load-sql-table\/\" \/>\r\n<meta property=\"og:locale\" content=\"en_US\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"How to Read API data in SSIS and Load into SQL Table | ZappySys Blog\" \/>\r\n<meta property=\"og:description\" content=\"Learn how to read API data in SSIS and Load into SQL Table without coding. Learn various techniques for API Authentication, Pagination, Error Handling\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/zappysys.com\/blog\/ssis-read-api-data-load-sql-table\/\" \/>\r\n<meta property=\"og:site_name\" content=\"ZappySys Blog\" \/>\r\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/ZappySys\/\" \/>\r\n<meta property=\"article:published_time\" content=\"2020-09-25T17:35:17+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2025-09-25T21:02:07+00:00\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/09\/api-180x180.png\" \/>\r\n\t<meta property=\"og:image:width\" content=\"180\" \/>\r\n\t<meta property=\"og:image:height\" content=\"180\" \/>\r\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\r\n<meta name=\"author\" content=\"ZappySys\" \/>\r\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\r\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/zappysys\/\" \/>\r\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"ZappySys\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\r\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/zappysys.com\/blog\/ssis-read-api-data-load-sql-table\/\",\"url\":\"https:\/\/zappysys.com\/blog\/ssis-read-api-data-load-sql-table\/\",\"name\":\"How to Read API data in SSIS and Load into SQL Table | ZappySys Blog\",\"isPartOf\":{\"@id\":\"https:\/\/zappysys.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/zappysys.com\/blog\/ssis-read-api-data-load-sql-table\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/zappysys.com\/blog\/ssis-read-api-data-load-sql-table\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/09\/api-180x180.png\",\"datePublished\":\"2020-09-25T17:35:17+00:00\",\"dateModified\":\"2025-09-25T21:02:07+00:00\",\"author\":{\"@id\":\"https:\/\/zappysys.com\/blog\/#\/schema\/person\/2756c237457fbc95d82cb38962f81f82\"},\"description\":\"Learn how to read API data in SSIS and Load into SQL Table without coding. Learn various techniques for API Authentication, Pagination, Error Handling\",\"breadcrumb\":{\"@id\":\"https:\/\/zappysys.com\/blog\/ssis-read-api-data-load-sql-table\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/zappysys.com\/blog\/ssis-read-api-data-load-sql-table\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/zappysys.com\/blog\/ssis-read-api-data-load-sql-table\/#primaryimage\",\"url\":\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/09\/api-180x180.png\",\"contentUrl\":\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/09\/api-180x180.png\",\"width\":180,\"height\":180},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/zappysys.com\/blog\/ssis-read-api-data-load-sql-table\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/zappysys.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Read API data in SSIS and Load into SQL Table\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/zappysys.com\/blog\/#website\",\"url\":\"https:\/\/zappysys.com\/blog\/\",\"name\":\"ZappySys Blog\",\"description\":\"SSIS \/ ODBC Drivers \/ API Connectors for JSON, XML, Azure, Amazon AWS, Salesforce, MongoDB and more\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/zappysys.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/zappysys.com\/blog\/#\/schema\/person\/2756c237457fbc95d82cb38962f81f82\",\"name\":\"ZappySys\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/zappysys.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5c9be148088ba9b8af8e955c5f7c22b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5c9be148088ba9b8af8e955c5f7c22b5?s=96&d=mm&r=g\",\"caption\":\"ZappySys\"},\"sameAs\":[\"http:\/\/www.zappysys.com\/\",\"https:\/\/www.facebook.com\/ZappySys\/\",\"https:\/\/twitter.com\/https:\/\/twitter.com\/zappysys\/\"],\"url\":\"https:\/\/zappysys.com\/blog\/author\/admin\/\"}]}<\/script>\r\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Read API data in SSIS and Load into SQL Table | ZappySys Blog","description":"Learn how to read API data in SSIS and Load into SQL Table without coding. Learn various techniques for API Authentication, Pagination, Error Handling","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:\/\/zappysys.com\/blog\/ssis-read-api-data-load-sql-table\/","og_locale":"en_US","og_type":"article","og_title":"How to Read API data in SSIS and Load into SQL Table | ZappySys Blog","og_description":"Learn how to read API data in SSIS and Load into SQL Table without coding. Learn various techniques for API Authentication, Pagination, Error Handling","og_url":"https:\/\/zappysys.com\/blog\/ssis-read-api-data-load-sql-table\/","og_site_name":"ZappySys Blog","article_author":"https:\/\/www.facebook.com\/ZappySys\/","article_published_time":"2020-09-25T17:35:17+00:00","article_modified_time":"2025-09-25T21:02:07+00:00","og_image":[{"width":180,"height":180,"url":"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/09\/api-180x180.png","type":"image\/png"}],"author":"ZappySys","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/zappysys\/","twitter_misc":{"Written by":"ZappySys","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/zappysys.com\/blog\/ssis-read-api-data-load-sql-table\/","url":"https:\/\/zappysys.com\/blog\/ssis-read-api-data-load-sql-table\/","name":"How to Read API data in SSIS and Load into SQL Table | ZappySys Blog","isPartOf":{"@id":"https:\/\/zappysys.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/zappysys.com\/blog\/ssis-read-api-data-load-sql-table\/#primaryimage"},"image":{"@id":"https:\/\/zappysys.com\/blog\/ssis-read-api-data-load-sql-table\/#primaryimage"},"thumbnailUrl":"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/09\/api-180x180.png","datePublished":"2020-09-25T17:35:17+00:00","dateModified":"2025-09-25T21:02:07+00:00","author":{"@id":"https:\/\/zappysys.com\/blog\/#\/schema\/person\/2756c237457fbc95d82cb38962f81f82"},"description":"Learn how to read API data in SSIS and Load into SQL Table without coding. Learn various techniques for API Authentication, Pagination, Error Handling","breadcrumb":{"@id":"https:\/\/zappysys.com\/blog\/ssis-read-api-data-load-sql-table\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zappysys.com\/blog\/ssis-read-api-data-load-sql-table\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zappysys.com\/blog\/ssis-read-api-data-load-sql-table\/#primaryimage","url":"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/09\/api-180x180.png","contentUrl":"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/09\/api-180x180.png","width":180,"height":180},{"@type":"BreadcrumbList","@id":"https:\/\/zappysys.com\/blog\/ssis-read-api-data-load-sql-table\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zappysys.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Read API data in SSIS and Load into SQL Table"}]},{"@type":"WebSite","@id":"https:\/\/zappysys.com\/blog\/#website","url":"https:\/\/zappysys.com\/blog\/","name":"ZappySys Blog","description":"SSIS \/ ODBC Drivers \/ API Connectors for JSON, XML, Azure, Amazon AWS, Salesforce, MongoDB and more","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zappysys.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/zappysys.com\/blog\/#\/schema\/person\/2756c237457fbc95d82cb38962f81f82","name":"ZappySys","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zappysys.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/5c9be148088ba9b8af8e955c5f7c22b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c9be148088ba9b8af8e955c5f7c22b5?s=96&d=mm&r=g","caption":"ZappySys"},"sameAs":["http:\/\/www.zappysys.com\/","https:\/\/www.facebook.com\/ZappySys\/","https:\/\/twitter.com\/https:\/\/twitter.com\/zappysys\/"],"url":"https:\/\/zappysys.com\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/posts\/9141"}],"collection":[{"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/comments?post=9141"}],"version-history":[{"count":10,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/posts\/9141\/revisions"}],"predecessor-version":[{"id":11547,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/posts\/9141\/revisions\/11547"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/media\/1854"}],"wp:attachment":[{"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/media?parent=9141"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/categories?post=9141"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/tags?post=9141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}