URSY.ARTPART OF THE URSY NETWORKSign inExplore
Skip to content
BUILT FOR PEOPLE AND THEIR TOOLS

Art, with an API.

The same source records, image packages and creative tools that power this app.

PUBLIC READS · NO KEY REQUIRED
curl 'https://ursy.art/wp-json/ursy-art/v1/artworks?q=Monet'

Connect an MCP client

Use the Streamable HTTP endpoint below. Tools provide bounded JSON responses. Private image-search jobs and account collections use authenticated REST endpoints.

https://ursy.art/wp-json/ursy-art/v1/mcp

Working operations

Find art

search_artworksPOST

Search artworks

{
    "type": "object",
    "properties": {
        "q": {
            "type": "string",
            "maxLength": 160,
            "description": "Words matched against the locally published museum catalogue."
        },
        "ids": {
            "type": "array",
            "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            },
            "minItems": 1,
            "maxItems": 100
        },
        "source": {
            "type": "string",
            "enum": [
                "met",
                "chicago",
                "cleveland",
                "smithsonian",
                "rijksmuseum"
            ]
        },
        "kind": {
            "type": "string",
            "minLength": 1,
            "maxLength": 32
        },
        "artist_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "orientation": {
            "type": "string",
            "enum": [
                "landscape",
                "portrait",
                "square"
            ]
        },
        "from": {
            "type": "integer",
            "minimum": -1000000,
            "maximum": 1000000
        },
        "to": {
            "type": "integer",
            "minimum": -1000000,
            "maximum": 1000000
        },
        "min_width": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50000
        },
        "min_height": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50000
        },
        "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 24
        },
        "page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000000,
            "default": 1
        },
        "availability": {
            "type": "string",
            "enum": [
                "all",
                "downloads",
                "catalogue"
            ],
            "default": "all"
        },
        "reuse": {
            "type": "string",
            "enum": [
                "cc0"
            ],
            "description": "Source image eligibility; does not imply a prepared URSY download."
        },
        "sort": {
            "type": "string",
            "enum": [
                "featured",
                "oldest",
                "newest",
                "title"
            ],
            "default": "featured"
        }
    },
    "required": [],
    "additionalProperties": false
}
get_artworksPOST

Get artworks

{
    "type": "object",
    "properties": {
        "q": {
            "type": "string",
            "maxLength": 160,
            "description": "Words matched against the locally published museum catalogue."
        },
        "ids": {
            "type": "array",
            "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            },
            "minItems": 1,
            "maxItems": 100
        },
        "source": {
            "type": "string",
            "enum": [
                "met",
                "chicago",
                "cleveland",
                "smithsonian",
                "rijksmuseum"
            ]
        },
        "kind": {
            "type": "string",
            "minLength": 1,
            "maxLength": 32
        },
        "artist_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "orientation": {
            "type": "string",
            "enum": [
                "landscape",
                "portrait",
                "square"
            ]
        },
        "from": {
            "type": "integer",
            "minimum": -1000000,
            "maximum": 1000000
        },
        "to": {
            "type": "integer",
            "minimum": -1000000,
            "maximum": 1000000
        },
        "min_width": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50000
        },
        "min_height": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50000
        },
        "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 24
        },
        "page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000000,
            "default": 1
        },
        "availability": {
            "type": "string",
            "enum": [
                "all",
                "downloads",
                "catalogue"
            ],
            "default": "all"
        },
        "reuse": {
            "type": "string",
            "enum": [
                "cc0"
            ],
            "description": "Source image eligibility; does not imply a prepared URSY download."
        },
        "sort": {
            "type": "string",
            "enum": [
                "featured",
                "oldest",
                "newest",
                "title"
            ],
            "default": "featured"
        }
    },
    "required": [],
    "additionalProperties": false
}
get_artworkPOST

Get artwork

{
    "type": "object",
    "properties": {
        "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        }
    },
    "required": [
        "id"
    ],
    "additionalProperties": false
}
resolve_artwork_referencePOST

Resolve artwork reference

