Discover/iiif.io API
live

iiif.io APIiiif.io

Fetch, normalize, and validate IIIF Presentation API manifests. Access cookbook recipes, community events, and news from iiif.io via 6 structured endpoints.

Endpoints
6
Updated
14d ago
Try it
The URL of the IIIF manifest to fetch (e.g. https://iiif.io/api/cookbook/recipe/0009-book-
api.parse.bot/scraper/3f99f0f1-1d32-49cb-a9d7-962e6e9ba27c/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Use it in your codegrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/3f99f0f1-1d32-49cb-a9d7-962e6e9ba27c/get_manifest?url=https%3A%2F%2Fiiif.io%2Fapi%2Fcookbook%2Frecipe%2F0009-book-1%2Fmanifest.json' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 6 totalclick to expand

Fetch and parse a IIIF Presentation API manifest from a URL. Returns the full manifest JSON structure including context, type, label, items (canvases), and all associated properties.

Input
ParamTypeDescription
urlrequiredstringThe URL of the IIIF manifest to fetch (e.g. https://iiif.io/api/cookbook/recipe/0009-book-1/manifest.json).
Response
{
  "type": "object",
  "fields": {
    "id": "string, the manifest URI",
    "type": "string, the IIIF resource type (e.g. Manifest)",
    "items": "array of Canvas objects with annotations and image bodies",
    "label": "object with language keys mapping to arrays of label strings"
  },
  "sample": {
    "data": {
      "id": "https://iiif.io/api/cookbook/recipe/0009-book-1/manifest.json",
      "type": "Manifest",
      "items": [
        {
          "id": "https://iiif.io/api/cookbook/recipe/0009-book-1/canvas/p1",
          "type": "Canvas",
          "label": {
            "en": [
              "Blank page"
            ]
          },
          "width": 3204,
          "height": 4613
        }
      ],
      "label": {
        "en": [
          "Simple Manifest - Book"
        ]
      },
      "@context": "http://iiif.io/api/presentation/3/context.json",
      "behavior": [
        "paged"
      ]
    },
    "status": "success"
  }
}

About the iiif.io API

This API exposes 6 endpoints covering the core IIIF Presentation API workflow: fetching and parsing manifests, normalizing metadata into flat key-value structures, and running manifests through the official IIIF validator. The get_manifest endpoint returns the full canvas tree including annotations and image bodies, while validate_manifest returns machine-readable error and warning lists so you can catch compliance issues programmatically without manually running the IIIF validator tool.

Manifest Fetching and Parsing

The get_manifest endpoint accepts a url parameter pointing to any IIIF Presentation API manifest and returns the full parsed JSON structure. The response includes id (the manifest URI), type (e.g. Manifest), a label object with language-keyed string arrays, and items — an array of Canvas objects each carrying their own annotations and image bodies. Both IIIF 2.x and 3.0 manifests are handled.

Metadata Normalization

normalize_manifest_metadata takes the same url input and extracts a flat, predictable structure from whatever metadata the manifest contains. The response gives you title (from the manifest label), description (from summary or description fields, possibly containing HTML), rights (the license URI if present), detected version (3.0 or 2.0), and a metadata object mapping label strings to their multilingual value objects. This is useful when integrating manifests from heterogeneous sources where the raw manifest shape varies.

Validation

validate_manifest submits a manifest URL to the official IIIF Presentation API Validator and returns structured results: an okay integer (1 for valid, 0 for invalid), an error string, a warnings array, and an errorList array of detailed error objects. The optional version parameter lets you target a specific Presentation API version (e.g. 2.1, 3.0). Empty warnings and errorList arrays with okay=1` confirm a clean manifest.

Community Resources

Three discovery endpoints round out the API. list_cookbook_recipes returns the full set of IIIF Cookbook recipes — each with name and url — giving programmatic access to the canonical implementation pattern library. list_events returns structured event objects with label, type, time, location, description, and links, plus a calendar object broken into week and month arrays. list_news returns published articles with title, url, date, and excerpt.

Common use cases
  • Validate a batch of IIIF manifests in CI/CD and surface errorList details as test failures before deploying a digital collection.
  • Normalize manifest metadata from multiple institutions into a consistent schema using title, rights, and metadata fields from normalize_manifest_metadata.
  • Build a rights-aware content browser by filtering normalized manifests on the rights URI returned by normalize_manifest_metadata.
  • Index IIIF Cookbook recipes by name and URL to auto-generate implementation guides or internal developer documentation.
  • Track community events and conference dates by polling list_events for the calendar week and month arrays.
  • Detect IIIF Presentation API version across a manifest collection using the version field from normalize_manifest_metadata to plan migration work.
  • Aggregate IIIF news excerpts and publication dates from list_news into a team digest or dashboard.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000250 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does IIIF.io have an official developer API?+
IIIF.io publishes the official IIIF Presentation API Validator at https://presentation-validator.iiif.io and maintains open JSON data feeds for events and the cookbook, but there is no single unified developer API with authentication and versioned endpoints. This API normalizes those resources into a consistent interface.
What does `validate_manifest` actually return when a manifest is invalid?+
It returns okay: 0, a human-readable error string, and an errorList array of detailed error objects identifying specific compliance failures. The warnings array may be non-empty even when okay is 1, indicating non-fatal issues. The optional version parameter lets you pin validation to a specific Presentation API version like 2.1 or 3.0.
Does the API expose individual Canvas or annotation content from within a manifest?+
The get_manifest endpoint returns the full items array, which contains Canvas objects with their embedded annotations and image bodies. There is no dedicated endpoint for querying a single Canvas by ID or filtering annotations by type. You can fork the API on Parse and revise it to add a targeted canvas-level endpoint if your use case requires it.
Does `list_events` include historical/past events or only upcoming ones?+
The endpoint returns both upcoming and past events from the IIIF events and calendar feeds. The calendar object in the response separates entries into week and month arrays. There is no filter parameter to restrict results to a date range. You can fork the API on Parse and revise it to add date-based filtering over the returned event objects.
Are IIIF Image API endpoints (tile requests, info.json) covered?+
No. The API covers the Presentation API layer — manifests, metadata, and validation — along with community content like events, news, and cookbook recipes. IIIF Image API info.json parsing or tile-level queries are not currently included. You can fork the API on Parse and revise it to add an endpoint that fetches and parses Image API info.json responses.
Page content last updated . Spec covers 6 endpoints from iiif.io.
Related APIs in Developer ToolsSee all →
arxiv.org API
Search and discover academic research papers on arXiv using keywords, authors, titles, categories, and dates, then access detailed metadata for any paper. Browse the complete arXiv category taxonomy to explore research across different scientific disciplines.
alienvault.com API
Search and analyze global threat intelligence data including indicators of compromise, threat pulses, and adversary profiles from the Open Threat Exchange community. Monitor recent security alerts and access detailed information about threats and adversaries to strengthen your cybersecurity defenses.
allaboutcircuits.com API
Access educational electronics content from All About Circuits, including technical articles, circuit diagrams, textbook volumes, and forum discussions organized by category. Search and browse the latest resources, view detailed articles, explore engineering tools, and find answers across their community forums.
bazaardb.gg API
Search and retrieve comprehensive data about The Bazaar game cards, including items, skills, merchants, trainers, monsters, and events with full details like tiers, attributes, enchantments, and tooltips. Quickly find the specific card information you need to optimize your gameplay strategy and deck building.
icons8.com API
Search for millions of icons across different visual styles like colorful, pattern-based, and minimalist designs to find the perfect icon for your project. Discover and retrieve icons in your preferred style to enhance your designs and applications.
wynncraft.com API
Access detailed Wynncraft game information to look up item metadata and search across the complete item database, retrieve player statistics and character inventories, and browse guild information and global search results. Use this data to compare gear, track player progress, analyze guild rosters, or build tools for the Wynncraft community.
cursor.directory API
Search and discover AI cursor rules, MCP servers, and job listings organized by category to enhance your development workflow. Browse detailed information about each rule and server to find the tools and configurations that best fit your needs.
smstome.com API
Browse temporary phone numbers from countries around the world and read incoming SMS messages in real time. List available numbers by country, retrieve messages sorted newest to oldest, and search message history by sender or content.