Developers and agents

The Vasari Codex API

Resolve an artist name to a canonical id, then read a short, cited summary of who they are. Free, no key required to start, and built so that citing us correctly is the easiest thing to do.

What this is, and what it is not

This is a retail API for artist identity. It answers one question at a time: which artist do you mean, and who are they. It is not a feed, and it is not a way to obtain the collection.

  • checkArtist lookups by canonical Vasari id or slug, one at a time.
  • checkBiography and public position: life dates, nationality, medium, Codex rank and percentile, career stage.
  • checkWhat is happening now: exhibitions open today, art-world headlines from the last few days, and vacancies open now. These are the things a language model cannot know from training.
  • checkExactly what an unauthenticated visitor already sees on the artist page - no more, and no less.
  • closeNo galleries, museums or auction houses. Those are not available at any tier of this API.
  • closeNo holdings, market data, representation, or exhibition history. The one exception is a count of shows open right now.
  • closeNo pagination or offsets, and no bulk export. The two feeds are capped and time-boxed; everything else is one artist at a time.
  • closeNo third-party for-sale listings, no contact details, and nothing about private collectors.

For depth on any artist, open the canonical URL in the response. It is a public page, and a person reading it is welcome.

Attribution

A condition of use, not a courtesy

Free-tier use requires visible attribution to Vasari Codex with a link to the canonical entity URL supplied in each response.

Every response carries a citation object with the source name, the canonical URL for that entity, and the exact attribution line. Use it verbatim. If you are summarising several entities, cite each one's own URL.

News has a second party. Vasari aggregates headlines; the reporting belongs to the publisher named in each item. Cite that publisher and link to its article_url. We deliberately do not syndicate article text or our own summaries of it, because the publisher's return on being aggregated is the reader who follows the link.

MCP server

The preferred surface for agents. Five tools - resolve_entity, get_artist, list_current_exhibitions, list_recent_news and list_open_jobs - over Streamable HTTP, with no authentication required.

{
  "mcpServers": {
    "vasari-codex": {
      "type": "http",
      "url": "https://codex.vasari.art/api/v1/mcp"
    }
  }
}

Endpoint: https://codex.vasari.art/api/v1/mcp. Add an Authorization: Bearer header with a free API key to raise the rate limit.

REST endpoints

All responses are JSON, all are cached, and all carry a citation. Base URL https://codex.vasari.art/api/v1 (version v1).

GET/api/v1/resolve?name={name}

Resolve a name to a canonical artist id

Start here. Several artists share a name, and everything else in this API is keyed on the Vasari id. Returns up to 10 candidates with the canonical id, slug, URL, disambiguating facts (life dates, nationality, Codex rank), and a match confidence - 1 for an exact name match, otherwise a similarity score. Cannot be paged.

GET/api/v1/artist/{id_or_slug}

Artist summary

Who the artist is and where they stand: canonical name, life dates, nationality, medium, Codex rank and percentile, career stage, and how many exhibitions are open right now.

GET/api/v1/exhibitions/current

Exhibitions open right now

What is on today, soonest to close first. Filter by metro (a slug such as nyc, london, paris) or by artist (id or slug). Each item gives the title, venue name and city, dates, and a link. At most 20 items, no paging.

GET/api/v1/news/recent

Recent art-world news

Headlines from the last days days (default 7, maximum 30), newest first, optionally filtered by artist. Each item gives the headline, the publisher, the publication date and a link to the original article. At most 20 items, no paging.

GET/api/v1/jobs/open

Art-world jobs open now

Vacancies at galleries, museums, auction houses and art organisations, newest first. Filter by country, city, metro, role (Curatorial, Collections, Conservation, Education, Development, Sales, Leadership, Operations, Communications, Visitor Experience, Technology, Art Fairs & Events) or remote. Each item gives the title, organisation, location, employment type, salary where the employer published one, dates, and a link to the original posting. At most 20 items, no paging.

POST/api/v1/mcp

MCP endpoint

The same five operations as MCP tools, over Streamable HTTP. This is the preferred surface for agents.

Two calls, end to end

Resolve the name, then read the artist. The id from the first response is the input to the second.

curl "https://codex.vasari.art/api/v1/resolve?name=Joan%20Mitchell"
{
  "query": { "name": "Joan Mitchell", "kind": null },
  "count": 1,
  "candidates": [
    {
      "kind": "artist",
      "id": 1234,
      "name": "Joan Mitchell",
      "slug": "joan-mitchell",
      "url": "https://codex.vasari.art/artist/joan-mitchell",
      "match": { "confidence": 1, "basis": "exact_name" },
      "disambiguation": {
        "birth_year": 1925,
        "death_year": 1992,
        "life_dates": "1925-1992",
        "nationality": "American",
        "rank": 112
      }
    }
  ],
  "citation": {
    "source": "Vasari Codex",
    "url": "https://codex.vasari.art",
    "attribution": "Data from Vasari Codex (codex.vasari.art)"
  }
}
curl "https://codex.vasari.art/api/v1/artist/joan-mitchell"
{
  "kind": "artist",
  "id": 1234,
  "name": "Joan Mitchell",
  "slug": "joan-mitchell",
  "url": "https://codex.vasari.art/artist/joan-mitchell",
  "life": { "birth_year": 1925, "birth_year_approximate": false,
            "death_year": 1992, "is_deceased": true,
            "life_dates": "1925-1992", "nationality": "American" },
  "practice": { "medium": "painting" },
  "standing": { "rank": 112, "rank_percentile": 0.03,
                "ranked_artists_total": 421428, "career_stage": "Iconic" },
  "activity": { "exhibitions_current": 3 },
  "updated_at": "2026-08-09T02:10:31.526Z",
  "citation": {
    "source": "Vasari Codex",
    "url": "https://codex.vasari.art/artist/joan-mitchell",
    "attribution": "Data from Vasari Codex (codex.vasari.art)"
  }
}

Rate limits

Anonymous access needs no signup, because agents will not sign up. A free key raises the ceiling and identifies your integration; it unlocks no additional data.

CallerRequests per minuteHow to identify
Anonymous30 per IPNothing to send.
Free API key300 per API keyAuthorization: Bearer vsk_... or X-Api-Key: vsk_...

Every response reports RateLimit-Limit, RateLimit-Remaining, and RateLimit-Reset. A 429 includes Retry-After. Keys go in a header, never in the query string.

Get a free API key

Keys are tied to a Vasari Codex account. Sign in, create a key, and copy it: it is stored only as a hash and cannot be shown again.

Your new key

Copy it now. Vasari stores only a hash of this value, so it cannot be shown again. Revoke it below if it leaks.

    Sign in to see and manage your keys.

    Caching and freshness

    Responses are cached at several layers and served with Cache-Control that says how long. Entity summaries hold for hours; resolve results for an hour. X-Vasari-Cache tells you which layer answered. Please respect the headers rather than polling: this API exists because uncontrolled crawling was expensive, and staying cheap is what keeps it free.

    If you need more than counts

    Market data, institutional holdings, representation, exhibition history, and everything about galleries, museums and auction houses live on Codex itself and come with a membership. Bulk access and feeds are a commercial licence rather than a bigger key. Write to eric@vasari.art and say what you are building.