CINXE.COM
API Specifications - International Image Interoperability Framework™ — IIIF | International Image Interoperability Framework
<!DOCTYPE html> <html lang='en'><head> <meta charset="utf-8"> <title> API Specifications - International Image Interoperability Framework™ — IIIF | International Image Interoperability Framework </title> <meta name="description" content="IIIF is a set of open standards for delivering high-quality digital objects online at scale. It’s also the international community that makes it all work."> <link rel="shortcut icon" href="/api/assets/favicon.ico"> <link rel="apple-touch-icon" sizes="180x180" href="/api/assets/apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="/api/assets/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="/api/assets/favicon-16x16.png"> <link rel="manifest" href="/api/assets/site.webmanifest"> <link rel="mask-icon" href="/api/assets/safari-pinned-tab.svg" color="#E82334"> <meta name="msapplication-TileColor" content="#da532c"> <meta name="theme-color" content="#ffffff"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="/api/assets/css/style.css"> <link rel="canonical" href="/api/" /> <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-ZW5W9QRPH6"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-ZW5W9QRPH6'); </script> <link rel="preload" as="image" href="/api"> <!-- Begin Jekyll SEO tag v2.8.0 --> <meta name="generator" content="Jekyll v4.1.1" /> <meta property="og:title" content="API Specifications - International Image Interoperability Framework™" /> <meta property="og:locale" content="en_US" /> <link rel="canonical" href="/api/" /> <meta property="og:url" content="/api/" /> <meta property="og:type" content="website" /> <meta name="twitter:card" content="summary" /> <meta property="twitter:title" content="API Specifications - International Image Interoperability Framework™" /> <meta name="twitter:site" content="@iiif_io" /> <script type="application/ld+json"> {"@context":"https://schema.org","@type":"WebSite","headline":"API Specifications - International Image Interoperability Framework™","name":"IIIF","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/api/assets/favicon.ico"}},"sameAs":["https://twitter.com/IIIF_io","https://www.linkedin.com/company/iiif-c/","https://github.com/IIIF/"],"url":"/api/"}</script> <!-- End Jekyll SEO tag --> <!-- add for Mastodon verification --> <link rel="me" href="https://glammr.us/@iiif"> </head> <body> <section class="hero is-primary" style="background-image: linear-gradient(to bottom, rgba(0, 25, 39, 0.68), rgba(0, 25, 39, 0.68)), url('/api'); background-size: cover; background-position: bottom center; background-attachment: fixed; "> <div class="hero-head"> <nav id="navbar" class="navbar is-transparent is-spaced"> <div class="container"> <div class="navbar-brand"> <a class="navbar-item" href="https://iiif.io/"> <img src="/api/assets/images/logos/logo-sm.png" alt="IIIF logo" height="28"> <span class="brand-title">International Image Interoperability Framework</span> </a> <div class="navbar-burger" data-target="navbar" onclick="document.querySelector('.navbar-menu').classList.toggle('is-active');"> <span></span> <span></span> <span></span> </div> </div> <div class="navbar-menu"> <div class="navbar-end"> <a class="navbar-item" href="https://iiif.io/">Home</a> <a class="navbar-item" href="https://iiif.io/demos">Demos</a> <a class="navbar-item" href="https://iiif.io/news-and-events">News & Events</a> <div class="navbar-item has-dropdown is-hoverable"> <a class="navbar-link" href="https://iiif.io/get-involved"> Get Involved </a> <div class="navbar-dropdown is-boxed is-active"> <a class="navbar-item" href="https://iiif.io/community/">Community</a> <a class="navbar-item" href="https://iiif.io/community/consortium">Consortium</a> <a class="navbar-item" href="https://iiif.io/newsletter">Join Newsletter</a> <a class="navbar-item" href="https://iiif.io/get-involved/outreach-materials">Outreach Materials</a> </div> </div> <div class="navbar-item has-dropdown is-hoverable"> <a class="navbar-link" href="https://iiif.io/get-started"> Get Started </a> <div class="navbar-dropdown is-boxed is-active"> <a class="navbar-item" href="https://iiif.io/get-started/how-iiif-works">How IIIF Works</a> <a class="navbar-item" href="https://iiif.io/community/ambassadors/">IIIF Ambassadors</a> <a class="navbar-item" href="https://iiif.io/guides">Guides</a> <a class="navbar-item" href="/api">APIs & Documentation</a> <a class="navbar-item" href="https://iiif.io/get-started/cookbook">Cookbooks</a> <a class="navbar-item" href="https://iiif.io/get-started/training">Training</a> </div> </div> </div> </div> </div> </nav> </div> <div class="hero-body container"> <nav class="breadcrumb is-centered" aria-label="breadcrumbs"> <ul> <li><a href="https://iiif.io/get-started">Get Started</a></li> <li><a href="/api/">APIs & Documentation</a></li> </ul> </nav> <div class="container has-text-centered"> <h1 class="title is-size-2 is-size-3-mobile is-size-desktop is-size-1-widescreen">API Specifications - International Image Interoperability Framework™</h1> <p class="subtitle is-size-5"></p> </div> </div> </section> <section id="main"> <div class="container-block no-padding is-max-desktop"> <div class="columns is-max-desktop"> <aside class="column is-one-quarter api-sidebar-container" markdown="1"> <div class="toc-sidebar sticky"> <ul class="menu" id="toc-menu"><li><a href="#current-specifications">Current specifications</a><ul class="menu-list toc-submenu-2"><li><a href="#feedback">Feedback requested</a></li></ul></li><li><a href="#approved-extensions">Approved extensions</a></li><li><a href="#community-translations">Community translations</a></li><li><a href="#community-cookbook">Community cookbook</a></li><li><a href="#validators">Validators</a></li><li><a href="#older-versions">Older versions</a></li><li><a href="#notes">Notes</a></li><li><a href="#process">Process</a></li></ul> </div> </aside> <div class="column is-three-quarters content api-content" markdown="1"> <h2 id="current-specifications"> Current specifications <a href="#current-specifications" class="anchorClass"></a> </h2> <table class="api-table" style="max-width: 780px"> <thead> <tr> <th>API</th> <th>Current Version</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td>Image API</td> <td> <a href="/api/image/3.0/"> 3.0.0 </a> </td> <td>The IIIF Image API specifies a web service that returns an image in response to a standard HTTP(S) request. The URI can specify the region, size, rotation, quality characteristics and format of the requested image.</td> </tr> <tr> <td>Presentation API</td> <td> <a href="/api/presentation/3.0/"> 3.0.0 </a> </td> <td>The IIIF Presentation API provides the information necessary to allow a rich, online viewing environment for compound digital objects to be presented to a human user, often in conjunction with the IIIF Image API.</td> </tr> <tr> <td>Authorization Flow API</td> <td> <a href="/api/auth/2.0/"> 2.0.0 </a> </td> <td>The IIIF Authorization Flow specification describes a set of workflows for guiding the user through an existing access control system.</td> </tr> <tr> <td>Change Discovery API</td> <td> <a href="/api/discovery/1.0/"> 1.0.0 </a> </td> <td>The IIIF Change Discovery API provides the information needed to discover and make use of IIIF resources.</td> </tr> <tr> <td>Content Search API</td> <td> <a href="/api/search/2.0/"> 2.0.0 </a> </td> <td>The IIIF Content Search API specification lays out the interoperability mechanism for performing searches of text annotations associated with an object within the IIIF context.</td> </tr> <tr> <td>Content State API</td> <td> <a href="/api/content-state/1.0/"> 1.0.0 </a> </td> <td>The IIIF Content State API provides a way to refer to a IIIF Presentation API resource, or a part of a resource, in a compact format that can be used to initialize the view of that resource in any client.</td> </tr> </tbody> </table> <!-- ## Draft specifications | API | Draft Version (Status) | | -------------------- | ---------------------- | {: .api-table} --> <h3 id="feedback"> Feedback requested <a href="#feedback" class="anchorClass"></a> </h3> <p class="alert">We welcome feedback on all <abbr title="International Image Interoperability Framework">IIIF</abbr> Specifications. Please send any feedback to <a href="mailto:iiif-discuss@googlegroups.com" title="Email Discussion List">iiif-discuss@googlegroups.com</a>.</p> <h2 id="approved-extensions"> Approved extensions <a href="#approved-extensions" class="anchorClass"></a> </h2> <p>Please see the <a href="/api/registry/" title="IIIF Extension Registry">Registry of Extensions</a> for full details on how extensions work and the process for creating them.</p> <p>Currently, there are three formally published extensions available for use with the Presentation <abbr title="Application Programming Interface">API</abbr>.</p> <table class="api-table" style="max-width: 780px;"> <thead> <tr> <th>Presentation <abbr title="Application Programming Interface">API</abbr> Extensions</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="/api/extension/navplace/">navPlace Extension</a></td> <td>This <abbr title="International Image Interoperability Framework">IIIF</abbr> Presentation 3 <abbr title="Application Programming Interface">API</abbr> extension defines a new property, navPlace, which is defined by earthbound geographic coordinates in the form of GeoJSON-LD.</td> </tr> <tr> <td><a href="/api/extension/text-granularity/">Text Granularity Extension</a></td> <td>This extension recommends a pattern for indicating the level of text granularity for an annotation related to optical character recognition (OCR) software, manual transcription, and existing digitized text.</td> </tr> <tr> <td><a href="/api/extension/georef/">Georeference Extension</a></td> <td>This extension leverages Web Annotations to provide a pattern for georeferencing <abbr title="International Image Interoperability Framework">IIIF</abbr> Presentation 3 <abbr title="Application Programming Interface">API</abbr> Canvases as well as images served through the <abbr title="International Image Interoperability Framework">IIIF</abbr> Image <abbr title="Application Programming Interface">API</abbr>.</td> </tr> </tbody> </table> <h2 id="community-translations"> Community translations <a href="#community-translations" class="anchorClass"></a> </h2> <table class="api-table"> <thead> <tr> <th><abbr title="Application Programming Interface">API</abbr></th> <th>Version</th> <th>Translation</th> </tr> </thead> <tbody> <tr> <td>Image <abbr title="Application Programming Interface">API</abbr></td> <td>3.0</td> <td><a href="http://www.asahi-net.or.jp/~ax2s-kmtn/ref/iiif/apiimage3.0.html">Japanese</a>, <a href="https://www.yuque.com/iiifchina/df4qfk/fwybkl">Chinese</a></td> </tr> <tr> <td>Image <abbr title="Application Programming Interface">API</abbr></td> <td>2.1</td> <td><a href="http://www.asahi-net.or.jp/~ax2s-kmtn/ref/iiif/apiimage2.1.html">Japanese</a></td> </tr> <tr> <td>Presentation <abbr title="Application Programming Interface">API</abbr></td> <td>3.0</td> <td><a href="https://www.yuque.com/iiifchina/df4qfk/gpf6od">Chinese</a></td> </tr> <tr> <td>Presentation <abbr title="Application Programming Interface">API</abbr></td> <td>2.1</td> <td><a href="http://www.asahi-net.or.jp/~ax2s-kmtn/ref/iiif/apipresentation2.1.html">Japanese</a></td> </tr> <tr> <td>Content Search <abbr title="Application Programming Interface">API</abbr></td> <td>1.0</td> <td><a href="http://www.asahi-net.or.jp/~ax2s-kmtn/ref/iiif/searchapi1.0.html">Japanese</a>, <a href="https://www.yuque.com/iiifchina/df4qfk/ygbnck">Chinese</a></td> </tr> <tr> <td>Authentication <abbr title="Application Programming Interface">API</abbr></td> <td>1.0</td> <td><a href="http://www.asahi-net.or.jp/~ax2s-kmtn/ref/iiif/apiauthentication1.0.html">Japanese</a>, <a href="https://www.yuque.com/iiifchina/df4qfk/vkxifz">Chinese</a></td> </tr> <tr> <td>Discovery <abbr title="Application Programming Interface">API</abbr></td> <td>1.0</td> <td><a href="https://www.yuque.com/iiifchina/df4qfk/hdb26g">Chinese</a></td> </tr> <tr> <td>Content State <abbr title="Application Programming Interface">API</abbr></td> <td>0.9</td> <td><a href="https://www.yuque.com/iiifchina/df4qfk/wysy7i">Chinese</a></td> </tr> <tr> <td>NavPlace Extension</td> <td> </td> <td><a href="https://www.yuque.com/iiifchina/df4qfk/xh0bna">Chinese</a></td> </tr> </tbody> </table> <p class="alert"><strong>Translation note</strong><br /> Please note that the <abbr title="International Image Interoperability Framework">IIIF</abbr> community does not guarantee the accuracy of any translation. They are linked to for information purposes only, and any discrepancies with the specifications are unintentional. The English versions of the specifications linked above are the definitive versions.</p> <h2 id="community-cookbook"> Community cookbook <a href="#community-cookbook" class="anchorClass"></a> </h2> <p>The <a href="https://iiif.io/api/cookbook/" title="IIIF Cookbook">Cookbook</a> gathers together examples of how to create <abbr title="International Image Interoperability Framework">IIIF</abbr> Presentation <abbr title="Application Programming Interface">API</abbr> assets, in order to:</p> <ul> <li>Provide many more examples than the specification alone can do, for reference and learning;</li> <li>Encourage publishers to adopt common patterns in modeling classes of complex objects;</li> <li>Enable client software developers to support these patterns, for consistency of user experience (when desirable); and</li> <li>Demonstrate the applicability of <abbr title="International Image Interoperability Framework">IIIF</abbr> to a broad range of use cases.</li> </ul> <p>The <a href="https://iiif.io/api/cookbook/" title="IIIF Cookbook">Cookbook</a> webpages are under constant development and the list of recipes include links to completed recipes and place holders for future recipes. The community welcomes additions to the <a href="https://iiif.io/api/cookbook/" title="IIIF Cookbook">Cookbook</a>. To get started, review the <a href="https://iiif.io/api/cookbook/recipe/" title="Cookbook process">Cookbook process</a> and say hello on the Cookbook <a href="http://bit.ly/iiif-slack">Slack</a> channel.</p> <h2 id="validators"> Validators <a href="#validators" class="anchorClass"></a> </h2> <ul> <li><a href="/api/image/validator/">Image <abbr title="Application Programming Interface">API</abbr> validator</a> - A service to validate a <abbr title="International Image Interoperability Framework">IIIF</abbr> Image <abbr title="Application Programming Interface">API</abbr> resource against the specification.</li> <li><a href="/api/presentation/validator/service/">Presentation <abbr title="Application Programming Interface">API</abbr> validator</a> - A service to validate a <abbr title="International Image Interoperability Framework">IIIF</abbr> Presentation <abbr title="Application Programming Interface">API</abbr> resource against the specification.</li> </ul> <h2 id="older-versions"> Older versions <a href="#older-versions" class="anchorClass"></a> </h2> <p>Current <abbr title="International Image Interoperability Framework">IIIF</abbr> specifications <em class="rfc">should</em> be used for all new work. Old versions are retained for reference and are listed below. Technical resources and reference implementations of older versions are <em>NOT</em> guaranteed to be maintained across new major versions.</p> <table class="api-table"> <thead> <tr> <th>Old <abbr title="Application Programming Interface">API</abbr> Version</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><a href="/api/auth/0.9/" title="Authentication API v0.9.4">Authentication <abbr title="Application Programming Interface">API</abbr> 0.9.4</a></td> <td>Published 2016-10-05</td> </tr> <tr> <td><a href="/api/auth/1.0/" title="IIIF Authentication API 1.0">Authentication <abbr title="Application Programming Interface">API</abbr> 1.0</a></td> <td>Published 2017-01-19</td> </tr> <tr> <td><a href="/api/discovery/0.9/" title="IIIF Change Discovery API">Change Discovery <abbr title="Application Programming Interface">API</abbr> 0.9.2</a></td> <td>Published 2021-04-28</td> </tr> <tr> <td><a href="/api/image/2.1/" title="Image API 2.1">Image <abbr title="Application Programming Interface">API</abbr> 2.1</a></td> <td>Published 2016-05-12, updated 2017-06-09</td> </tr> <tr> <td><a href="/api/image/2.0/" title="Image API v2.0">Image <abbr title="Application Programming Interface">API</abbr> 2.0</a></td> <td>Published 2014-09-11</td> </tr> <tr> <td><a href="/api/image/1.1/" title="Image API 1.1">Image <abbr title="Application Programming Interface">API</abbr> 1.1</a></td> <td>Published 2013-09-17</td> </tr> <tr> <td><a href="/api/image/1.0/" title="Image API v1.0">Image <abbr title="Application Programming Interface">API</abbr> 1.0</a></td> <td>Published 2012-08-10</td> </tr> <tr> <td><a href="/api/presentation/2.1/" title="IIIF Presentation API 2.1">Presentation <abbr title="Application Programming Interface">API</abbr> 2.1</a></td> <td>Published 2016-05-12, updated 2017-06-09</td> </tr> <tr> <td><a href="/api/presentation/2.0/" title="IIIF Presentation API 2.0">Presentation <abbr title="Application Programming Interface">API</abbr> 2.0</a></td> <td>Published 2014-08-12</td> </tr> <tr> <td><a href="/api/metadata/1.0/" title="Metadata API v1.0">Metadata <abbr title="Application Programming Interface">API</abbr> 1.0</a></td> <td>“Metadata <abbr title="Application Programming Interface">API</abbr>” was replaced with the Presentation <abbr title="Application Programming Interface">API</abbr>, published 2013-09-16</td> </tr> <tr> <td><a href="/api/metadata/0.9/" title="Metadata API v0.9">Metadata <abbr title="Application Programming Interface">API</abbr> 0.9</a></td> <td>Draft of the “Metadata <abbr title="Application Programming Interface">API</abbr>”, published 2013-06-11</td> </tr> <tr> <td><a href="/api/search/0.9/" title="Search API v0.9">Search <abbr title="Application Programming Interface">API</abbr> 0.9</a></td> <td>Draft published 2016-04-11</td> </tr> <tr> <td><a href="/api/search/1.0/">Search <abbr title="Application Programming Interface">API</abbr> 1.0</a></td> <td>Published 2016-05-12</td> </tr> </tbody> </table> <h2 id="notes"> Notes <a href="#notes" class="anchorClass"></a> </h2> <p><abbr title="International Image Interoperability Framework">IIIF</abbr> also has a series of <a href="/api/annex/" title="Implementation Notes">Implementation Notes</a> which are not subject to the same process as formal APIs but may be useful to implementers.</p> <h2 id="process"> Process <a href="#process" class="anchorClass"></a> </h2> <p><abbr title="International Image Interoperability Framework">IIIF</abbr> Specifications are created and published following the <a href="https://iiif.io/community/policy/editorial/" title="IIIF Editorial Process"><abbr title="International Image Interoperability Framework">IIIF</abbr> Editorial Process</a>.</p> <!-- Keep two spaces at the top of this file --> </div> </div> </div> </section> <footer id="footer" class="footer"> <div class="container"> <div class="columns"> <div class="navbar-brand column is-half"> <a class="navbar-item" href="/api/"> <img src="/api/assets/images/logos/logo-sm.png" alt="IIIF logo" height="28"> <span class="brand-title blue-text">International Image Interoperability Framework</span> </a> <p>IIIF is a set of open standards for delivering high-quality, attributed digital objects online at scale. It’s also an international community developing and implementing the IIIF APIs. IIIF is backed by a consortium of leading cultural institutions.</p> </div> <div class="column"></div> <div class="column menu-column"> <h4>About</h4> <ul> <li> <a href="https://iiif.io/get-started/how-iiif-works">How IIIF Works</a> </li> <li> <a href="/api">APIs & Documentation</a> </li> <li> <a href="https://iiif.io/demos">Demos</a> </li> <li> <a href="https://iiif.io/guides">Tutorials & Guides</a> </li> <li> <a href="https://iiif.io/privacy">Privacy policy</a> </li> </ul> </div> <div class="column menu-column"> <h4>Stay Connected</h4> <ul> <li> <a href="https://iiif.io/news-and-events">News & Events</a> </li> <li> <a href="https://iiif.io/newsletter">Join Newsletter</a> </li> <li> <a href="https://iiif.io/community/groups">Community Groups</a> </li> <li> <a href="https://iiif.io/community/consortium">Consortium</a> </li> <li> <a href="https://iiif.io/contact">Contact Us</a> </li> </ul> </div> </div> </div> </footer><script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script> <script type="text/javascript" src="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"></script> <script type="text/javascript" src="/api/assets/js/carouselInit.js"></script> <!-- Read the Formbutton docs at formspree.io/formbutton/docs. See more examples at codepen.io/formspree --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/all.css" /> <script src="https://formspree.io/js/formbutton-v1.min.js" defer></script> <script> /* paste this line in verbatim */ window.formbutton=window.formbutton||function(){(formbutton.q=formbutton.q||[]).push(arguments)}; /* customize formbutton below*/ formbutton("create", { action: "https://formspree.io/f/xbjwjlbn", title: "Feedback", fields: [ { type: "radio", name: "feedback_type", value: "Comment", label: "Comment", style: { display: "inline-block", "padding-right": "10px" } }, { type: "radio", name: "feedback_type", value: "Correction", label: "Correction", style: { display: "inline-block", "padding-right": "10px" } }, { type: "radio", name: "feedback_type", value: "Bug", label: "Bug", style: { display: "inline-block", "padding-right": "10px" } }, { type: "email", label: "Email:", name: "Email", required: true, placeholder: "your@email.com" }, { type: "textarea", label: "Message:", name: "Message", placeholder: "We want to hear from you! Enter your feedback here.", }, { type: "submit", value: "Submit" }, { type: "hidden", name: "Page", value: window.location.pathname.replaceAll('/','|'), style: { display: "none" } } ], buttonImg: "<i class='fas fa-comment' style='font-size:24px'/>", styles: { title: { backgroundColor: "#0d232d" }, button: { backgroundColor: "#0d232d" } } }); </script> </body> </html>