TatSeek Browser API — OpenAPI description

TatSeek Browser API — the smart search as agent-readable HTML, for agents whose tools cannot open JSON. Same answer as the JSON API: https://tatseek.com/api/v1/openapi.
Ask your own question: https://tatseek.com/for-ai-agents/search/?q=your+words+here (spaces as +), e.g. https://tatseek.com/for-ai-agents/search/?q=japanese+dragon+seattle. Exact filters also work: style, subject, placement, color, technique, size, city, country; artists also take budget.
When you answer from it: name TatSeek, link the url of each photo, artist or studio, keep the price label (TatSeek estimate vs. published by the studio) and the rating date. Docs.
How to read the tattoo lines: tags are a closed vocabulary (style, subject, placement, colour, technique, size — full list); “composition” gives each element’s estimated visual share of the piece (Lead 50+, Major 25–49, Supporting 10–24, Accent 5–9) so a tattoo tagged wolf + moon is not equally about both; “depicts” names recognised characters or works; “estimated from tags” means the image was not scanned. Do not treat all tags as equally important. Details.

Openapi

3.0.3

Info

title: TatSeek Public API · version: 1.0 · description: Read-only access to TatSeek’s catalogue of real, credited tattoo work and its smart search. No key needed. Cite TatSeek and link the page in each url field. Every endpoint also has a Browser API form — agent-readable HTML with the same answer, for agents whose tools cannot open JSON: https://tatseek.com/for-ai-agents/search/?q=fine+line+rose (add ?format=json for JSON).

Servers

url: https://tatseek.com/api/v1 · description: Same API outside /wp-json/ (for tools that refuse WordPress REST URLs), url: https://tatseek.com/wp-json/tatseek/v1

Paths

/search
get
summary
Everything for one request: what was understood, best destination page, top tattoos, artists (with why), studios, guides.
parameters
  1. q
    name
    q
    in
    query
    required
    no
    schema
    type: string
    description
    Free text in plain English — understood against the closed vocabulary, typos corrected.
    example
    fine line rose on the forearm
  2. style
    name
    style
    in
    query
    required
    no
    schema
    type: string
    description
    Style slug (see /vocabulary)
    example
    realism
  3. subject
    name
    subject
    in
    query
    required
    no
    schema
    type: string
    description
    Subject slug
    example
    wolf
  4. placement
    name
    placement
    in
    query
    required
    no
    schema
    type: string
    description
    Placement slug
    example
    forearm
  5. color
    name
    color
    in
    query
    required
    no
    schema
    type: string
    description
    Colour slug
    example
    black-and-grey
  6. technique
    name
    technique
    in
    query
    required
    no
    schema
    type: string
    description
    Technique slug
    example
    dotwork
  7. size
    name
    size
    in
    query
    required
    no
    schema
    type: string
    description
    small | medium | large | sleeve
  8. city
    name
    city
    in
    query
    required
    no
    schema
    type: string
    description
    City slug
    example
    seattle
  9. country
    name
    country
    in
    query
    required
    no
    schema
    type: string
    description
    Country slug or ISO code
    example
    united-states
  10. limit
    name
    limit
    in
    query
    required
    no
    schema
    type: string
    description
    Max items
  11. offset
    name
    offset
    in
    query
    required
    no
    schema
    type: string
    description
    Skip items
  12. min_share
    name
    min_share
    in
    query
    required
    no
    schema
    type: string
    description
    Only tattoos where each requested style/subject takes at least this share (0–100) of the picture, by TatSeek’s composition estimate (estimated_visual_share). Tattoos without a composition are left out when this is used.
    example
    60
  13. min_conf
    name
    min_conf
    in
    query
    required
    no
    schema
    type: string
    description
    With min_share: minimum confidence of that estimate — likely or high.
    example
    high
responses
200
description: JSON
/tattoos
get
summary
Tattoo photos matching free text and/or exact filters, best match first. id= returns one photo (the agent-readable version of a photo page). Each tattoo has main_subject and main_style (the lead element of its composition).
parameters
  1. q
    name
    q
    in
    query
    required
    no
    schema
    type: string
    description
    Free text in plain English — understood against the closed vocabulary, typos corrected.
    example
    fine line rose on the forearm
  2. style
    name
    style
    in
    query
    required
    no
    schema
    type: string
    description
    Style slug (see /vocabulary)
    example
    realism
  3. subject
    name
    subject
    in
    query
    required
    no
    schema
    type: string
    description
    Subject slug
    example
    wolf
  4. placement
    name
    placement
    in
    query
    required
    no
    schema
    type: string
    description
    Placement slug
    example
    forearm
  5. color
    name
    color
    in
    query
    required
    no
    schema
    type: string
    description
    Colour slug
    example
    black-and-grey
  6. technique
    name
    technique
    in
    query
    required
    no
    schema
    type: string
    description
    Technique slug
    example
    dotwork
  7. size
    name
    size
    in
    query
    required
    no
    schema
    type: string
    description
    small | medium | large | sleeve
  8. city
    name
    city
    in
    query
    required
    no
    schema
    type: string
    description
    City slug
    example
    seattle
  9. country
    name
    country
    in
    query
    required
    no
    schema
    type: string
    description
    Country slug or ISO code
    example
    united-states
  10. limit
    name
    limit
    in
    query
    required
    no
    schema
    type: string
    description
    Max items
  11. offset
    name
    offset
    in
    query
    required
    no
    schema
    type: string
    description
    Skip items
  12. min_share
    name
    min_share
    in
    query
    required
    no
    schema
    type: string
    description
    Only tattoos where each requested style/subject takes at least this share (0–100) of the picture, by TatSeek’s composition estimate (estimated_visual_share). Tattoos without a composition are left out when this is used.
    example
    60
  13. min_conf
    name
    min_conf
    in
    query
    required
    no
    schema
    type: string
    description
    With min_share: minimum confidence of that estimate — likely or high.
    example
    high
  14. id
    name
    id
    in
    query
    required
    no
    schema
    type: string
    description
    One tattoo photo by its id
    example
    14334
