Discover/Vistaprint API
live

Vistaprint APIvistaprint.com

Access Vistaprint's catalog of 6,400+ products via 4 endpoints. Browse categories, search by keyword, and retrieve pricing matrices, quantities, and variants.

Endpoint health
verified 4d ago
get_categories
get_products_by_category
search_products
get_product_details
4/4 passing latest checkself-healing
Endpoints
4
Updated
26d ago

What is the Vistaprint API?

The Vistaprint API covers 6,400+ products across 4 endpoints, giving developers structured access to the full catalog including categories, pricing, quantities, and product variants. The get_product_details endpoint returns a complete pricing matrix keyed by quantity, option groups with available choices, and both list and discounted unit prices — all addressable by product ID retrieved from search_products or get_products_by_category.

Try it

No input parameters required.

api.parse.bot/scraper/96c9bdb9-fcb3-4dba-9644-21ce045ddaa8/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/96c9bdb9-fcb3-4dba-9644-21ce045ddaa8/get_categories' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 vistaprint-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.

"""Walkthrough: Vistaprint SDK — browse categories, search products, get pricing details."""
from parse_apis.vistaprint_products_api import Vistaprint, Category, CategoryLevel, ProductNotFound

client = Vistaprint()

# Discover catalog structure — single call, returns full category hierarchy.
catalog = client.categorycatalogs.get()
print(f"Catalog: {catalog.total_products} products across {len(catalog.top_level_categories)} top-level categories")
for cat in catalog.top_level_categories[:3]:
    print(f"  {cat.category_id}: {cat.product_count} products")

# Search products by keyword — paginated, capped at 3 items.
for item in client.productsummaries.search(query="business cards", limit=3):
    print(f"Found: {item.name} (${item.pricing.min_discounted_price}) — {item.rating.average}/5" if item.rating else f"Found: {item.name}")

# Browse a specific category using constructible Category.
biz_cards = Category(category_id="businessCards")
for item in biz_cards.products.list(category_level=CategoryLevel._0, limit=2):
    print(f"  [{item.product_id}] {item.name}, in stock: {item.in_stock}")

# Drill into full product detail from a search result.
first = client.productsummaries.search(query="mugs", limit=1).first()
if first:
    detail = first.details()
    print(f"Detail: {detail.name} — {len(detail.options)} option groups, {len(detail.compatible_quantities)} quantities")
    for qty_key, tier in list(detail.pricing_by_quantity.items())[:2]:
        print(f"  Qty {tier.quantity}: ${tier.unit_discounted_price}/unit ({tier.currency})")

# Typed error handling — catch not-found for an invalid product ID.
try:
    client.products.get(product_id="PRD-INVALID999")
except ProductNotFound as exc:
    print(f"Expected error: {exc}")

print("Exercised: categorycatalogs.get / productsummaries.search / category.products.list / details / products.get")
All endpoints · 4 totalmissing one? ·

Get all product categories with product counts. Returns a 3-level category hierarchy (top-level, subcategories level 1, subcategories level 2) with the number of products in each category. Use the returned category_id values as input to get_products_by_category.

Input

No input parameters required.

Response
{
  "type": "object",
  "fields": {
    "total_products": "integer - total number of products in catalog",
    "top_level_categories": "array of CategoryCount objects",
    "subcategories_level_1": "array of CategoryCount objects",
    "subcategories_level_2": "array of CategoryCount objects",
    "subcategories_level_3": "array of CategoryCount objects (may be empty)"
  },
  "sample": {
    "data": {
      "total_products": 6766,
      "top_level_categories": [
        {
          "level": 0,
          "category_id": "promotionalProducts",
          "product_count": 3466
        },
        {
          "level": 0,
          "category_id": "clothingAndBags",
          "product_count": 2856
        }
      ],
      "subcategories_level_1": [
        {
          "level": 1,
          "category_id": "bags",
          "product_count": 1092
        }
      ],
      "subcategories_level_2": [
        {
          "level": 2,
          "category_id": "personalizedPens",
          "product_count": 504
        }
      ],
      "subcategories_level_3": []
    },
    "status": "success"
  }
}

About the Vistaprint API

Category Navigation

The get_categories endpoint returns a 3-level hierarchy: top-level categories, two levels of subcategories, and an optional third level. Each node carries a category_id, its level, and a product_count. These IDs feed directly into get_products_by_category, which accepts the category param plus an optional category_level integer (0 = top, 1 = sub, 2 = sub-sub) to target the right tier. Results are paginated with 0-indexed page and a max limit of 100 per request; the response includes total_pages and total_products for full traversal.

Product Search and Listing

