apyhub
Back
DATA EXTRACTION

Find & Explore Artworks 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)

AttributeTypeMandatoryDescription
typeStringNoArtwork type filter. Pattern: any string, max length 1000.
queryStringYesSearch text. Pattern: any string, max length 300.
numberIntegerNoNumber of results to return. Minimum 1, maximum 10.
offsetIntegerNoPagination offset. Minimum 0, maximum 1000.
originStringNoOrigin filter. Pattern: any string, max length 100.
materialStringNoMaterial filter. Pattern: any string, max length 1000.
max-ratioNumberNoMaximum ratio filter. Minimum 0, maximum 10.
min-ratioNumberNoMinimum ratio filter. Minimum 0, maximum 10.
techniqueStringNoTechnique filter. Pattern: any string, max length 13.
latest-end-dateIntegerNoLatest end date filter.
earliest-end-dateIntegerNoEarliest end date filter.
latest-start-dateIntegerNoLatest start date filter.
earliest-start-dateIntegerNoEarliest 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.

ParameterTypeMandatoryDescription
numberIntegerNoNumber value echoed in the response.
offsetIntegerNoOffset value echoed in the response.
artworksObject ArrayNoList of matching artworks. Each item contains id, image, and title.
artworks[].idIntegerNoArtwork identifier.
artworks[].imageStringNoArtwork image URL or value; nullable.
artworks[].titleStringNoArtwork title; nullable.
availableIntegerNoTotal number of artworks available for the given search criteria.

Query parameters

Name
Type
Description
typeOPTIONAL
string
queryREQUIRED
string
numberOPTIONAL
integer
offsetOPTIONAL
integer
originOPTIONAL
string
materialOPTIONAL
string
max-ratioOPTIONAL
number
min-ratioOPTIONAL
number
techniqueOPTIONAL
string
latest-end-dateOPTIONAL
integer
earliest-end-dateOPTIONAL
integer
latest-start-dateOPTIONAL
integer
earliest-start-dateOPTIONAL
integer
▣ 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)

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

ParameterTypeMandatoryDescription
idIntegerYesArtwork identifier.
imageStringNoArtwork image URL or reference. Nullable.
titleStringNoArtwork title. Nullable.
end_dateIntegerNoArtwork end date.
start_dateIntegerNoArtwork start date.
descriptionStringNoArtwork description. Nullable.

Path parameters

Name
Type
Description
idREQUIRED
string
The numeric id of the artwork.
▣ 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.

ParameterTypeMandatoryDescription
idIntegerYesArtwork identifier.
imageStringYesArtwork image reference or URL. Nullable.
titleStringYesArtwork title. Nullable.
end_dateIntegerYesArtwork end date.
start_dateIntegerYesArtwork start date.
descriptionStringYesArtwork description. Nullable.
authorStringNoArtist name. Nullable.
originStringNoCountry/region of origin. Nullable.
art_types[]Array of StringsNoArtwork type tags, e.g. photograph.
subjects[]Array of StringsNoSubject tags, e.g. dish.
materials[]Array of StringsNoMaterial tags, e.g. paper, silver.
techniques[]Array of StringsNoTechnique tags, e.g. photographing.

Parameters

No parameters.
▣ 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.