{"id":85355,"date":"2018-09-13T17:40:47","date_gmt":"2018-09-14T00:40:47","guid":{"rendered":"https:\/\/www.backblaze.com\/blog\/?p=85355"},"modified":"2025-12-11T12:52:58","modified_gmt":"2025-12-11T20:52:58","slug":"backblaze-b2-api-version-2-beta-is-now-open","status":"publish","type":"post","link":"https:\/\/www.backblaze.com\/blog\/backblaze-b2-api-version-2-beta-is-now-open\/","title":{"rendered":"Backblaze B2 API Version 2 Beta is Now Open"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-85356 size-full\" title=\"Introducting B2 v2 API\" src=\"https:\/\/www.backblaze.com\/blog\/wp-content\/uploads\/2018\/09\/b2-integrations.jpg\" alt=\"cloud storage workflow image\" width=\"1440\" height=\"820\" srcset=\"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/09\/b2-integrations.jpg 1440w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/09\/b2-integrations-300x171.jpg 300w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/09\/b2-integrations-1024x583.jpg 1024w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/09\/b2-integrations-768x437.jpg 768w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/09\/b2-integrations-560x319.jpg 560w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/09\/b2-integrations-220x124.jpg 220w\" sizes=\"auto, (max-width: 1440px) 100vw, 1440px\" \/><\/p>\n<p>Since <a href=\"https:\/\/www.backblaze.com\/b2\/docs\/\" target=\"_blank\" rel=\"noopener noreferrer\">B2 cloud storage<\/a> was introduced nearly 3 years ago, we\u2019ve been adding enhancements and new functionality to the B2 API, including capabilities like CORS support and lifecycle rules. Today, we\u2019d like to introduce the beta of version 2 of the B2 API, which formalizes rules on application keys, provides a consistent structure for all <a href=\"https:\/\/www.backblaze.com\/b2\/docs\/calling.html\">API calls<\/a> returning information about files, and cleans up outdated request parameters and returned data. All version 1 B2 API calls will continue to work as is, so no changes are required to existing integrations and applications.<\/p>\n<p>The <a href=\"https:\/\/www.backblaze.com\/b2\/docs\/versions.html\" target=\"_blank\" rel=\"noopener noreferrer\"><em>API Versions<\/em> section of the B2 documentation on the Backblaze website<\/a> provides the details on how the V1 and V2 APIs differ, but in the meantime here\u2019s an overview into the what, why, and how of the V2 API.<\/p>\n<h2 class=\"b2\">What Has Changed Between the B2 Cloud Storage Version 1 and Version 2 APIs?<\/h2>\n<p>The most obvious difference between a V1 and V2 API call is the version number in the URL. For example:<\/p>\n<p class=\"pre-text\">https:\/\/apiNNN.backblazeb2.com\/b2api\/v1\/b2_create_bucket<\/p>\n<p class=\"pre-text\">https:\/\/apiNNN.backblazeb2.com\/b2api\/v2\/b2_create_bucket<\/p>\n<p>In addition, the V2 API call may have different required request parameters and\/or required response data. For example, the V2 version of <code>b2_hide_file<\/code> always returns <code>accountId<\/code> and <code>bucketId<\/code>, while V1 returns <code>accountId<\/code>.<\/p>\n<p>The <a href=\"https:\/\/www.backblaze.com\/b2\/docs\/\" target=\"_blank\" rel=\"noopener noreferrer\">documentation for each API call<\/a> will show whether there are any differences between API versions for a given API call.<\/p>\n<h3 class=\"b3\">No Change is Required For V1 Applications<\/h3>\n<p>With the introduction of V2 of the B2 API there will be V1 and V2 versions for every B2 API call. All applications using V1 API calls will continue to work with no change in behavior. In some cases, a given V2 API call will be different from its companion V1 API call as noted in the B2 API documentation. For the remaining API calls a given V1 API call and its companion V2 call will be the same, have identical parameters, return the same data, and have the same errors. This provides a B2 developer the flexibility to choose how to upgrade to the V2 API.<\/p>\n<p>Obviously, if you want to use the functionality associated with a V2 API version, then you must use the V2 API call and update your code accordingly.<\/p>\n<p>One last thing: beginning today, if we create a new B2 API call it will be created in the current API version (V2) and most likely will not be created in V1.<\/p>\n<h3 class=\"b3\">Standardizing B2 File Related API Calls<\/h3>\n<p>As requested by many B2 developers, the V2 API now uses a consistent structure for all API calls returning information about files. To enable this there are some V2 API calls that return additional fields, for example:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.backblaze.com\/b2\/docs\/b2_hide_file.html\" target=\"_blank\" rel=\"noopener noreferrer\">b2_hide_file<\/a> now returns <code>accountId<\/code>, <code>bucketId<\/code>.<\/li>\n<li><a href=\"https:\/\/www.backblaze.com\/b2\/docs\/b2_list_file_names.html\" target=\"_blank\" rel=\"noopener noreferrer\">b2_list_file_names<\/a> now returns <code>accountId<\/code>, <code>bucketId<\/code>.<\/li>\n<li><a href=\"https:\/\/www.backblaze.com\/b2\/docs\/b2_list_file_versions.html\" target=\"_blank\" rel=\"noopener noreferrer\">b2_list_file_versions<\/a> now returns <code>accountId<\/code>, <code>bucketId<\/code>.<\/li>\n<li><a href=\"https:\/\/www.backblaze.com\/b2\/docs\/b2_list_unfinished_large_files.html\" target=\"_blank\" rel=\"noopener noreferrer\">b2_list_unfinished_large_files<\/a> now returns <code>action<\/code> (always &#8220;upload&#8221;), <code>contentLength<\/code> (always null), and <code>contentSha1<\/code> (always null).<\/li>\n<li><a href=\"https:\/\/www.backblaze.com\/b2\/docs\/b2_start_large_file.html\" target=\"_blank\" rel=\"noopener noreferrer\">b2_start_large_file<\/a> now returns <code>action<\/code> (always &#8220;upload&#8221;), <code>contentLength<\/code> (always null), and <code>contentSha1<\/code> (always null).<\/li>\n<\/ul>\n<h3 class=\"b3\">Restricted Application Keys<\/h3>\n<p>In August we introduced the ability to create restricted <a href=\"https:\/\/www.backblaze.com\/b2\/docs\/application_keys.html\" target=\"_blank\" rel=\"noopener noreferrer\">applications keys<\/a> using the B2 API. This capability allows an account owner the ability to restrict who, how, and when the data in a given bucket can be accessed. This changed the functionality of multiple B2 API calls such that a user could create a restricted application key that could break a <a href=\"https:\/\/www.backblaze.com\/cloud-storage\/integrations\" target=\"_blank\" rel=\"noopener noreferrer\">3rd party integration to Backblaze B2<\/a>. We subsequently updated the affected V1 API calls, so they could continue to work with the existing 3rd party integrations.<\/p>\n<p>The V2 API fully implements the expected behavior when it comes to working with restricted application keys. The V1 API calls continue to operate as before.<\/p>\n<p>Here is an example of how the V1 API and the V2 API will act differently as it relates to restricted application keys.<\/p>\n<p><b>Set-up<\/b><\/p>\n<ul>\n<li>The B2 account owner has created 2 public buckets, \u201cBackblaze_123\u201d and \u201cBackblaze_456\u201d<\/li>\n<li>The account owner creates a restricted application key that allows the user to read the files in the bucket named \u201cBackblaze_456\u201d<\/li>\n<li>The account owner uses the restricted application key in an application that uses the b2_list_buckets API call<\/li>\n<\/ul>\n<p><b>In Version 1 of the B2 API<\/b><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"list-style-type: none;\"><strong>Action<\/strong>: The account owner uses the restricted application key (for bucket Backblaze_456) to access\/list all the buckets they own (2 public buckets).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul>\n<li style=\"list-style-type: none;\"><strong>Result<\/strong>: The results returned are just for Backblaze_456 as the restricted application key is just for that bucket. Data about other buckets is not returned.<\/li>\n<\/ul>\n<p>While this result may seem appropriate, the data returned did not match the question asked, i.e. list all buckets. V2 of the API ensures the data returned is responsive to the question asked.<\/p>\n<p><b>In Version 2 of the B2 API<\/b><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"list-style-type: none;\"><strong>Action<\/strong>: The account owner uses the restricted application key (for bucket Backblaze_456) to access\/list all the buckets they own (2 public buckets).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul>\n<li style=\"list-style-type: none;\"><strong>Result<\/strong>: A \u201c401 unauthorized\u201d error is returned as the request for access to \u201call\u201d buckets does not match the restricted application key, e.g. bucket Backblaze_456. To achieve the desired result, the account owner can specify the name of the bucket being requested in the API call that matches the restricted application key.<\/li>\n<\/ul>\n<p><strong>Cleaning up the API<\/strong><\/p>\n<p>There are a handful of API calls in V2 where we dropped fields that were deprecated in V1 of the B2 API, but were still required. So in V2:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.backblaze.com\/b2\/docs\/b2_authorize_account.html\" target=\"_blank\" rel=\"noopener noreferrer\">b2_authorize_account<\/a>: The response no longer contains <code>minimumPartSize<\/code>. Use <code>partSize<\/code> and <code>absoluteMinimumPartSize<\/code> instead.<\/li>\n<li><a href=\"https:\/\/www.backblaze.com\/b2\/docs\/b2_list_file_names.html\" target=\"_blank\" rel=\"noopener noreferrer\">b2_list_file_names<\/a>: The response no longer contains <code>size<\/code>. Use <code>contentLength<\/code> instead.<\/li>\n<li><a href=\"https:\/\/www.backblaze.com\/b2\/docs\/b2_list_file_versions.html\" target=\"_blank\" rel=\"noopener noreferrer\">b2_list_file_versions<\/a>: The response no longer contains <code>size<\/code>. Use <code>contentLength<\/code> instead.<\/li>\n<li><a href=\"https:\/\/www.backblaze.com\/b2\/docs\/b2_hide_file.html\" target=\"_blank\" rel=\"noopener noreferrer\">b2_hide_file<\/a>: The response no longer contains <code>size<\/code>. Use <code>contentLength<\/code> instead.<\/li>\n<\/ul>\n<h3 class=\"b3\">Support for Version 1 of the B2 API<\/h3>\n<p>As noted previously, V1 of the B2 API continues to function. There are no plans to stop supporting V1. If at some point in the future we do deprecate the V1 API, we will provide advance notice of at least one year before doing so.<\/p>\n<h3 class=\"b3\">The B2 Java SDK and the B2 Command Tool<\/h3>\n<p>Both the <a href=\"https:\/\/github.com\/Backblaze\/b2-sdk-java\" target=\"_blank\" rel=\"noopener noreferrer\">B2 Java SDK<\/a> and the B2 Command <a href=\"https:\/\/www.backblaze.com\/b2\/docs\/quick_command_line.html\">Line Tool<\/a>, do <b>not<\/b> currently support Version 2 of B2 API. They are being updated and will support the V2 API at the time the V2 API exits Beta and goes GA. Both of these tools, and more, can be found in the <a href=\"https:\/\/github.com\/Backblaze\" target=\"_blank\" rel=\"noopener noreferrer\">Backblaze GitHub repository<\/a>.<\/p>\n<h3 class=\"b3\">More About the Version 2 Beta Program<\/h3>\n<p>We introduced Version 2 of the B2 API as beta so that developers can provide us feedback before V2 goes into production. With every B2 integration being coded differently, we want to hear from as many developers as possible. Give the V2 API a try and if you have any comments you can email our B2 beta team at <a href=\"m&#97;il&#116;&#111;:b2&#98;e&#116;a&#64;b&#97;c&#107;&#98;la&#122;&#101;.c&#111;&#109;\">b2&#98;&#101;ta&#64;b&#97;ckb&#108;&#97;&#122;e&#46;&#99;&#111;m<\/a> or contact Backblaze B2 support. Thanks.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Version 2 of the Backblaze B2 API brings a number of enhancements. While existing applications using version 1 of the API will continue to function as before with no changes required, we encourage developers to try out the version 2 beta and submit comments to us.<\/p>\n","protected":false},"author":12,"featured_media":85356,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[7],"tags":[291,468,373,384],"class_list":["post-85355","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-storage","tag-b2","tag-b2cloud","tag-developer","tag-security","entry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Announcing the Public Beta for the Backblaze B2 API v2 with Powerful New Capabilities<\/title>\n<meta name=\"description\" content=\"The beta of version 2 of the B2 API formalizes rules on application keys, provides consistent API call structure, and cleans up outdated request parameters.\" \/>\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.backblaze.com\/blog\/backblaze-b2-api-version-2-beta-is-now-open\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Announcing the Public Beta for the Backblaze B2 API v2 with Powerful New Capabilities\" \/>\n<meta property=\"og:description\" content=\"The beta of version 2 of the B2 API formalizes rules on application keys, provides consistent API call structure, and cleans up outdated request parameters.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.backblaze.com\/blog\/backblaze-b2-api-version-2-beta-is-now-open\/\" \/>\n<meta property=\"og:site_name\" content=\"Backblaze Blog | Cloud Storage &amp; Cloud Backup\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/backblaze\" \/>\n<meta property=\"article:published_time\" content=\"2018-09-14T00:40:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-11T20:52:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/09\/b2-integrations.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1440\" \/>\n\t<meta property=\"og:image:height\" content=\"820\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Andy Klein\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@backblaze\" \/>\n<meta name=\"twitter:site\" content=\"@backblaze\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andy Klein\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Announcing the Public Beta for the Backblaze B2 API v2 with Powerful New Capabilities","description":"The beta of version 2 of the B2 API formalizes rules on application keys, provides consistent API call structure, and cleans up outdated request parameters.","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.backblaze.com\/blog\/backblaze-b2-api-version-2-beta-is-now-open\/","og_locale":"en_US","og_type":"article","og_title":"Announcing the Public Beta for the Backblaze B2 API v2 with Powerful New Capabilities","og_description":"The beta of version 2 of the B2 API formalizes rules on application keys, provides consistent API call structure, and cleans up outdated request parameters.","og_url":"https:\/\/www.backblaze.com\/blog\/backblaze-b2-api-version-2-beta-is-now-open\/","og_site_name":"Backblaze Blog | Cloud Storage &amp; Cloud Backup","article_publisher":"https:\/\/www.facebook.com\/backblaze","article_published_time":"2018-09-14T00:40:47+00:00","article_modified_time":"2025-12-11T20:52:58+00:00","og_image":[{"width":1440,"height":820,"url":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/09\/b2-integrations.jpg","type":"image\/jpeg"}],"author":"Andy Klein","twitter_card":"summary_large_image","twitter_creator":"@backblaze","twitter_site":"@backblaze","twitter_misc":{"Written by":"Andy Klein","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.backblaze.com\/blog\/backblaze-b2-api-version-2-beta-is-now-open\/#article","isPartOf":{"@id":"https:\/\/www.backblaze.com\/blog\/backblaze-b2-api-version-2-beta-is-now-open\/"},"author":{"name":"Andy Klein","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#\/schema\/person\/9ac7e0bf0bd16852f8bfef352ce5fa8c"},"headline":"Backblaze B2 API Version 2 Beta is Now Open","datePublished":"2018-09-14T00:40:47+00:00","dateModified":"2025-12-11T20:52:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.backblaze.com\/blog\/backblaze-b2-api-version-2-beta-is-now-open\/"},"wordCount":1129,"commentCount":2,"publisher":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.backblaze.com\/blog\/backblaze-b2-api-version-2-beta-is-now-open\/#primaryimage"},"thumbnailUrl":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/09\/b2-integrations.jpg","keywords":["B2","B2Cloud","Developer","Security"],"articleSection":["Cloud Storage"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.backblaze.com\/blog\/backblaze-b2-api-version-2-beta-is-now-open\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.backblaze.com\/blog\/backblaze-b2-api-version-2-beta-is-now-open\/","url":"https:\/\/www.backblaze.com\/blog\/backblaze-b2-api-version-2-beta-is-now-open\/","name":"Announcing the Public Beta for the Backblaze B2 API v2 with Powerful New Capabilities","isPartOf":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.backblaze.com\/blog\/backblaze-b2-api-version-2-beta-is-now-open\/#primaryimage"},"image":{"@id":"https:\/\/www.backblaze.com\/blog\/backblaze-b2-api-version-2-beta-is-now-open\/#primaryimage"},"thumbnailUrl":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/09\/b2-integrations.jpg","datePublished":"2018-09-14T00:40:47+00:00","dateModified":"2025-12-11T20:52:58+00:00","description":"The beta of version 2 of the B2 API formalizes rules on application keys, provides consistent API call structure, and cleans up outdated request parameters.","breadcrumb":{"@id":"https:\/\/www.backblaze.com\/blog\/backblaze-b2-api-version-2-beta-is-now-open\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.backblaze.com\/blog\/backblaze-b2-api-version-2-beta-is-now-open\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.backblaze.com\/blog\/backblaze-b2-api-version-2-beta-is-now-open\/#primaryimage","url":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/09\/b2-integrations.jpg","contentUrl":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/09\/b2-integrations.jpg","width":1440,"height":820},{"@type":"BreadcrumbList","@id":"https:\/\/www.backblaze.com\/blog\/backblaze-b2-api-version-2-beta-is-now-open\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Backblaze B2 API Version 2 Beta is Now Open"}]},{"@type":"WebSite","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#website","url":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/","name":"Backblaze Cloud Solutions Blog","description":"Cloud Storage &amp; Cloud Backup","publisher":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#organization","name":"Backblaze","url":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/www.backblaze.com\/blog\/wp-content\/uploads\/2017\/12\/backblaze_icon_transparent.png?fit=512%2C512&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.backblaze.com\/blog\/wp-content\/uploads\/2017\/12\/backblaze_icon_transparent.png?fit=512%2C512&ssl=1","width":512,"height":512,"caption":"Backblaze"},"image":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/backblaze","https:\/\/x.com\/backblaze","https:\/\/www.youtube.com\/user\/Backblaze","https:\/\/en.wikipedia.org\/wiki\/Backblaze"]},{"@type":"Person","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#\/schema\/person\/9ac7e0bf0bd16852f8bfef352ce5fa8c","name":"Andy Klein","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2019\/04\/andy.jpg","url":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2019\/04\/andy.jpg","contentUrl":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2019\/04\/andy.jpg","caption":"Andy Klein"},"description":"Andy Klein is the former Principal Cloud Storage Storyteller at Backblaze. He has over 25 years of experience in technology marketing and during that time, he has shared his expertise in cloud storage and computer security at events, symposiums, and panels at RSA, SNIA SDC, MIT, the Federal Trade Commission, and hundreds more. He currently writes and rants about drive stats, Storage Pods, cloud storage, and more.","url":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/author\/andy\/"}]}},"jetpack_featured_media_url":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/09\/b2-integrations.jpg","_links":{"self":[{"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/posts\/85355","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/comments?post=85355"}],"version-history":[{"count":0,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/posts\/85355\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/media\/85356"}],"wp:attachment":[{"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/media?parent=85355"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/categories?post=85355"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/tags?post=85355"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}