getquip APIgetquip.com ↗
Access Quip oral care product details, variant IDs, pricing, and cart management via 3 endpoints covering get_product, add_to_cart, and get_cart.
What is the getquip API?
The Quip Store API provides 3 endpoints for browsing and interacting with the getquip.com oral care catalog. Use get_product to retrieve full product details — including all variant IDs, pricing, SKUs, availability flags, and HTML descriptions — then pass a variant ID to add_to_cart to build a session cart and get_cart to read back item counts, line items, and totals in cents.
curl -X POST 'https://api.parse.bot/scraper/14e91d6e-ad5d-47fd-acb7-9109f269624c/add_to_cart' \
-H 'X-API-Key: $PARSE_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"quantity": "1",
"selling_plan": "3572760650"
}'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 getquip-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: quip store SDK — browse products, add to cart, view cart."""
from parse_apis.getquip_com_api import Quip, ProductNotFound
client = Quip()
# Look up a product by its handle to get variant info
try:
product = client.products.get(handle="dusk-quip-ultra-next-generation-smart-sonic-electric-toothbrush")
print(f"Product: {product.title} ({product.product_type})")
for variant in product.variants:
print(f" Variant {variant.id}: {variant.title} - ${variant.price}")
except ProductNotFound as exc:
print(f"Product not found: {exc}")
# Add the first variant to the cart
added = client.carts.add_item(
variant_id=str(product.variants[0].id),
quantity=1,
limit=1
).first()
if added:
print(f"Added to cart: {added.title} x{added.quantity} (price: {added.price})")
# View the current cart state
cart = client.carts.view()
print(f"Cart total: {cart.total_price} {cart.currency}, {cart.item_count} item(s)")
for item in cart.line_items:
print(f" - {item.product_title} ({item.variant_title}) x{item.quantity}")
print("exercised: products.get / carts.add_item / carts.view")
Add a product variant to the shopping cart. Requires a Shopify variant ID (obtainable from get_product). Optionally specify quantity and a selling plan ID for subscription pricing. Returns details of the items successfully added. Each call creates a fresh cart session unless chained with get_cart via session persistence.
| Param | Type | Description |
|---|---|---|
| quantity | integer | Number of units to add to cart. |
| variant_idrequired | string | Numeric Shopify variant ID identifying the specific product variant to add (e.g. '41853010575434'). Obtain from get_product endpoint's variants[*].id field. |
| selling_plan | string | Numeric Shopify selling plan ID for subscription pricing. When provided, the item is added at the subscription discount price. |
{
"type": "object",
"fields": {
"items_added": "array of cart item objects with variant_id, product_id, title, quantity, price, and other details"
},
"sample": {
"items_added": [
{
"key": "41853010575434:4f1f44c2856c2652cde9137b3cb5b432",
"sku": "900-00427",
"url": "/products/dusk-quip-ultra-next-generation-smart-sonic-electric-toothbrush?selling_plan=3572760650&variant=41853010575434",
"image": "https://cdn.shopify.com/s/files/1/0576/7780/7690/files/2501_MKT_Ultra_PDP_ProductImg_Hero_Dusk_1.jpg?v=1737939561",
"price": 10000,
"title": "Ultra Next Generation Smart Sonic Electric Toothbrush - Dusk",
"handle": "dusk-quip-ultra-next-generation-smart-sonic-electric-toothbrush",
"vendor": "quip",
"quantity": 1,
"product_id": 7867221639242,
"variant_id": 41853010575434,
"product_type": "Electric Toothbrushes",
"product_title": "Ultra Next Generation Smart Sonic Electric Toothbrush",
"variant_title": "Dusk",
"original_price": 10000,
"requires_shipping": true,
"selling_plan_allocation": {
"price": 10000,
"compare_at_price": 11000,
"selling_plan_name": "Qualifies for quip Perks credits! You will be charged $8 for a brush head refill every 3 months. Tax and shipping are not included. No obligation, modify or cancel your subscription with ease."
}
}
]
}
}About the getquip API
Product Data
The get_product endpoint accepts a handle parameter — the URL slug for a product, such as dusk-quip-ultra-next-generation-smart-sonic-electric-toothbrush — and returns a structured object covering id, title, vendor, product_type, description (HTML), options, images, and a variants array. Each variant object includes its id (needed downstream), title, price, sku, and available boolean. This is the entry point for discovering the exact variant_id values required by the cart endpoints.
Cart Management
add_to_cart takes a required variant_id string, an optional quantity integer, and an optional selling_plan string. Providing a selling_plan ID switches the line item to subscription pricing rather than one-time purchase pricing. The response contains an items_added array where each object carries variant_id, product_id, title, quantity, price, and additional detail fields. Note that each call initiates a fresh cart session unless session continuity is maintained.
Cart Retrieval
get_cart retrieves the current session cart and returns an items array of line item objects, a token string, currency code, item_count integer, and total_price as an integer in cents. The endpoint requires a session_id and encryption_key obtained from the session established during add_to_cart. Calling get_cart without a prior add_to_cart in the same session returns an empty cart.
The getquip API is a managed, monitored endpoint for getquip.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when getquip.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 getquip.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?+
- Pull all variant IDs and prices for a product to build a Quip product comparison table
- Programmatically add subscription-priced toothbrush variants using a selling_plan ID to test checkout flows
- Retrieve cart totals in cents via get_cart to verify pricing logic in a storefront integration
- Check variant availability flags to filter out out-of-stock SKUs before surfacing products
- Collect product images and HTML descriptions to populate a third-party content hub
- Automate cart-building workflows that iterate over multiple variant IDs and validate item_count responses
| 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 Quip have an official developer or storefront API?+
What does get_product return beyond basic pricing?+
variants array — each entry includes id, title, price, sku, and available — plus a description field in HTML, an images array, options (such as color or size configurations), vendor, and product_type. The variant id values are what you pass to add_to_cart.Does the API support browsing the full product catalog or searching across products?+
Can I retrieve order history or account details through this API?+
What is the behavior if I call get_cart without first calling add_to_cart?+
add_to_cart call in the same session, get_cart returns an empty cart — item_count will be 0 and the items array will be empty. The session_id and encryption_key inputs are required and originate from the add_to_cart session.