{"openapi":"3.1.0","info":{"title":"Womp World read API","version":"1.0.0","summary":"Read-only JSON over the womp archive: photographs, photographers, parcels and archive totals.","description":"Every womp Womp World has ever seen, by time, by photographer or by parcel, plus the archive totals llms.txt quotes. No key, no sign-in, GET only: this mirrors the same data the pages themselves render, kept to a stable shape. Errors use RFC 9457 application/problem+json.","contact":{"name":"Womptron","url":"https://womp.world/contact"}},"servers":[{"url":"https://womp.world"}],"paths":{"/api/v1/stats":{"get":{"operationId":"getStats","summary":"Archive totals: womps, photographers, parcels, gatherings, date range.","responses":{"200":{"description":"Archive totals.","content":{"application/json":{"schema":{"type":"object","properties":{"womps":{"type":"integer"},"photographers":{"type":"integer"},"parcels":{"type":"integer"},"gatherings":{"type":"integer"},"wompsThisWeek":{"type":"integer"},"wompsThisMonth":{"type":"integer"},"dateRange":{"type":["object","null"],"properties":{"from":{"type":"string","format":"date"},"to":{"type":"string","format":"date"}}},"monthsCovered":{"type":"integer"},"generatedAt":{"type":"string","format":"date-time"}}}}}}}}},"/api/v1/womps":{"get":{"operationId":"listWomps","summary":"Womps newest first, optionally filtered by photographer or parcel.","parameters":[{"name":"author","in":"query","description":"A photographer wallet address (0x…), case-insensitive.","schema":{"type":"string"}},{"name":"parcel","in":"query","description":"A parcel id.","schema":{"type":"integer"}},{"name":"before","in":"query","description":"Return womps with an id below this one: the `next` cursor from a previous page.","schema":{"type":"integer"}},{"name":"limit","in":"query","description":"Page size, 1 to 50.","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}}],"responses":{"200":{"description":"A page of womps.","content":{"application/json":{"schema":{"type":"object","properties":{"womps":{"type":"array","items":{"type":"object","description":"One in-world photograph.","properties":{"id":{"type":"integer"},"url":{"type":"string","format":"uri"},"imageUrl":{"type":"string","format":"uri"},"content":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"coords":{"type":["string","null"]},"author":{"type":"object","properties":{"address":{"type":"string"},"name":{"type":"string"},"url":{"type":"string","format":"uri"}},"required":["address","name","url"]},"parcel":{"type":["object","null"],"properties":{"id":{"type":"integer"},"name":{"type":["string","null"]},"island":{"type":["string","null"]},"url":{"type":"string","format":"uri"}}}},"required":["id","url","imageUrl","createdAt","author","parcel"]}},"next":{"type":["integer","null"],"description":"Pass as `before` to fetch the next page; null on the last one."}}}}}}}}},"/api/v1/womps/{id}":{"get":{"operationId":"getWomp","summary":"One womp by id.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"The womp.","content":{"application/json":{"schema":{"type":"object","description":"One in-world photograph.","properties":{"id":{"type":"integer"},"url":{"type":"string","format":"uri"},"imageUrl":{"type":"string","format":"uri"},"content":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"coords":{"type":["string","null"]},"author":{"type":"object","properties":{"address":{"type":"string"},"name":{"type":"string"},"url":{"type":"string","format":"uri"}},"required":["address","name","url"]},"parcel":{"type":["object","null"],"properties":{"id":{"type":"integer"},"name":{"type":["string","null"]},"island":{"type":["string","null"]},"url":{"type":"string","format":"uri"}}}},"required":["id","url","imageUrl","createdAt","author","parcel"]}}}},"404":{"description":"No resource matches the given id or address.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 application/problem+json.","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"code":{"type":"string"},"detail":{"type":"string"},"instance":{"type":"string"},"help":{"type":"string"}},"required":["type","title","status","code","detail","instance"]}}}}}}},"/api/v1/authors/{handle}":{"get":{"operationId":"getAuthor","summary":"A photographer by wallet address or exact registered name.","parameters":[{"name":"handle","in":"path","required":true,"description":"A wallet address (0x…) or a photographer’s exact name.","schema":{"type":"string"}}],"responses":{"200":{"description":"The photographer.","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string"},"name":{"type":["string","null"]},"url":{"type":"string","format":"uri"},"karma":{"type":"integer"},"wompCount":{"type":"integer"},"parcelsOwned":{"type":"integer"},"wearables":{"type":"integer"},"firstWompAt":{"type":["string","null"],"format":"date-time"},"lastWompAt":{"type":["string","null"],"format":"date-time"}}}}}},"404":{"description":"No resource matches the given id or address.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 application/problem+json.","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"code":{"type":"string"},"detail":{"type":"string"},"instance":{"type":"string"},"help":{"type":"string"}},"required":["type","title","status","code","detail","instance"]}}}}}}},"/api/v1/parcels/{id}":{"get":{"operationId":"getParcel","summary":"A parcel by id, with its womp count and owner.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"The parcel.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":["string","null"]},"address":{"type":["string","null"]},"island":{"type":["string","null"]},"url":{"type":"string","format":"uri"},"wompCount":{"type":"integer"},"owner":{"type":["object","null"],"properties":{"address":{"type":"string"},"name":{"type":["string","null"]}}}}}}}},"404":{"description":"No resource matches the given id or address.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 application/problem+json.","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"code":{"type":"string"},"detail":{"type":"string"},"instance":{"type":"string"},"help":{"type":"string"}},"required":["type","title","status","code","detail","instance"]}}}}}}}}}