{
    "type": "object",
    "properties": {
        "reference": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2048
        },
        "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "q": {
            "type": "string",
            "maxLength": 160,
            "description": "Words matched against the locally published museum catalogue."
        },
        "ids": {
            "type": "array",
            "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            },
            "minItems": 1,
            "maxItems": 100
        },
        "source": {
            "type": "string",
            "enum": [
                "met",
                "chicago",
                "cleveland",
                "smithsonian",
                "rijksmuseum"
            ]
        },
        "kind": {
            "type": "string",
            "minLength": 1,
            "maxLength": 32
        },
        "artist_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "orientation": {
            "type": "string",
            "enum": [
                "landscape",
                "portrait",
                "square"
            ]
        },
        "from": {
            "type": "integer",
            "minimum": -1000000,
            "maximum": 1000000
        },
        "to": {
            "type": "integer",
            "minimum": -1000000,
            "maximum": 1000000
        },
        "min_width": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50000
        },
        "min_height": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50000
        },
        "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 24
        },
        "page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000000,
            "default": 1
        },
        "availability": {
            "type": "string",
            "enum": [
                "all",
                "downloads",
                "catalogue"
            ],
            "default": "all"
        },
        "reuse": {
            "type": "string",
            "enum": [
                "cc0"
            ],
            "description": "Source image eligibility; does not imply a prepared URSY download."
        },
        "sort": {
            "type": "string",
            "enum": [
                "featured",
                "oldest",
                "newest",
                "title"
            ],
            "default": "featured"
        }
    },
    "required": [],
    "additionalProperties": false,
    "anyOf": [
        {
            "required": [
                "reference"
            ]
        },
        {
            "required": [
                "id"
            ]
        },
        {
            "required": [
                "q"
            ]
        }
    ]
}
search_creatorsPOST

Search creators

{
    "type": "object",
    "properties": {
        "q": {
            "type": "string",
            "maxLength": 160,
            "description": "Words matched against the locally published museum catalogue."
        },
        "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 24
        },
        "page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000000,
            "default": 1
        }
    },
    "required": [],
    "additionalProperties": false
}
get_creator_profilePOST

Get creator profile

{
    "type": "object",
    "properties": {
        "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "q": {
            "type": "string",
            "maxLength": 160,
            "description": "Words matched against the locally published museum catalogue."
        },
        "ids": {
            "type": "array",
            "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            },
            "minItems": 1,
            "maxItems": 100
        },
        "source": {
            "type": "string",
            "enum": [
                "met",
                "chicago",
                "cleveland",
                "smithsonian",
                "rijksmuseum"
            ]
        },
        "kind": {
            "type": "string",
            "minLength": 1,
            "maxLength": 32
        },
        "orientation": {
            "type": "string",
            "enum": [
                "landscape",
                "portrait",
                "square"
            ]
        },
        "from": {
            "type": "integer",
            "minimum": -1000000,
            "maximum": 1000000
        },
        "to": {
            "type": "integer",
            "minimum": -1000000,
            "maximum": 1000000
        },
        "min_width": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50000
        },
        "min_height": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50000
        },
        "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 24
        },
        "page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000000,
            "default": 1
        },
        "availability": {
            "type": "string",
            "enum": [
                "all",
                "downloads",
                "catalogue"
            ],
            "default": "all"
        },
        "reuse": {
            "type": "string",
            "enum": [
                "cc0"
            ],
            "description": "Source image eligibility; does not imply a prepared URSY download."
        },
        "sort": {
            "type": "string",
            "enum": [
                "featured",
                "oldest",
                "newest",
                "title"
            ],
            "default": "featured"
        }
    },
    "required": [
        "id"
    ],
    "additionalProperties": false
}
get_creator_worksPOST

Get creator works

