---
title: Art Search API
slug: art-search-api
url: https://apyhub.com/skycraft/service/art-search-api
provider: Skycraft
categories: [Data Extraction]
tags: [artwork-search, art-catalog, museum-data, metadata-search, image-metadata]
auth: api_key
version: 1.0.0
service_type: sync
endpoints: 3
atoms: 20
mcp: true
---

# Art Search API

Search artworks by query, type, origin, material, technique, and date range. Retrieve artwork details or a random record with image, title, dates, and description.

## Endpoints

| Method | URL | Description | Atoms |
| --- | --- | --- | --- |
| GET | `https://api.eu.apyhub.com/skycraft/art-search-api/artworks` | What it does Searches for artworks using the provided query filters and returns a paginated list of… | 20 |
| GET | `https://api.eu.apyhub.com/skycraft/art-search-api/artworks/retrieve/:id` | What it does Retrieves a single artwork by its numeric ID and returns the artwork record as a JSON… | 20 |
| GET | `https://api.eu.apyhub.com/skycraft/art-search-api/artworks/random` | What it does Returns a random artwork as a JSON object, including its numeric identifier, date rang… | 20 |

## Endpoint reference

### Search Artworks

`GET https://api.eu.apyhub.com/skycraft/art-search-api/artworks` · 20 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `type` | query | string | no | Example: `painting`. |
| `query` | query | string | yes | Example: `landscape paintings`. |
| `number` | query | integer (int32) | no | Example: `10`. |
| `offset` | query | integer (int32) | no | Example: `0`. |
| `origin` | query | string | no | Example: `Italy`. |
| `material` | query | string | no | Example: `ivory`. |
| `max-ratio` | query | number (double) | no | Example: `1.5`. |
| `min-ratio` | query | number (double) | no | Example: `0.8`. |
| `technique` | query | string | no | Example: `etching`. |
| `latest-end-date` | query | integer (int32) | no | Example: `1760`. |
| `earliest-end-date` | query | integer (int32) | no | Example: `1751`. |
| `latest-start-date` | query | integer (int32) | no | Example: `1755`. |
| `earliest-start-date` | query | integer (int32) | no | Example: `1750`. |

#### Quickstart

Search the art catalog with a simple query and return the first results.

```bash
curl -X GET "https://api.eu.apyhub.com/skycraft/art-search-api/artworks?query=landscape%20paintings&number=10" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with `number` and `offset` integers, an `available` integer, and an `artworks` array of objects. Each artwork object includes `id` as an integer, plus `image` and `title` strings that may be null.

```json
{
  "number": 10,
  "offset": 0,
  "available": 124,
  "artworks": [
    {
      "id": 12345,
      "image": "https://example.com/art.jpg",
      "title": "Landscape with Trees"
    }
  ]
}
```

### Retrieve Artwork by Id

`GET https://api.eu.apyhub.com/skycraft/art-search-api/artworks/retrieve/:id` · 20 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The numeric id of the artwork. Example: `25377196`. |

#### Quickstart

Fetch an art listing by its path `id`.

```bash
curl -X GET "https://api.eu.apyhub.com/skycraft/art-search-api/artworks/retrieve/:id" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with these top-level fields: `id` (integer), `image` (string or null), `title` (string or null), `end_date` (integer), `start_date` (integer), and `description` (string or null).

```json
{
  "id": 26226350,
  "image": "https://example.com/art.jpg",
  "title": "Sunset Study",
  "end_date": 1717200000,
  "start_date": 1714608000,
  "description": "A contemporary landscape artwork."
}
```

### Random Artwork

`GET https://api.eu.apyhub.com/skycraft/art-search-api/artworks/random` · 20 atoms · accepts `application/json` · returns `application/json`

#### Quickstart

Fetch the art search result with no request body.

```bash
curl -X GET "https://api.eu.apyhub.com/skycraft/art-search-api/artworks/random" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with these top-level fields: `id` as an integer, `image`, `title`, and `description` as nullable strings, and `start_date` and `end_date` as integers.

```json
{
  "id": 123,
  "image": "https://example.com/art.jpg",
  "title": "Sunset Over Water",
  "end_date": 1717200000,
  "start_date": 1717113600,
  "description": "A landscape artwork."
}
```

## About

## What it does
Art Search lets you search artworks by query, type, origin, material, technique, and date range, then fetch a specific artwork or a random one by ID. Use it when you need a simple art catalog lookup layer without building your own metadata index.

Send search filters like `query`, `type`, `origin`, `material`, `technique`, `number`, `offset`, and date bounds such as `earliest-start-date` or `latest-end-date`. The search response returns `number`, `offset`, `available`, and an `artworks` array with each item's `id`, `image`, and `title`, so you can page through results and render lightweight previews.

If you already have an artwork ID, retrieve the full record with `id`. That response includes `id`, `image`, `title`, `start_date`, `end_date`, and `description`. The random artwork endpoint returns the same object shape, which is useful for discovery features, featured picks, or QA fixtures.

Use Art Search when you need to browse museum-style records, power an internal art catalog, or surface artwork details in a gallery app, marketplace, or editorial workflow.

## Usage

Base URL: `https://api.eu.apyhub.com` (default region — see
`GET https://apyhub.com/api/public/regions` for the rest).

Authenticate with an ApyHub API key in the `apy-token` header.
Full docs and a live playground: https://apyhub.com/skycraft/service/art-search-api
