apyhub
Back
▣ DATA EXTRACTION

Art Search API

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.

▣ ENDPOINT 01 / 03
GET
Search Artworks
https://api.eu.apyhub.com/skycraft/art-search-api/artworks

QUICKSTART

GUIDE

Quickstart

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

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.

{
  "number": 10,
  "offset": 0,
  "available": 124,
  "artworks": [
    {
      "id": 12345,
      "image": "https://example.com/art.jpg",
      "title": "Landscape with Trees"
    }
  ]
}
TRY ITLIVE · 20 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Searches for artworks using the provided query filters and returns a paginated list of matching artworks. The response includes the requested number, offset, a collection of artworks, and the total available count.

Query Parameter(s)

AttributeTypeDescription
typeStringArtwork type filter. Pattern: any string, max length 1000.
queryStringSearch text. Pattern: any string, max length 300.
numberIntegerNumber of results to return. Minimum 1, maximum 10.
offsetIntegerPagination offset. Minimum 0, maximum 1000.
originStringOrigin filter. Pattern: any string, max length 100.
materialStringMaterial filter. Pattern: any string, max length 1000.
max-ratioNumberMaximum ratio filter. Minimum 0, maximum 10.
min-ratioNumberMinimum ratio filter. Minimum 0, maximum 10.
techniqueStringTechnique filter. Pattern: any string, max length 13.
latest-end-dateIntegerLatest end date filter.
earliest-end-dateIntegerEarliest end date filter.
latest-start-dateIntegerLatest start date filter.
earliest-start-dateIntegerEarliest start date filter.

Response

Returns a JSON object with number and offset integers, an artworks array of objects, and an available integer. Each artwork item contains an id integer, plus nullable image and title string fields.

ParameterTypeDescription
numberIntegerNumber value echoed in the response.
offsetIntegerOffset value echoed in the response.
artworksObject ArrayList of matching artworks. Each item contains id, image, and title.
artworks[].idIntegerArtwork identifier.
artworks[].imageStringArtwork image URL or value; nullable.
artworks[].titleStringArtwork title; nullable.
availableIntegerTotal number of artworks available for the given search criteria.
▣ ENDPOINT 02 / 03
GET
Retrieve Artwork by Id
https://api.eu.apyhub.com/skycraft/art-search-api/artworks/retrieve/:id

QUICKSTART

GUIDE

Quickstart

Fetch an art listing by its path id.

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).

{
  "id": 26226350,
  "image": "https://example.com/art.jpg",
  "title": "Sunset Study",
  "end_date": 1717200000,
  "start_date": 1714608000,
  "description": "A contemporary landscape artwork."
}
TRY ITLIVE · 20 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
The numeric id of the artwork.

About this endpoint

What it does

Retrieves a single artwork by its numeric ID and returns the artwork record as a JSON object.

Path Parameter(s)

AttributeTypeDescription
idIntegerArtwork identifier in int32 format, minimum 0, maximum 99999999.

Response

Returns a JSON object with the artwork fields id (integer), image (string, nullable), title (string, nullable), end_date (integer), start_date (integer), and description (string, nullable).

ParameterTypeDescription
idIntegerArtwork identifier.
imageStringArtwork image URL or reference. Nullable.
titleStringArtwork title. Nullable.
end_dateIntegerArtwork end date.
start_dateIntegerArtwork start date.
descriptionStringArtwork description. Nullable.
▣ ENDPOINT 03 / 03
GET
Random Artwork
https://api.eu.apyhub.com/skycraft/art-search-api/artworks/random

QUICKSTART

GUIDE

Quickstart

Fetch the art search result with no request body.

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.

{
  "id": 123,
  "image": "https://example.com/art.jpg",
  "title": "Sunset Over Water",
  "end_date": 1717200000,
  "start_date": 1717113600,
  "description": "A landscape artwork."
}
TRY ITLIVE · 20 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Returns a random artwork as a JSON object, including its numeric identifier, date range, and optional text/image metadata.

Response

Returns a JSON object with id, image, title, end_date, start_date, and description fields.

ParameterTypeDescription
idIntegerArtwork identifier.
imageStringArtwork image reference or URL. Nullable.
titleStringArtwork title. Nullable.
end_dateIntegerArtwork end date.
start_dateIntegerArtwork start date.
descriptionStringArtwork description. Nullable.
authorStringArtist name. Nullable.
originStringCountry/region of origin. Nullable.
art_types[]Array of StringsArtwork type tags, e.g. photograph.
subjects[]Array of StringsSubject tags, e.g. dish.
materials[]Array of StringsMaterial tags, e.g. paper, silver.
techniques[]Array of StringsTechnique tags, e.g. photographing.
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.