{
    "type": "object",
    "properties": {
        "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "q": {
            "type": "string",
            "maxLength": 160,
            "description": "Words matched against the locally published museum catalogue."
        },
        "ids": {
            "type": "array",
            "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            },
            "minItems": 1,
            "maxItems": 100
        },
        "source": {
            "type": "string",
            "enum": [
                "met",
                "chicago",
                "cleveland",
                "smithsonian",
                "rijksmuseum"
            ]
        },
        "kind": {
            "type": "string",
            "minLength": 1,
            "maxLength": 32
        },
        "orientation": {
            "type": "string",
            "enum": [
                "landscape",
                "portrait",
                "square"
            ]
        },
        "from": {
            "type": "integer",
            "minimum": -1000000,
            "maximum": 1000000
        },
        "to": {
            "type": "integer",
            "minimum": -1000000,
            "maximum": 1000000
        },
        "min_width": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50000
        },
        "min_height": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50000
        },
        "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 24
        },
        "page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000000,
            "default": 1
        },
        "availability": {
            "type": "string",
            "enum": [
                "all",
                "downloads",
                "catalogue"
            ],
            "default": "all"
        },
        "reuse": {
            "type": "string",
            "enum": [
                "cc0"
            ],
            "description": "Source image eligibility; does not imply a prepared URSY download."
        },
        "sort": {
            "type": "string",
            "enum": [
                "featured",
                "oldest",
                "newest",
                "title"
            ],
            "default": "featured"
        }
    },
    "required": [
        "id"
    ],
    "additionalProperties": false
}
browse_subjectsPOST

Browse subjects

{
    "type": "object",
    "properties": {},
    "required": [],
    "additionalProperties": false
}
get_subject_collectionPOST

Get subject collection

{
    "type": "object",
    "properties": {
        "subject": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
        },
        "ids": {
            "type": "array",
            "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            },
            "minItems": 1,
            "maxItems": 100
        },
        "source": {
            "type": "string",
            "enum": [
                "met",
                "chicago",
                "cleveland",
                "smithsonian",
                "rijksmuseum"
            ]
        },
        "kind": {
            "type": "string",
            "minLength": 1,
            "maxLength": 32
        },
        "artist_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "orientation": {
            "type": "string",
            "enum": [
                "landscape",
                "portrait",
                "square"
            ]
        },
        "from": {
            "type": "integer",
            "minimum": -1000000,
            "maximum": 1000000
        },
        "to": {
            "type": "integer",
            "minimum": -1000000,
            "maximum": 1000000
        },
        "min_width": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50000
        },
        "min_height": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50000
        },
        "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 24
        },
        "page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000000,
            "default": 1
        },
        "availability": {
            "type": "string",
            "enum": [
                "all",
                "downloads",
                "catalogue"
            ],
            "default": "all"
        },
        "reuse": {
            "type": "string",
            "enum": [
                "cc0"
            ],
            "description": "Source image eligibility; does not imply a prepared URSY download."
        },
        "sort": {
            "type": "string",
            "enum": [
                "featured",
                "oldest",
                "newest",
                "title"
            ],
            "default": "featured"
        }
    },
    "required": [
        "subject"
    ],
    "additionalProperties": false
}
browse_museumsPOST

Browse museums

{
    "type": "object",
    "properties": {},
    "required": [],
    "additionalProperties": false
}
get_museum_collectionPOST

Get museum collection

{
    "type": "object",
    "properties": {
        "id": {
            "type": "string",
            "enum": [
                "met",
                "chicago",
                "cleveland",
                "smithsonian",
                "rijksmuseum"
            ]
        },
        "q": {
            "type": "string",
            "maxLength": 160,
            "description": "Words matched against the locally published museum catalogue."
        },
        "ids": {
            "type": "array",
            "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            },
            "minItems": 1,
            "maxItems": 100
        },
        "kind": {
            "type": "string",
            "minLength": 1,
            "maxLength": 32
        },
        "artist_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "orientation": {
            "type": "string",
            "enum": [
                "landscape",
                "portrait",
                "square"
            ]
        },
        "from": {
            "type": "integer",
            "minimum": -1000000,
            "maximum": 1000000
        },
        "to": {
            "type": "integer",
            "minimum": -1000000,
            "maximum": 1000000
        },
        "min_width": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50000
        },
        "min_height": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50000
        },
        "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 24
        },
        "page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000000,
            "default": 1
        },
        "availability": {
            "type": "string",
            "enum": [
                "all",
                "downloads",
                "catalogue"
            ],
            "default": "all"
        },
        "reuse": {
            "type": "string",
            "enum": [
                "cc0"
            ],
            "description": "Source image eligibility; does not imply a prepared URSY download."
        },
        "sort": {
            "type": "string",
            "enum": [
                "featured",
                "oldest",
                "newest",
                "title"
            ],
            "default": "featured"
        }
    },
    "required": [
        "id"
    ],
    "additionalProperties": false
}

