Skip to content

API ​

Base URL: https://api.artlove365.com. Machine-readable spec: /v1/openapi.json.

MethodPathPurpose
GET/v1/artists?page=Published artists (48/page, total)
GET/v1/artists/{slug}?page=Artist + works + main movements
GET/v1/artworks?q=&artist=&featured=1&page=Artworks (search in any language)
GET/v1/artworks/by-slugs?slugs=a,bCards for a list (favorites)
GET/v1/artworks/{slug}Artwork + artist + taxa + related
GET/v1/taxa/{museums|movements|subjects|genres}?page=Browse pages with ≥ 3 works
GET/v1/taxa/{kind}/{slug}?page=One browse page + works + top artists
GET/v1/seo/sitemaps, /v1/seo/sitemaps/{type}/{chunk}Sitemap data
GET/v1/account/config, /v1/account/meSign-in config, current user
POST/v1/account/auth/google, /v1/account/auth/logoutSign in / out
GET/PUT/DELETE/v1/account/favorites[/{slug}], POST /mergeFavorites
POST/v1/uploadsUpload a customer photo (body = image bytes, `Content-Type: image/jpeg
POST/v1/ordersCreate an order → { code, total, checkoutUrl }
GET/v1/orders/{code}?email=Order status + history (email must match)
POST/v1/payments/stripe-webhookStripe webhook (signature verified)
GET/v1/admin/orders?status=Staff: list orders (Authorization: Bearer $ADMIN_TOKEN)
POST/v1/admin/orders/{code}/statusStaff: { status, note?, trackingNumber? }
GET/v1/admin/seo/stats · POST /v1/admin/seo/publish {count}Staff: SEO growth, publish now

All amounts are integer US cents. Errors: { "error": { "code", "message" } }.