TeePublic APIteepublic.com ↗
Access TeePublic product listings, artist profiles, design catalogs, and featured creators via 6 structured endpoints. Search by keyword, product type, and more.
What is the TeePublic API?
The TeePublic API exposes 6 endpoints covering product search, product details, artist profiles, artist designs, product type listings, and featured creators from TeePublic's print-on-demand marketplace. The search_products endpoint accepts a keyword query plus an optional product_type slug — covering t-shirts, hoodies, mugs, hats, socks, and bags — and returns paginated results with title, artist name, price, sale status, and image URL per product.
curl -X GET 'https://api.parse.bot/scraper/119fee6a-e764-4179-bb13-c099c8937222/search_products?page=1&sort=popular&query=cat&product_type=t-shirts' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace teepublic-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.teepublic_api import TeePublic, Sort, Product, Artist, FeaturedArtist, ProductType
client = TeePublic(api_key="YOUR_API_KEY")
# Search for cat-themed t-shirts sorted by newest
for product in client.products.search(query="cat", sort=Sort.NEWEST, product_type="t-shirts"):
print(product.title, product.price, product.is_on_sale, product.image_url)
# Get full details for a specific product
detail = client.productdetails.get(url="https://www.teepublic.com/t-shirt/81397466-kawaii-ramen-cat-retro-japanese-noodles-artwork")
print(detail.title, detail.price, detail.currency)
print(detail.sizes, detail.colors)
for related in detail.related_products:
print(related.title, related.url)
# Fetch an artist profile and browse their designs
artist = client.artists.get(username="thepeachfuzz")
print(artist.name, artist.bio)
for design in artist.designs():
print(design.title, design.product_url)
# List featured artists
for featured in client.artists.featured():
print(featured.username, featured.url, featured.avatar_url)
# List available product types
for pt in client.producttypes.list():
print(pt.name, pt.slug)
Full-text search over TeePublic products by keyword. Results are scoped to a product type (defaults to t-shirts) and ordered by the chosen sort. Paginates via integer page number. Each result includes title, price, artist name, and image URL.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| sort | string | Sort order for results. |
| queryrequired | string | Search keyword. |
| product_type | string | Product type slug to search within. Common values: t-shirts, hoodie, mug, hats, kids-t-shirt, socks, bags. |
{
"type": "object",
"fields": {
"products": "array of product objects with title, product_url, artist, price, is_on_sale, image_url",
"total_pages_approx": "integer, approximate number of pages available"
},
"sample": {
"data": {
"page": "1",
"query": "cat",
"products": [
{
"price": "$24",
"title": "Kawaii Ramen Cat Retro Japanese Noodles Artwork T-Shirt",
"artist": "ThatHorrorBozo",
"image_url": "https://images.teepublic.com/derived/production/designs/81397466_0/1759808028/i_p:c_191919,s_313,q_90.jpg",
"artist_url": null,
"is_on_sale": false,
"product_url": "https://www.teepublic.com/t-shirt/81397466-kawaii-ramen-cat-retro-japanese-noodles-artwork"
}
],
"total_pages_approx": 7
},
"status": "success"
}
}About the TeePublic API
Product Search and Detail
The search_products endpoint takes a required query string and optional product_type slug (e.g. hoodie, mug, socks), sort order, and integer page for pagination. Each result in the products array includes title, product_url, artist, price, is_on_sale, and image_url. The total_pages_approx field lets you estimate how many pages of results exist for a given query. For deeper data on a single item, get_product_details accepts a full URL or relative path and returns structured fields: sku, fits, sizes, colors, styles, price, currency, artist, and title — enough to reconstruct the full variant matrix for a product.
Artist Data
Three endpoints cover artists. get_artist_profile takes a username (the path segment from teepublic.com/user/<username>) and returns name, bio, avatar_url, and social_links. get_artist_designs paginates through a specific artist's storefront, returning the same product-object shape as search results. get_featured_artists requires no inputs and returns the current weekly curated list of highlighted creators, each with username, url, avatar_url, and social_links.
Navigation and Taxonomy
list_product_types returns the full set of available product categories as an array of objects, each with a name display label and a slug suitable for use as the product_type parameter in search_products. This endpoint is useful for dynamically building category filters without hardcoding slugs.
The TeePublic API is a managed, monitored endpoint for teepublic.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when teepublic.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official teepublic.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a custom storefront that surfaces TeePublic products filtered by type (e.g. mugs or hoodies) using
search_productswith aproduct_typeslug - Track price and sale status changes for a watchlist of specific products using
get_product_detailswith their URLs - Aggregate artist bios, avatars, and social links from
get_artist_profileto build a creator directory - Paginate through an artist's full design catalog using
get_artist_designsto index their product listings - Populate a weekly 'featured creators' section in an app using
get_featured_artistswithout manual curation - Enumerate all available product type slugs dynamically with
list_product_typesto keep category filters in sync with TeePublic's catalog - Compare available sizes, colors, and fits across multiple products by calling
get_product_detailsfor each and inspecting thesizes,colors, andfitsarrays
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does TeePublic have an official public developer API?+
What does `get_product_details` return beyond what `search_products` includes?+
search_products returns a summary per product: title, artist, price, sale flag, and image URL. get_product_details adds structured variant data — sizes, colors, fits, styles, sku, and currency — that is not present in search result objects.How does pagination work across endpoints?+
search_products and get_artist_designs accept an integer page parameter and return a total_pages_approx field. This value is approximate, so treat it as a ceiling estimate rather than an exact page count. get_featured_artists and list_product_types return flat lists with no pagination.Does the API return customer reviews or ratings for products?+
Can I retrieve products from a specific TeePublic topic or collection beyond the artist and product-type filters?+
list_product_types, but there is no dedicated endpoint for browsing by topic URL. search_products accepts query and product_type as filters. You can fork this API on Parse and revise it to add a topic-browse endpoint using the slugs returned by list_product_types.