Images and evidence

get_image_assetsPOST

Get image assets

{
    "type": "object",
    "properties": {
        "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        }
    },
    "required": [
        "id"
    ],
    "additionalProperties": false
}
get_reuse_evidencePOST

Get reuse evidence

{
    "type": "object",
    "properties": {
        "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        }
    },
    "required": [
        "id"
    ],
    "additionalProperties": false
}
filter_by_reuse_policyPOST

Filter by reuse policy

{
    "type": "object",
    "properties": {
        "q": {
            "type": "string",
            "maxLength": 160,
            "description": "Words matched against the locally published museum catalogue."
        },
        "ids": {
            "type": "array",
            "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            },
            "minItems": 1,
            "maxItems": 100
        },
        "source": {
            "type": "string",
            "enum": [
                "met",
                "chicago",
                "cleveland",
                "smithsonian",
                "rijksmuseum"
            ]
        },
        "kind": {
            "type": "string",
            "minLength": 1,
            "maxLength": 32
        },
        "artist_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "orientation": {
            "type": "string",
            "enum": [
                "landscape",
                "portrait",
                "square"
            ]
        },
        "from": {
            "type": "integer",
            "minimum": -1000000,
            "maximum": 1000000
        },
        "to": {
            "type": "integer",
            "minimum": -1000000,
            "maximum": 1000000
        },
        "min_width": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50000
        },
        "min_height": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50000
        },
        "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 24
        },
        "page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000000,
            "default": 1
        },
        "availability": {
            "type": "string",
            "enum": [
                "all",
                "downloads",
                "catalogue"
            ],
            "default": "all"
        },
        "reuse": {
            "type": "string",
            "enum": [
                "cc0"
            ],
            "description": "Source image eligibility; does not imply a prepared URSY download."
        },
        "sort": {
            "type": "string",
            "enum": [
                "featured",
                "oldest",
                "newest",
                "title"
            ],
            "default": "featured"
        }
    },
    "required": [],
    "additionalProperties": false
}
make_credit_linesPOST

Make credit lines

{
    "type": "object",
    "properties": {
        "ids": {
            "type": "array",
            "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            },
            "minItems": 1,
            "maxItems": 100
        }
    },
    "required": [
        "ids"
    ],
    "additionalProperties": false
}
get_image_packagePOST

Get image package

{
    "type": "object",
    "properties": {
        "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        }
    },
    "required": [
        "id"
    ],
    "additionalProperties": false
}
get_canonical_assetPOST

Get canonical asset

{
    "type": "object",
    "properties": {
        "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        }
    },
    "required": [
        "id"
    ],
    "additionalProperties": false
}
get_image_provenancePOST

Get image provenance

{
    "type": "object",
    "properties": {
        "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        }
    },
    "required": [
        "id"
    ],
    "additionalProperties": false
}
resolve_imagePOST

Resolve image

{
    "type": "object",
    "properties": {
        "sha256": {
            "type": "string",
            "pattern": "^[a-fA-F0-9]{64}$"
        }
    },
    "required": [
        "sha256"
    ],
    "additionalProperties": false
}
match_imagePOST

Match image

{
    "type": "object",
    "properties": {
        "sha256": {
            "type": "string",
            "pattern": "^[a-fA-F0-9]{64}$"
        }
    },
    "required": [
        "sha256"
    ],
    "additionalProperties": false
}

Creative tools

compare_artworksPOST

Compare artworks

{
    "type": "object",
    "properties": {
        "ids": {
            "type": "array",
            "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            },
            "minItems": 1,
            "maxItems": 4
        }
    },
    "required": [
        "ids"
    ],
    "additionalProperties": false
}
build_art_timelinePOST

Build art timeline

