{"openapi":"3.1.0","info":{"title":"Daybot Store Builder API","version":"0.1.0"},"paths":{"/healthz":{"get":{"tags":["health"],"summary":"Healthz","description":"Handle the health check GET request.\n\nChecks the availability of the asynchronous and synchronous\ndatabase connections, as well as the configuration of the OpenAI\nand OpenRouter LLM providers.\n\nArgs:\n    request (Request): The incoming FastAPI request object.\n\nReturns:\n    dict: A dictionary containing the health status, database\n    connection statuses, and LLM provider configuration details.","operationId":"healthz_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/healthz/bug-report":{"post":{"tags":["bug_report"],"summary":"Create Bug Report","operationId":"create_bug_report_healthz_bug_report_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BugReportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/auth/register":{"post":{"tags":["dropship"],"summary":"Register Dropship User","description":"Register dropship user.","operationId":"register_dropship_user_dropship_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DropshipUserCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DropshipLoginResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/auth/login":{"post":{"tags":["dropship"],"summary":"Login Dropship User","description":"Login dropship user.","operationId":"login_dropship_user_dropship_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DropshipUserLogin"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DropshipLoginResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/auth/password-reset/request":{"post":{"tags":["dropship"],"summary":"Request Dropship Password Reset","description":"Email a password reset link while returning the same response for every account state.","operationId":"request_dropship_password_reset_dropship_auth_password_reset_request_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DropshipPasswordResetRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/auth/password-reset/confirm":{"post":{"tags":["dropship"],"summary":"Confirm Dropship Password Reset","description":"Replace a merchant password after validating and consuming its reset token.","operationId":"confirm_dropship_password_reset_dropship_auth_password_reset_confirm_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DropshipPasswordResetConfirm"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/notifications/device-token":{"post":{"tags":["dropship"],"summary":"Register Push Device Token","description":"Register this device for merchant push notifications (ADR-009).","operationId":"register_push_device_token_dropship_notifications_device_token_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DevicePushTokenRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]},"delete":{"tags":["dropship"],"summary":"Remove Push Device Token","description":"Remove this device's push registration (called on sign-out).","operationId":"remove_push_device_token_dropship_notifications_device_token_delete","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DevicePushTokenRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/notifications/preferences":{"get":{"tags":["dropship"],"summary":"Get Notification Preferences","description":"What this merchant is notified about, plus the catalogue to render.\n\nThe client renders whatever categories the backend declares, so adding a\nnotification type never needs a new app release.","operationId":"get_notification_preferences_dropship_notifications_preferences_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["dropship"],"summary":"Update Notification Preferences","description":"Store this merchant's notification choices.","operationId":"update_notification_preferences_dropship_notifications_preferences_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationPreferencesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/auth/apple/native":{"post":{"tags":["dropship"],"summary":"Dropship Apple Native Login","description":"Native Sign in with Apple for the mobile app (ADR-006, additive).","operationId":"dropship_apple_native_login_dropship_auth_apple_native_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppleNativeLoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/auth/google/login":{"get":{"tags":["dropship"],"summary":"Dropship Google Login","description":"Dropship google login.","operationId":"dropship_google_login_dropship_auth_google_login_get","parameters":[{"name":"ref","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ref"}},{"name":"aff","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aff"}},{"name":"return_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Return To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/auth/google/callback":{"get":{"tags":["dropship"],"summary":"Dropship Google Callback","description":"Dropship google callback.","operationId":"dropship_google_callback_dropship_auth_google_callback_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dropship/auth/me":{"get":{"tags":["dropship"],"summary":"Get Dropship Me","description":"Get dropship me.","operationId":"get_dropship_me_dropship_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DropshipUserResponse"}}}}},"security":[{"HTTPBearer":[]}]},"delete":{"tags":["dropship"],"summary":"Delete Dropship Me","description":"Delete the current merchant account and everything that identifies them.\n\nApp Store guideline 5.1.1(v) requires an in-app delete that actually deletes.\nAnonymizing the row was not enough on three counts, each of which is a real\nfailure and not merely a review risk:\n\n* the linked Apple/Google identity survived, and the OAuth upsert then\n  resurrected the account on the next sign-in;\n* the merchant's storefronts stayed publicly served, still carrying their\n  real business name, email, phone and address, with no way to take them\n  down once the account was gone;\n* push registrations were orphaned, so the device kept receiving sale\n  notifications for an account that no longer existed.","operationId":"delete_dropship_me_dropship_auth_me_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/auth/me/onboarding-survey":{"post":{"tags":["dropship"],"summary":"Submit Onboarding Survey","description":"Record the signup survey (or the skip) so the popup never re-appears.","operationId":"submit_onboarding_survey_dropship_auth_me_onboarding_survey_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardingSurveyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DropshipUserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/auth/me/email-preferences":{"get":{"tags":["dropship"],"summary":"Get Email Preferences","description":"Which Daybot emails this merchant wants. Order and account email are not optional.","operationId":"get_email_preferences_dropship_auth_me_email_preferences_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["dropship"],"summary":"Update Email Preferences","operationId":"update_email_preferences_dropship_auth_me_email_preferences_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailPreferencesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/referrals/me":{"get":{"tags":["dropship"],"summary":"Get My Referrals","description":"Return the current merchant's referral link and reward status.","operationId":"get_my_referrals_dropship_referrals_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/referrals/claim":{"post":{"tags":["dropship"],"summary":"Claim My Referral","description":"Attach a referral code to a newly created unpaid merchant account.","operationId":"claim_my_referral_dropship_referrals_claim_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DropshipReferralClaimRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/subscriptions/plans":{"get":{"tags":["dropship"],"summary":"Get Subscription Plans","description":"Return localized subscription prices without exposing Stripe price IDs.","operationId":"get_subscription_plans_dropship_subscriptions_plans_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dropship/subscriptions/promo-code":{"post":{"tags":["dropship"],"summary":"Apply Subscription Promo Code","description":"Apply a promo code that unlocks the premium tier.","operationId":"apply_subscription_promo_code_dropship_subscriptions_promo_code_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoCodeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/subscriptions/apple/verify":{"post":{"tags":["dropship"],"summary":"Verify Apple Iap Subscription","description":"Turn a StoreKit 2 signed transaction into a Pro entitlement.\n\nFeature-flagged off by default (DAYBOT_IAP_ENABLED): 1.0 ships with no iOS\npurchase surface at all, so this must be invisible until the Paid Apps\nAgreement is signed and the products exist (App Store guideline 3.1.1).","operationId":"verify_apple_iap_subscription_dropship_subscriptions_apple_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppleIapVerifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/subscriptions/checkout":{"post":{"tags":["dropship"],"summary":"Create Subscription Checkout","description":"Create subscription checkout.","operationId":"create_subscription_checkout_dropship_subscriptions_checkout_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionCheckoutRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/subscriptions/portal":{"post":{"tags":["dropship"],"summary":"Create Subscription Portal","description":"Create a Stripe Billing Portal session for subscription management.","operationId":"create_subscription_portal_dropship_subscriptions_portal_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionPortalRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/contact/sales":{"post":{"tags":["dropship"],"summary":"Submit Contact Sales","description":"Email a 'Let's talk' inquiry to the Daybot team. Public: usable from the landing page.","operationId":"submit_contact_sales_dropship_contact_sales_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactSalesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/customers/google/login":{"get":{"tags":["dropship"],"summary":"Public Customer Google Login","description":"Public customer google login.","operationId":"public_customer_google_login_dropship_public_stores__slug__customers_google_login_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"return_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Return To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/customers/google/callback":{"get":{"tags":["dropship"],"summary":"Public Customer Google Callback","description":"Public customer google callback.","operationId":"public_customer_google_callback_dropship_public_customers_google_callback_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dropship/public/stores/{slug}/customers/me":{"get":{"tags":["dropship"],"summary":"Get Public Customer Account Me","description":"Get public customer account me.","operationId":"get_public_customer_account_me_dropship_public_stores__slug__customers_me_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/customers/me/orders":{"get":{"tags":["dropship"],"summary":"Get Public Customer Orders","description":"List orders belonging to the signed-in customer for this store only.","operationId":"get_public_customer_orders_dropship_public_stores__slug__customers_me_orders_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/customers/me/address":{"patch":{"tags":["dropship"],"summary":"Update Public Customer Address","description":"Update public customer address.","operationId":"update_public_customer_address_dropship_public_stores__slug__customers_me_address_patch","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerAddressUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/me":{"get":{"tags":["dropship"],"summary":"List My Stores","description":"List my stores.","operationId":"list_my_stores_dropship_stores_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/stores/{store_id}":{"delete":{"tags":["dropship"],"summary":"Delete Store","description":"Soft-delete a store owned by the current user.","operationId":"delete_store_dropship_stores__store_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/from-idea":{"post":{"tags":["dropship"],"summary":"Create Store From Idea","description":"Create store from idea.","operationId":"create_store_from_idea_dropship_stores_from_idea_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreIdeaRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/stores/creator-intake":{"post":{"tags":["dropship"],"summary":"Continue Creator Intake","description":"Use the store model to decide the next pre-build intake question.","operationId":"continue_creator_intake_dropship_stores_creator_intake_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatorIntakeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/stores/from-idea/stream":{"post":{"tags":["dropship"],"summary":"Create Store From Idea Stream","description":"Create store from idea stream.","operationId":"create_store_from_idea_stream_dropship_stores_from_idea_stream_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreIdeaRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/stores/preview/stream":{"post":{"tags":["dropship"],"summary":"Create Store Preview Stream","description":"Reject legacy anonymous generation before it can consume paid services.","operationId":"create_store_preview_stream_dropship_stores_preview_stream_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreIdeaRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/preview/claim":{"post":{"tags":["dropship"],"summary":"Claim Store Preview","description":"Save an anonymous generated preview as a real store for the authenticated user.","operationId":"claim_store_preview_dropship_stores_preview_claim_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorePreviewClaimRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/stores/{store_id}/confirm-batch":{"post":{"tags":["dropship"],"summary":"Confirm Store Product Batch","description":"Confirm store product batch.","operationId":"confirm_store_product_batch_dropship_stores__store_id__confirm_batch_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/theme-chat":{"post":{"tags":["dropship"],"summary":"Update Store Theme","description":"Update store theme.","operationId":"update_store_theme_dropship_stores__store_id__theme_chat_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThemeChatRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/logo-image":{"post":{"tags":["dropship"],"summary":"Upload Store Logo Image","description":"Host a merchant-uploaded logo image so the editor stores a URL rather than a blob.\n\nHosting runs only after the ownership check proves the caller owns the store --\na rejected request must not have written anything -- and off the event loop,\nbecause the R2 put is synchronous urllib.","operationId":"upload_store_logo_image_dropship_stores__store_id__logo_image_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreLogoImageUploadRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/images":{"post":{"tags":["dropship"],"summary":"Upload Store Image","description":"Host a merchant-uploaded product or hero photo and return the URL to put in the field.\n\nThe merchant asked for \"direct manual editing controls ... we can put images\nwithout asking\"; the only upload the dashboard had was the logo. Same shape as\n``upload_store_logo_image``: ownership is proved before a byte is hosted, and the\nsynchronous R2 put runs off the event loop. The returned URL goes through the\nordinary save path -- for a product that means it is PROMOTED to the front of the\ngallery without dropping the supplier photos.","operationId":"upload_store_image_dropship_stores__store_id__images_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreImageUploadRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/customization":{"patch":{"tags":["dropship"],"summary":"Update Store Customization","description":"Update store customization.","operationId":"update_store_customization_dropship_stores__store_id__customization_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreCustomizationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/slug":{"patch":{"tags":["dropship"],"summary":"Update Store Slug","description":"Update store slug.","operationId":"update_store_slug_dropship_stores__store_id__slug_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreSlugRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/history":{"get":{"tags":["dropship"],"summary":"List Store History","description":"List saved versions of a store, newest first.","operationId":"list_store_history_dropship_stores__store_id__history_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/history/{seq}/revert":{"post":{"tags":["dropship"],"summary":"Revert Store To Snapshot","description":"Restore store_json + products from a saved version.\n\nThe slug and domains stay as they are — links keep working — and the\ncurrent state is snapshotted first, so a revert is itself revertible.","operationId":"revert_store_to_snapshot_dropship_stores__store_id__history__seq__revert_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}},{"name":"seq","in":"path","required":true,"schema":{"type":"integer","title":"Seq"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/ai-edit":{"post":{"tags":["dropship"],"summary":"Ai Edit Store","description":"Ai edit store.","operationId":"ai_edit_store_dropship_stores__store_id__ai_edit_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreAgentEditRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/supplier-products/search":{"post":{"tags":["dropship"],"summary":"Search Store Supplier Products","description":"Search live supplier listings without mutating the store.","operationId":"search_store_supplier_products_dropship_stores__store_id__supplier_products_search_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupplierProductSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/winning-products/research":{"get":{"tags":["dropship"],"summary":"List Winning Product Research","description":"List saved product-research reports for the merchant dashboard.","operationId":"list_winning_product_research_dropship_winning_products_research_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["dropship"],"summary":"Research Standalone Winning Products","description":"Create a standalone Pro product-research report before building a store.","operationId":"research_standalone_winning_products_dropship_winning_products_research_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandaloneWinningProductResearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/stores/{store_id}/winning-products/research":{"post":{"tags":["dropship"],"summary":"Research Store Winning Products","description":"Create a transcript-informed winning-product research report for a store.","operationId":"research_store_winning_products_dropship_stores__store_id__winning_products_research_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WinningProductResearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["dropship"],"summary":"List Store Winning Product Research","description":"List saved product-research reports linked to one merchant store.","operationId":"list_store_winning_product_research_dropship_stores__store_id__winning_products_research_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/winning-products/import":{"post":{"tags":["dropship"],"summary":"Import Store Winning Research Products","description":"Batch-import selected saved research candidates into a store.","operationId":"import_store_winning_research_products_dropship_stores__store_id__winning_products_import_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchProductImportRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/winning-products/link":{"post":{"tags":["dropship"],"summary":"Link Store Winning Research","description":"Link a saved standalone research report to the store it created.","operationId":"link_store_winning_research_dropship_stores__store_id__winning_products_link_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchJobLinkRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/supplier-products/import":{"post":{"tags":["dropship"],"summary":"Import Store Supplier Product","description":"Re-run the supplier search and import one server-verified listing.","operationId":"import_store_supplier_product_dropship_stores__store_id__supplier_products_import_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupplierProductImportRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/products/{external_id}":{"patch":{"tags":["dropship"],"summary":"Update Store Product Customization","description":"Update store product customization.","operationId":"update_store_product_customization_dropship_stores__store_id__products__external_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}},{"name":"external_id","in":"path","required":true,"schema":{"type":"string","title":"External Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductCustomizationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["dropship"],"summary":"Delete Store Product","description":"Delete store product.","operationId":"delete_store_product_dropship_stores__store_id__products__external_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}},{"name":"external_id","in":"path","required":true,"schema":{"type":"string","title":"External Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/custom-products":{"post":{"tags":["dropship"],"summary":"Add Custom Product","operationId":"add_custom_product_dropship_stores__store_id__custom_products_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomProductCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/products":{"post":{"tags":["dropship"],"summary":"Create Store Product","description":"Create store product.","operationId":"create_store_product_dropship_stores__store_id__products_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/domains":{"get":{"tags":["dropship"],"summary":"List Store Domains","description":"List store domains.","operationId":"list_store_domains_dropship_stores__store_id__domains_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["dropship"],"summary":"Register Store Domain","description":"Register store domain.","operationId":"register_store_domain_dropship_stores__store_id__domains_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainRegistryRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/domains/{domain_id}/verify":{"post":{"tags":["dropship"],"summary":"Verify Store Domain","description":"Verify store domain.","operationId":"verify_store_domain_dropship_stores__store_id__domains__domain_id__verify_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}},{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","title":"Domain Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/domains/{domain_id}":{"delete":{"tags":["dropship"],"summary":"Delete Store Domain","description":"Delete store domain.","operationId":"delete_store_domain_dropship_stores__store_id__domains__domain_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}},{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","title":"Domain Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/domains/search":{"get":{"tags":["dropship"],"summary":"Search Purchasable Domains","description":"Availability + pricing for a domain the merchant wants to buy.\n\nAlways 200: taken/invalid/premium are payload facts, not HTTP errors, so\nthe client's error telemetry stays quiet during normal shopping.","operationId":"search_purchasable_domains_dropship_stores__store_id__domains_search_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}},{"name":"query","in":"query","required":false,"schema":{"type":"string","default":"","title":"Query"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/domains/purchase":{"post":{"tags":["dropship"],"summary":"Start Domain Purchase","description":"Quote the domain, persist the order, and open Stripe checkout.\n\nThe order doc is inserted BEFORE the Stripe session (the reverse order\nwould let a webhook race find no order), and the wholesale quote is\npersisted so Stripe idempotency retries rebuild identical session params.","operationId":"start_domain_purchase_dropship_stores__store_id__domains_purchase_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainPurchaseRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/domains/purchase/sync":{"post":{"tags":["dropship"],"summary":"Sync Domain Purchase","description":"Redirect-return reconciliation + the dashboard's polling endpoint.\n\nThe webhook usually wins, but Vercel background work can lose; possession\nof the session id plus matching metadata is the proof (the\n/subscriptions/sync model). Re-entering fulfillment is safe by design.","operationId":"sync_domain_purchase_dropship_stores__store_id__domains_purchase_sync_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainPurchaseSyncRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/domains/{domain_id}/renew":{"post":{"tags":["dropship"],"summary":"Renew Store Domain","description":"Start a prepaid renewal: the merchant pays now, the registrar renews after.\n\nPayment must be COMPLETE at least domain_renewal_lead_days() before the\ndomain expires. That ordering is the whole design: Daybot never fronts\nregistrar money, and a paid renewal has leeway to be executed and retried\nrather than raced against the expiry hour. Past the deadline the window is\nclosed and support handles it by hand -- a Stripe session created minutes\nbefore expiry would leave no room for anything to go wrong.","operationId":"renew_store_domain_dropship_stores__store_id__domains__domain_id__renew_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}},{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","title":"Domain Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainRenewRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/domains/{domain_id}/registrar":{"get":{"tags":["dropship"],"summary":"Get Domain Registrar Detail","description":"Registrar-level state for a Daybot-managed domain (the Advanced panel).","operationId":"get_domain_registrar_detail_dropship_stores__store_id__domains__domain_id__registrar_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}},{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","title":"Domain Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/domains/{domain_id}/transfer-out":{"post":{"tags":["dropship"],"summary":"Request Domain Transfer Out","description":"Reveal an EPP/auth code once, to the authenticated domain owner only.","operationId":"request_domain_transfer_out_dropship_stores__store_id__domains__domain_id__transfer_out_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}},{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","title":"Domain Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainTransferOutRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/domains/{domain_id}/transfer-out/complete":{"post":{"tags":["dropship"],"summary":"Complete Domain Transfer Out","description":"Stop registrar management after the destination confirms completion.\n\nThe Vercel project-domain bindings intentionally remain: moving the\nregistration does not need to disconnect the merchant's live storefront.","operationId":"complete_domain_transfer_out_dropship_stores__store_id__domains__domain_id__transfer_out_complete_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}},{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","title":"Domain Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainTransferOutRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/domains/{domain_id}/dns":{"get":{"tags":["dropship"],"summary":"List Domain Dns Records","description":"List DNS records for a Daybot-managed domain.","operationId":"list_domain_dns_records_dropship_stores__store_id__domains__domain_id__dns_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}},{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","title":"Domain Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["dropship"],"summary":"Create Domain Dns Record","description":"Add a DNS record to a Daybot-managed domain.","operationId":"create_domain_dns_record_dropship_stores__store_id__domains__domain_id__dns_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}},{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","title":"Domain Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DnsRecordCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/domains/{domain_id}/dns/export":{"get":{"tags":["dropship"],"summary":"Export Domain Dns Zone","description":"Download the managed domain's visible custom DNS records.","operationId":"export_domain_dns_zone_dropship_stores__store_id__domains__domain_id__dns_export_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}},{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","title":"Domain Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/domains/{domain_id}/dns/{record_id}":{"delete":{"tags":["dropship"],"summary":"Delete Domain Dns Record","description":"Remove a DNS record from a Daybot-managed domain.","operationId":"delete_domain_dns_record_dropship_stores__store_id__domains__domain_id__dns__record_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}},{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","title":"Domain Id"}},{"name":"record_id","in":"path","required":true,"schema":{"type":"string","title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/domains/{domain_id}/nameservers":{"put":{"tags":["dropship"],"summary":"Update Domain Nameservers","description":"Delegate a Daybot-managed domain to external nameservers (or reset).\n\nDelegating away means Daybot's DNS zone stops answering — the storefront\nstays reachable only if the new DNS host recreates the records. The\nfrontend warns; the API just does what it's told.","operationId":"update_domain_nameservers_dropship_stores__store_id__domains__domain_id__nameservers_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}},{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","title":"Domain Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NameserverUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/customers":{"get":{"tags":["dropship"],"summary":"List Store Customers","description":"List store customers.","operationId":"list_store_customers_dropship_stores__store_id__customers_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/product-requests":{"get":{"tags":["dropship"],"summary":"List Store Product Requests","description":"List store product requests.","operationId":"list_store_product_requests_dropship_stores__store_id__product_requests_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/insights":{"get":{"tags":["dropship"],"summary":"Get Store Insights","description":"Per-store shopper funnel for the store's OWNER.\n\nThe storefront has always emitted store_visited / product_viewed /\ncheckout_started per store, but until now only the platform admin could see\nany of it — the merchant, the one person who can act on it, saw nothing but\na payout total. Same events, scoped to one store and joined to that store's\npaid orders, with crawler traffic and the owner's own visits removed.","operationId":"get_store_insights_dropship_stores__store_id__insights_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/promotion":{"post":{"tags":["dropship"],"summary":"Generate Store Promotion Copy","description":"Ready-to-publish promotion copy for this store's real products.\n\nInsights tells a merchant \"nobody has visited yet\". This is the other half:\nthe merchant's blocker is never \"what is my store\", it is \"what do I post\".\nDaybot already knows the niche, the audience and every product with its real\nprice and image, so it writes the posts instead of offering advice.","operationId":"generate_store_promotion_copy_dropship_stores__store_id__promotion_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/ab-test-analytics":{"get":{"tags":["dropship"],"summary":"Get Store Ab Test Analytics","description":"Get store ab test analytics.","operationId":"get_store_ab_test_analytics_dropship_stores__store_id__ab_test_analytics_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/catalogue":{"get":{"tags":["dropship"],"summary":"Get Store Supplier Catalogue","description":"Get store supplier catalogue.","operationId":"get_store_supplier_catalogue_dropship_stores__store_id__catalogue_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/orders":{"get":{"tags":["dropship"],"summary":"List Store Orders","description":"List the orders placed on one of the caller's stores, newest first.","operationId":"list_store_orders_dropship_stores__store_id__orders_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/stores/{store_id}/orders/{order_id}":{"get":{"tags":["dropship"],"summary":"Get Store Order Detail","description":"Get one order on the caller's store, including the buyer and the line items.","operationId":"get_store_order_detail_dropship_stores__store_id__orders__order_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_id","in":"path","required":true,"schema":{"type":"string","title":"Store Id"}},{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/featured-stores":{"get":{"tags":["dropship"],"summary":"List Public Featured Stores","description":"List active public stores for landing-page proof.","operationId":"list_public_featured_stores_dropship_public_featured_stores_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dropship/public/stores/{slug}":{"get":{"tags":["dropship"],"summary":"Get Public Store","description":"Get public store.\n\n`currency` is the shopper's own pick from the storefront's currency picker.\nIt only changes what they are SHOWN: checkout still prices by the delivery\ncountry (see create_public_checkout), so a shopper cannot choose a cheaper\nrate to pay in. Unsupported values are ignored rather than rejected.","operationId":"get_public_store_dropship_public_stores__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"currency","in":"query","required":false,"schema":{"type":"string","default":"","title":"Currency"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/host-store":{"get":{"tags":["dropship"],"summary":"Get Public Store By Host","description":"Get public store by host. Same shopper currency pick as get_public_store.","operationId":"get_public_store_by_host_dropship_public_host_store_get","parameters":[{"name":"hostname","in":"query","required":false,"schema":{"type":"string","default":"","title":"Hostname"}},{"name":"currency","in":"query","required":false,"schema":{"type":"string","default":"","title":"Currency"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/sitemap.xml":{"get":{"tags":["dropship"],"summary":"Get Public Store Sitemap","description":"Get public store sitemap.","operationId":"get_public_store_sitemap_dropship_public_stores__slug__sitemap_xml_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/merchant-feed.xml":{"get":{"tags":["dropship"],"summary":"Get Public Store Merchant Feed","description":"Get public store Google-format product feed.","operationId":"get_public_store_merchant_feed_dropship_public_stores__slug__merchant_feed_xml_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/llms.txt":{"get":{"tags":["dropship"],"summary":"Get Public Store Llms","description":"Get public store llms.","operationId":"get_public_store_llms_dropship_public_stores__slug__llms_txt_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/llms-full.txt":{"get":{"tags":["dropship"],"summary":"Get Public Store Llms Full","description":"Get public store llms full.","operationId":"get_public_store_llms_full_dropship_public_stores__slug__llms_full_txt_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/ai.txt":{"get":{"tags":["dropship"],"summary":"Get Public Store Ai Txt","description":"Get public store ai txt.","operationId":"get_public_store_ai_txt_dropship_public_stores__slug__ai_txt_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/seo.html":{"get":{"tags":["dropship"],"summary":"Get Public Store Seo Html","description":"Get public store seo html.","operationId":"get_public_store_seo_html_dropship_public_stores__slug__seo_html_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/categories/{category}/seo.html":{"get":{"tags":["dropship"],"summary":"Get Public Store Category Seo Html","description":"Get public store category seo html.","operationId":"get_public_store_category_seo_html_dropship_public_stores__slug__categories__category__seo_html_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"category","in":"path","required":true,"schema":{"type":"string","title":"Category"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/shop/{guide_slug}/seo.html":{"get":{"tags":["dropship"],"summary":"Get Public Store Guide Seo Html","description":"Get public store guide seo html.","operationId":"get_public_store_guide_seo_html_dropship_public_stores__slug__shop__guide_slug__seo_html_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"guide_slug","in":"path","required":true,"schema":{"type":"string","title":"Guide Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/{page}/seo.html":{"get":{"tags":["dropship"],"summary":"Get Public Store Page Seo Html","description":"Crawler snapshot for a sitemap-listed static store page (/about, policies, catalog views).","operationId":"get_public_store_page_seo_html_dropship_public_stores__slug___page__seo_html_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/products/{external_id}/seo.html":{"get":{"tags":["dropship"],"summary":"Get Public Store Product Seo Html","description":"Get public store product seo html.","operationId":"get_public_store_product_seo_html_dropship_public_stores__slug__products__external_id__seo_html_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"external_id","in":"path","required":true,"schema":{"type":"string","title":"External Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/customers":{"post":{"tags":["dropship"],"summary":"Create Public Customer Account","description":"Create public customer account.","operationId":"create_public_customer_account_dropship_public_stores__slug__customers_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerAccountRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/customers/register":{"post":{"tags":["dropship"],"summary":"Register Public Customer Account","description":"Create a password-backed shopper account and sign it in.","operationId":"register_public_customer_account_dropship_public_stores__slug__customers_register_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerRegisterRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/customers/login":{"post":{"tags":["dropship"],"summary":"Login Public Customer Account","description":"Sign in a shopper with the password they registered.","operationId":"login_public_customer_account_dropship_public_stores__slug__customers_login_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerLoginRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/returns":{"post":{"tags":["dropship"],"summary":"Public Store Returns","description":"Compatibility return-request route; it never issues a refund.","operationId":"public_store_returns_dropship_public_stores__slug__returns_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreReturnRequestPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/customers/me/refund-requests":{"post":{"tags":["dropship"],"summary":"Create Customer Refund Request","description":"Let a verified buyer request review; never create a Stripe refund.","operationId":"create_customer_refund_request_dropship_public_stores__slug__customers_me_refund_requests_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerRefundRequestPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/admin/refund-requests":{"get":{"tags":["dropship"],"summary":"List Admin Refund Requests","description":"List buyer refund requests for Daybot operators only.","operationId":"list_admin_refund_requests_dropship_admin_refund_requests_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/admin/refund-requests/{request_id}/issue":{"post":{"tags":["dropship"],"summary":"Issue Admin Refund","description":"Issue a Stripe refund; storefront creators and managers are denied.","operationId":"issue_admin_refund_dropship_admin_refund_requests__request_id__issue_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminRefundIssuePayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/reviews":{"post":{"tags":["dropship"],"summary":"Public Store Reviews","description":"Submit a product review.","operationId":"public_store_reviews_dropship_public_stores__slug__reviews_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreReviewPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/product-requests":{"post":{"tags":["dropship"],"summary":"Create Public Product Request","description":"Create public product request.","operationId":"create_public_product_request_dropship_public_stores__slug__product_requests_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductRequestCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/contact":{"post":{"tags":["dropship"],"summary":"Create Public Store Contact","description":"Store a shopper's contact-form message and forward it to the owner.","operationId":"create_public_store_contact_dropship_public_stores__slug__contact_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicStoreContactRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/products/{external_id}":{"get":{"tags":["dropship"],"summary":"Get Public Store Product","description":"Get public store product.\n\n`currency` is the shopper's own pick, exactly as ``get_public_store`` takes it. The\nstorefront persists that pick and sent it on every store fetch, but not on this one,\nso a shopper who chose a currency saw converted prices in the grid and the bag and\nthen a different currency and a different number on the product page for the same\nitem. As there, the pick only changes what is SHOWN -- checkout still prices by the\ndelivery country -- and an unsupported value falls back to the visitor's geography\nrather than being rejected.","operationId":"get_public_store_product_dropship_public_stores__slug__products__external_id__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"external_id","in":"path","required":true,"schema":{"type":"string","title":"External Id"}},{"name":"currency","in":"query","required":false,"schema":{"type":"string","default":"","title":"Currency"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/checkout/quote":{"post":{"tags":["dropship"],"summary":"Quote Public Checkout","description":"Quote public checkout.","operationId":"quote_public_checkout_dropship_public_stores__slug__checkout_quote_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCheckoutQuoteRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/checkout":{"post":{"tags":["dropship"],"summary":"Create Public Checkout","description":"Create public checkout.","operationId":"create_public_checkout_dropship_public_stores__slug__checkout_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCheckoutRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/checkout/config":{"get":{"tags":["dropship"],"summary":"Get Public Checkout Config","description":"Client-side Stripe configuration for on-page express wallets.","operationId":"get_public_checkout_config_dropship_public_checkout_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dropship/public/stores/{slug}/checkout/express-intent":{"post":{"tags":["dropship"],"summary":"Create Public Express Intent","description":"Create a PaymentIntent for Apple Pay / Google Pay on the checkout page.\n\nMIRROR of create_public_checkout: identical validation, identical order\ndocument and money math — only the Stripe object differs (PaymentIntent\nconfirmed on-page instead of a hosted session). The webhook finalizes both\nthrough _sync_checkout_session; keep every guard in step with the hosted\nendpoint when editing either.","operationId":"create_public_express_intent_dropship_public_stores__slug__checkout_express_intent_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCheckoutRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/subscriptions/sync":{"post":{"tags":["dropship"],"summary":"Sync Subscription After Checkout","description":"Apply a completed subscription checkout immediately on return.\n\nThe webhook usually wins this race, but when it lags the payer landed on\na dashboard still showing the Free plan. Possession of the session id plus\na matching user id in the session metadata is the proof.","operationId":"sync_subscription_after_checkout_dropship_subscriptions_sync_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionSyncRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/public/stores/{slug}/checkout/sessions/{session_id}":{"get":{"tags":["dropship"],"summary":"Get Public Checkout Session","description":"Get public checkout session.","operationId":"get_public_checkout_session_dropship_public_stores__slug__checkout_sessions__session_id__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/orders/status/{order_token}":{"get":{"tags":["dropship"],"summary":"Get Public Order Status By Token","description":"Return only the order represented by the opaque email status token.","operationId":"get_public_order_status_by_token_dropship_public_stores__slug__orders_status__order_token__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"order_token","in":"path","required":true,"schema":{"type":"string","title":"Order Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/public/stores/{slug}/orders/lookup":{"post":{"tags":["dropship"],"summary":"Lookup Public Order","description":"Resolve order number + email to the tokenized status link.\n\nThe confirmation email already carries this link; the lookup exists for\nshoppers who lost the email. Both mismatches return the same 404 so the\nform cannot confirm which half was wrong.","operationId":"lookup_public_order_dropship_public_stores__slug__orders_lookup_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicOrderLookupRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/webhooks/stripe":{"post":{"tags":["dropship"],"summary":"Handle Stripe Webhook","description":"Handle stripe webhook.","operationId":"handle_stripe_webhook_dropship_webhooks_stripe_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dropship/internal/domains/renewals/process":{"get":{"tags":["dropship"],"summary":"Process Domain Renewal Reminders","description":"Daily cron: remind owners of Daybot-registered domains to prepay renewal.\n\nGET is accepted because Vercel cron invokes with GET (the notifications\nprocessor 405ed on every scheduled run until that was learned the hard\nway). Auto-renew is off by design -- Daybot never fronts registrar money --\nso an unreminded merchant is a lapsed domain, and a lapsed domain is a dead\nstorefront. This loop is what makes prepaid renewal workable.","operationId":"process_domain_renewal_reminders_dropship_internal_domains_renewals_process_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["dropship"],"summary":"Process Domain Renewal Reminders","description":"Daily cron: remind owners of Daybot-registered domains to prepay renewal.\n\nGET is accepted because Vercel cron invokes with GET (the notifications\nprocessor 405ed on every scheduled run until that was learned the hard\nway). Auto-renew is off by design -- Daybot never fronts registrar money --\nso an unreminded merchant is a lapsed domain, and a lapsed domain is a dead\nstorefront. This loop is what makes prepaid renewal workable.","operationId":"process_domain_renewal_reminders_dropship_internal_domains_renewals_process_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dropship/internal/notifications/process":{"get":{"tags":["dropship"],"summary":"Process Notification Outbox","description":"Retry emails and poll verified AliExpress delivery events from cron.\n\nGET is accepted because Vercel cron invokes with GET: the POST-only route\n405ed on every scheduled run, so tracking polling and email retries never\nexecuted in production (found in the 2026-08-06 lifecycle audit).","operationId":"process_notification_outbox_dropship_internal_notifications_process_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["dropship"],"summary":"Process Notification Outbox","description":"Retry emails and poll verified AliExpress delivery events from cron.\n\nGET is accepted because Vercel cron invokes with GET: the POST-only route\n405ed on every scheduled run, so tracking polling and email retries never\nexecuted in production (found in the 2026-08-06 lifecycle audit).","operationId":"process_notification_outbox_dropship_internal_notifications_process_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dropship/internal/merchant-reports/process":{"get":{"tags":["dropship"],"summary":"Process Merchant Reports","description":"Send this week's store report to every real merchant who has not had one.\n\nScheduled hourly through Monday afternoon (vercel.json): the first run does\nnearly all the work, later runs pick up anything the time budget deferred\nor a provider bounced. Every run is safe to repeat — see\nservices/merchant_reports.py for the exactly-once ledger.","operationId":"process_merchant_reports_dropship_internal_merchant_reports_process_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["dropship"],"summary":"Process Merchant Reports","description":"Send this week's store report to every real merchant who has not had one.\n\nScheduled hourly through Monday afternoon (vercel.json): the first run does\nnearly all the work, later runs pick up anything the time budget deferred\nor a provider bounced. Every run is safe to repeat — see\nservices/merchant_reports.py for the exactly-once ledger.","operationId":"process_merchant_reports_dropship_internal_merchant_reports_process_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dropship/public/email/unsubscribe":{"post":{"tags":["dropship"],"summary":"Unsubscribe From Reports","description":"One-click unsubscribe for the weekly report.\n\nGET shows a confirm button rather than unsubscribing outright, because mail\nscanners pre-fetch every link in a message. POST unsubscribes: that is both\nthe button and RFC 8058's List-Unsubscribe-Post, which Gmail and Apple Mail\nsend when a person presses their built-in \"Unsubscribe\".","operationId":"unsubscribe_from_reports_dropship_public_email_unsubscribe_post","parameters":[{"name":"u","in":"query","required":false,"schema":{"type":"string","default":"","title":"U"}},{"name":"t","in":"query","required":false,"schema":{"type":"string","default":"","title":"T"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["dropship"],"summary":"Unsubscribe From Reports","description":"One-click unsubscribe for the weekly report.\n\nGET shows a confirm button rather than unsubscribing outright, because mail\nscanners pre-fetch every link in a message. POST unsubscribes: that is both\nthe button and RFC 8058's List-Unsubscribe-Post, which Gmail and Apple Mail\nsend when a person presses their built-in \"Unsubscribe\".","operationId":"unsubscribe_from_reports_dropship_public_email_unsubscribe_get","parameters":[{"name":"u","in":"query","required":false,"schema":{"type":"string","default":"","title":"U"}},{"name":"t","in":"query","required":false,"schema":{"type":"string","default":"","title":"T"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/admin/emails/audience":{"get":{"tags":["dropship"],"summary":"Admin Email Audience","description":"Every account with its include/exclude decision and reason, for auditing.","operationId":"admin_email_audience_dropship_admin_emails_audience_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/admin/emails/preview":{"get":{"tags":["dropship"],"summary":"Admin Email Preview","description":"Render exactly what one account would receive, without sending or recording anything.","operationId":"admin_email_preview_dropship_admin_emails_preview_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"html","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/admin/emails/send":{"post":{"tags":["dropship"],"summary":"Admin Email Send","description":"Run the report now — for everyone, or for the listed accounts. Dry run by default.","operationId":"admin_email_send_dropship_admin_emails_send_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchantReportSendRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/internal/indexnow/process":{"get":{"tags":["dropship"],"summary":"Process Indexnow Submissions","description":"Submit recently-updated real stores to IndexNow (Bing/Copilot + partners) from cron.\n\nGoogle removed its sitemap ping, but IndexNow-participating engines accept\npush notification per host. Every store host already serves the shared key\nat /indexnow.txt, so each store's URLs are submitted against its own host.\nGET is accepted because Vercel cron invokes with GET (see the notifications\ncron above, which 405ed for weeks as POST-only).","operationId":"process_indexnow_submissions_dropship_internal_indexnow_process_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["dropship"],"summary":"Process Indexnow Submissions","description":"Submit recently-updated real stores to IndexNow (Bing/Copilot + partners) from cron.\n\nGoogle removed its sitemap ping, but IndexNow-participating engines accept\npush notification per host. Every store host already serves the shared key\nat /indexnow.txt, so each store's URLs are submitted against its own host.\nGET is accepted because Vercel cron invokes with GET (see the notifications\ncron above, which 405ed for weeks as POST-only).","operationId":"process_indexnow_submissions_dropship_internal_indexnow_process_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dropship/payouts/me":{"get":{"tags":["dropship"],"summary":"Get My Payout Summary","description":"Get my payout summary.","operationId":"get_my_payout_summary_dropship_payouts_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/stripe/connect/status":{"get":{"tags":["dropship"],"summary":"Get My Stripe Connect Status","description":"Get my stripe connect status.","operationId":"get_my_stripe_connect_status_dropship_stripe_connect_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/stripe/connect/onboarding":{"post":{"tags":["dropship"],"summary":"Create My Stripe Connect Onboarding Link","description":"Create my stripe connect onboarding link.","operationId":"create_my_stripe_connect_onboarding_link_dropship_stripe_connect_onboarding_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StripeConnectLinkRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/stripe/connect/dashboard":{"post":{"tags":["dropship"],"summary":"Create My Stripe Connect Dashboard Link","description":"Create my stripe connect dashboard link.","operationId":"create_my_stripe_connect_dashboard_link_dropship_stripe_connect_dashboard_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/payouts/me/request":{"post":{"tags":["dropship"],"summary":"Request My Stripe Payout","description":"Request my stripe payout.","operationId":"request_my_stripe_payout_dropship_payouts_me_request_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/admin/payouts":{"get":{"tags":["dropship"],"summary":"Get Admin Payout Summary","description":"Get admin payout summary.","operationId":"get_admin_payout_summary_dropship_admin_payouts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/admin/payouts/settle":{"post":{"tags":["dropship"],"summary":"Settle Admin Payout","description":"Settle admin payout.","operationId":"settle_admin_payout_dropship_admin_payouts_settle_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutSettlementRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/admin/aliexpress/status":{"get":{"tags":["dropship"],"summary":"Get Admin Aliexpress Status","description":"Get admin aliexpress status.","operationId":"get_admin_aliexpress_status_dropship_admin_aliexpress_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/admin/aliexpress/authorize-url":{"get":{"tags":["dropship"],"summary":"Get Admin Aliexpress Authorize Url","description":"Get admin aliexpress authorize url.","operationId":"get_admin_aliexpress_authorize_url_dropship_admin_aliexpress_authorize_url_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"next","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/admin/aliexpress/callback":{"get":{"tags":["dropship"],"summary":"Dropship Aliexpress Callback","description":"Dropship aliexpress callback.","operationId":"dropship_aliexpress_callback_dropship_admin_aliexpress_callback_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dropship/admin/aliexpress/auto-pay":{"post":{"tags":["dropship"],"summary":"Update Admin Aliexpress Auto Pay","description":"Update admin aliexpress auto pay.","operationId":"update_admin_aliexpress_auto_pay_dropship_admin_aliexpress_auto_pay_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AliExpressAutoPayRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/tracking/event":{"post":{"tags":["dropship"],"summary":"Track Dropship Event","description":"Track dropship event.","operationId":"track_dropship_event_dropship_tracking_event_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackingEventPayload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Track Dropship Event Dropship Tracking Event Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/analytics/leaderboard":{"get":{"tags":["dropship"],"summary":"Get Analytics Leaderboard","description":"Get analytics leaderboard.","operationId":"get_analytics_leaderboard_dropship_analytics_leaderboard_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":7,"default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/admin/affiliates":{"get":{"tags":["dropship"],"summary":"List Affiliates","description":"List affiliates with their signup -> store -> Pro funnel (admin only).","operationId":"list_affiliates_dropship_admin_affiliates_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["dropship"],"summary":"Create Affiliate","description":"Create an affiliate/creator link (admin only).","operationId":"create_affiliate_dropship_admin_affiliates_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AffiliateCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/admin/affiliates/{code}/signups":{"get":{"tags":["dropship"],"summary":"Get Affiliate Signups","description":"Per-signup funnel detail for one affiliate (admin only).","operationId":"get_affiliate_signups_dropship_admin_affiliates__code__signups_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","title":"Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/admin/accounts/list":{"get":{"tags":["dropship"],"summary":"Get All Accounts List","description":"Get all accounts list.","operationId":"get_all_accounts_list_dropship_admin_accounts_list_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/admin/accounts/{account_id}":{"get":{"tags":["dropship"],"summary":"Get Admin Account Detail","description":"Everything one account has done: the stores they built and a merged history.\n\nThe accounts list answers \"who signed up\"; this answers \"and then what did they do\",\nwhich is the question that actually decides whether a signup was real.\n\nEvery section below is best-effort for the same reason ``get_all_stores_list`` is: the\nstores an account owns must still render when an aggregation over some other\ncollection fails, rather than the whole page 500ing on the least important query.","operationId":"get_admin_account_detail_dropship_admin_accounts__account_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","title":"Account Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/admin/billing/summary":{"get":{"tags":["dropship"],"summary":"Get Admin Billing Summary","description":"Return admin-only subscription segments and Stripe invoice history.","operationId":"get_admin_billing_summary_dropship_admin_billing_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/admin/polar-parts/stats":{"get":{"tags":["dropship"],"summary":"Get Polar Parts Stats","description":"Return live, non-PII operational statistics from Polar Parts.","operationId":"get_polar_parts_stats_dropship_admin_polar_parts_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/admin/stores/list":{"get":{"tags":["dropship"],"summary":"Get All Stores List","description":"Get all stores list.","operationId":"get_all_stores_list_dropship_admin_stores_list_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/admin/accounts/{account_id}/test-flag":{"post":{"tags":["dropship"],"summary":"Set Account Test Flag","description":"Flag or clear a non-admin account as a test fixture so it is excluded from real counts.","operationId":"set_account_test_flag_dropship_admin_accounts__account_id__test_flag_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","title":"Account Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountTestFlagRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/admin/accounts/{account_id}/grant-pro":{"post":{"tags":["dropship"],"summary":"Grant Account Pro","description":"Comp an account onto the Pro plan from the admin panel.\n\nWrites exactly the field shape apply_subscription_promo_code produces, so\n_active_subscription_plan, the premium gates, and both clients read it with\nno special-casing; only `source` differs, and it is the honest record of\nhow the plan arrived. No stripe_customer_id is invented, so the account UI\nkeeps its billing-portal button hidden instead of linking to a portal\nsession that cannot exist.","operationId":"grant_account_pro_dropship_admin_accounts__account_id__grant_pro_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","title":"Account Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/admin/stores/{slug}/test-flag":{"post":{"tags":["dropship"],"summary":"Set Store Test Flag","description":"Flag or clear a store as a test fixture so it is excluded from real counts and the landing page.","operationId":"set_store_test_flag_dropship_admin_stores__slug__test_flag_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreTestFlagRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/admin/chat-logs":{"get":{"tags":["dropship"],"summary":"List Admin Chat Logs","description":"List recent Daybot chat exchanges for usage analysis (admin only).","operationId":"list_admin_chat_logs_dropship_admin_chat_logs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"surface","in":"query","required":false,"schema":{"type":"string","default":"","title":"Surface"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dropship/admin/tracking/toggle":{"post":{"tags":["dropship"],"summary":"Toggle Tracking Admin","description":"Toggle tracking admin.","operationId":"toggle_tracking_admin_dropship_admin_tracking_toggle_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackingToggleRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dropship/tracking/config":{"get":{"tags":["dropship"],"summary":"Get Tracking Config","description":"Get tracking config.","operationId":"get_tracking_config_dropship_tracking_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/store/{slug}/sitemap.xml":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Public Store Sitemap","description":"Get public store sitemap.","operationId":"get_public_store_sitemap_store__slug__sitemap_xml_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/store/{slug}/merchant-feed.xml":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Public Store Merchant Feed","description":"Get public store Google-format product feed.","operationId":"get_public_store_merchant_feed_store__slug__merchant_feed_xml_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/store/{slug}/llms.txt":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Public Store Llms","description":"Get public store llms.","operationId":"get_public_store_llms_store__slug__llms_txt_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/store/{slug}/llms-full.txt":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Public Store Llms Full","description":"Get public store llms full.","operationId":"get_public_store_llms_full_store__slug__llms_full_txt_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/store/{slug}/ai.txt":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Public Store Ai Txt","description":"Get public store ai txt.","operationId":"get_public_store_ai_txt_store__slug__ai_txt_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/store/{slug}/seo.html":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Public Store Seo Html","description":"Get public store seo html.","operationId":"get_public_store_seo_html_store__slug__seo_html_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/store/{slug}/categories/{category}/seo.html":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Public Store Category Seo Html","description":"Get public store category seo html.","operationId":"get_public_store_category_seo_html_store__slug__categories__category__seo_html_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"category","in":"path","required":true,"schema":{"type":"string","title":"Category"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/store/{slug}/shop/{guide_slug}/seo.html":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Public Store Guide Seo Html","description":"Get public store guide seo html.","operationId":"get_public_store_guide_seo_html_store__slug__shop__guide_slug__seo_html_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"guide_slug","in":"path","required":true,"schema":{"type":"string","title":"Guide Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/store/{slug}/{page}/seo.html":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Public Store Page Seo Html","description":"Crawler snapshot for a sitemap-listed static store page (/about, policies, catalog views).","operationId":"get_public_store_page_seo_html_store__slug___page__seo_html_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/store/{slug}/products/{external_id}/seo.html":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Public Store Product Seo Html","description":"Get public store product seo html.","operationId":"get_public_store_product_seo_html_store__slug__products__external_id__seo_html_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"external_id","in":"path","required":true,"schema":{"type":"string","title":"External Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/store-sitemap.xml":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Public Store Sitemap Index","description":"Get public store sitemap index.","operationId":"get_public_store_sitemap_index_store_sitemap_xml_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/robots.txt":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Host Aware Robots Txt","description":"Get host aware robots txt.","operationId":"get_host_aware_robots_txt_robots_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/sitemap.xml":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Host Aware Sitemap Xml","description":"Get host aware sitemap xml.","operationId":"get_host_aware_sitemap_xml_sitemap_xml_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/merchant-feed.xml":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Host Aware Merchant Feed","description":"Get host aware merchant feed: store hosts only, 404 on the app hosts.","operationId":"get_host_aware_merchant_feed_merchant_feed_xml_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/llms.txt":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Host Aware Llms Text","description":"Get host aware llms text.","operationId":"get_host_aware_llms_text_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/llms-full.txt":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Host Aware Llms Full Text","description":"Get host aware llms full text.","operationId":"get_host_aware_llms_full_text_llms_full_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/ai.txt":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Host Aware Ai Text","description":"Get host aware ai text.","operationId":"get_host_aware_ai_text_ai_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/indexnow.txt":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Indexnow Key File","description":"Get indexnow key file.","operationId":"get_indexnow_key_file_indexnow_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/seo.html":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Host Aware Seo Html","description":"Get host aware seo html.","operationId":"get_host_aware_seo_html_seo_html_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/free-ai-store-builder":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Daybot Free Ai Store Builder Page","description":"Get daybot free ai store builder page.","operationId":"get_daybot_free_ai_store_builder_page_free_ai_store_builder_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/ai-shopify-store-builder":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Daybot Ai Shopify Store Builder Page","description":"Get daybot ai shopify store builder page.","operationId":"get_daybot_ai_shopify_store_builder_page_ai_shopify_store_builder_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/ai-store-builder-for-dropshipping":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Daybot Ai Store Builder For Dropshipping Page","description":"Get daybot ai store builder for dropshipping page.","operationId":"get_daybot_ai_store_builder_for_dropshipping_page_ai_store_builder_for_dropshipping_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/ai-ecommerce-website-builder":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Daybot Ai Ecommerce Website Builder Page","description":"Get daybot ai ecommerce website builder page.","operationId":"get_daybot_ai_ecommerce_website_builder_page_ai_ecommerce_website_builder_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/best-ai-store-builder-2026":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Daybot Best Ai Store Builder 2026 Page","description":"Get daybot best ai store builder 2026 page.","operationId":"get_daybot_best_ai_store_builder_2026_page_best_ai_store_builder_2026_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/ai-store-builder-comparison":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Daybot Ai Store Builder Comparison Page","description":"Get daybot ai store builder comparison page.","operationId":"get_daybot_ai_store_builder_comparison_page_ai_store_builder_comparison_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/ai-dropshipping-agent":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Daybot Ai Dropshipping Agent Page","description":"Get daybot ai dropshipping agent page.","operationId":"get_daybot_ai_dropshipping_agent_page_ai_dropshipping_agent_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/ai-agent-for-dropshipping":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Daybot Ai Agent For Dropshipping Page","description":"Get daybot ai agent for dropshipping page.","operationId":"get_daybot_ai_agent_for_dropshipping_page_ai_agent_for_dropshipping_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/ai-product-research-agent":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Daybot Ai Product Research Agent Page","description":"Get daybot ai product research agent page.","operationId":"get_daybot_ai_product_research_agent_page_ai_product_research_agent_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/ai-dropshipping-ad-creator":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Daybot Ai Dropshipping Ad Creator Page","description":"Get daybot ai dropshipping ad creator page.","operationId":"get_daybot_ai_dropshipping_ad_creator_page_ai_dropshipping_ad_creator_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/ai-store-builder-with-suppliers":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Daybot Ai Store Builder With Suppliers Page","description":"Get daybot ai store builder with suppliers page.","operationId":"get_daybot_ai_store_builder_with_suppliers_page_ai_store_builder_with_suppliers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/ai-ecommerce-performance-tracker":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Daybot Ai Ecommerce Performance Tracker Page","description":"Get daybot ai ecommerce performance tracker page.","operationId":"get_daybot_ai_ecommerce_performance_tracker_page_ai_ecommerce_performance_tracker_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/ai-agent-that-builds-shopify-alternatives":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Daybot Ai Agent That Builds Shopify Alternatives Page","description":"Get daybot ai agent that builds shopify alternatives page.","operationId":"get_daybot_ai_agent_that_builds_shopify_alternatives_page_ai_agent_that_builds_shopify_alternatives_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/generated-store-examples":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Daybot Generated Store Examples Page","description":"Get daybot generated store examples page.","operationId":"get_daybot_generated_store_examples_page_generated_store_examples_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/polar-parts-case-study":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Daybot Polar Parts Case Study Page","description":"Get daybot polar parts case study page.","operationId":"get_daybot_polar_parts_case_study_page_polar_parts_case_study_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/products/{external_id}/seo.html":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Host Aware Product Seo Html","description":"Get host aware product seo html.","operationId":"get_host_aware_product_seo_html_products__external_id__seo_html_get","parameters":[{"name":"external_id","in":"path","required":true,"schema":{"type":"string","title":"External Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/categories/{category}/seo.html":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Host Aware Category Seo Html","description":"Get host aware category seo html.","operationId":"get_host_aware_category_seo_html_categories__category__seo_html_get","parameters":[{"name":"category","in":"path","required":true,"schema":{"type":"string","title":"Category"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/shop/{guide_slug}/seo.html":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Host Aware Guide Seo Html","description":"Get host aware guide seo html.","operationId":"get_host_aware_guide_seo_html_shop__guide_slug__seo_html_get","parameters":[{"name":"guide_slug","in":"path","required":true,"schema":{"type":"string","title":"Guide Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/{page}/seo.html":{"get":{"tags":["dropship-store-crawler"],"summary":"Get Host Aware Page Seo Html","description":"Host-aware crawler snapshot for a sitemap-listed static store page.","operationId":"get_host_aware_page_seo_html__page__seo_html_get","parameters":[{"name":"page","in":"path","required":true,"schema":{"type":"string","title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AccountTestFlagRequest":{"properties":{"is_test":{"type":"boolean","title":"Is Test"}},"type":"object","required":["is_test"],"title":"AccountTestFlagRequest","description":"Request body to flag or clear an account as a test fixture."},"AdminRefundIssuePayload":{"properties":{"amount_cents":{"anyOf":[{"type":"integer","maximum":10000000.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Amount Cents"},"reason":{"type":"string","maxLength":40,"minLength":1,"title":"Reason","default":"requested_by_customer"}},"type":"object","title":"AdminRefundIssuePayload"},"AffiliateCreateRequest":{"properties":{"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name"},"email":{"anyOf":[{"type":"string","maxLength":160},{"type":"null"}],"title":"Email","default":""},"code":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}],"title":"Code","default":""}},"type":"object","required":["name"],"title":"AffiliateCreateRequest","description":"Admin request to create an affiliate/creator link."},"AliExpressAutoPayRequest":{"properties":{"enabled":{"type":"boolean","title":"Enabled"}},"type":"object","required":["enabled"],"title":"AliExpressAutoPayRequest","description":"Ali express auto pay request class."},"AppleIapVerifyRequest":{"properties":{"signed_transaction":{"type":"string","maxLength":20000,"minLength":32,"title":"Signed Transaction"}},"type":"object","required":["signed_transaction"],"title":"AppleIapVerifyRequest","description":"A StoreKit 2 signed transaction handed over by the iOS app."},"AppleNativeLoginRequest":{"properties":{"identity_token":{"type":"string","title":"Identity Token"},"full_name":{"type":"string","title":"Full Name","default":""},"authorization_code":{"type":"string","title":"Authorization Code","default":""}},"type":"object","required":["identity_token"],"title":"AppleNativeLoginRequest"},"BugReportRequest":{"properties":{"description":{"type":"string","title":"Description","description":"What went wrong?"},"suggestion":{"type":"string","title":"Suggestion","description":"How might we fix it?","default":""},"email":{"type":"string","title":"Email","description":"Optional contact email","default":""},"source":{"type":"string","title":"Source","description":"Where the report came from","default":"manual"},"path":{"type":"string","title":"Path","description":"Current app path or API route","default":""},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code","description":"HTTP status code, if any"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata","description":"Additional structured error context"}},"type":"object","required":["description"],"title":"BugReportRequest"},"CheckoutItemRequest":{"properties":{"external_id":{"type":"string","maxLength":160,"minLength":1,"title":"External Id"},"quantity":{"type":"integer","maximum":10.0,"minimum":1.0,"title":"Quantity","default":1},"variant_id":{"anyOf":[{"type":"string","maxLength":160},{"type":"null"}],"title":"Variant Id"}},"type":"object","required":["external_id"],"title":"CheckoutItemRequest","description":"Checkout item request class."},"ContactSalesRequest":{"properties":{"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name"},"email":{"type":"string","format":"email","title":"Email"},"company":{"anyOf":[{"type":"string","maxLength":160},{"type":"null"}],"title":"Company","default":""},"message":{"type":"string","maxLength":4000,"minLength":1,"title":"Message"}},"type":"object","required":["name","email","message"],"title":"ContactSalesRequest","description":"A 'Let's talk' inquiry from the pricing area."},"CreatorIntakeRequest":{"properties":{"idea":{"type":"string","maxLength":2000,"minLength":1,"title":"Idea"},"latest_message":{"type":"string","maxLength":1200,"minLength":1,"title":"Latest Message"},"history":{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array","title":"History"},"turn_count":{"type":"integer","maximum":6.0,"minimum":0.0,"title":"Turn Count","default":0}},"type":"object","required":["idea","latest_message"],"title":"CreatorIntakeRequest","description":"Request the next Daybot creator intake question."},"CustomProductCreateRequest":{"properties":{"title":{"type":"string","maxLength":140,"minLength":1,"title":"Title"},"description":{"type":"string","maxLength":2000,"title":"Description","default":""},"category":{"type":"string","maxLength":80,"title":"Category","default":"Custom"},"retail_price_cents":{"type":"integer","maximum":500000.0,"minimum":100.0,"title":"Retail Price Cents"},"base_price_cents":{"type":"integer","maximum":500000.0,"minimum":10.0,"title":"Base Price Cents"},"weight_grams":{"anyOf":[{"type":"integer","maximum":100000.0,"minimum":1.0},{"type":"null"}],"title":"Weight Grams"},"image_url":{"anyOf":[{"type":"string","maxLength":800},{"type":"null"}],"title":"Image Url"}},"type":"object","required":["title","retail_price_cents","base_price_cents"],"title":"CustomProductCreateRequest"},"CustomerAccountRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"name":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Name"},"phone":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Phone"}},"type":"object","required":["email"],"title":"CustomerAccountRequest","description":"Customer account request class."},"CustomerAddressUpdateRequest":{"properties":{"shipping_address":{"$ref":"#/components/schemas/PublicShippingAddress"}},"type":"object","required":["shipping_address"],"title":"CustomerAddressUpdateRequest","description":"Customer address update request class."},"CustomerLoginRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","maxLength":200,"minLength":1,"title":"Password"}},"type":"object","required":["email","password"],"title":"CustomerLoginRequest","description":"Shopper sign-in."},"CustomerRefundRequestPayload":{"properties":{"order_number":{"type":"string","maxLength":80,"minLength":3,"title":"Order Number"},"reason":{"type":"string","maxLength":160,"minLength":3,"title":"Reason"},"details":{"type":"string","maxLength":4000,"minLength":3,"title":"Details"}},"type":"object","required":["order_number","reason","details"],"title":"CustomerRefundRequestPayload"},"CustomerRegisterRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","maxLength":200,"minLength":8,"title":"Password"},"name":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Name"},"phone":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Phone"}},"type":"object","required":["email","password"],"title":"CustomerRegisterRequest","description":"Shopper sign-up: an email plus a password they will use to come back."},"DevicePushTokenRequest":{"properties":{"token":{"type":"string","title":"Token"},"platform":{"type":"string","title":"Platform","default":"ios"}},"type":"object","required":["token"],"title":"DevicePushTokenRequest"},"DnsRecordCreateRequest":{"properties":{"type":{"type":"string","maxLength":10,"minLength":1,"title":"Type"},"name":{"type":"string","maxLength":253,"title":"Name","default":""},"value":{"type":"string","maxLength":1000,"minLength":1,"title":"Value"},"ttl":{"type":"integer","maximum":172800.0,"minimum":60.0,"title":"Ttl","default":60},"priority":{"anyOf":[{"type":"integer","maximum":65535.0,"minimum":0.0},{"type":"null"}],"title":"Priority"}},"type":"object","required":["type","value"],"title":"DnsRecordCreateRequest","description":"One DNS record for a Daybot-managed domain."},"DomainPurchaseRequest":{"properties":{"hostname":{"type":"string","maxLength":253,"minLength":4,"title":"Hostname"},"years":{"type":"integer","maximum":1.0,"minimum":1.0,"title":"Years","default":1},"contact":{"$ref":"#/components/schemas/DomainRegistrantContact"},"origin":{"type":"string","maxLength":200,"minLength":1,"title":"Origin"}},"type":"object","required":["hostname","contact","origin"],"title":"DomainPurchaseRequest","description":"Start a Stripe checkout that, once paid, registers this domain."},"DomainPurchaseSyncRequest":{"properties":{"session_id":{"type":"string","maxLength":255,"minLength":4,"title":"Session Id"}},"type":"object","required":["session_id"],"title":"DomainPurchaseSyncRequest","description":"Session id from the Stripe redirect; also the dashboard's polling handle."},"DomainRegistrantContact":{"properties":{"first_name":{"type":"string","maxLength":80,"minLength":1,"title":"First Name"},"last_name":{"type":"string","maxLength":80,"minLength":1,"title":"Last Name"},"email":{"type":"string","format":"email","title":"Email"},"phone":{"type":"string","maxLength":32,"minLength":7,"title":"Phone"},"address1":{"type":"string","maxLength":200,"minLength":1,"title":"Address1"},"address2":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Address2"},"company":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Company"},"city":{"type":"string","maxLength":80,"minLength":1,"title":"City"},"state":{"type":"string","maxLength":80,"minLength":1,"title":"State"},"zip":{"type":"string","maxLength":20,"minLength":1,"title":"Zip"},"country":{"type":"string","maxLength":2,"minLength":2,"title":"Country"}},"type":"object","required":["first_name","last_name","email","phone","address1","city","state","zip","country"],"title":"DomainRegistrantContact","description":"ICANN registrant contact set; the end-user is the registrant of record."},"DomainRegistryRequest":{"properties":{"hostname":{"type":"string","maxLength":253,"minLength":2,"title":"Hostname"},"kind":{"type":"string","maxLength":24,"title":"Kind","default":"custom_domain"}},"type":"object","required":["hostname"],"title":"DomainRegistryRequest","description":"Domain registry request class."},"DomainRenewRequest":{"properties":{"origin":{"type":"string","maxLength":200,"minLength":8,"title":"Origin"}},"type":"object","required":["origin"],"title":"DomainRenewRequest","description":"Start a prepaid renewal for a Daybot-managed domain."},"DomainTransferOutRequest":{"properties":{"confirmation":{"type":"string","maxLength":253,"minLength":4,"title":"Confirmation"}},"type":"object","required":["confirmation"],"title":"DomainTransferOutRequest","description":"Deliberate confirmation for a registrar transfer-out action."},"DropshipLoginResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type"},"user":{"$ref":"#/components/schemas/DropshipUserResponse"}},"type":"object","required":["access_token","token_type","user"],"title":"DropshipLoginResponse","description":"Dropship login response class."},"DropshipPasswordResetConfirm":{"properties":{"token":{"type":"string","maxLength":4096,"minLength":20,"title":"Token"},"password":{"type":"string","maxLength":128,"minLength":6,"title":"Password"}},"type":"object","required":["token","password"],"title":"DropshipPasswordResetConfirm","description":"Confirm a password reset using a short-lived, one-time token."},"DropshipPasswordResetRequest":{"properties":{"identifier":{"type":"string","maxLength":254,"minLength":3,"title":"Identifier"}},"type":"object","required":["identifier"],"title":"DropshipPasswordResetRequest","description":"Request a password reset without revealing whether an account exists."},"DropshipReferralClaimRequest":{"properties":{"code":{"type":"string","maxLength":80,"minLength":6,"title":"Code"}},"type":"object","required":["code"],"title":"DropshipReferralClaimRequest","description":"Claim a referral shortly after account creation."},"DropshipUserCreate":{"properties":{"username":{"type":"string","maxLength":40,"minLength":3,"title":"Username"},"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","maxLength":128,"minLength":6,"title":"Password"},"referral_code":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Referral Code"},"affiliate_code":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Affiliate Code"}},"type":"object","required":["username","email","password"],"title":"DropshipUserCreate","description":"Dropship user create class."},"DropshipUserLogin":{"properties":{"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"}},"type":"object","required":["username","password"],"title":"DropshipUserLogin","description":"Dropship user login class."},"DropshipUserResponse":{"properties":{"id":{"type":"string","title":"Id"},"username":{"type":"string","title":"Username"},"email":{"type":"string","format":"email","title":"Email"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"is_active":{"type":"boolean","title":"Is Active"},"is_admin":{"type":"boolean","title":"Is Admin","default":false},"subscription_plan":{"type":"string","title":"Subscription Plan","default":"free"},"subscription_name":{"type":"string","title":"Subscription Name","default":"Free"},"subscription_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subscription Status"},"can_manage_subscription":{"type":"boolean","title":"Can Manage Subscription","default":false},"onboarding_survey_pending":{"type":"boolean","title":"Onboarding Survey Pending","default":false}},"type":"object","required":["id","username","email","created_at","is_active"],"title":"DropshipUserResponse","description":"Dropship user response class."},"EmailPreferencesRequest":{"properties":{"store_reports":{"type":"boolean","title":"Store Reports"}},"type":"object","required":["store_reports"],"title":"EmailPreferencesRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"MerchantReportSendRequest":{"properties":{"user_ids":{"items":{"type":"string"},"type":"array","title":"User Ids"},"dry_run":{"type":"boolean","title":"Dry Run","default":true}},"type":"object","title":"MerchantReportSendRequest"},"NameserverUpdateRequest":{"properties":{"nameservers":{"items":{"type":"string"},"type":"array","maxItems":4,"title":"Nameservers"}},"type":"object","title":"NameserverUpdateRequest","description":"Delegation for a Daybot-managed domain; empty list restores defaults."},"NotificationPreferencesRequest":{"properties":{"preferences":{"additionalProperties":{"type":"boolean"},"type":"object","title":"Preferences"}},"type":"object","title":"NotificationPreferencesRequest","description":"Partial update: only the categories the client sends are changed."},"OnboardingSurveyRequest":{"properties":{"answers":{"additionalProperties":{"type":"string"},"type":"object","title":"Answers","default":{}},"skipped":{"type":"boolean","title":"Skipped","default":false}},"type":"object","title":"OnboardingSurveyRequest","description":"Answers from the post-signup survey popup. All fields optional: skipping is allowed."},"PayoutSettlementRequest":{"properties":{"user_id":{"type":"string","title":"User Id"},"note":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Note"}},"type":"object","required":["user_id"],"title":"PayoutSettlementRequest","description":"Payout settlement request class."},"ProductCreateRequest":{"properties":{"title":{"type":"string","maxLength":140,"minLength":1,"title":"Title"},"description":{"type":"string","maxLength":700,"title":"Description","default":""},"category":{"type":"string","maxLength":80,"title":"Category","default":"Featured"},"retail_price_cents":{"type":"integer","maximum":500000.0,"minimum":100.0,"title":"Retail Price Cents"},"base_price_cents":{"anyOf":[{"type":"integer","maximum":500000.0,"minimum":10.0},{"type":"null"}],"title":"Base Price Cents"},"weight_grams":{"anyOf":[{"type":"integer","maximum":100000.0,"minimum":1.0},{"type":"null"}],"title":"Weight Grams"},"image_url":{"anyOf":[{"type":"string","maxLength":500000},{"type":"null"}],"title":"Image Url"}},"type":"object","required":["title","retail_price_cents"],"title":"ProductCreateRequest","description":"Product create request class."},"ProductCustomizationRequest":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":140,"minLength":1},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string","maxLength":700},{"type":"null"}],"title":"Description"},"category":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Category"},"retail_price_cents":{"anyOf":[{"type":"integer","maximum":500000.0,"minimum":100.0},{"type":"null"}],"title":"Retail Price Cents"},"price_cents":{"anyOf":[{"type":"integer","maximum":500000.0,"minimum":10.0},{"type":"null"}],"title":"Price Cents"},"weight_grams":{"anyOf":[{"type":"integer","maximum":100000.0,"minimum":1.0},{"type":"null"}],"title":"Weight Grams"},"image_url":{"anyOf":[{"type":"string","maxLength":800},{"type":"null"}],"title":"Image Url"}},"type":"object","title":"ProductCustomizationRequest","description":"Product customization request class."},"ProductRequestCreate":{"properties":{"product_link":{"type":"string","maxLength":1200,"minLength":8,"title":"Product Link"},"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"},"note":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Note"}},"type":"object","required":["product_link"],"title":"ProductRequestCreate","description":"Product request create class."},"PromoCodeRequest":{"properties":{"code":{"type":"string","maxLength":80,"minLength":3,"title":"Code"}},"type":"object","required":["code"],"title":"PromoCodeRequest","description":"Promo code request class."},"PublicCheckoutQuoteRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CheckoutItemRequest"},"type":"array","maxItems":12,"minItems":1,"title":"Items"},"shipping_country":{"anyOf":[{"type":"string","maxLength":2,"minLength":2},{"type":"null"}],"title":"Shipping Country"},"shipping_region":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Shipping Region"},"shipping_address":{"$ref":"#/components/schemas/PublicShippingAddress"},"discount_code":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Discount Code"}},"type":"object","required":["shipping_address"],"title":"PublicCheckoutQuoteRequest","description":"Public checkout quote request class."},"PublicCheckoutRequest":{"properties":{"origin":{"type":"string","maxLength":200,"minLength":8,"title":"Origin"},"items":{"items":{"$ref":"#/components/schemas/CheckoutItemRequest"},"type":"array","maxItems":12,"minItems":1,"title":"Items"},"quote_token":{"type":"string","maxLength":4000,"minLength":20,"title":"Quote Token"},"storefront_path":{"type":"string","maxLength":180,"minLength":1,"title":"Storefront Path","default":"/"},"shipping_country":{"anyOf":[{"type":"string","maxLength":2,"minLength":2},{"type":"null"}],"title":"Shipping Country"},"shipping_region":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Shipping Region"},"shipping_address":{"$ref":"#/components/schemas/PublicShippingAddress"},"email":{"anyOf":[{"type":"string","maxLength":254},{"type":"null"}],"title":"Email"},"discount_code":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Discount Code"}},"type":"object","required":["origin","quote_token","shipping_address"],"title":"PublicCheckoutRequest","description":"Public checkout request class."},"PublicOrderLookupRequest":{"properties":{"order_number":{"type":"string","maxLength":64,"minLength":4,"title":"Order Number"},"email":{"type":"string","maxLength":254,"minLength":3,"title":"Email"}},"type":"object","required":["order_number","email"],"title":"PublicOrderLookupRequest","description":"Order-number + email lookup for shoppers who lost the status email."},"PublicShippingAddress":{"properties":{"name":{"type":"string","maxLength":120,"minLength":2,"title":"Name"},"phone":{"type":"string","maxLength":40,"minLength":7,"title":"Phone"},"line1":{"type":"string","maxLength":180,"minLength":3,"title":"Line1"},"line2":{"anyOf":[{"type":"string","maxLength":180},{"type":"null"}],"title":"Line2"},"city":{"type":"string","maxLength":100,"minLength":2,"title":"City"},"region":{"type":"string","maxLength":100,"minLength":1,"title":"Region"},"postal_code":{"type":"string","maxLength":24,"minLength":2,"title":"Postal Code"},"country":{"type":"string","maxLength":2,"minLength":2,"title":"Country"}},"type":"object","required":["name","phone","line1","city","region","postal_code","country"],"title":"PublicShippingAddress","description":"Public shipping address class."},"PublicStoreContactRequest":{"properties":{"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name"},"email":{"type":"string","maxLength":254,"minLength":3,"title":"Email"},"order_number":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Order Number"},"topic":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}],"title":"Topic"},"message":{"type":"string","maxLength":2000,"minLength":5,"title":"Message"}},"type":"object","required":["name","email","message"],"title":"PublicStoreContactRequest","description":"Shopper message from the storefront contact form."},"ResearchJobLinkRequest":{"properties":{"research_id":{"type":"string","maxLength":64,"minLength":1,"title":"Research Id"}},"type":"object","required":["research_id"],"title":"ResearchJobLinkRequest","description":"Link one saved product-research report to a store."},"ResearchProductImportRequest":{"properties":{"research_id":{"type":"string","maxLength":64,"minLength":1,"title":"Research Id"},"external_ids":{"items":{"type":"string"},"type":"array","maxItems":10,"minItems":1,"title":"External Ids"}},"type":"object","required":["research_id","external_ids"],"title":"ResearchProductImportRequest","description":"Persist selected products from a saved product-research report."},"StandaloneWinningProductResearchRequest":{"properties":{"niche":{"anyOf":[{"type":"string","maxLength":220},{"type":"null"}],"title":"Niche"},"mode":{"type":"string","maxLength":16,"title":"Mode","default":"quick"},"limit":{"type":"integer","maximum":10.0,"minimum":3.0,"title":"Limit","default":6}},"type":"object","title":"StandaloneWinningProductResearchRequest","description":"Request standalone winning-product research before a store exists."},"StoreAgentEditRequest":{"properties":{"message":{"type":"string","maxLength":8000,"minLength":1,"title":"Message"},"logo_image_data_url":{"anyOf":[{"type":"string","maxLength":250000},{"type":"null"}],"title":"Logo Image Data Url"}},"type":"object","required":["message"],"title":"StoreAgentEditRequest","description":"Store agent edit request class."},"StoreCustomizationRequest":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":80,"minLength":1},{"type":"null"}],"title":"Name"},"tagline":{"anyOf":[{"type":"string","maxLength":140},{"type":"null"}],"title":"Tagline"},"description":{"anyOf":[{"type":"string","maxLength":600},{"type":"null"}],"title":"Description"},"audience":{"anyOf":[{"type":"string","maxLength":220},{"type":"null"}],"title":"Audience"},"currency":{"anyOf":[{"type":"string","maxLength":3,"minLength":3},{"type":"null"}],"title":"Currency"},"categories":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":8},{"type":"null"}],"title":"Categories"},"discount_codes":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array","maxItems":20},{"type":"null"}],"title":"Discount Codes"},"theme":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Theme"},"hero":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Hero"},"customization":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Customization"},"ab_test_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ab Test Enabled"},"ab_test_theme":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Ab Test Theme"},"ab_test_hero":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Ab Test Hero"},"ab_test_customization":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Ab Test Customization"}},"type":"object","title":"StoreCustomizationRequest","description":"Store customization request class."},"StoreIdeaRequest":{"properties":{"idea":{"type":"string","maxLength":4000,"minLength":12,"title":"Idea"},"history":{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array","title":"History"},"logo_image_data_url":{"anyOf":[{"type":"string","maxLength":250000},{"type":"null"}],"title":"Logo Image Data Url"},"product_research_enabled":{"type":"boolean","title":"Product Research Enabled","default":false}},"type":"object","required":["idea"],"title":"StoreIdeaRequest","description":"Store idea request class."},"StoreImageUploadRequest":{"properties":{"image_data_url":{"type":"string","maxLength":250000,"minLength":1,"title":"Image Data Url"}},"type":"object","required":["image_data_url"],"title":"StoreImageUploadRequest","description":"Host a product or hero photo uploaded from the manual editor and hand back its URL.\n\nData URLs only: a pasted link already has a home in the Image URL box, and the\nproduct save path is what vets it for the page-instead-of-photo mistake."},"StoreLogoImageUploadRequest":{"properties":{"logo_image_data_url":{"type":"string","maxLength":250000,"minLength":1,"title":"Logo Image Data Url"}},"type":"object","required":["logo_image_data_url"],"title":"StoreLogoImageUploadRequest","description":"Host a logo uploaded from the manual editor and hand back the URL to use."},"StorePreviewClaimRequest":{"properties":{"idea":{"type":"string","maxLength":4000,"minLength":1,"title":"Idea"},"store":{"additionalProperties":true,"type":"object","title":"Store"},"messages":{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array","title":"Messages"}},"type":"object","required":["idea"],"title":"StorePreviewClaimRequest","description":"Claim anonymous preview request class."},"StoreReturnRequestPayload":{"properties":{"order_number":{"type":"string","title":"Order Number"},"email":{"type":"string","title":"Email"},"reason":{"type":"string","title":"Reason"},"details":{"type":"string","title":"Details"}},"type":"object","required":["order_number","email","reason","details"],"title":"StoreReturnRequestPayload"},"StoreReviewPayload":{"properties":{"product_external_id":{"type":"string","title":"Product External Id"},"order_number":{"type":"string","title":"Order Number"},"rating":{"type":"integer","title":"Rating"},"review":{"type":"string","title":"Review"}},"type":"object","required":["product_external_id","order_number","rating","review"],"title":"StoreReviewPayload"},"StoreSlugRequest":{"properties":{"slug":{"type":"string","maxLength":63,"minLength":1,"title":"Slug"}},"type":"object","required":["slug"],"title":"StoreSlugRequest","description":"Store slug request class."},"StoreTestFlagRequest":{"properties":{"is_test":{"type":"boolean","title":"Is Test"}},"type":"object","required":["is_test"],"title":"StoreTestFlagRequest","description":"Request body to flag or clear a store as a test fixture."},"StripeConnectLinkRequest":{"properties":{"origin":{"type":"string","maxLength":200,"minLength":8,"title":"Origin"}},"type":"object","required":["origin"],"title":"StripeConnectLinkRequest","description":"Stripe connect link request class."},"SubscriptionCheckoutRequest":{"properties":{"plan":{"type":"string","maxLength":32,"minLength":2,"title":"Plan"},"origin":{"type":"string","maxLength":200,"minLength":8,"title":"Origin"}},"type":"object","required":["plan","origin"],"title":"SubscriptionCheckoutRequest","description":"Subscription checkout request class."},"SubscriptionPortalRequest":{"properties":{"origin":{"type":"string","maxLength":200,"minLength":8,"title":"Origin"}},"type":"object","required":["origin"],"title":"SubscriptionPortalRequest","description":"Subscription portal request class."},"SubscriptionSyncRequest":{"properties":{"session_id":{"type":"string","title":"Session Id"}},"type":"object","required":["session_id"],"title":"SubscriptionSyncRequest","description":"Session id returned to the dashboard by Stripe's subscription redirect."},"SupplierProductImportRequest":{"properties":{"query":{"type":"string","maxLength":120,"minLength":2,"title":"Query"},"external_id":{"type":"string","maxLength":160,"minLength":1,"title":"External Id"}},"type":"object","required":["query","external_id"],"title":"SupplierProductImportRequest","description":"Server-verified supplier result selected for import."},"SupplierProductSearchRequest":{"properties":{"query":{"type":"string","maxLength":120,"minLength":2,"title":"Query"},"limit":{"type":"integer","maximum":12.0,"minimum":1.0,"title":"Limit","default":8}},"type":"object","required":["query"],"title":"SupplierProductSearchRequest","description":"Authenticated merchant search across live supplier listings."},"ThemeChatRequest":{"properties":{"message":{"type":"string","maxLength":1000,"minLength":4,"title":"Message"}},"type":"object","required":["message"],"title":"ThemeChatRequest","description":"Theme chat request class."},"TrackingEventPayload":{"properties":{"event_name":{"type":"string","maxLength":200,"title":"Event Name"},"properties":{"additionalProperties":true,"type":"object","title":"Properties"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"user_agent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Agent"},"store_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Store Slug"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"visitor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visitor Id"}},"type":"object","required":["event_name"],"title":"TrackingEventPayload","description":"Tracking event payload class."},"TrackingToggleRequest":{"properties":{"enabled":{"type":"boolean","title":"Enabled"}},"type":"object","required":["enabled"],"title":"TrackingToggleRequest","description":"Tracking toggle request class."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WinningProductResearchRequest":{"properties":{"niche":{"anyOf":[{"type":"string","maxLength":180},{"type":"null"}],"title":"Niche"},"mode":{"type":"string","maxLength":16,"title":"Mode","default":"quick"},"limit":{"type":"integer","maximum":10.0,"minimum":3.0,"title":"Limit","default":6}},"type":"object","title":"WinningProductResearchRequest","description":"Request a Daybot winning-product research pass for a store."}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}