Openverse · Schema

Image

A single image. Used in search results.

ImageAudioCreative CommonsOpen MediaSearchOpen DataCultural HeritageMuseums

Properties

Name Type Description
id string Our unique identifier for an open-licensed work.
title string The name of the media.
indexed_on string The timestamp of when the media was indexed by Openverse.
foreign_landing_url string The landing page of the work.
url string The actual URL to the media file.
creator string The name of the media creator.
creator_url string A direct link to the media creator.
license string The name of license for the media.
license_version string The version of the media license.
license_url string A direct link to the license deed or legal terms.
provider string The content provider, e.g. Flickr, Jamendo...
source string The source of the data, meaning a particular dataset. Source and provider can be different. Eg: the Google Open Images dataset is source=openimages, but provider=flickr.
category string The top-level classification of this media file.
filesize integer Number in bytes, e.g. 1024.
filetype string The type of the file, related to the file extension.
tags array Tags with detailed metadata, such as accuracy.
attribution string Legally valid attribution for the media item in plain-text English.
fields_matched array List the fields that matched the query for this result.
mature boolean Whether the media item is marked as mature
height integer The height of the image in pixels. Not always available.
width integer The width of the image in pixels. Not always available.
thumbnail string A direct link to the miniature artwork.
detail_url string A direct link to the detail view of this audio file.
related_url string A link to an endpoint that provides similar audio files.
View JSON Schema on GitHub

JSON Schema

image.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api.openverse.org/v1/schema/Image",
  "title": "Image",
  "type": "object",
  "description": "A single image. Used in search results.",
  "properties": {
    "id": {
      "type": "string",
      "description": "Our unique identifier for an open-licensed work."
    },
    "title": {
      "type": "string",
      "nullable": true,
      "description": "The name of the media."
    },
    "indexed_on": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp of when the media was indexed by Openverse."
    },
    "foreign_landing_url": {
      "type": "string",
      "nullable": true,
      "description": "The landing page of the work."
    },
    "url": {
      "type": "string",
      "nullable": true,
      "description": "The actual URL to the media file.",
      "maxLength": 1000
    },
    "creator": {
      "type": "string",
      "nullable": true,
      "description": "The name of the media creator."
    },
    "creator_url": {
      "type": "string",
      "nullable": true,
      "description": "A direct link to the media creator.",
      "maxLength": 2000
    },
    "license": {
      "type": "string",
      "description": "The name of license for the media.",
      "maxLength": 50
    },
    "license_version": {
      "type": "string",
      "nullable": true,
      "description": "The version of the media license.",
      "maxLength": 25
    },
    "license_url": {
      "type": "string",
      "nullable": true,
      "description": "A direct link to the license deed or legal terms.",
      "readOnly": true
    },
    "provider": {
      "type": "string",
      "nullable": true,
      "description": "The content provider, e.g. Flickr, Jamendo...",
      "maxLength": 80
    },
    "source": {
      "type": "string",
      "nullable": true,
      "description": "The source of the data, meaning a particular dataset. Source and provider can be different. Eg: the Google Open Images dataset is source=openimages, but provider=flickr.",
      "maxLength": 80
    },
    "category": {
      "type": "string",
      "nullable": true,
      "description": "The top-level classification of this media file.",
      "maxLength": 80
    },
    "filesize": {
      "type": "integer",
      "maximum": 2147483647,
      "minimum": -2147483648,
      "nullable": true,
      "description": "Number in bytes, e.g. 1024."
    },
    "filetype": {
      "type": "string",
      "nullable": true,
      "description": "The type of the file, related to the file extension.",
      "maxLength": 80
    },
    "tags": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Tag"
      },
      "nullable": true,
      "description": "Tags with detailed metadata, such as accuracy."
    },
    "attribution": {
      "type": "string",
      "nullable": true,
      "description": "Legally valid attribution for the media item in plain-text English.",
      "readOnly": true
    },
    "fields_matched": {
      "type": "array",
      "items": {},
      "nullable": true,
      "description": "List the fields that matched the query for this result."
    },
    "mature": {
      "type": "boolean",
      "description": "Whether the media item is marked as mature"
    },
    "height": {
      "type": "integer",
      "maximum": 2147483647,
      "minimum": -2147483648,
      "nullable": true,
      "description": "The height of the image in pixels. Not always available."
    },
    "width": {
      "type": "integer",
      "maximum": 2147483647,
      "minimum": -2147483648,
      "nullable": true,
      "description": "The width of the image in pixels. Not always available."
    },
    "thumbnail": {
      "type": "string",
      "format": "uri",
      "readOnly": true,
      "description": "A direct link to the miniature artwork."
    },
    "detail_url": {
      "type": "string",
      "format": "uri",
      "readOnly": true,
      "description": "A direct link to the detail view of this audio file."
    },
    "related_url": {
      "type": "string",
      "format": "uri",
      "readOnly": true,
      "description": "A link to an endpoint that provides similar audio files."
    }
  },
  "required": [
    "attribution",
    "detail_url",
    "fields_matched",
    "id",
    "indexed_on",
    "license",
    "license_url",
    "mature",
    "related_url",
    "tags",
    "thumbnail"
  ]
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/image"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.