{
    "type": "object",
    "properties": {
        "ids": {
            "type": "array",
            "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            },
            "minItems": 1,
            "maxItems": 100
        }
    },
    "required": [
        "ids"
    ],
    "additionalProperties": false
}
get_image_palettePOST

Get image palette

{
    "type": "object",
    "properties": {
        "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        }
    },
    "required": [
        "id"
    ],
    "additionalProperties": false
}
find_art_by_palettePOST

Find art by palette

{
    "type": "object",
    "properties": {
        "color": {
            "type": "string",
            "pattern": "^#?[a-fA-F0-9]{6}$"
        },
        "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 24
        }
    },
    "required": [
        "color"
    ],
    "additionalProperties": false
}
find_visually_similar_artPOST

Find visually similar art

{
    "type": "object",
    "properties": {
        "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        }
    },
    "required": [
        "id"
    ],
    "additionalProperties": false
}
suggest_image_fitPOST

Suggest image fit

{
    "type": "object",
    "properties": {
        "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "width": {
            "type": "number",
            "minimum": 1,
            "maximum": 20000,
            "default": 1200
        },
        "height": {
            "type": "number",
            "minimum": 1,
            "maximum": 20000,
            "default": 800
        }
    },
    "required": [
        "id"
    ],
    "additionalProperties": false
}
estimate_print_sizePOST

Estimate print size

{
    "type": "object",
    "properties": {
        "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "dpi": {
            "type": "number",
            "minimum": 72,
            "maximum": 1200,
            "default": 300,
            "description": "Pixels per inch of the delivered file; not physical artwork dimensions."
        }
    },
    "required": [
        "id"
    ],
    "additionalProperties": false
}
build_responsive_image_setPOST

Build responsive image set

{
    "type": "object",
    "properties": {
        "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        }
    },
    "required": [
        "id"
    ],
    "additionalProperties": false
}
build_image_requestPOST

Build image request

{
    "type": "object",
    "properties": {
        "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "width": {
            "type": "number",
            "minimum": 1,
            "maximum": 20000,
            "default": 1200
        },
        "height": {
            "type": "number",
            "minimum": 1,
            "maximum": 20000,
            "default": 800
        }
    },
    "required": [
        "id"
    ],
    "additionalProperties": false
}

Collections and publishing

assemble_galleryPOST

Assemble gallery

{
    "type": "object",
    "properties": {
        "ids": {
            "type": "array",
            "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            },
            "minItems": 1,
            "maxItems": 100
        }
    },
    "required": [
        "ids"
    ],
    "additionalProperties": false
}
build_moodboard_manifestPOST

Build moodboard manifest

{
    "type": "object",
    "properties": {
        "ids": {
            "type": "array",
            "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            },
            "minItems": 1,
            "maxItems": 100
        }
    },
    "required": [
        "ids"
    ],
    "additionalProperties": false
}
build_teaching_packPOST

Build teaching pack

{
    "type": "object",
    "properties": {
        "ids": {
            "type": "array",
            "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            },
            "minItems": 1,
            "maxItems": 24
        }
    },
    "required": [
        "ids"
    ],
    "additionalProperties": false
}
get_artwork_fact_sheetPOST

Get artwork fact sheet

{
    "type": "object",
    "properties": {
        "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        }
    },
    "required": [
        "id"
    ],
    "additionalProperties": false
}
get_daily_selectionPOST

Get daily selection

{
    "type": "object",
    "properties": {},
    "required": [],
    "additionalProperties": false
}
export_collectionPOST

Export collection

{
    "type": "object",
    "properties": {
        "ids": {
            "type": "array",
            "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            },
            "minItems": 1,
            "maxItems": 500
        }
    },
    "required": [
        "ids"
    ],
    "additionalProperties": false
}
find_replacement_imagePOST

Find replacement image

{
    "type": "object",
    "properties": {
        "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        }
    },
    "required": [
        "id"
    ],
    "additionalProperties": false
}
match_saved_briefPOST

Match saved brief

{
    "type": "object",
    "properties": {
        "id": {
            "anyOf": [
                {
                    "type": "integer",
                    "minimum": 1
                },
                {
                    "type": "string",
                    "pattern": "^[1-9][0-9]*$"
                }
            ]
        }
    },
    "required": [
        "id"
    ],
    "additionalProperties": false
}