search_products accepts a free-text query and returns matching product objects alongside a category_breakdown object that maps top-level category IDs to counts — useful for understanding how a search term distributes across product lines like business cards, apparel, or signage. Each product object in both search and category responses includes product_id, name, quantities (with MOQ, default, and recommended values), pricing, rating, and categories.

Product Details and Pricing Matrix

get_product_details takes a product_id (e.g., PRD-0BKUQJYW) and returns the full option surface: an options array of named groups with available choices, a compatible_options map, and a compatible_quantities array of valid order sizes. The pricing_by_quantity object maps each quantity to total_list_price, total_discounted_price, unit_list_price, and unit_discounted_price, making it straightforward to build price-break comparisons. An optional product_version param can pin a specific version; if omitted, the current version is resolved automatically.

Reliability & maintenanceVerified

The Vistaprint API is a managed, monitored endpoint for vistaprint.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when vistaprint.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 vistaprint.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.

Last verified
4d ago
Latest check
4/4 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a custom Vistaprint price comparison tool that renders unit price vs. order quantity using pricing_by_quantity data.
  • Sync Vistaprint's full product catalog into an internal procurement system using paginated get_products_by_category calls.
  • Power a print-on-demand configurator by surfacing available option groups and compatible quantities from get_product_details.
  • Identify minimum order quantities across product lines using the MOQ field returned in product listing responses.
  • Aggregate category-level product counts from get_categories to build a catalog overview dashboard.
  • Use search_products with the category_breakdown response field to classify what product types match a given keyword.
  • Monitor discounted vs. list pricing across 6,400+ SKUs to detect promotional changes over time.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does Vistaprint have an official developer API?+
Vistaprint does not publish a public developer API. There is no documented REST or GraphQL interface available to third-party developers on their site.
What does `get_product_details` return beyond basic product info?+
It returns a full pricing_by_quantity matrix with total and unit prices (both list and discounted) for every valid order quantity, an options array of configurable groups and their available choices, a compatible_options map, and the compatible_quantities array. The mpv_id field provides the merchandising product view identifier alongside the standard product_id.
How does pagination work when browsing categories?+
get_products_by_category and search_products both use 0-indexed page numbers with a maximum limit of 100 products per request. Each response includes total_pages, current_page, and total_products (or total_results for search) so you can determine how many requests are needed to exhaust a category or query.
Does the API return product images or design template information?+
Not currently. The API covers names, pricing, quantities, option groups, ratings, and category data, but does not expose image URLs or design template metadata. You can fork this API on Parse and revise it to add an endpoint targeting product image or template data.
Can I retrieve order history or account-specific pricing?+
Not currently. The API covers catalog data — products, categories, pricing matrices, and search results — available without authentication. Account-specific data such as past orders or negotiated pricing is not exposed. You can fork this API on Parse and revise it to add endpoints for authenticated account data if your use case requires it.
Page content last updated . Spec covers 4 endpoints from vistaprint.com.
Related APIs in EcommerceSee all →
vinted.de API
Search and browse secondhand items on Vinted.de with customizable filters to find exactly what you're looking for. Get detailed product information including descriptions, categories, colors, and pricing to make informed purchasing decisions.
moo.com API
Retrieve product listings, categories, pricing details, and search results from MOO.com. Access Trustpilot ratings and detailed pricing calculations across product types and quantity tiers.
bhphotovideo.com API
Search and browse B&H Photo's massive inventory of cameras, electronics, and photography gear with instant access to pricing, specifications, images, and customer reviews. Filter products by category, compare detailed specs, and discover used items all in one integrated platform.
quince.com API
Search and browse Quince's product catalog across women's clothing and all other categories, getting detailed information like prices, descriptions, and availability for each item. Explore product categories to discover collections and find exactly what you're looking for on Quince.
sanmar.com API
Search SanMar's product catalog to browse t-shirts and other apparel by category, view detailed product information including sizes and MSRP pricing. Access wholesale pricing and real-time inventory data with a B2B account.
verkkokauppa.com API
Search and browse products from Verkkokauppa.com to find items across categories, check real-time prices and availability, read customer reviews, and discover deals in outlet and clearance sections. Filter products by your preferences and get detailed product information including specifications and store stock levels.
lowes.com API
Search and browse products from Lowe's, including product listings by category, detailed product information, and pricing. Retrieve comprehensive details on specific items to compare options and make informed purchasing decisions.
sephora.com API
Search and browse Sephora's product catalog to find detailed information about beauty items, including specifications, customer reviews, Q&A discussions, pricing, and real-time availability. Filter products by category or brand, and access comprehensive brand listings to discover exactly what you're looking for.