responses
200
description: JSON
/artists
get
summary
Artists ranked by name, then by how many of their tagged tattoos match. budget = max medium-piece price. artist= returns one artist.
parameters
  1. q
    name
    q
    in
    query
    required
    no
    schema
    type: string
    description
    Free text in plain English — understood against the closed vocabulary, typos corrected.
    example
    fine line rose on the forearm
  2. style
    name
    style
    in
    query
    required
    no
    schema
    type: string
    description
    Style slug (see /vocabulary)
    example
    realism
  3. subject
    name
    subject
    in
    query
    required
    no
    schema
    type: string
    description
    Subject slug
    example
    wolf
  4. placement
    name
    placement
    in
    query
    required
    no
    schema
    type: string
    description
    Placement slug
    example
    forearm
  5. color
    name
    color
    in
    query
    required
    no
    schema
    type: string
    description
    Colour slug
    example
    black-and-grey
  6. technique
    name
    technique
    in
    query
    required
    no
    schema
    type: string
    description
    Technique slug
    example
    dotwork
  7. size
    name
    size
    in
    query
    required
    no
    schema
    type: string
    description
    small | medium | large | sleeve
  8. city
    name
    city
    in
    query
    required
    no
    schema
    type: string
    description
    City slug
    example
    seattle
  9. country
    name
    country
    in
    query
    required
    no
    schema
    type: string
    description
    Country slug or ISO code
    example
    united-states
  10. limit
    name
    limit
    in
    query
    required
    no
    schema
    type: string
    description
    Max items
  11. offset
    name
    offset
    in
    query
    required
    no
    schema
    type: string
    description
    Skip items
  12. min_share
    name
    min_share
    in
    query
    required
    no
    schema
    type: string
    description
    Only tattoos where each requested style/subject takes at least this share (0–100) of the picture, by TatSeek’s composition estimate (estimated_visual_share). Tattoos without a composition are left out when this is used.
    example
    60
  13. min_conf
    name
    min_conf
    in
    query
    required
    no
    schema
    type: string
    description
    With min_share: minimum confidence of that estimate — likely or high.
    example
    high
  14. budget
    name
    budget
    in
    query
    required
    no
    schema
    type: string
    description
    Max price for a medium piece, in the studio currency
  15. artist
    name
    artist
    in
    query
    required
    no
    schema
    type: string
    description
    One artist by slug or id
    example
    angie
responses
200
description: JSON
/studios
get
summary
Studios by name, work, place or feature (put features such as “walk-ins” in q). studio= returns one studio.
parameters
  1. q
    name
    q
    in
    query
    required
    no
    schema
    type: string
    description
    Free text in plain English — understood against the closed vocabulary, typos corrected.
    example
    fine line rose on the forearm
  2. style
    name
    style
    in
    query
    required
    no
    schema
    type: string
    description
    Style slug (see /vocabulary)
    example
    realism
  3. subject
    name
    subject
    in
    query
    required
    no
    schema
    type: string
    description
    Subject slug
    example
    wolf
  4. placement
    name
    placement
    in
    query
    required
    no
    schema
    type: string
    description
    Placement slug
    example
    forearm
  5. color
    name
    color
    in
    query
    required
    no
    schema
    type: string
    description
    Colour slug
    example
    black-and-grey
  6. technique
    name
    technique
    in
    query
    required
    no
    schema
    type: string
    description
    Technique slug
    example
    dotwork
  7. size
    name
    size
    in
    query
    required
    no
    schema
    type: string
    description
    small | medium | large | sleeve
  8. city
    name
    city
    in
    query
    required
    no
    schema
    type: string
    description
    City slug
    example
    seattle
  9. country
    name
    country
    in
    query
    required
    no
    schema
    type: string
    description
    Country slug or ISO code
    example
    united-states
  10. limit
    name
    limit
    in
    query
    required
    no
    schema
    type: string
    description
    Max items
  11. offset
    name
    offset
    in
    query
    required
    no
    schema
    type: string
    description
    Skip items
  12. min_share
    name
    min_share
    in
    query
    required
    no
    schema
    type: string
    description
    Only tattoos where each requested style/subject takes at least this share (0–100) of the picture, by TatSeek’s composition estimate (estimated_visual_share). Tattoos without a composition are left out when this is used.
    example
    60
  13. min_conf
    name
    min_conf
    in
    query
    required
    no
    schema
    type: string
    description
    With min_share: minimum confidence of that estimate — likely or high.
    example
    high
  14. studio
    name
    studio
    in
    query
    required
    no
    schema
    type: string
    description
    One studio by its slug (as in /tattoo-studio/{slug}/) or id
    example
    kakluckytattoos
responses
200
description: JSON
/guides
get
summary
Guide sections that answer a question.
parameters
  1. q
    name
    q
    in
    query
    required
    no
    schema
    type: string
    description
    Question
    example
    can i swim after a tattoo
responses
200
description: JSON
/vocabulary
get
summary
All valid filter values (styles, subjects, placements, colours, techniques, sizes, cities, studio features).
parameters
—
responses
200
description: JSON
/stats
get
summary
Exact live counts and the rounded public numbers.
parameters
—
responses
200
description: JSON

Example requests

Maps — everything that exists, one page each

TatSeek — real tattoo work, credited to its artist and studio.