Skuvix API
Skuvix lets you extract product data from any URL and publish listings to Shopify — with AI-powered optimization. This API covers product import, AI enrichment, Shopify publishing, and store management.
- Connect your Shopify store via OAuth
- Import products from any URL using our extraction engine
- Enhance product data with AI (title, description, tags, pricing)
- Publish optimized listings directly to Shopify
- Manage subscriptions and billing via Stripe
OAuth 2.0
Sign in with Google to get started. Sessions are managed via HTTP-only cookies — no API key needed for browser usage. For server-to-server calls, use JWT bearer tokens.
Authorization: Bearer <YOUR_JWT_TOKEN>Registering
POST /api/auth/register
Body: { "email": "...", "name": "...", "password": "..." }
Response: { "success": true, "userId": "..." }Logging in
POST /api/auth/login
Body: { "email": "...", "password": "..." }
Response: { "success": true, "user": { "id", "email", "name", "plan" } }Import a product
Send a product URL and get back structured product data. Supports Shopify, Amazon, AliExpress, Temu, Alibaba, 1688, and any page with OpenGraph or JSON-LD structured data.
POST /api/import
Authorization: Bearer <token>
Content-Type: application/json
Body: { "url": "https://...", "projectId": "..." }
Response: {
"success": true,
"data": {
"importJobId": "job_...",
"product": {
"id": "...",
"title": "...",
"description": "...",
"price": "29.99",
"currency": "USD",
"image": "https://...",
"images": [...],
"variants": [...],
"confidenceScore": 0.92
}
}
}Demo import (no URL needed)
POST /api/import/demo
Authorization: Bearer <token>
Body: {}
Response: { "success": true, "data": { "jobId": "...", "product": {...} } }Import limits
| Plan | Monthly imports | AI Enrichment |
|---|---|---|
| Free | 5 / 30 days | Limited |
| Starter | 200 / month | Full (Doubao Seed 1.8) |
| Pro | 2,000 / month | Full + priority queue |
| Scale | Unlimited | Full + advanced models |
Publish to Shopify
Once a product is imported and enriched, publish it to your connected Shopify store. The API handles variant mapping, image upload, and inventory sync.
POST /api/products/{productId}/publish
Authorization: Bearer <token>
Body: { "storeId": "store_..." }
Response: {
"success": true,
"data": {
"publishJobId": "job_...",
"remoteProductId": "819...",
"status": "CREATED"
}
}POST /api/publish-jobs/{jobId}/run
Response: { "success": true, "data": { "status": "SUCCESS" } }Getting products
GET /api/products?projectId=...
Response: { "success": true, "data": [...products] }
GET /api/products/{id}
Response: { "success": true, "data": { ...product, variants, options } }AI product optimization
Use AI to rewrite titles, descriptions, and generate tags for better Shopify SEO. Powered by Doubao Seed 1.8 model — multi-modal, optimized for product data.
POST /api/ai/enrich
Authorization: Bearer <token>
Body: {
"title": "Womens Casual Short Sleeve Floral Print Round Neck O-Neck T-Shirt",
"description": "...",
"images": ["https://..."],
"model": "doubao-seed-1-8-251228"
}
Response: {
"success": true,
"data": {
"optimizedTitle": "Women's Casual Floral Print Tee – Lightweight Summer Top",
"rewrittenDescription": "...",
"tags": ["summer", "casual", "floral", "t-shirt", "women"],
"suggestedPrice": 24.99
}
}Translation
POST /api/ai/translate
Body: {
"title": "...",
"description": "...",
"tags": [...],
"targetLanguage": "Simplified Chinese"
}
Response: {
"success": true,
"data": {
"translatedTitle": "...",
"translatedDescription": "...",
"translatedTags": [...]
}
}AI cost by plan
| Plan | AI model | Calls/month |
|---|---|---|
| Free | Limited (5 products) | ~5 |
| Starter | Doubao Seed 1.8 (multi-modal) | 200 |
| Pro | Doubao Seed 1.8 + Doubao Pro 32K | 2,000 |
| Scale | All models + priority | Unlimited |
Connect Shopify stores
Connect one or more Shopify stores via OAuth. Each store gets an access token used for publishing products.
GET /api/stores
Response: { "success": true, "data": [{ "id", "name", "platform", "shopDomain", "isActive" }] }
POST /api/shopify/connect
Response: { "success": true, "data": { "authUrl": "https://..." } }
DELETE /api/stores/{storeId}
Response: { "success": true }Store limits by plan
| Plan | Connected stores |
|---|---|
| Free | 1 store |
| Starter | 3 stores |
| Pro | 5 stores |
| Scale | Unlimited |
Subscription management
Skuvix uses Stripe for subscription billing. Plans: Free, Starter ($29/mo), Pro ($79/mo), Scale ($199/mo). All paid plans include a 14-day free trial.
GET /api/billing
Response: {
"success": true,
"data": {
"user": { "id", "email", "name", "plan" },
"subscription": { "id", "status", "currentPeriodEnd" }
}
}
POST /api/billing/checkout
Body: { "plan": "starter_monthly" }
Response: { "success": true, "data": { "url": "https://checkout.stripe.com/..." } }Plan comparison
| Plan | Price | Imports | Stores | AI |
|---|---|---|---|---|
| Free | $0/mo | 5 / 30d | 1 | Basic |
| Starter | $29/mo | 200/mo | 3 | Full (Seed 1.8) |
| Pro | $79/mo | 2,000/mo | 5 | All models + priority |
| Scale | $199/mo | Unlimited | Unlimited | Advanced + custom |
Events
Receive real-time notifications via webhooks as Stripe subscription events come in. Register your endpoint in the dashboard or via API.
- checkout.session.completed — checkout finished, subscription activated
- customer.subscription.updated — plan changed or renewed
- customer.subscription.deleted — subscription canceled, plan reverted to free
- invoice.payment_failed — payment failed, subscription marked past_due
- invoice.payment_succeeded — renewal payment successful
Payload shape
{
"id": "evt_...",
"type": "customer.subscription.updated",
"createdAt": "2026-01-01T00:00:00Z",
"data": {
"userId": "...",
"plan": "starter",
"status": "active",
"currentPeriodEnd": "2026-02-01T00:00:00Z"
}
}