Data and updates

get_catalogue_facetsPOST

Get catalogue facets

{
    "type": "object",
    "properties": {},
    "required": [],
    "additionalProperties": false
}
get_collection_statisticsPOST

Get collection statistics

{
    "type": "object",
    "properties": {},
    "required": [],
    "additionalProperties": false
}
get_changesPOST

Get changes

{
    "type": "object",
    "properties": {
        "cursor": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9223372036854775807,
            "default": 0
        }
    },
    "required": [],
    "additionalProperties": false
}
get_asset_changesPOST

Get asset changes

{
    "type": "object",
    "properties": {
        "cursor": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9223372036854775807,
            "default": 0
        }
    },
    "required": [],
    "additionalProperties": false
}
get_sourcesPOST

Get sources

{
    "type": "object",
    "properties": {},
    "required": [],
    "additionalProperties": false
}
get_source_statusPOST

Get source status

{
    "type": "object",
    "properties": {
        "id": {
            "type": "string",
            "enum": [
                "met",
                "chicago",
                "cleveland",
                "smithsonian",
                "rijksmuseum"
            ]
        }
    },
    "required": [],
    "additionalProperties": false
}
get_service_cataloguePOST

Get service catalogue

{
    "type": "object",
    "properties": {},
    "required": [],
    "additionalProperties": false
}

Data releases

Responses identify the current catalogue release. Image files have immutable paths, SHA-256 checksums and JSON companions. Catalogue and image release IDs are separate. The change feed currently reports image-release revisions and withdrawals; compare catalogue release IDs to detect a new bulk snapshot.

Download prepared-image catalogue JSONL
YOUR ART WORKSPACE

Connect an agent to your saved work

Use URSY.ID to give an application access to the same private collections and briefs you see on this website. Read the typed workspace operations, or connect through /wp-json/ursy-art/v1/workspace/mcp.

The resource is https://ursy.art/wp-json/ursy-art/v1. Existing accounts start device authorization at https://ursy.id/oidc/device_authorization with client ursy-agent, explicit scopes and a JSON-encoded ursy_art_access selection. Follow the returned verification URL to sign in and approve access at ID. Poll at the returned interval and respect pending, slow-down and expiry responses.

New accounts start at https://ursy.id/api/registrations with login, email, resource, scope and authorization details, then complete email verification and hosted approval. Registering an OAuth application does not create a verified person. Passwords stay on ID's hosted pages.

Explicitly approve your own complete workspace, or select existing collection and brief IDs:

[{"type":"ursy_art_access","locations":["https://ursy.art/wp-json/ursy-art/v1"],"workspace":true,"collection_ids":[],"brief_ids":[]}]

To restrict access, use workspace:false and supply at least one real collection or brief ID. Each ID list supports up to 100 entries. Use the website to choose existing work before approving a restricted connection. Creating new objects requires explicit approval of your own workspace.

The scopes are art.account.read, art.collections.read, art.collections.write, art.briefs.read and art.briefs.write. Read permission does not permit changes. Every write requires an idempotency_key; collection updates and deletion also require the current version. Retry identical requests with the same key for up to 24 hours. Version conflicts require reading the latest collection before preparing a new change.

Every operation checks current ID permission, selected objects and local ownership. Private results contain no sponsorship and are excluded from shared caches and public telemetry. Public sharing, private takeout, image-worker jobs and WordPress administration are not granted by this delegated API.

Redirect applications use PKCE S256, unpredictable state and an exact registered HTTPS callback. Access tokens last at most five minutes. Request offline_access only when needed, save rotated refresh tokens atomically and return to authorization after permission expires or is revoked. Account management uses a separate https://ursy.id/api resource token.

Open collection · 706,931 works · Museum sources. Visible evidence. CONNECTED
A DIFFERENT WAY TO DISCOVER

Follow your inspiration.

Find art with a description, a reference image, or a selected crop.

Private searches run on our local image worker. Inputs expire after one hour and are never added to the public collection.