{"openapi":"3.0.3","info":{"title":"Builderly API","version":"2026-11-05","description":"Generated from the running server: every mounted route, its access, the parameters its handler reads and the models it uses.\n\n## For AI assistants: getting a token\n\nPublic endpoints (Access: Public) need no token. Everything else - changing the site, or reading its orders, bookings, customers and other private data - needs the site owner's API token.\n\nYou cannot create a token yourself, and you must not ask for the owner's password. Ask the user for a token instead - you can send them this message as it is:\n\n> To work with your site through its API, I need an API token from you:\n> 1. Sign in to your Builderly admin: https://admin.max-media.io\n> 2. Open Developers > API reference (or go straight to https://admin.max-media.io/tabs/site-builder/api-docs).\n> 3. Press \"Generate token\", copy the token and paste it here.\n> The token acts as you, so only share it in this chat. You can cancel it at any time by signing out of all devices.\n\nThen send it with every request as `Authorization: Bearer <token>`, and add `?ionic=true` to get JSON. Calls go to the site's own address (its domain), not to the reference's.\n\nThe token acts as the user: say what you will change and wait for their yes before any request that creates, changes or deletes something, never repeat the token back, and never put it in a link or a file you share.\n"},"servers":[{"url":"http://www.a-plus-solutions.eu"}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}},"schemas":{"AboutPage":{"type":"object","properties":{"requiresLogin":{"type":"boolean","default":false,"description":"Only signed-in users can see the page."},"requiresSubscription":{"type":"boolean","default":false,"description":"Only subscribers of one of price_plan_ids can see the page."},"price_plan_ids":{"type":"array","items":{"type":"string"},"description":"The price plans whose subscribers can see the page, with requiresSubscription."},"title":{"type":"string","description":"The page's title, shown in the browser tab and in the admin."},"url":{"type":"string","description":"The page's address on the site: /<url>. Unique."},"redirectUrl":{"type":"string","description":"When set, visitors who open the page are sent to this address instead."},"legal_kind":{"type":"string","description":"For legal pages: which document it is, in English (Privacy Policy, Terms of Service...)."},"isPartial":{"type":"boolean","default":false,"description":"A part of other pages (a banner, a block inside a product page), not a page of its own."},"showTo":{"type":"string","default":"0","description":"Who sees the page: \"0\" everyone, \"1\" signed-in users only, \"2\" visitors who are not signed in."},"showHeader":{"type":"boolean","default":true,"description":"Show the site's header on the page."},"showFooter":{"type":"boolean","default":true,"description":"Show the site's footer on the page."},"ai_context_v2":{"type":"object"},"ai_surfaces_v2":{"type":"object"},"ai_overview":{"type":"string","description":"A short summary of the page the AI builder keeps for its own use."},"ai_generation_metadata":{"type":"object","default":null},"containers":{"type":"array","items":{"type":"object","properties":{"isFluid":{"type":"boolean","default":false},"parallaxEnabled":{"type":"boolean"},"parallaxAmount":{"type":"number"},"parallaxZoom":{"type":"number"},"continuousEnabled":{"type":"boolean","default":false},"continuousEffect":{"type":"string","default":"none"},"continuousDuration":{"type":"number","default":2400},"continuousIntensity":{"type":"number","default":4},"backgroundImage":{"type":"string"},"backgroundSize":{"type":"string"},"backgroundPosition":{"type":"string"},"backgroundRepeat":{"type":"string"},"backgroundVideo":{"type":"string"},"backgroundColor":{"type":"string"},"backgroundParallax":{"type":"boolean","default":false},"minHeight":{"type":"number"},"minHeightMobile":{"type":"number"},"allowOffset":{"type":"boolean","default":false},"offsetX":{"type":"number","default":0},"offsetY":{"type":"number","default":0},"offsetMobileX":{"type":"number","default":0},"offsetMobileY":{"type":"number","default":0},"zIndex":{"type":"number","default":0},"wrap_reverse":{"type":"boolean","default":false},"borderRadius":{"type":"number","default":0},"marginX":{"type":"number","default":0},"editorName":{"type":"string"},"horizontalScroll":{"type":"boolean","default":false},"horizontalScrollWidth":{"type":"number","default":100},"overflowX":{"type":"string","default":"hidden"},"columns":{"type":"array","items":{"type":"object","properties":{"size":{"type":"string"},"hoverGroup":{"type":"boolean"},"parallaxEnabled":{"type":"boolean"},"parallaxAmount":{"type":"number"},"parallaxZoom":{"type":"number"},"continuousEnabled":{"type":"boolean","default":false},"continuousEffect":{"type":"string","default":"none"},"continuousDuration":{"type":"number","default":2400},"continuousIntensity":{"type":"number","default":4},"sticky":{"type":"boolean","default":false},"justify":{"type":"string"},"align":{"type":"string"},"onHoverActions":{"type":"boolean","default":false},"onHoverTransition":{"type":"number","default":0.3},"backgroundColor":{"type":"string"},"backgroundColorOnHover":{"type":"string"},"innerBackgroundColor":{"type":"string"},"innerBackgroundColorOnHover":{"type":"string"},"backgroundImage":{"type":"string"},"backgroundSize":{"type":"string"},"backgroundPosition":{"type":"string"},"backgroundRepeat":{"type":"string"},"backgroundVideo":{"type":"string"},"paddingX":{"type":"number","default":0},"paddingXOnHover":{"type":"number","default":0},"paddingY":{"type":"number","default":0},"paddingYOnHover":{"type":"number","default":0},"innerPaddingX":{"type":"number","default":0},"innerPaddingXOnHover":{"type":"number","default":0},"innerPaddingY":{"type":"number","default":0},"allowOffset":{"type":"boolean","default":false},"offsetX":{"type":"number","default":0},"offsetY":{"type":"number","default":0},"offsetMobileX":{"type":"number","default":0},"offsetMobileY":{"type":"number","default":0},"zIndex":{"type":"number","default":0},"innerPaddingYOnHover":{"type":"number","default":0},"paddingOptions":{"type":"string"},"paddingOptionsOnHover":{"type":"string"},"innerPaddingOptions":{"type":"string"},"borderOptions":{"type":"string"},"borderOptionsOnHover":{"type":"string"},"card":{"type":"boolean","default":false},"borderRadius":{"type":"number","default":0},"borderRadiusOnHover":{"type":"number","default":0},"borderType":{"type":"string","default":"none"},"borderTypeOnHover":{"type":"string","default":"none"},"borderWidth":{"type":"number","default":0},"borderWidthOnHover":{"type":"number","default":0},"borderColor":{"type":"string","default":""},"borderColorOnHover":{"type":"string","default":""},"components":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"size":{"type":"string","default":"12"},"sticky":{"type":"boolean","default":false},"paddingX":{"type":"number","default":0},"paddingY":{"type":"number","default":0},"allowOffset":{"type":"boolean","default":false},"offsetX":{"type":"number","default":0},"offsetY":{"type":"number","default":0},"offsetMobileX":{"type":"number","default":0},"offsetMobileY":{"type":"number","default":0},"zIndex":{"type":"number","default":0},"position":{"type":"string","enum":["static","relative","absolute","fixed","sticky"],"default":"static"},"custom_measurements":{"type":"boolean","default":false},"edit_type":{"type":"string","default":"simple"},"object_fit":{"type":"string","default":"none"},"min_height":{"type":"number","default":0},"specific_border_radius":{"type":"boolean","default":false},"box_shadows":{"type":"array","items":{"type":"object","properties":{}}},"mix_blend_mode":{"type":"string","enum":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],"default":"normal"},"paddingOptions":{"type":"string"},"backgroundColor":{"type":"string"},"card":{"type":"boolean","default":false},"borderRadius":{"type":"number","default":0},"borderType":{"type":"string","default":"none"},"borderWidth":{"type":"number","default":0},"borderColor":{"type":"string","default":""},"borderOptions":{"type":"string"},"showOnMobile":{"type":"boolean","default":true},"showOnDesktop":{"type":"boolean","default":true},"icon":{"type":"string"},"heading":{"type":"string"},"subHeading":{"type":"string"},"heading_alignment":{"type":"string"},"innerHTML":{"type":"string"},"innerCSS":{"type":"string"},"innerJS":{"type":"string"},"lineHeight":{"type":"string","default":"normal"},"medias":{"type":"array","items":{"type":"object","properties":{}}},"products":{"type":"array","items":{"type":"string"},"description":"Id of a Product."},"services":{"type":"array","items":{"type":"string"},"description":"Id of a Service."},"blogposts":{"type":"array","items":{"type":"string"},"description":"Id of a BlogPost."},"videos":{"type":"array","items":{"type":"string"},"description":"Id of a Video."},"price_plans":{"type":"array","items":{"type":"string"},"description":"Id of a PricePlan."},"href":{"type":"string","default":"#"},"router_link":{"type":"string"},"map":{"type":"string"},"animation":{"type":"string","default":"none"},"animationDuration":{"type":"number","default":0},"animationStrength":{"type":"number"},"parallaxEnabled":{"type":"boolean"},"parallaxAmount":{"type":"number"},"parallaxZoom":{"type":"number"},"textReveal":{"type":"string"},"animationDelay":{"type":"number","default":0},"animationReplay":{"type":"string","default":"once"},"animationEasing":{"type":"string","default":"power3.out"},"animationBreakpoint":{"type":"string","default":"all"},"scrollScrubEnabled":{"type":"boolean","default":false},"scrollScrubAxis":{"type":"string","default":"y"},"scrollScrubDistance":{"type":"number","default":80},"motionOrigin":{"type":"string","default":"center center"},"hoverEnabled":{"type":"boolean","default":false},"hoverEffect":{"type":"string","default":"none"},"hoverDuration":{"type":"number","default":240},"hoverIntensity":{"type":"number","default":4},"continuousEnabled":{"type":"boolean","default":false},"continuousEffect":{"type":"string","default":"none"},"continuousDuration":{"type":"number","default":2400},"continuousIntensity":{"type":"number","default":4},"statefulEnabled":{"type":"boolean","default":false},"statefulEffect":{"type":"string","default":"none"},"statefulDuration":{"type":"number","default":260},"statefulStagger":{"type":"number","default":60},"opacity":{"type":"object"},"transitionDuration":{"type":"object"},"transitionEasing":{"type":"string"},"states":{"type":"object"},"useIframe":{"type":"boolean","default":false},"collapsible_container":{"type":"array","items":{"type":"object","properties":{}}},"dynamicField":{"type":"string"},"useDynamicField":{"type":"boolean","default":false},"_id":{"type":"string"},"top":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"left":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"right":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"bottom":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"custom_width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"custom_min_width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"custom_max_width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"custom_height":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"custom_min_height":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"custom_max_height":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"aspect_ratio":{"type":"object","properties":{"custom":{"type":"boolean"},"ratio":{"type":"string"}}},"margin_left":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"margin_right":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"margin_top":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"margin_bottom":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"padding_left":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"padding_right":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"padding_top":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"padding_bottom":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"border_left":{"type":"object","properties":{"color":{"type":"string"},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"style":{"type":"string"}}},"border_right":{"type":"object","properties":{"color":{"type":"string"},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"style":{"type":"string"}}},"border_top":{"type":"object","properties":{"color":{"type":"string"},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"style":{"type":"string"}}},"border_bottom":{"type":"object","properties":{"color":{"type":"string"},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"style":{"type":"string"}}},"border_top_left_radius":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"border_top_right_radius":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"border_bottom_left_radius":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"border_bottom_right_radius":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"custom_border_radius":{"type":"object","properties":{"value":{"type":"number"},"unit":{"type":"string"}}},"backgroundGradient":{"type":"object","properties":{"enabled":{"type":"boolean"},"type":{"type":"string"},"degrees":{"type":"number"},"radialShape":{"type":"string"},"radialPosition":{"type":"string"},"colors":{"type":"string"},"css":{"type":"string"}}},"iconSettings":{"type":"object","properties":{"size":{"type":"number"},"color":{"type":"string"}}},"product_gallery":{"type":"object","properties":{"design_layout":{"type":"string"},"mode":{"type":"string"},"columns":{"type":"number"},"placeholderItems":{"type":"string"},"placeholderPlateColor":{"type":"string"},"showName":{"type":"boolean"},"showPrice":{"type":"boolean"},"showDescription":{"type":"boolean"},"showBrand":{"type":"boolean"},"showRibbon":{"type":"boolean"},"showRating":{"type":"boolean"},"showCart":{"type":"boolean"},"showLink":{"type":"boolean"},"linkLabel":{"type":"string"},"imageAspectRatio":{"type":"string"},"imageHeight":{"type":"number"},"imageRadius":{"type":"number"},"imageObjectFit":{"type":"string"},"cardBackgroundColor":{"type":"string"},"cardBorderRadius":{"type":"number"},"cardBorderWidth":{"type":"number"},"cardBorderColor":{"type":"string"},"cardPaddingX":{"type":"number"},"cardPaddingY":{"type":"number"},"gap":{"type":"number"},"boxShadowColor":{"type":"string"},"boxShadowOffsetY":{"type":"number"},"boxShadowBlurRadius":{"type":"number"},"boxShadowSpreadRadius":{"type":"number"},"fieldBackground":{"type":"string"},"hairlineColor":{"type":"string"},"hairlineWidth":{"type":"number"},"maxWidth":{"type":"number"},"scrimGradient":{"type":"string"},"align":{"type":"string"},"accentColor":{"type":"string"},"nameColor":{"type":"string"},"nameFontSize":{"type":"string"},"nameFontWeight":{"type":"string"},"nameFontFamily":{"type":"string"},"nameTransform":{"type":"string"},"priceColor":{"type":"string"},"priceFontSize":{"type":"string"},"priceFontWeight":{"type":"string"},"priceFontFamily":{"type":"string"},"priceFontStyle":{"type":"string"},"metaColor":{"type":"string"},"titlePosition":{"type":"string"},"imageSide":{"type":"string"},"imagePadding":{"type":"number"},"boxShadowOffsetX":{"type":"number"},"descFontSize":{"type":"string"},"descFontWeight":{"type":"string"},"animation":{"type":"string"},"animationDuration":{"type":"number"},"animationDelay":{"type":"number"},"showCustomFields":{"type":"boolean"},"cardDesign":{"type":"string"},"carouselLoop":{"type":"boolean"},"carouselControls":{"type":"boolean"},"customCss":{"type":"string"}}},"service_gallery":{"type":"object","properties":{"design_layout":{"type":"string"},"mode":{"type":"string"},"columns":{"type":"number"},"placeholderItems":{"type":"string"},"placeholderPlateColor":{"type":"string"},"showTitle":{"type":"boolean"},"showPrice":{"type":"boolean"},"showDescription":{"type":"boolean"},"showDuration":{"type":"boolean"},"durationLabel":{"type":"string"},"showImage":{"type":"boolean"},"showLink":{"type":"boolean"},"linkLabel":{"type":"string"},"imageAspectRatio":{"type":"string"},"imageHeight":{"type":"number"},"imageRadius":{"type":"number"},"imageObjectFit":{"type":"string"},"cardBackgroundColor":{"type":"string"},"cardBorderRadius":{"type":"number"},"cardBorderWidth":{"type":"number"},"cardBorderColor":{"type":"string"},"cardPaddingX":{"type":"number"},"cardPaddingY":{"type":"number"},"gap":{"type":"number"},"boxShadowColor":{"type":"string"},"boxShadowOffsetY":{"type":"number"},"boxShadowBlurRadius":{"type":"number"},"boxShadowSpreadRadius":{"type":"number"},"fieldBackground":{"type":"string"},"hairlineColor":{"type":"string"},"hairlineWidth":{"type":"number"},"rowRuleColor":{"type":"string"},"rowRuleWidth":{"type":"number"},"maxWidth":{"type":"number"},"scrimGradient":{"type":"string"},"align":{"type":"string"},"accentColor":{"type":"string"},"titleColor":{"type":"string"},"titleFontSize":{"type":"string"},"titleFontWeight":{"type":"string"},"titleFontFamily":{"type":"string"},"titleTransform":{"type":"string"},"priceColor":{"type":"string"},"priceFontSize":{"type":"string"},"priceFontWeight":{"type":"string"},"priceFontFamily":{"type":"string"},"priceFontStyle":{"type":"string"},"metaColor":{"type":"string"},"titlePosition":{"type":"string"},"imageSide":{"type":"string"},"imagePadding":{"type":"number"},"boxShadowOffsetX":{"type":"number"},"descFontSize":{"type":"string"},"descFontWeight":{"type":"string"},"animation":{"type":"string"},"animationDuration":{"type":"number"},"animationDelay":{"type":"number"},"showCustomFields":{"type":"boolean"},"cardDesign":{"type":"string"},"carouselLoop":{"type":"boolean"},"carouselControls":{"type":"boolean"},"customCss":{"type":"string"}}},"blog_gallery":{"type":"object","properties":{"design_layout":{"type":"string"},"mode":{"type":"string"},"columns":{"type":"number"},"leadLayout":{"type":"string"},"leadWidth":{"type":"number"},"placeholderItems":{"type":"string"},"placeholderPlateColor":{"type":"string"},"showTitle":{"type":"boolean"},"showExcerpt":{"type":"boolean"},"showDate":{"type":"boolean"},"showImage":{"type":"boolean"},"showLink":{"type":"boolean"},"linkLabel":{"type":"string"},"showCustomFields":{"type":"boolean"},"imageAspectRatio":{"type":"string"},"imageHeight":{"type":"number"},"imageRadius":{"type":"number"},"imageObjectFit":{"type":"string"},"imagePadding":{"type":"number"},"imageSide":{"type":"string"},"cardBackgroundColor":{"type":"string"},"cardBorderRadius":{"type":"number"},"cardBorderWidth":{"type":"number"},"cardBorderColor":{"type":"string"},"cardPaddingX":{"type":"number"},"cardPaddingY":{"type":"number"},"gap":{"type":"number"},"boxShadowColor":{"type":"string"},"boxShadowOffsetX":{"type":"number"},"boxShadowOffsetY":{"type":"number"},"boxShadowBlurRadius":{"type":"number"},"boxShadowSpreadRadius":{"type":"number"},"fieldBackground":{"type":"string"},"hairlineColor":{"type":"string"},"hairlineWidth":{"type":"number"},"rowRuleColor":{"type":"string"},"rowRuleWidth":{"type":"number"},"maxWidth":{"type":"number"},"scrimGradient":{"type":"string"},"align":{"type":"string"},"accentColor":{"type":"string"},"titleColor":{"type":"string"},"titleFontSize":{"type":"string"},"titleFontWeight":{"type":"string"},"titleFontFamily":{"type":"string"},"titleTransform":{"type":"string"},"dateColor":{"type":"string"},"dateFontSize":{"type":"string"},"dateFontWeight":{"type":"string"},"dateFontFamily":{"type":"string"},"dateFontStyle":{"type":"string"},"metaColor":{"type":"string"},"excerptFontSize":{"type":"string"},"excerptFontWeight":{"type":"string"},"excerptFontFamily":{"type":"string"},"titlePosition":{"type":"string"},"animation":{"type":"string"},"animationDuration":{"type":"number"},"animationDelay":{"type":"number"},"cardDesign":{"type":"string"},"customCss":{"type":"string"}}},"multi_booking":{"type":"object","properties":{"layout":{"type":"string"},"columns":{"type":"number"},"pickerBackground":{"type":"string"},"gap":{"type":"number"},"align":{"type":"string"},"showPrice":{"type":"boolean"},"showDuration":{"type":"boolean"},"showDescription":{"type":"boolean"},"showImage":{"type":"boolean"},"itemPaddingX":{"type":"number"},"itemPaddingY":{"type":"number"},"itemRadius":{"type":"number"},"itemBorderWidth":{"type":"number"},"itemBorderColor":{"type":"string"},"itemBackground":{"type":"string"},"itemTextColor":{"type":"string"},"itemSubTextColor":{"type":"string"},"selectedBackground":{"type":"string"},"selectedTextColor":{"type":"string"},"selectedSubTextColor":{"type":"string"},"selectedBorderColor":{"type":"string"},"hoverBackground":{"type":"string"},"titleFontSize":{"type":"number"},"titleFontWeight":{"type":"string"},"subFontSize":{"type":"number"},"dividerColor":{"type":"string"},"dividerWidth":{"type":"number"},"autoScroll":{"type":"boolean"},"cardBackground":{"type":"string"},"cardRadius":{"type":"number"},"cardBorderWidth":{"type":"number"},"cardBorderColor":{"type":"string"},"cardMaxWidth":{"type":"number"},"cardLayout":{"type":"string"},"splitWidth":{"type":"number"},"shadowColor":{"type":"string"},"shadowOffsetY":{"type":"number"},"shadowBlur":{"type":"number"},"shadowSpread":{"type":"number"},"sectionPaddingX":{"type":"number"},"sectionPaddingY":{"type":"number"},"sectionDividerColor":{"type":"string"},"sectionDividerWidth":{"type":"number"},"showStepLabels":{"type":"boolean"},"serviceStepLabel":{"type":"string"},"dayStepLabel":{"type":"string"},"staffStepLabel":{"type":"string"},"timeStepLabel":{"type":"string"},"stepLabelColor":{"type":"string"},"stepLabelSize":{"type":"number"},"stepLabelWeight":{"type":"string"},"stepLabelSpacing":{"type":"number"},"stepLabelUppercase":{"type":"boolean"},"dayCount":{"type":"number"},"dayLayout":{"type":"string"},"dayBorderColor":{"type":"string"},"dayShape":{"type":"string"},"daySize":{"type":"number"},"dayGap":{"type":"number"},"dayShowWeekday":{"type":"boolean"},"dayBackground":{"type":"string"},"dayTextColor":{"type":"string"},"daySelectedBackground":{"type":"string"},"daySelectedTextColor":{"type":"string"},"dayDisabledOpacity":{"type":"number"},"timeGap":{"type":"number"},"timeRadius":{"type":"number"},"timeBorderWidth":{"type":"number"},"timeBorderColor":{"type":"string"},"timeSelectedBorderColor":{"type":"string"},"timePaddingX":{"type":"number"},"timePaddingY":{"type":"number"},"timeBackground":{"type":"string"},"timeTextColor":{"type":"string"},"timeSelectedBackground":{"type":"string"},"timeSelectedTextColor":{"type":"string"},"buttonText":{"type":"string"},"buttonBackground":{"type":"string"},"buttonTextColor":{"type":"string"},"buttonRadius":{"type":"number"},"buttonPaddingY":{"type":"number"},"buttonFontSize":{"type":"number"},"buttonFontWeight":{"type":"string"},"buttonFullWidth":{"type":"boolean"}}},"buttonOptions":{"type":"object","properties":{"fill":{"type":"string"},"expand":{"type":"string"},"size":{"type":"string"},"color":{"type":"string"},"class":{"type":"string"},"customColor":{"type":"string"},"customColorContrast":{"type":"string"},"customColorHover":{"type":"string"},"hoverRoll":{"type":"boolean"},"fontWeight":{"type":"number"},"letterSpacing":{"type":"number"},"fontSize":{"type":"number"},"borderRadius":{"type":"number"},"customColorA":{"type":"string"},"customColorB":{"type":"string"},"customColorC":{"type":"string"},"custom_measurements":{"type":"boolean"},"height":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}}}},"carousel":{"type":"object","properties":{"showArrows":{"type":"boolean"},"showIndicators":{"type":"boolean"},"height":{"type":"number"},"automaticHeight":{"type":"boolean"},"carouselMedias":{"type":"string"}}},"contactForm":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"subject":{"type":"string"},"body":{"type":"string"},"button":{"type":"string"},"hideNewsletter":{"type":"boolean"},"placeholders":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"subject":{"type":"string"},"body":{"type":"string"}}},"style":{"type":"object","properties":{"backgroundColor":{"type":"string"},"textColor":{"type":"string"},"accentColor":{"type":"string"},"border":{"type":"object","properties":{"color":{"type":"string"},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"style":{"type":"string"}}},"borderRadius":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"padding":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"labelFontSize":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"consentFontSize":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"inputBackgroundColor":{"type":"string"},"inputTextColor":{"type":"string"},"placeholderColor":{"type":"string"},"inputFocusColor":{"type":"string"},"inputFontSize":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"inputPadding":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"textareaMinHeight":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"inputMargin":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"inputBorder":{"type":"object","properties":{"color":{"type":"string"},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"style":{"type":"string"}}},"inputBorderRadius":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"buttonBackgroundColor":{"type":"string"},"buttonTextColor":{"type":"string"},"buttonAlign":{"type":"string"},"buttonFontSize":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"buttonBorder":{"type":"object","properties":{"color":{"type":"string"},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"style":{"type":"string"}}},"buttonBorderRadius":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"buttonWidth":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}}}},"additional":{"type":"string"}}},"instagram":{"type":"object","properties":{"columns":{"type":"number"},"first":{"type":"number"},"skip":{"type":"number"},"showInfo":{"type":"boolean"},"gridType":{"type":"number"},"profile":{"type":"string"}}},"facebook":{"type":"object","properties":{"url":{"type":"string"},"width":{"type":"string"},"height":{"type":"string"}}},"transform":{"type":"object","properties":{"enabled":{"type":"boolean"},"translateX":{"type":"object","properties":{"value":{"type":"number"},"unit":{"type":"string"}}},"translateY":{"type":"object","properties":{"value":{"type":"number"},"unit":{"type":"string"}}},"scaleX":{"type":"number"},"scaleY":{"type":"number"},"rotate":{"type":"number"},"rotateX":{"type":"number"},"rotateY":{"type":"number"},"skewX":{"type":"number"},"skewY":{"type":"number"},"perspective":{"type":"number"},"originX":{"type":"string"},"originY":{"type":"string"}}},"popup":{"type":"object","properties":{"text":{"type":"string"},"backgroundColor":{"type":"string"},"fullScreen":{"type":"boolean"},"about_page":{"type":"string"}}},"custom_component":{"type":"object","properties":{"html":{"type":"string"},"compiled_html":{"type":"string"},"css":{"type":"string"},"compiled_css":{"type":"string"},"js":{"type":"string"},"iframe":{"type":"boolean"},"variables":{"type":"string"}}},"hoverable_media":{"type":"object","properties":{"before_hover_media":{"type":"object","properties":{"media":{"type":"string"},"gcs_url":{"type":"string"},"vimeo_uri":{"type":"string"},"vimeo_picture":{"type":"string"},"youtube_url":{"type":"string"},"vimeo_url":{"type":"string"},"href":{"type":"string"},"router_link":{"type":"string"},"thumbnail":{"type":"string"},"autoplay":{"type":"boolean"},"loop":{"type":"boolean"},"show_controls":{"type":"boolean"}}},"after_hover_media":{"type":"object","properties":{"media":{"type":"string"},"gcs_url":{"type":"string"},"vimeo_uri":{"type":"string"},"vimeo_picture":{"type":"string"},"youtube_url":{"type":"string"},"vimeo_url":{"type":"string"},"href":{"type":"string"},"router_link":{"type":"string"},"thumbnail":{"type":"string"},"autoplay":{"type":"boolean"},"loop":{"type":"boolean"},"show_controls":{"type":"boolean"}}}}},"collapsible_container_settings":{"type":"object","properties":{"enable_customization":{"type":"boolean"},"title_color":{"type":"string"},"title_color_checked":{"type":"string"},"title_background":{"type":"string"},"title_background_checked":{"type":"string"},"title_font_size":{"type":"string"},"title_border_radius":{"type":"string"},"title_border_color":{"type":"string"},"title_border_width":{"type":"string"},"body_color":{"type":"string"},"body_background":{"type":"string"},"body_border_radius":{"type":"string"},"body_border_color":{"type":"string"},"body_border_width":{"type":"string"},"body_font_size":{"type":"string"},"icon_color":{"type":"string"},"icon_glyph_color":{"type":"string"},"icon_background_color":{"type":"string"}}},"quiz":{"type":"object","properties":{"title":{"type":"string"},"header":{"type":"string"},"questions":{"type":"string"},"score_results":{"type":"string"},"show_right_answers":{"type":"boolean"},"mutliple_choice":{"type":"boolean"}}},"partners":{"type":"object","properties":{"defaultCollection":{"type":"string"},"defaultView":{"type":"string"}}},"scroll_sequence":{"type":"object","properties":{"media":{"type":"string"},"scroll_length":{"type":"number"},"fit":{"type":"string"},"background_color":{"type":"string"},"overlay_color":{"type":"string"},"overlay_opacity":{"type":"number"},"rows_over":{"type":"boolean"},"rows_effect":{"type":"string"},"snap_points":{"type":"string"},"snap_scroll_speed":{"type":"number"},"snap_down":{"type":"boolean"},"snap_up":{"type":"boolean"},"stop_momentum":{"type":"boolean"}}},"smart_search":{"type":"object","properties":{"placeholder":{"type":"string"},"kinds":{"type":"string"},"collections":{"type":"string"},"items":{"type":"string"},"showKindFilter":{"type":"boolean"},"showPriceFilter":{"type":"boolean"},"showDateFilter":{"type":"boolean"},"showSort":{"type":"boolean"},"dateMode":{"type":"string"},"layout":{"type":"string"},"columns":{"type":"number"},"perPage":{"type":"number"},"instant":{"type":"boolean"},"showImages":{"type":"boolean"},"showPrices":{"type":"boolean"},"showInitial":{"type":"boolean"},"showAnswer":{"type":"boolean"}}},"countdown":{"type":"object","properties":{"targetDate":{"type":"string"},"expiredText":{"type":"string"},"hideOnExpire":{"type":"boolean"},"textColor":{"type":"string"},"boxColor":{"type":"string"},"align":{"type":"string"}}},"swiper":{"type":"object","properties":{"slides":{"type":"string"},"autoplay":{"type":"boolean"},"loop":{"type":"boolean"},"show_controls":{"type":"boolean"},"dynamic_bullets":{"type":"boolean"},"pagination":{"type":"boolean"}}},"text_auto_slider":{"type":"object","properties":{"speed":{"type":"number"},"aspect_ratio":{"type":"string"},"text_color":{"type":"string"},"background_color":{"type":"string"},"delimiter_color":{"type":"string"},"direction":{"type":"string"},"width":{"type":"number"},"font_size":{"type":"number"},"text_transform":{"type":"string"},"texts":{"type":"string"}}},"image_auto_slider":{"type":"object","properties":{"speed":{"type":"number"},"aspect_ratio":{"type":"string"},"direction":{"type":"string"},"width":{"type":"number"},"medias":{"type":"string"}}},"image_dragger":{"type":"object","properties":{"aspect_ratio":{"type":"string"},"media_1":{"type":"object","properties":{"media":{"type":"string"},"gcs_url":{"type":"string"},"vimeo_uri":{"type":"string"},"vimeo_picture":{"type":"string"},"vimeo_url":{"type":"string"},"youtube_url":{"type":"string"}}},"media_2":{"type":"object","properties":{"media":{"type":"string"},"gcs_url":{"type":"string"},"vimeo_uri":{"type":"string"},"vimeo_picture":{"type":"string"},"vimeo_url":{"type":"string"},"youtube_url":{"type":"string"},"title":{"type":"string"},"body":{"type":"string"},"textColor":{"type":"string"},"href":{"type":"string"},"router_link":{"type":"string"}}}}}}}},"sections":{"type":"array","items":{"type":"object","properties":{"position":{"type":"string","enum":["static","relative","absolute","fixed","sticky"],"default":"static"},"overflow":{"type":"string","enum":["visible","hidden","scroll","auto"],"default":"visible"},"editorName":{"type":"string"},"display":{"type":"string","enum":["block","inline","flex"],"default":"block"},"flex_direction":{"type":"string","enum":["row","row-reverse","column","column-reverse"],"default":"row"},"flex_direction_mobile":{"type":"string","default":""},"backdropFilter":{"type":"string","default":""},"justify":{"type":"string","enum":["start","end","center","space-between","space-around","stretch"],"default":"start"},"justify_mobile":{"type":"string","default":""},"align":{"type":"string","enum":["start","end","center","space-between","space-around","stretch"],"default":"start"},"align_mobile":{"type":"string","default":""},"animation":{"type":"string","default":"none"},"animationDuration":{"type":"number","default":0},"animationStrength":{"type":"number"},"parallaxEnabled":{"type":"boolean"},"parallaxAmount":{"type":"number"},"parallaxZoom":{"type":"number"},"animationDelay":{"type":"number","default":0},"animationReplay":{"type":"string","default":"once"},"animationEasing":{"type":"string","default":"power3.out"},"animationBreakpoint":{"type":"string","default":"all"},"scrollScrubEnabled":{"type":"boolean","default":false},"scrollScrubAxis":{"type":"string","default":"y"},"scrollScrubDistance":{"type":"number","default":80},"motionOrigin":{"type":"string","default":"center center"},"hoverEnabled":{"type":"boolean","default":false},"hoverEffect":{"type":"string","default":"none"},"hoverDuration":{"type":"number","default":240},"hoverIntensity":{"type":"number","default":4},"continuousEnabled":{"type":"boolean","default":false},"continuousEffect":{"type":"string","default":"none"},"continuousDuration":{"type":"number","default":2400},"continuousIntensity":{"type":"number","default":4},"statefulEnabled":{"type":"boolean","default":false},"statefulEffect":{"type":"string","default":"none"},"statefulDuration":{"type":"number","default":260},"statefulStagger":{"type":"number","default":60},"opacity":{"type":"object"},"transitionDuration":{"type":"object"},"transitionEasing":{"type":"string"},"states":{"type":"object"},"hoverGroup":{"type":"boolean"},"flex_wrap":{"type":"string","enum":["nowrap","wrap","wrap-reverse"],"default":"wrap"},"flex_wrap_mobile":{"type":"string","default":""},"object_fit":{"type":"string"},"specific_border_radius":{"type":"boolean","default":false},"box_shadows":{"type":"array","items":{"type":"object","properties":{}}},"backgroundColor":{"type":"string"},"backgroundVideo":{"type":"string"},"backgroundImage":{"type":"string"},"backgroundSize":{"type":"string"},"backgroundPosition":{"type":"string"},"backgroundRepeat":{"type":"string"},"showOnMobile":{"type":"boolean","default":true},"showOnDesktop":{"type":"boolean","default":true},"components":{"type":"array","items":{"type":"object","properties":{}}},"sections":{"type":"array","items":{"type":"object","properties":{}}},"_id":{"type":"string"},"top":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"left":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"right":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"bottom":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"transform":{"type":"object","properties":{"enabled":{"type":"boolean"},"translateX":{"type":"object","properties":{"value":{"type":"number"},"unit":{"type":"string"}}},"translateY":{"type":"object","properties":{"value":{"type":"number"},"unit":{"type":"string"}}},"scaleX":{"type":"number"},"scaleY":{"type":"number"},"rotate":{"type":"number"},"rotateX":{"type":"number"},"rotateY":{"type":"number"},"skewX":{"type":"number"},"skewY":{"type":"number"},"perspective":{"type":"number"},"originX":{"type":"string"},"originY":{"type":"string"}}},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"min_width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"max_width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"height":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"min_height":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"max_height":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"aspect_ratio":{"type":"object","properties":{"custom":{"type":"boolean"},"ratio":{"type":"string"}}},"margin_left":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"margin_right":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"margin_top":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"margin_bottom":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"padding_left":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"padding_right":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"padding_top":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"padding_bottom":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"border_left":{"type":"object","properties":{"style":{"type":"string"},"color":{"type":"string"},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}}}},"border_right":{"type":"object","properties":{"style":{"type":"string"},"color":{"type":"string"},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}}}},"border_top":{"type":"object","properties":{"style":{"type":"string"},"color":{"type":"string"},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}}}},"border_bottom":{"type":"object","properties":{"style":{"type":"string"},"color":{"type":"string"},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}}}},"border_top_left_radius":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"border_top_right_radius":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"border_bottom_left_radius":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"border_bottom_right_radius":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"border_radius":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"backgroundGradient":{"type":"object","properties":{"enabled":{"type":"boolean"},"type":{"type":"string"},"degrees":{"type":"number"},"radialShape":{"type":"string"},"radialPosition":{"type":"string"},"colors":{"type":"string"},"css":{"type":"string"}}}}}},"_id":{"type":"string"},"backgroundGradient":{"type":"object","properties":{"enabled":{"type":"boolean"},"type":{"type":"string"},"degrees":{"type":"number"},"radialShape":{"type":"string"},"radialPosition":{"type":"string"},"colors":{"type":"string"},"css":{"type":"string"}}},"innerBackgroundGradient":{"type":"object","properties":{"enabled":{"type":"boolean"},"type":{"type":"string"},"degrees":{"type":"number"},"radialShape":{"type":"string"},"radialPosition":{"type":"string"},"colors":{"type":"string"},"css":{"type":"string"}}}}}},"ai_meta":{"type":"object","default":null},"_id":{"type":"string"},"backgroundGradient":{"type":"object","properties":{"enabled":{"type":"boolean"},"type":{"type":"string"},"degrees":{"type":"number"},"radialShape":{"type":"string"},"radialPosition":{"type":"string"},"colors":{"type":"string"},"css":{"type":"string"}}},"padding_top":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"padding_right":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"padding_bottom":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"padding_left":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}}}},"description":"The page's content: sections, each with columns of components."},"suitability_price_plans":{"type":"array","items":{"type":"string"},"description":"Id of a PricePlan."},"isSuitable":{"type":"boolean"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"AboutPageImport":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"media":{"type":"string"},"metadata":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"ActivityLog":{"type":"object","properties":{"action":{"type":"string"},"entity":{"type":"string"},"entity_id":{"type":"string"},"label":{"type":"string"},"method":{"type":"string"},"path":{"type":"string"},"status":{"type":"number"},"changes":{"type":"object"},"ip":{"type":"string"},"user_agent":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"actor":{"type":"object","properties":{"user":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"}}}}},"Advertisment":{"type":"object","properties":{"name":{"type":"string"},"media":{"type":"string"},"alt":{"type":"string"},"link":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Alert":{"type":"object","properties":{"type":{"type":"string"},"heading":{"type":"string"},"message":{"type":"string"},"meta_id":{"type":"string","description":"Id of a Meta."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"AttributedRevenue":{"type":"object","properties":{"value":{"type":"number"},"owner_id":{"type":"string","description":"Id of a User."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Automation":{"type":"object","properties":{"title":{"type":"string"},"webhook_url":{"type":"string"},"event_type":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Beds24Settings":{"type":"object","properties":{"sync_enabled":{"type":"boolean","default":true},"sync_from":{"type":"string","format":"date-time"},"last_pull_at":{"type":"string","format":"date-time"},"last_error":{"type":"string"},"last_error_at":{"type":"string","format":"date-time"},"room_mappings":{"type":"array","items":{"type":"object","properties":{"beds24_room_id":{"type":"string"},"beds24_room_name":{"type":"string"},"service":{"type":"string","description":"Id of a Service."},"_id":{"type":"string"}}}},"owner_id":{"type":"string","description":"Id of a User."},"connected_account_owner_id":{"type":"string","description":"Id of a User."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"BlogPost":{"type":"object","properties":{"title":{"type":"string","description":"Name of the blog post, required."},"url":{"type":"string"},"static_url":{"type":"string"},"header":{"type":"string","description":"Short excerpt or summary shown in listings and social previews, required."},"description":{"type":"string","description":"Full body text of the blog post in HTML format, required."},"medias":{"type":"array","items":{"type":"object","properties":{"media":{"type":"string","description":"Id of a Media."},"gcs_url":{"type":"string"},"gcs_480_30_url":{"type":"string"},"gcs_720_30_url":{"type":"string"},"gcs_1080_30_url":{"type":"string"},"duration":{"type":"number"},"thumbnail":{"type":"string"},"vimeo_uri":{"type":"string"},"vimeo_picture":{"type":"string"},"vimeo_url":{"type":"string"},"youtube_url":{"type":"string"},"youtube_picture":{"type":"string"},"_id":{"type":"string"}}}},"published":{"type":"boolean","default":true,"description":"If true the post is visible on the site, default true."},"owner_id":{"type":"string","description":"Id of a User."},"connected_account_owner_id":{"type":"string","description":"Id of a User."},"collection_id":{"type":"string","description":"Reference to a Collection model with name starting with 'blogpost/', used to categorise the post. Id of a Collection."},"selected":{"type":"boolean","default":false,"description":"If true the post is highlighted/featured, default false."},"custom_1":{"type":"string","description":"Optional text field used for filtering."},"custom_2":{"type":"string","description":"Optional text field used for filtering."},"custom_3":{"type":"string","description":"Optional text field used for filtering."},"about_page":{"type":"string","description":"Reference to AboutPage model, shown at the bottom of the post page. Id of a AboutPage."},"suitability_price_plans":{"type":"array","items":{"type":"string"},"description":"A list of references to PricePlan model, marks post as suitable for users with those plans. Id of a PricePlan."},"isSuitable":{"type":"boolean"},"reference_id":{"type":"string"},"wildcard_url":{"type":"object"},"likes":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"views":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"total_views":{"type":"number","default":0},"saves":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"times_showed":{"type":"number","default":0},"requiresLogin":{"type":"boolean","default":false},"requiresSubscription":{"type":"boolean","default":false},"price_plan_ids":{"type":"array","items":{"type":"string"},"description":"A list of price plan id strings that grant access to this post."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Booking":{"type":"object","properties":{"date":{"type":"string"},"date_iso":{"type":"string","format":"date-time"},"depart_date":{"type":"string"},"depart_date_iso":{"type":"string","format":"date-time"},"price":{"type":"number"},"time":{"type":"string"},"local_time":{"type":"string"},"isLastHour":{"type":"boolean"},"organization_name":{"type":"string"},"name":{"type":"string"},"firstname":{"type":"string"},"lastname":{"type":"string"},"email":{"type":"string"},"phone_number":{"type":"string"},"address":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"country":{"type":"string"},"zip_code":{"type":"string"},"tax_identification_number":{"type":"string"},"notes":{"type":"string"},"service_id":{"type":"string","description":"Id of a Service."},"staff_member":{"type":"string","description":"Id of a User."},"coupon":{"type":"string"},"discount_value":{"type":"number","default":0},"finalized":{"type":"boolean","default":false},"confirmed":{"type":"boolean","default":false},"confirmed_timestamp":{"type":"string","format":"date-time"},"week_reminder_sent":{"type":"boolean"},"day_reminder_sent":{"type":"boolean"},"status":{"type":"string"},"upsell":{"type":"string","description":"Id of a Order."},"staffmember_notes":{"type":"string"},"rating_mail_sent":{"type":"boolean","default":false},"call_attempts":{"type":"number","default":0},"last_call_attempt":{"type":"string","format":"date-time"},"attached_dynamic_models":{"type":"array","items":{"type":"object","properties":{"model":{"type":"string","description":"Id of a DynamicModel."},"document":{"type":"string"},"_id":{"type":"string"}}}},"beds24_booking_id":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"BoxNowSettings":{"type":"object","properties":{"shipping":{"type":"string","description":"Id of a Shipping."},"create_label":{"type":"boolean","default":false},"client_id":{"type":"string"},"contactNumber":{"type":"string"},"contactEmail":{"type":"string"},"contactName":{"type":"string"},"locationId":{"type":"string"},"owner_id":{"type":"string","description":"Id of a User."},"box":{"type":"array","items":{"type":"object","properties":{"height":{"type":"number"},"length":{"type":"number"},"width":{"type":"number"},"_id":{"type":"string"}}}},"multiple_items":{"type":"string","enum":["box","sum"],"default":"sum"},"divide_by":{"type":"number"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"product_default_dimensions":{"type":"object","properties":{"height":{"type":"number"},"width":{"type":"number"},"length":{"type":"number"},"weight":{"type":"number"}}}}},"Brand":{"type":"object","properties":{"name":{"type":"string"},"header":{"type":"string"},"description":{"type":"string"},"slogan":{"type":"string"},"logo":{"type":"string"},"_id":{"type":"string"}}},"Cart":{"type":"object","properties":{"session":{"type":"string"},"items":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string","description":"Id of a Products."},"options":{"type":"string"},"_id":{"type":"string"}}}},"coupon":{"type":"string"},"discount_value":{"type":"number","default":0},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"ip_guessed":{"type":"object","properties":{"country":{"type":"string"},"country_code":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"zip_code":{"type":"string"},"dialing_code":{"type":"string"}}}}},"ChatHistory":{"type":"object","properties":{"user":{"type":"string","description":"Id of a User."},"title":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"ChatMessage":{"type":"object","properties":{"chat_id":{"type":"string","description":"Id of a ChatHistory."},"role":{"type":"string","enum":["user","model"]},"text":{"type":"string"},"target_url":{"type":"string"},"action":{"type":"string","enum":["RESPONSE","REDIRECT","OBJECT_RESPONSE","ERROR","CLARIFY","PROPOSED_ACTION"]},"options":{"type":"array","items":{"type":"string"}},"medias":{"type":"array","items":{"type":"object","properties":{"media":{"type":"string","description":"Id of a Media."},"gcs_url":{"type":"string"},"gemini_uri":{"type":"string"},"gemini_interaction_id":{"type":"string"},"_id":{"type":"string"}}}},"products":{"type":"array","items":{"type":"string"},"description":"Id of a Product."},"services":{"type":"array","items":{"type":"string"},"description":"Id of a Service."},"blogposts":{"type":"array","items":{"type":"string"},"description":"Id of a BlogPost."},"programs":{"type":"array","items":{"type":"string"},"description":"Id of a Program."},"suggestions":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"route":{"type":"string"},"item_id":{"type":"string"},"medias":{"type":"array","items":{"type":"object"}},"picture":{"type":"string"},"_id":{"type":"string"}}}},"is_system":{"type":"boolean","default":false},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"data":{"type":"object","properties":{"object":{"type":"string"},"object_type":{"type":"string"},"edit_summary":{"type":"string"},"edit_diff":{"type":"string"},"undo_record":{"type":"string"},"hero_animation_offer":{"type":"string"},"preview_state":{"type":"string"},"pending_credit_cost":{"type":"number"},"target_restore":{"type":"string"},"media_request":{"type":"string"},"item_request":{"type":"string"},"reference_request":{"type":"string"},"section_options":{"type":"string"},"section_blueprint":{"type":"string"},"section_style_options":{"type":"string"},"section_style_blueprint":{"type":"string"},"section_role_picker":{"type":"string"},"small_section_regeneration_options":{"type":"string"},"small_section_regeneration_target":{"type":"string"},"small_section_regeneration_prompt":{"type":"string"},"selected_small_section_action":{"type":"string"},"component_regeneration_input":{"type":"string"},"selected_section_role":{"type":"string"},"selected_section_option":{"type":"string"},"selected_section_style":{"type":"string"},"section_options_target":{"type":"string"},"section_options_prompt":{"type":"string"},"style_options_target":{"type":"string"},"style_options_prompt":{"type":"string"},"previous_container":{"type":"string"},"preserved_custom_components":{"type":"string"},"selection_request":{"type":"string"},"proposed_action":{"type":"string"},"plan_result":{"type":"string"},"parsed_intent":{"type":"string"},"parsed_intent_version":{"type":"number"},"parsed_intent_at":{"type":"string"},"item_id":{"type":"string"},"design_archetype":{"type":"string"},"design_palette":{"type":"string"},"out_of_credits":{"type":"boolean"},"site_wide_edit":{"type":"string"},"redesign":{"type":"string"}}}}},"Click":{"type":"object","properties":{"url":{"type":"string"},"ip":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Collection":{"type":"object","properties":{"name":{"type":"string","description":"Name of the collection, should be unique, required."},"parent_collection":{"type":"string","description":"Reference to Collection. Id of a Collection."},"picture":{"type":"string","description":"Reference to Media. Id of a Media."},"about_page":{"type":"string","description":"Reference to AboutPage. Id of a AboutPage."},"match_to_option":{"type":"boolean","default":false,"description":"Matches all products which have an option with match_to_collection true."},"is_color":{"type":"boolean","default":false,"description":"Used for products with color options."},"color":{"type":"string","description":"Used to visually show the color on the page when is_color is true."},"position":{"type":"number"},"items":{"type":"array","items":{"type":"string"}},"thumbnail":{"type":"string","description":"Id of a Media."},"_id":{"type":"string"}}},"Comment":{"type":"object","properties":{"user":{"type":"string","description":"Id of a User."},"connected_account_user":{"type":"string","description":"Id of a User."},"commented_on":{"type":"string"},"comment":{"type":"string"},"likes":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"replies":{"type":"array","items":{"type":"object","properties":{"comment":{"type":"string"},"user":{"type":"string","description":"Id of a User."},"likes":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"createdAt":{"type":"string","format":"date-time"},"isHidden":{"type":"boolean","default":false},"_id":{"type":"string"}}}},"mentions":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"isHidden":{"type":"boolean","default":false},"medias":{"type":"array","items":{"type":"object","properties":{"media":{"type":"string","description":"Id of a Media."},"_id":{"type":"string"}}}},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"ConnectedAccount":{"type":"object","properties":{"on_behalf_of":{"type":"string","description":"Id of a User."},"user_account":{"type":"string","description":"Id of a User."},"status":{"type":"string","default":"pending"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"is_authorized_to":{"type":"object","properties":{"create_posts":{"type":"boolean"},"send_messages":{"type":"boolean"},"answer_delete_comments":{"type":"boolean"},"access_engagements":{"type":"boolean"},"access_boosted_posts":{"type":"boolean"},"access_analytics":{"type":"boolean"},"alter_profile_settings":{"type":"boolean"},"catalogue_access":{"type":"object","properties":{"alter_products":{"type":"boolean"},"alter_services":{"type":"boolean"},"alter_blogposts":{"type":"boolean"},"alter_price_plans":{"type":"boolean"},"alter_programs":{"type":"boolean"},"alter_orders":{"type":"boolean"},"alter_bookings":{"type":"boolean"},"alter_subscriptions":{"type":"boolean"},"alter_purchases":{"type":"boolean"}}}}}}},"Consent":{"type":"object","properties":{"title":{"type":"string"},"text":{"type":"string"},"_id":{"type":"string"}}},"Coupon":{"type":"object","properties":{"code":{"type":"string","description":"The coupon code customers enter at checkout (e.g. \"SUMMER20\", \"SAVE10\")."},"name":{"type":"string","description":"Internal label for this coupon (e.g. \"Summer Sale 20% Off\")."},"fixed_discount":{"type":"number","description":"Fixed amount discount (e.g. 10 for $10 off)."},"percentage_discount":{"type":"number","description":"Percentage discount 1–100 (e.g. 20 for 20% off)."},"shipping_discount":{"type":"number","description":"Discount on shipping cost."},"sale_discount":{"type":"number","description":"Sale price override."},"apply_to_all_orders":{"type":"boolean"},"apply_to_all_products":{"type":"boolean"},"apply_to_product":{"type":"string","description":"Name of the specific product to apply to."},"apply_to_event":{"type":"string","description":"Name of the specific event to apply to."},"apply_to_all_events":{"type":"boolean"},"apply_to_collection":{"type":"string","description":"Name of the specific collection/category to apply to."},"apply_to_minimum_subtotal":{"type":"number","description":"Minimum order subtotal required."},"start_date":{"type":"string","format":"date-time","description":"ISO 8601 date when the coupon becomes active (e.g. \"2026-03-20T00:00:00.000Z\")."},"end_date":{"type":"string","format":"date-time","description":"ISO 8601 expiry date (omit if no_end_date is true)."},"no_end_date":{"type":"boolean","default":false,"description":"Set to true if the coupon should never expire."},"limit_uses":{"type":"number","description":"Max total uses (omit or set 0 for unlimited)."},"uses":{"type":"number"},"_id":{"type":"string"},"quantity_discount":{"type":"object","properties":{"buy":{"type":"number"},"get":{"type":"number"}}}}},"CustomComponent":{"type":"object","properties":{"name":{"type":"string"},"html":{"type":"string"},"compiled_html":{"type":"string"},"css":{"type":"string"},"compiled_css":{"type":"string"},"js":{"type":"string"},"variables":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"_id":{"type":"string"}}}},"iframe":{"type":"boolean","default":false},"media":{"type":"string","description":"Id of a Media."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"CustomFont":{"type":"object","properties":{"family":{"type":"string"},"link":{"type":"string"},"name":{"type":"string"},"weights":{"type":"string"},"italics":{"type":"array","items":{"type":"string"}},"subsets":{"type":"array","items":{"type":"string"}},"generic":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"CustomForm":{"type":"object","properties":{"obj":{"type":"object"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"CustomPage":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"html_content":{"type":"string"},"css_content":{"type":"string"},"js_content":{"type":"string"},"_id":{"type":"string"}}},"DigitalContent":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"file":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Donation":{"type":"object","properties":{"enabled":{"type":"boolean","default":false},"has_shippable_items":{"type":"boolean","default":false},"medias":{"type":"array","items":{"type":"object","properties":{"media":{"type":"string","description":"Id of a Media."},"gcs_url":{"type":"string"},"gcs_480_30_url":{"type":"string"},"gcs_720_30_url":{"type":"string"},"gcs_1080_30_url":{"type":"string"},"duration":{"type":"number"},"vimeo_uri":{"type":"string"},"vimeo_picture":{"type":"string"},"vimeo_url":{"type":"string"},"youtube_url":{"type":"string"},"youtube_picture":{"type":"string"},"thumbnail":{"type":"string"},"_id":{"type":"string"}}}},"url":{"type":"string"},"static_url":{"type":"string"},"title":{"type":"string","description":"Name of the campaign, required."},"description":{"type":"string","description":"Full body text describing the campaign and its goals, in HTML format, required."},"about_page":{"type":"string","description":"Id of a AboutPage."},"collection_id":{"type":"string","description":"Reference to a Collection with name starting with 'donation-category/', optional. Id of a Collection."},"topics":{"type":"array","items":{"type":"object","properties":{"collection_id":{"type":"string","description":"Id of a Collection."},"_id":{"type":"string"}}}},"owner_id":{"type":"string","description":"Id of a User."},"options":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"options":{"type":"array","items":{"type":"object","properties":{"option":{"type":"string"},"match_to_collection":{"type":"string","description":"Id of a Collection."},"quantity":{"type":"number"},"badge":{"type":"string"},"option_specific_media":{"type":"string","description":"Id of a Media."},"_id":{"type":"string"}}}},"_id":{"type":"string"}}},"description":"Purchasable add-on option groups for the donation (e.g. \"Include a gift\", \"Select a reward tier\")."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"target_amount":{"type":"object","properties":{"enabled":{"type":"boolean"},"amount":{"type":"number"}}},"predefined_amounts":{"type":"object","properties":{"enabled":{"type":"boolean"},"amounts":{"type":"string"}}}}},"DynamicModel":{"type":"object","properties":{"name":{"type":"string"},"fields":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"required":{"type":"boolean"},"default":{"type":"object"},"patchable":{"type":"boolean","default":true},"ref":{"type":"string"},"ref_value_field":{"type":"string","default":"_id"},"ref_text_field":{"type":"string","default":"_id"},"depends_on":{"type":"string"},"populate":{"type":"boolean"},"wysiwyg":{"type":"boolean"},"fields":{"type":"array","items":{"type":"object"}},"show_field_in_cms_table":{"type":"boolean","default":true},"enumerator_values":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"_id":{"type":"string"}}}},"_id":{"type":"string"},"validations":{"type":"object","properties":{"minLength":{"type":"string"},"maxLength":{"type":"string"}}}}}},"attach_in":{"type":"array","items":{"type":"object","properties":{"ref":{"type":"string"},"ref_value_field":{"type":"string","default":"_id"},"ref_text_field":{"type":"string","default":"_id"},"user_input":{"type":"boolean","default":false},"_id":{"type":"string"}}},"description":"Id of a [object Object]."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"auth":{"type":"object","properties":{"create":{"type":"boolean"},"read":{"type":"boolean"},"update":{"type":"boolean"},"delete":{"type":"boolean"}}},"ownership_settings":{"type":"object","properties":{"enable_ownership_identification":{"type":"boolean"},"ownership_based_auth":{"type":"string"},"profile_use":{"type":"boolean"}}},"routers":{"type":"object","properties":{"post":{"type":"object","properties":{"replace_all":{"type":"boolean"},"code":{"type":"string"}}},"get":{"type":"object","properties":{"replace_all":{"type":"boolean"},"code":{"type":"string"}}},"get_one":{"type":"object","properties":{"replace_all":{"type":"boolean"},"code":{"type":"string"}}},"patch":{"type":"object","properties":{"replace_all":{"type":"boolean"},"code":{"type":"string"}}},"delete":{"type":"object","properties":{"replace_all":{"type":"boolean"},"code":{"type":"string"}}}}}}},"DynamicPage":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"},"dynamic_models":{"type":"array","items":{"type":"string"}},"page_type":{"type":"string","enum":["cms-table","display-single","display-multiple-rows","display-multiple-cards","display-single-custom","statistics-basic"]},"value_containers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"value":{"type":"string"},"wysiwyg":{"type":"boolean","default":false},"editable":{"type":"boolean","default":false},"label":{"type":"string"},"required":{"type":"boolean"},"default":{"type":"object"},"ref":{"type":"string"},"ref_value_field":{"type":"string","default":"_id"},"ref_text_field":{"type":"string","default":"_id"},"depends_on":{"type":"string"},"populate":{"type":"boolean","default":false},"enumerator_values":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"_id":{"type":"string"}}}},"due_date":{"type":"boolean","default":false},"fields":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"required":{"type":"boolean"},"default":{"type":"object"},"ref":{"type":"string"},"ref_value_field":{"type":"string","default":"_id"},"ref_text_field":{"type":"string","default":"_id"},"depends_on":{"type":"string"},"populate":{"type":"boolean"},"wysiwyg":{"type":"boolean"},"enumerator_values":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"_id":{"type":"string"}}}},"due_date":{"type":"boolean","default":false},"fields":{"type":"array","items":{"type":"object"}},"_id":{"type":"string"},"validations":{"type":"object","properties":{"minLength":{"type":"string"},"maxLength":{"type":"string"}}}}}},"_id":{"type":"string"},"validations":{"type":"object","properties":{"minLength":{"type":"number"},"maxLength":{"type":"number"}}}}}},"quick_link":{"type":"boolean","default":false},"quick_link_icon":{"type":"string"},"quick_link_text":{"type":"string"},"quick_link_auth_guard":{"type":"string","enum":["none","user","admin"],"default":"none"},"on_click_action":{"type":"string","enum":["none","navigate"]},"secondary_cta":{"type":"boolean","default":false},"secondary_ctas":{"type":"array","items":{"type":"object","properties":{"icon":{"type":"string"},"text":{"type":"string"},"auth_guard":{"type":"string","enum":["none","user","admin"],"default":"none"},"on_click_action":{"type":"string","enum":["none","navigate"]},"_id":{"type":"string"},"navigate":{"type":"object","properties":{"link":{"type":"string"},"query_params":{"type":"string"}}}}}},"edit_page":{"type":"boolean","default":false},"create_page":{"type":"boolean","default":false},"auth_guard":{"type":"string","enum":["none","user","admin"],"default":"none"},"enable_additional_filters":{"type":"boolean","default":false},"additional_filters":{"type":"object"},"containers":{"type":"array","items":{"type":"object","properties":{"isFluid":{"type":"boolean","default":false},"parallaxEnabled":{"type":"boolean"},"parallaxAmount":{"type":"number"},"parallaxZoom":{"type":"number"},"continuousEnabled":{"type":"boolean","default":false},"continuousEffect":{"type":"string","default":"none"},"continuousDuration":{"type":"number","default":2400},"continuousIntensity":{"type":"number","default":4},"backgroundImage":{"type":"string"},"backgroundSize":{"type":"string"},"backgroundPosition":{"type":"string"},"backgroundRepeat":{"type":"string"},"backgroundVideo":{"type":"string"},"backgroundColor":{"type":"string"},"backgroundParallax":{"type":"boolean","default":false},"minHeight":{"type":"number"},"minHeightMobile":{"type":"number"},"allowOffset":{"type":"boolean","default":false},"offsetX":{"type":"number","default":0},"offsetY":{"type":"number","default":0},"offsetMobileX":{"type":"number","default":0},"offsetMobileY":{"type":"number","default":0},"zIndex":{"type":"number","default":0},"wrap_reverse":{"type":"boolean","default":false},"borderRadius":{"type":"number","default":0},"marginX":{"type":"number","default":0},"editorName":{"type":"string"},"horizontalScroll":{"type":"boolean","default":false},"horizontalScrollWidth":{"type":"number","default":100},"overflowX":{"type":"string","default":"hidden"},"columns":{"type":"array","items":{"type":"object","properties":{"size":{"type":"string"},"hoverGroup":{"type":"boolean"},"parallaxEnabled":{"type":"boolean"},"parallaxAmount":{"type":"number"},"parallaxZoom":{"type":"number"},"continuousEnabled":{"type":"boolean","default":false},"continuousEffect":{"type":"string","default":"none"},"continuousDuration":{"type":"number","default":2400},"continuousIntensity":{"type":"number","default":4},"sticky":{"type":"boolean","default":false},"justify":{"type":"string"},"align":{"type":"string"},"onHoverActions":{"type":"boolean","default":false},"onHoverTransition":{"type":"number","default":0.3},"backgroundColor":{"type":"string"},"backgroundColorOnHover":{"type":"string"},"innerBackgroundColor":{"type":"string"},"innerBackgroundColorOnHover":{"type":"string"},"backgroundImage":{"type":"string"},"backgroundSize":{"type":"string"},"backgroundPosition":{"type":"string"},"backgroundRepeat":{"type":"string"},"backgroundVideo":{"type":"string"},"paddingX":{"type":"number","default":0},"paddingXOnHover":{"type":"number","default":0},"paddingY":{"type":"number","default":0},"paddingYOnHover":{"type":"number","default":0},"innerPaddingX":{"type":"number","default":0},"innerPaddingXOnHover":{"type":"number","default":0},"innerPaddingY":{"type":"number","default":0},"allowOffset":{"type":"boolean","default":false},"offsetX":{"type":"number","default":0},"offsetY":{"type":"number","default":0},"offsetMobileX":{"type":"number","default":0},"offsetMobileY":{"type":"number","default":0},"zIndex":{"type":"number","default":0},"innerPaddingYOnHover":{"type":"number","default":0},"paddingOptions":{"type":"string"},"paddingOptionsOnHover":{"type":"string"},"innerPaddingOptions":{"type":"string"},"borderOptions":{"type":"string"},"borderOptionsOnHover":{"type":"string"},"card":{"type":"boolean","default":false},"borderRadius":{"type":"number","default":0},"borderRadiusOnHover":{"type":"number","default":0},"borderType":{"type":"string","default":"none"},"borderTypeOnHover":{"type":"string","default":"none"},"borderWidth":{"type":"number","default":0},"borderWidthOnHover":{"type":"number","default":0},"borderColor":{"type":"string","default":""},"borderColorOnHover":{"type":"string","default":""},"components":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"size":{"type":"string","default":"12"},"sticky":{"type":"boolean","default":false},"paddingX":{"type":"number","default":0},"paddingY":{"type":"number","default":0},"allowOffset":{"type":"boolean","default":false},"offsetX":{"type":"number","default":0},"offsetY":{"type":"number","default":0},"offsetMobileX":{"type":"number","default":0},"offsetMobileY":{"type":"number","default":0},"zIndex":{"type":"number","default":0},"position":{"type":"string","enum":["static","relative","absolute","fixed","sticky"],"default":"static"},"custom_measurements":{"type":"boolean","default":false},"edit_type":{"type":"string","default":"simple"},"object_fit":{"type":"string","default":"none"},"min_height":{"type":"number","default":0},"specific_border_radius":{"type":"boolean","default":false},"box_shadows":{"type":"array","items":{"type":"object","properties":{}}},"mix_blend_mode":{"type":"string","enum":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],"default":"normal"},"paddingOptions":{"type":"string"},"backgroundColor":{"type":"string"},"card":{"type":"boolean","default":false},"borderRadius":{"type":"number","default":0},"borderType":{"type":"string","default":"none"},"borderWidth":{"type":"number","default":0},"borderColor":{"type":"string","default":""},"borderOptions":{"type":"string"},"showOnMobile":{"type":"boolean","default":true},"showOnDesktop":{"type":"boolean","default":true},"icon":{"type":"string"},"heading":{"type":"string"},"subHeading":{"type":"string"},"heading_alignment":{"type":"string"},"innerHTML":{"type":"string"},"innerCSS":{"type":"string"},"innerJS":{"type":"string"},"lineHeight":{"type":"string","default":"normal"},"medias":{"type":"array","items":{"type":"object","properties":{}}},"products":{"type":"array","items":{"type":"string"},"description":"Id of a Product."},"services":{"type":"array","items":{"type":"string"},"description":"Id of a Service."},"blogposts":{"type":"array","items":{"type":"string"},"description":"Id of a BlogPost."},"videos":{"type":"array","items":{"type":"string"},"description":"Id of a Video."},"price_plans":{"type":"array","items":{"type":"string"},"description":"Id of a PricePlan."},"href":{"type":"string","default":"#"},"router_link":{"type":"string"},"map":{"type":"string"},"animation":{"type":"string","default":"none"},"animationDuration":{"type":"number","default":0},"animationStrength":{"type":"number"},"parallaxEnabled":{"type":"boolean"},"parallaxAmount":{"type":"number"},"parallaxZoom":{"type":"number"},"textReveal":{"type":"string"},"animationDelay":{"type":"number","default":0},"animationReplay":{"type":"string","default":"once"},"animationEasing":{"type":"string","default":"power3.out"},"animationBreakpoint":{"type":"string","default":"all"},"scrollScrubEnabled":{"type":"boolean","default":false},"scrollScrubAxis":{"type":"string","default":"y"},"scrollScrubDistance":{"type":"number","default":80},"motionOrigin":{"type":"string","default":"center center"},"hoverEnabled":{"type":"boolean","default":false},"hoverEffect":{"type":"string","default":"none"},"hoverDuration":{"type":"number","default":240},"hoverIntensity":{"type":"number","default":4},"continuousEnabled":{"type":"boolean","default":false},"continuousEffect":{"type":"string","default":"none"},"continuousDuration":{"type":"number","default":2400},"continuousIntensity":{"type":"number","default":4},"statefulEnabled":{"type":"boolean","default":false},"statefulEffect":{"type":"string","default":"none"},"statefulDuration":{"type":"number","default":260},"statefulStagger":{"type":"number","default":60},"opacity":{"type":"object"},"transitionDuration":{"type":"object"},"transitionEasing":{"type":"string"},"states":{"type":"object"},"useIframe":{"type":"boolean","default":false},"collapsible_container":{"type":"array","items":{"type":"object","properties":{}}},"dynamicField":{"type":"string"},"useDynamicField":{"type":"boolean","default":false},"_id":{"type":"string"},"top":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"left":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"right":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"bottom":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"custom_width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"custom_min_width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"custom_max_width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"custom_height":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"custom_min_height":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"custom_max_height":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"aspect_ratio":{"type":"object","properties":{"custom":{"type":"boolean"},"ratio":{"type":"string"}}},"margin_left":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"margin_right":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"margin_top":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"margin_bottom":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"padding_left":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"padding_right":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"padding_top":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"padding_bottom":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"border_left":{"type":"object","properties":{"color":{"type":"string"},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"style":{"type":"string"}}},"border_right":{"type":"object","properties":{"color":{"type":"string"},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"style":{"type":"string"}}},"border_top":{"type":"object","properties":{"color":{"type":"string"},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"style":{"type":"string"}}},"border_bottom":{"type":"object","properties":{"color":{"type":"string"},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"style":{"type":"string"}}},"border_top_left_radius":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"border_top_right_radius":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"border_bottom_left_radius":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"border_bottom_right_radius":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"custom_border_radius":{"type":"object","properties":{"value":{"type":"number"},"unit":{"type":"string"}}},"backgroundGradient":{"type":"object","properties":{"enabled":{"type":"boolean"},"type":{"type":"string"},"degrees":{"type":"number"},"radialShape":{"type":"string"},"radialPosition":{"type":"string"},"colors":{"type":"string"},"css":{"type":"string"}}},"iconSettings":{"type":"object","properties":{"size":{"type":"number"},"color":{"type":"string"}}},"product_gallery":{"type":"object","properties":{"design_layout":{"type":"string"},"mode":{"type":"string"},"columns":{"type":"number"},"placeholderItems":{"type":"string"},"placeholderPlateColor":{"type":"string"},"showName":{"type":"boolean"},"showPrice":{"type":"boolean"},"showDescription":{"type":"boolean"},"showBrand":{"type":"boolean"},"showRibbon":{"type":"boolean"},"showRating":{"type":"boolean"},"showCart":{"type":"boolean"},"showLink":{"type":"boolean"},"linkLabel":{"type":"string"},"imageAspectRatio":{"type":"string"},"imageHeight":{"type":"number"},"imageRadius":{"type":"number"},"imageObjectFit":{"type":"string"},"cardBackgroundColor":{"type":"string"},"cardBorderRadius":{"type":"number"},"cardBorderWidth":{"type":"number"},"cardBorderColor":{"type":"string"},"cardPaddingX":{"type":"number"},"cardPaddingY":{"type":"number"},"gap":{"type":"number"},"boxShadowColor":{"type":"string"},"boxShadowOffsetY":{"type":"number"},"boxShadowBlurRadius":{"type":"number"},"boxShadowSpreadRadius":{"type":"number"},"fieldBackground":{"type":"string"},"hairlineColor":{"type":"string"},"hairlineWidth":{"type":"number"},"maxWidth":{"type":"number"},"scrimGradient":{"type":"string"},"align":{"type":"string"},"accentColor":{"type":"string"},"nameColor":{"type":"string"},"nameFontSize":{"type":"string"},"nameFontWeight":{"type":"string"},"nameFontFamily":{"type":"string"},"nameTransform":{"type":"string"},"priceColor":{"type":"string"},"priceFontSize":{"type":"string"},"priceFontWeight":{"type":"string"},"priceFontFamily":{"type":"string"},"priceFontStyle":{"type":"string"},"metaColor":{"type":"string"},"titlePosition":{"type":"string"},"imageSide":{"type":"string"},"imagePadding":{"type":"number"},"boxShadowOffsetX":{"type":"number"},"descFontSize":{"type":"string"},"descFontWeight":{"type":"string"},"animation":{"type":"string"},"animationDuration":{"type":"number"},"animationDelay":{"type":"number"},"showCustomFields":{"type":"boolean"},"cardDesign":{"type":"string"},"carouselLoop":{"type":"boolean"},"carouselControls":{"type":"boolean"},"customCss":{"type":"string"}}},"service_gallery":{"type":"object","properties":{"design_layout":{"type":"string"},"mode":{"type":"string"},"columns":{"type":"number"},"placeholderItems":{"type":"string"},"placeholderPlateColor":{"type":"string"},"showTitle":{"type":"boolean"},"showPrice":{"type":"boolean"},"showDescription":{"type":"boolean"},"showDuration":{"type":"boolean"},"durationLabel":{"type":"string"},"showImage":{"type":"boolean"},"showLink":{"type":"boolean"},"linkLabel":{"type":"string"},"imageAspectRatio":{"type":"string"},"imageHeight":{"type":"number"},"imageRadius":{"type":"number"},"imageObjectFit":{"type":"string"},"cardBackgroundColor":{"type":"string"},"cardBorderRadius":{"type":"number"},"cardBorderWidth":{"type":"number"},"cardBorderColor":{"type":"string"},"cardPaddingX":{"type":"number"},"cardPaddingY":{"type":"number"},"gap":{"type":"number"},"boxShadowColor":{"type":"string"},"boxShadowOffsetY":{"type":"number"},"boxShadowBlurRadius":{"type":"number"},"boxShadowSpreadRadius":{"type":"number"},"fieldBackground":{"type":"string"},"hairlineColor":{"type":"string"},"hairlineWidth":{"type":"number"},"rowRuleColor":{"type":"string"},"rowRuleWidth":{"type":"number"},"maxWidth":{"type":"number"},"scrimGradient":{"type":"string"},"align":{"type":"string"},"accentColor":{"type":"string"},"titleColor":{"type":"string"},"titleFontSize":{"type":"string"},"titleFontWeight":{"type":"string"},"titleFontFamily":{"type":"string"},"titleTransform":{"type":"string"},"priceColor":{"type":"string"},"priceFontSize":{"type":"string"},"priceFontWeight":{"type":"string"},"priceFontFamily":{"type":"string"},"priceFontStyle":{"type":"string"},"metaColor":{"type":"string"},"titlePosition":{"type":"string"},"imageSide":{"type":"string"},"imagePadding":{"type":"number"},"boxShadowOffsetX":{"type":"number"},"descFontSize":{"type":"string"},"descFontWeight":{"type":"string"},"animation":{"type":"string"},"animationDuration":{"type":"number"},"animationDelay":{"type":"number"},"showCustomFields":{"type":"boolean"},"cardDesign":{"type":"string"},"carouselLoop":{"type":"boolean"},"carouselControls":{"type":"boolean"},"customCss":{"type":"string"}}},"blog_gallery":{"type":"object","properties":{"design_layout":{"type":"string"},"mode":{"type":"string"},"columns":{"type":"number"},"leadLayout":{"type":"string"},"leadWidth":{"type":"number"},"placeholderItems":{"type":"string"},"placeholderPlateColor":{"type":"string"},"showTitle":{"type":"boolean"},"showExcerpt":{"type":"boolean"},"showDate":{"type":"boolean"},"showImage":{"type":"boolean"},"showLink":{"type":"boolean"},"linkLabel":{"type":"string"},"showCustomFields":{"type":"boolean"},"imageAspectRatio":{"type":"string"},"imageHeight":{"type":"number"},"imageRadius":{"type":"number"},"imageObjectFit":{"type":"string"},"imagePadding":{"type":"number"},"imageSide":{"type":"string"},"cardBackgroundColor":{"type":"string"},"cardBorderRadius":{"type":"number"},"cardBorderWidth":{"type":"number"},"cardBorderColor":{"type":"string"},"cardPaddingX":{"type":"number"},"cardPaddingY":{"type":"number"},"gap":{"type":"number"},"boxShadowColor":{"type":"string"},"boxShadowOffsetX":{"type":"number"},"boxShadowOffsetY":{"type":"number"},"boxShadowBlurRadius":{"type":"number"},"boxShadowSpreadRadius":{"type":"number"},"fieldBackground":{"type":"string"},"hairlineColor":{"type":"string"},"hairlineWidth":{"type":"number"},"rowRuleColor":{"type":"string"},"rowRuleWidth":{"type":"number"},"maxWidth":{"type":"number"},"scrimGradient":{"type":"string"},"align":{"type":"string"},"accentColor":{"type":"string"},"titleColor":{"type":"string"},"titleFontSize":{"type":"string"},"titleFontWeight":{"type":"string"},"titleFontFamily":{"type":"string"},"titleTransform":{"type":"string"},"dateColor":{"type":"string"},"dateFontSize":{"type":"string"},"dateFontWeight":{"type":"string"},"dateFontFamily":{"type":"string"},"dateFontStyle":{"type":"string"},"metaColor":{"type":"string"},"excerptFontSize":{"type":"string"},"excerptFontWeight":{"type":"string"},"excerptFontFamily":{"type":"string"},"titlePosition":{"type":"string"},"animation":{"type":"string"},"animationDuration":{"type":"number"},"animationDelay":{"type":"number"},"cardDesign":{"type":"string"},"customCss":{"type":"string"}}},"multi_booking":{"type":"object","properties":{"layout":{"type":"string"},"columns":{"type":"number"},"pickerBackground":{"type":"string"},"gap":{"type":"number"},"align":{"type":"string"},"showPrice":{"type":"boolean"},"showDuration":{"type":"boolean"},"showDescription":{"type":"boolean"},"showImage":{"type":"boolean"},"itemPaddingX":{"type":"number"},"itemPaddingY":{"type":"number"},"itemRadius":{"type":"number"},"itemBorderWidth":{"type":"number"},"itemBorderColor":{"type":"string"},"itemBackground":{"type":"string"},"itemTextColor":{"type":"string"},"itemSubTextColor":{"type":"string"},"selectedBackground":{"type":"string"},"selectedTextColor":{"type":"string"},"selectedSubTextColor":{"type":"string"},"selectedBorderColor":{"type":"string"},"hoverBackground":{"type":"string"},"titleFontSize":{"type":"number"},"titleFontWeight":{"type":"string"},"subFontSize":{"type":"number"},"dividerColor":{"type":"string"},"dividerWidth":{"type":"number"},"autoScroll":{"type":"boolean"},"cardBackground":{"type":"string"},"cardRadius":{"type":"number"},"cardBorderWidth":{"type":"number"},"cardBorderColor":{"type":"string"},"cardMaxWidth":{"type":"number"},"cardLayout":{"type":"string"},"splitWidth":{"type":"number"},"shadowColor":{"type":"string"},"shadowOffsetY":{"type":"number"},"shadowBlur":{"type":"number"},"shadowSpread":{"type":"number"},"sectionPaddingX":{"type":"number"},"sectionPaddingY":{"type":"number"},"sectionDividerColor":{"type":"string"},"sectionDividerWidth":{"type":"number"},"showStepLabels":{"type":"boolean"},"serviceStepLabel":{"type":"string"},"dayStepLabel":{"type":"string"},"staffStepLabel":{"type":"string"},"timeStepLabel":{"type":"string"},"stepLabelColor":{"type":"string"},"stepLabelSize":{"type":"number"},"stepLabelWeight":{"type":"string"},"stepLabelSpacing":{"type":"number"},"stepLabelUppercase":{"type":"boolean"},"dayCount":{"type":"number"},"dayLayout":{"type":"string"},"dayBorderColor":{"type":"string"},"dayShape":{"type":"string"},"daySize":{"type":"number"},"dayGap":{"type":"number"},"dayShowWeekday":{"type":"boolean"},"dayBackground":{"type":"string"},"dayTextColor":{"type":"string"},"daySelectedBackground":{"type":"string"},"daySelectedTextColor":{"type":"string"},"dayDisabledOpacity":{"type":"number"},"timeGap":{"type":"number"},"timeRadius":{"type":"number"},"timeBorderWidth":{"type":"number"},"timeBorderColor":{"type":"string"},"timeSelectedBorderColor":{"type":"string"},"timePaddingX":{"type":"number"},"timePaddingY":{"type":"number"},"timeBackground":{"type":"string"},"timeTextColor":{"type":"string"},"timeSelectedBackground":{"type":"string"},"timeSelectedTextColor":{"type":"string"},"buttonText":{"type":"string"},"buttonBackground":{"type":"string"},"buttonTextColor":{"type":"string"},"buttonRadius":{"type":"number"},"buttonPaddingY":{"type":"number"},"buttonFontSize":{"type":"number"},"buttonFontWeight":{"type":"string"},"buttonFullWidth":{"type":"boolean"}}},"buttonOptions":{"type":"object","properties":{"fill":{"type":"string"},"expand":{"type":"string"},"size":{"type":"string"},"color":{"type":"string"},"class":{"type":"string"},"customColor":{"type":"string"},"customColorContrast":{"type":"string"},"customColorHover":{"type":"string"},"hoverRoll":{"type":"boolean"},"fontWeight":{"type":"number"},"letterSpacing":{"type":"number"},"fontSize":{"type":"number"},"borderRadius":{"type":"number"},"customColorA":{"type":"string"},"customColorB":{"type":"string"},"customColorC":{"type":"string"},"custom_measurements":{"type":"boolean"},"height":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}}}},"carousel":{"type":"object","properties":{"showArrows":{"type":"boolean"},"showIndicators":{"type":"boolean"},"height":{"type":"number"},"automaticHeight":{"type":"boolean"},"carouselMedias":{"type":"string"}}},"contactForm":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"subject":{"type":"string"},"body":{"type":"string"},"button":{"type":"string"},"hideNewsletter":{"type":"boolean"},"placeholders":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"subject":{"type":"string"},"body":{"type":"string"}}},"style":{"type":"object","properties":{"backgroundColor":{"type":"string"},"textColor":{"type":"string"},"accentColor":{"type":"string"},"border":{"type":"object","properties":{"color":{"type":"string"},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"style":{"type":"string"}}},"borderRadius":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"padding":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"labelFontSize":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"consentFontSize":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"inputBackgroundColor":{"type":"string"},"inputTextColor":{"type":"string"},"placeholderColor":{"type":"string"},"inputFocusColor":{"type":"string"},"inputFontSize":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"inputPadding":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"textareaMinHeight":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"inputMargin":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"inputBorder":{"type":"object","properties":{"color":{"type":"string"},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"style":{"type":"string"}}},"inputBorderRadius":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"buttonBackgroundColor":{"type":"string"},"buttonTextColor":{"type":"string"},"buttonAlign":{"type":"string"},"buttonFontSize":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"buttonBorder":{"type":"object","properties":{"color":{"type":"string"},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"style":{"type":"string"}}},"buttonBorderRadius":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"buttonWidth":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}}}},"additional":{"type":"string"}}},"instagram":{"type":"object","properties":{"columns":{"type":"number"},"first":{"type":"number"},"skip":{"type":"number"},"showInfo":{"type":"boolean"},"gridType":{"type":"number"},"profile":{"type":"string"}}},"facebook":{"type":"object","properties":{"url":{"type":"string"},"width":{"type":"string"},"height":{"type":"string"}}},"transform":{"type":"object","properties":{"enabled":{"type":"boolean"},"translateX":{"type":"object","properties":{"value":{"type":"number"},"unit":{"type":"string"}}},"translateY":{"type":"object","properties":{"value":{"type":"number"},"unit":{"type":"string"}}},"scaleX":{"type":"number"},"scaleY":{"type":"number"},"rotate":{"type":"number"},"rotateX":{"type":"number"},"rotateY":{"type":"number"},"skewX":{"type":"number"},"skewY":{"type":"number"},"perspective":{"type":"number"},"originX":{"type":"string"},"originY":{"type":"string"}}},"popup":{"type":"object","properties":{"text":{"type":"string"},"backgroundColor":{"type":"string"},"fullScreen":{"type":"boolean"},"about_page":{"type":"string"}}},"custom_component":{"type":"object","properties":{"html":{"type":"string"},"compiled_html":{"type":"string"},"css":{"type":"string"},"compiled_css":{"type":"string"},"js":{"type":"string"},"iframe":{"type":"boolean"},"variables":{"type":"string"}}},"hoverable_media":{"type":"object","properties":{"before_hover_media":{"type":"object","properties":{"media":{"type":"string"},"gcs_url":{"type":"string"},"vimeo_uri":{"type":"string"},"vimeo_picture":{"type":"string"},"youtube_url":{"type":"string"},"vimeo_url":{"type":"string"},"href":{"type":"string"},"router_link":{"type":"string"},"thumbnail":{"type":"string"},"autoplay":{"type":"boolean"},"loop":{"type":"boolean"},"show_controls":{"type":"boolean"}}},"after_hover_media":{"type":"object","properties":{"media":{"type":"string"},"gcs_url":{"type":"string"},"vimeo_uri":{"type":"string"},"vimeo_picture":{"type":"string"},"youtube_url":{"type":"string"},"vimeo_url":{"type":"string"},"href":{"type":"string"},"router_link":{"type":"string"},"thumbnail":{"type":"string"},"autoplay":{"type":"boolean"},"loop":{"type":"boolean"},"show_controls":{"type":"boolean"}}}}},"collapsible_container_settings":{"type":"object","properties":{"enable_customization":{"type":"boolean"},"title_color":{"type":"string"},"title_color_checked":{"type":"string"},"title_background":{"type":"string"},"title_background_checked":{"type":"string"},"title_font_size":{"type":"string"},"title_border_radius":{"type":"string"},"title_border_color":{"type":"string"},"title_border_width":{"type":"string"},"body_color":{"type":"string"},"body_background":{"type":"string"},"body_border_radius":{"type":"string"},"body_border_color":{"type":"string"},"body_border_width":{"type":"string"},"body_font_size":{"type":"string"},"icon_color":{"type":"string"},"icon_glyph_color":{"type":"string"},"icon_background_color":{"type":"string"}}},"quiz":{"type":"object","properties":{"title":{"type":"string"},"header":{"type":"string"},"questions":{"type":"string"},"score_results":{"type":"string"},"show_right_answers":{"type":"boolean"},"mutliple_choice":{"type":"boolean"}}},"partners":{"type":"object","properties":{"defaultCollection":{"type":"string"},"defaultView":{"type":"string"}}},"scroll_sequence":{"type":"object","properties":{"media":{"type":"string"},"scroll_length":{"type":"number"},"fit":{"type":"string"},"background_color":{"type":"string"},"overlay_color":{"type":"string"},"overlay_opacity":{"type":"number"},"rows_over":{"type":"boolean"},"rows_effect":{"type":"string"},"snap_points":{"type":"string"},"snap_scroll_speed":{"type":"number"},"snap_down":{"type":"boolean"},"snap_up":{"type":"boolean"},"stop_momentum":{"type":"boolean"}}},"smart_search":{"type":"object","properties":{"placeholder":{"type":"string"},"kinds":{"type":"string"},"collections":{"type":"string"},"items":{"type":"string"},"showKindFilter":{"type":"boolean"},"showPriceFilter":{"type":"boolean"},"showDateFilter":{"type":"boolean"},"showSort":{"type":"boolean"},"dateMode":{"type":"string"},"layout":{"type":"string"},"columns":{"type":"number"},"perPage":{"type":"number"},"instant":{"type":"boolean"},"showImages":{"type":"boolean"},"showPrices":{"type":"boolean"},"showInitial":{"type":"boolean"},"showAnswer":{"type":"boolean"}}},"countdown":{"type":"object","properties":{"targetDate":{"type":"string"},"expiredText":{"type":"string"},"hideOnExpire":{"type":"boolean"},"textColor":{"type":"string"},"boxColor":{"type":"string"},"align":{"type":"string"}}},"swiper":{"type":"object","properties":{"slides":{"type":"string"},"autoplay":{"type":"boolean"},"loop":{"type":"boolean"},"show_controls":{"type":"boolean"},"dynamic_bullets":{"type":"boolean"},"pagination":{"type":"boolean"}}},"text_auto_slider":{"type":"object","properties":{"speed":{"type":"number"},"aspect_ratio":{"type":"string"},"text_color":{"type":"string"},"background_color":{"type":"string"},"delimiter_color":{"type":"string"},"direction":{"type":"string"},"width":{"type":"number"},"font_size":{"type":"number"},"text_transform":{"type":"string"},"texts":{"type":"string"}}},"image_auto_slider":{"type":"object","properties":{"speed":{"type":"number"},"aspect_ratio":{"type":"string"},"direction":{"type":"string"},"width":{"type":"number"},"medias":{"type":"string"}}},"image_dragger":{"type":"object","properties":{"aspect_ratio":{"type":"string"},"media_1":{"type":"object","properties":{"media":{"type":"string"},"gcs_url":{"type":"string"},"vimeo_uri":{"type":"string"},"vimeo_picture":{"type":"string"},"vimeo_url":{"type":"string"},"youtube_url":{"type":"string"}}},"media_2":{"type":"object","properties":{"media":{"type":"string"},"gcs_url":{"type":"string"},"vimeo_uri":{"type":"string"},"vimeo_picture":{"type":"string"},"vimeo_url":{"type":"string"},"youtube_url":{"type":"string"},"title":{"type":"string"},"body":{"type":"string"},"textColor":{"type":"string"},"href":{"type":"string"},"router_link":{"type":"string"}}}}}}}},"sections":{"type":"array","items":{"type":"object","properties":{"position":{"type":"string","enum":["static","relative","absolute","fixed","sticky"],"default":"static"},"overflow":{"type":"string","enum":["visible","hidden","scroll","auto"],"default":"visible"},"editorName":{"type":"string"},"display":{"type":"string","enum":["block","inline","flex"],"default":"block"},"flex_direction":{"type":"string","enum":["row","row-reverse","column","column-reverse"],"default":"row"},"flex_direction_mobile":{"type":"string","default":""},"backdropFilter":{"type":"string","default":""},"justify":{"type":"string","enum":["start","end","center","space-between","space-around","stretch"],"default":"start"},"justify_mobile":{"type":"string","default":""},"align":{"type":"string","enum":["start","end","center","space-between","space-around","stretch"],"default":"start"},"align_mobile":{"type":"string","default":""},"animation":{"type":"string","default":"none"},"animationDuration":{"type":"number","default":0},"animationStrength":{"type":"number"},"parallaxEnabled":{"type":"boolean"},"parallaxAmount":{"type":"number"},"parallaxZoom":{"type":"number"},"animationDelay":{"type":"number","default":0},"animationReplay":{"type":"string","default":"once"},"animationEasing":{"type":"string","default":"power3.out"},"animationBreakpoint":{"type":"string","default":"all"},"scrollScrubEnabled":{"type":"boolean","default":false},"scrollScrubAxis":{"type":"string","default":"y"},"scrollScrubDistance":{"type":"number","default":80},"motionOrigin":{"type":"string","default":"center center"},"hoverEnabled":{"type":"boolean","default":false},"hoverEffect":{"type":"string","default":"none"},"hoverDuration":{"type":"number","default":240},"hoverIntensity":{"type":"number","default":4},"continuousEnabled":{"type":"boolean","default":false},"continuousEffect":{"type":"string","default":"none"},"continuousDuration":{"type":"number","default":2400},"continuousIntensity":{"type":"number","default":4},"statefulEnabled":{"type":"boolean","default":false},"statefulEffect":{"type":"string","default":"none"},"statefulDuration":{"type":"number","default":260},"statefulStagger":{"type":"number","default":60},"opacity":{"type":"object"},"transitionDuration":{"type":"object"},"transitionEasing":{"type":"string"},"states":{"type":"object"},"hoverGroup":{"type":"boolean"},"flex_wrap":{"type":"string","enum":["nowrap","wrap","wrap-reverse"],"default":"wrap"},"flex_wrap_mobile":{"type":"string","default":""},"object_fit":{"type":"string"},"specific_border_radius":{"type":"boolean","default":false},"box_shadows":{"type":"array","items":{"type":"object","properties":{}}},"backgroundColor":{"type":"string"},"backgroundVideo":{"type":"string"},"backgroundImage":{"type":"string"},"backgroundSize":{"type":"string"},"backgroundPosition":{"type":"string"},"backgroundRepeat":{"type":"string"},"showOnMobile":{"type":"boolean","default":true},"showOnDesktop":{"type":"boolean","default":true},"components":{"type":"array","items":{"type":"object","properties":{}}},"sections":{"type":"array","items":{"type":"object","properties":{}}},"_id":{"type":"string"},"top":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"left":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"right":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"bottom":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"transform":{"type":"object","properties":{"enabled":{"type":"boolean"},"translateX":{"type":"object","properties":{"value":{"type":"number"},"unit":{"type":"string"}}},"translateY":{"type":"object","properties":{"value":{"type":"number"},"unit":{"type":"string"}}},"scaleX":{"type":"number"},"scaleY":{"type":"number"},"rotate":{"type":"number"},"rotateX":{"type":"number"},"rotateY":{"type":"number"},"skewX":{"type":"number"},"skewY":{"type":"number"},"perspective":{"type":"number"},"originX":{"type":"string"},"originY":{"type":"string"}}},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"min_width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"max_width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"height":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"min_height":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"max_height":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"aspect_ratio":{"type":"object","properties":{"custom":{"type":"boolean"},"ratio":{"type":"string"}}},"margin_left":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"margin_right":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"margin_top":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"margin_bottom":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"padding_left":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"padding_right":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"padding_top":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"padding_bottom":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"border_left":{"type":"object","properties":{"style":{"type":"string"},"color":{"type":"string"},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}}}},"border_right":{"type":"object","properties":{"style":{"type":"string"},"color":{"type":"string"},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}}}},"border_top":{"type":"object","properties":{"style":{"type":"string"},"color":{"type":"string"},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}}}},"border_bottom":{"type":"object","properties":{"style":{"type":"string"},"color":{"type":"string"},"width":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}}}},"border_top_left_radius":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"border_top_right_radius":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"border_bottom_left_radius":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"border_bottom_right_radius":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"border_radius":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"}}},"backgroundGradient":{"type":"object","properties":{"enabled":{"type":"boolean"},"type":{"type":"string"},"degrees":{"type":"number"},"radialShape":{"type":"string"},"radialPosition":{"type":"string"},"colors":{"type":"string"},"css":{"type":"string"}}}}}},"_id":{"type":"string"},"backgroundGradient":{"type":"object","properties":{"enabled":{"type":"boolean"},"type":{"type":"string"},"degrees":{"type":"number"},"radialShape":{"type":"string"},"radialPosition":{"type":"string"},"colors":{"type":"string"},"css":{"type":"string"}}},"innerBackgroundGradient":{"type":"object","properties":{"enabled":{"type":"boolean"},"type":{"type":"string"},"degrees":{"type":"number"},"radialShape":{"type":"string"},"radialPosition":{"type":"string"},"colors":{"type":"string"},"css":{"type":"string"}}}}}},"ai_meta":{"type":"object","default":null},"_id":{"type":"string"},"backgroundGradient":{"type":"object","properties":{"enabled":{"type":"boolean"},"type":{"type":"string"},"degrees":{"type":"number"},"radialShape":{"type":"string"},"radialPosition":{"type":"string"},"colors":{"type":"string"},"css":{"type":"string"}}},"padding_top":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"padding_right":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"padding_bottom":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}},"padding_left":{"type":"object","properties":{"value":{"type":"string"},"unit":{"type":"string"},"mobile_value":{"type":"string"},"mobile_unit":{"type":"string"}}}}}},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"navigate":{"type":"object","properties":{"link":{"type":"string"},"query_params":{"type":"string"}}},"statistics_options":{"type":"object","properties":{"filter_fields":{"type":"string"},"functions":{"type":"string"},"period_options":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"},"period":{"type":"string"},"period_field":{"type":"string"},"value_field":{"type":"string"}}}}}}},"DynamicTrigger":{"type":"object","properties":{"enabled":{"type":"boolean","default":false},"name":{"type":"string"},"model":{"type":"string"},"type":{"type":"string","enum":["CREATE","READ","UPDATE","DELETE"]},"code":{"type":"string"},"last_run_at":{"type":"string","format":"date-time","default":null},"last_run_status":{"type":"string","enum":[null,"success","failed"],"default":null},"last_error":{"type":"string","default":null},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"EcontSettings":{"type":"object","properties":{"shipping":{"type":"string","description":"Id of a Shipping."},"create_label":{"type":"boolean","default":false},"username":{"type":"string"},"from_office":{"type":"boolean","default":false},"automatic_courier":{"type":"boolean","default":false},"sender":{"type":"string"},"payAfterAccept":{"type":"boolean","default":false},"multiple_items":{"type":"string","enum":["box","sum"],"default":"sum"},"divide_by":{"type":"number"},"box":{"type":"array","items":{"type":"object","properties":{"height":{"type":"number"},"length":{"type":"number"},"width":{"type":"number"},"_id":{"type":"string"}}}},"email_delivery":{"type":"boolean","default":false},"sms_delivery":{"type":"boolean","default":false},"free_delivery_method":{"type":"string","enum":["cash","credit","voucher"],"default":"cash"},"invoice_num":{"type":"string"},"cdPayOptionsTemplate":{"type":"string"},"owner_id":{"type":"string","description":"Id of a User."},"connected_account_owner_id":{"type":"string","description":"Id of a User."},"_id":{"type":"string"},"sender_address":{"type":"object","properties":{"city":{"type":"object","properties":{"country":{"type":"object","properties":{"code2":{"type":"string"}}},"name":{"type":"string"},"postCode":{"type":"string"}}},"quarter":{"type":"string"},"street":{"type":"string"},"other":{"type":"string"},"num":{"type":"string"}}},"sender_office":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"}}},"sender_agent":{"type":"object","properties":{"name":{"type":"string"},"phones":{"type":"string"},"email":{"type":"string"}}},"product_default_dimensions":{"type":"object","properties":{"height":{"type":"number"},"width":{"type":"number"},"length":{"type":"number"},"weight":{"type":"number"}}}}},"Email":{"type":"object","properties":{"title":{"type":"string"},"text1":{"type":"string"},"text2":{"type":"string"},"text3":{"type":"string"},"text4":{"type":"string"},"text5":{"type":"string"},"text6":{"type":"string"},"text7":{"type":"string"},"text8":{"type":"string"},"text9":{"type":"string"},"text10":{"type":"string"},"type":{"type":"string"},"google_calendar":{"type":"string","default":"Add to Google Calendar"},"outlook_calendar":{"type":"string","default":"Add to Outlook Calendar"},"apple_calendar":{"type":"string","default":"Add to Apple Calendar"},"product_text":{"type":"string"},"program_text":{"type":"string"},"priceplan_text":{"type":"string"},"template_id":{"type":"string","description":"Id of a EmailTemplate."},"show_phone":{"type":"boolean","default":false},"product_text_fulfilled":{"type":"string"},"booking_text":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"EmailTemplate":{"type":"object","properties":{"name":{"type":"string"},"rows":{"type":"array","items":{"type":"object","properties":{"columns":{"type":"array","items":{"type":"object","properties":{"content":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["text","image","logo","link","email","firstname","lastname","name","address","phone_number","city","state","country","imgSrc","icon","custom"]},"width":{"type":"number","default":100},"fallbackText":{"type":"string"},"fontSize":{"type":"number"},"fontWeight":{"type":"string","enum":["100","200","300","400","500","600","700","800","900"]},"fontColor":{"type":"string","default":"#000000"},"fontFamily":{"type":"string","default":"Arial,Helvetica Neue,Helvetica,sans-serif"},"fontStyle":{"type":"string","enum":["normal","italic","oblique"]},"textAlign":{"type":"string","enum":["left","right","center"]},"display":{"type":"string","enum":["block","inline"],"default":"block"},"icon":{"type":"string"},"image":{"type":"string"},"backgroundColor":{"type":"string"},"innerHTML":{"type":"string"},"link":{"type":"string"},"_id":{"type":"string"}}}},"width":{"type":"number","default":100},"justifyContent":{"type":"string","enum":["start","end","center","space-between","space-around","space-evenly"]},"paddingLeft":{"type":"number","default":0},"paddingRight":{"type":"number","default":0},"paddingTop":{"type":"number","default":0},"paddingBottom":{"type":"number","default":0},"backgroundColor":{"type":"string"},"_id":{"type":"string"},"borderLeft":{"type":"object","properties":{"width":{"type":"number"},"color":{"type":"string"}}},"borderRight":{"type":"object","properties":{"width":{"type":"number"},"color":{"type":"string"}}},"borderTop":{"type":"object","properties":{"width":{"type":"number"},"color":{"type":"string"}}},"borderBottom":{"type":"object","properties":{"width":{"type":"number"},"color":{"type":"string"}}}}}},"_id":{"type":"string"}}}},"previewHTML":{"type":"string"},"compiledHTML":{"type":"string"},"fallbackValues":{"type":"object"},"owner_id":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Event":{"type":"object","properties":{"name":{"type":"string"},"venue":{"type":"string","description":"Id of a Venue."},"description":{"type":"string"},"medias":{"type":"array","items":{"type":"object","properties":{"media":{"type":"string","description":"Id of a Media."},"gcs_url":{"type":"string"},"gcs_480_30_url":{"type":"string"},"gcs_720_30_url":{"type":"string"},"gcs_1080_30_url":{"type":"string"},"duration":{"type":"number"},"vimeo_uri":{"type":"string"},"vimeo_picture":{"type":"string"},"vimeo_url":{"type":"string"},"youtube_url":{"type":"string"},"youtube_picture":{"type":"string"},"thumbnail":{"type":"string"},"_id":{"type":"string"}}}},"dates":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","format":"date-time"},"_id":{"type":"string"},"seating_plan":{"type":"object","properties":{"id":{"type":"string"},"sections":{"type":"string"}}}}}},"owner_id":{"type":"string","description":"Id of a User."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"tier_1":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"}}},"tier_2":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"}}},"tier_3":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"}}},"tier_4":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"}}},"tier_5":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"}}},"tier_6":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"}}},"tier_7":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"}}},"tier_8":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"}}},"tier_9":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"}}},"tier_10":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"}}},"tier_11":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"}}},"tier_12":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"}}},"tier_13":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"}}},"tier_14":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"}}},"tier_15":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"}}}}},"FileRoute":{"type":"object","properties":{"url":{"type":"string"},"content_type":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Form":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"subject":{"type":"string"},"body":{"type":"string"},"medias":{"type":"array","items":{"type":"string"}},"additional":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"option":{"type":"string"},"_id":{"type":"string"}}}},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Gdpr":{"type":"object","properties":{"text":{"type":"string"},"_id":{"type":"string"}}},"GeoLocation":{"type":"object","properties":{"service_id":{"type":"string","description":"Id of a Service."},"address":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"formatted_address":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Group":{"type":"object","properties":{"type":{"type":"string"},"avatar":{"type":"string","description":"Id of a Media."},"cover":{"type":"string","description":"Id of a Media."},"name":{"type":"string"},"handle":{"type":"string"},"bio":{"type":"string"},"participants":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"owner_id":{"type":"string","description":"Id of a User."},"who_can_post":{"type":"string","default":"all"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"GroupJoinRequest":{"type":"object","properties":{"group":{"type":"string","description":"Id of a GroupJoinRequest."},"user":{"type":"string","description":"Id of a User."},"status":{"type":"string","default":"pending"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"HomePageSettings":{"type":"object","properties":{"useDifferentLayoutForApp":{"type":"boolean","default":false},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"IndexComponent":{"type":"object","properties":{"type":{"type":"string"},"position":{"type":"number"},"about_page":{"type":"string"},"isFluid":{"type":"boolean","default":false},"isAppComponent":{"type":"boolean","default":false},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Inventory":{"type":"object","properties":{"product":{"type":"string","description":"Id of a Product."},"option":{"type":"string"},"quantity":{"type":"number","default":0},"sku":{"type":"string"},"track":{"type":"boolean","default":false},"trackSku":{"type":"boolean","default":false},"name":{"type":"object"},"media":{"type":"object"},"category":{"type":"object"},"price":{"type":"object"},"status":{"type":"object"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Invoice":{"type":"object","properties":{"stripeNumber":{"type":"string"},"is_credit_note":{"type":"boolean","default":false},"credit_note_invoice_number":{"type":"string"},"credit_note_invoice_date":{"type":"string"},"is_debit_note":{"type":"boolean","default":false},"debit_note_invoice_number":{"type":"string"},"debit_note_invoice_date":{"type":"string"},"number":{"type":"number"},"stripeInvoiceId":{"type":"string"},"has_price_quote":{"type":"boolean","default":false},"customer_name":{"type":"string"},"customer_address":{"type":"string"},"customer_postal_code":{"type":"string"},"customer_city":{"type":"string"},"customer_country":{"type":"string"},"customer_phone":{"type":"string"},"customer_email":{"type":"string"},"customer_tax_id":{"type":"string"},"customer_vat_id":{"type":"string"},"customer_responsible_official":{"type":"string"},"customer_organization_name":{"type":"string"},"billing_customer_address":{"type":"string"},"billing_customer_postal_code":{"type":"string"},"billing_customer_city":{"type":"string"},"billing_customer_country":{"type":"string"},"billing_customer_phone":{"type":"string"},"subtotal":{"type":"number"},"amount":{"type":"number"},"day_of_issue":{"type":"string"},"paid_on":{"type":"string"},"foreign":{"type":"boolean"},"home_tax":{"type":"number","default":0},"foreign_tax":{"type":"number","default":0},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"qty":{"type":"number"},"unit_price":{"type":"number"},"discount":{"type":"number"},"amount":{"type":"number"},"_id":{"type":"string"}}}},"grounds_for_transaction":{"type":"string"},"description_of_transaction":{"type":"string"},"place_of_transaction":{"type":"string"},"payment":{"type":"string"},"dateDue":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"invoice_settings":{"type":"object","properties":{"number":{"type":"number"},"price_quote_number":{"type":"string"},"bic":{"type":"string"},"swift":{"type":"string"},"tax_id":{"type":"string"},"vat_id":{"type":"string"},"logo":{"type":"string"},"business_name":{"type":"string"},"business_name_translated":{"type":"string"},"responsible_official":{"type":"string"},"responsible_official_translated":{"type":"string"},"business_email":{"type":"string"},"company_id":{"type":"string"},"business_address":{"type":"string"},"business_address_translated":{"type":"string"},"business_phone_number":{"type":"string"},"business_country":{"type":"string"},"business_country_translated":{"type":"string"},"footer":{"type":"string"},"footer_translated":{"type":"string"},"foreign_tax":{"type":"number"},"home_tax":{"type":"number"},"currency_symbol":{"type":"string"}}}}},"InvoiceSettings":{"type":"object","properties":{"number":{"type":"number"},"price_quote_number":{"type":"string"},"bic":{"type":"string"},"swift":{"type":"string"},"tax_id":{"type":"string"},"vat_id":{"type":"string"},"logo":{"type":"string"},"business_name":{"type":"string"},"business_name_translated":{"type":"string"},"responsible_official":{"type":"string"},"responsible_official_translated":{"type":"string"},"business_email":{"type":"string"},"company_id":{"type":"string"},"business_address":{"type":"string"},"business_address_translated":{"type":"string"},"business_phone_number":{"type":"string"},"business_country":{"type":"string"},"business_country_translated":{"type":"string"},"footer":{"type":"string"},"footer_translated":{"type":"string"},"foreign_tax":{"type":"number","default":0},"home_tax":{"type":"number","default":0},"currency_symbol":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Keyword":{"type":"object","properties":{"word":{"type":"string"},"_id":{"type":"string"}}},"KeywordBlacklist":{"type":"object","properties":{"keyword":{"type":"array","items":{"type":"string"}},"_id":{"type":"string"}}},"Lead":{"type":"object","properties":{"seq":{"type":"number","default":0},"organization_name":{"type":"string"},"firstname":{"type":"string"},"lastname":{"type":"string"},"email":{"type":"string"},"phone_number":{"type":"string"},"address":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"country":{"type":"string"},"zip_code":{"type":"string"},"tax_identification_number":{"type":"string"},"vat_id":{"type":"string"},"notes":{"type":"string"},"products":{"type":"array","items":{"type":"string"}},"products_obj":{"type":"array","items":{"type":"object","properties":{"product_id":{"type":"string","description":"Id of a Product."},"name":{"type":"string"},"options":{"type":"string"},"price":{"type":"number"},"quantity":{"type":"number"},"_id":{"type":"string"}}}},"programs":{"type":"array","items":{"type":"string"}},"programs_obj":{"type":"array","items":{"type":"object","properties":{"program_id":{"type":"string","description":"Id of a Program."},"title":{"type":"string"},"price":{"type":"number"},"_id":{"type":"string"}}}},"tickets":{"type":"array","items":{"type":"string"},"description":"Id of a Ticket."},"donations":{"type":"array","items":{"type":"string"},"description":"Id of a Donation."},"donations_obj":{"type":"array","items":{"type":"object","properties":{"donation_id":{"type":"string","description":"Id of a Donation."},"name":{"type":"string"},"options":{"type":"string"},"price":{"type":"number"},"quantity":{"type":"number"},"_id":{"type":"string"}}}},"lifetime_value":{"type":"number","default":0},"last_order_value":{"type":"number"},"services":{"type":"array","items":{"type":"string"},"description":"Id of a Service."},"stripe_id":{"type":"string"},"delivery_method":{"type":"string"},"shipping_option":{"type":"string","enum":["address","office"],"default":"address"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Locales":{"type":"object","properties":{"locales_object":{"type":"object"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Media":{"type":"object","properties":{"file":{"type":"string"},"file_path":{"type":"string"},"alt":{"type":"string"},"filename":{"type":"string"},"filetype":{"type":"string"},"vimeo_uri":{"type":"string"},"vimeo_picture":{"type":"string"},"duration":{"type":"number"},"vimeo_url":{"type":"string"},"youtube_url":{"type":"string"},"youtube_picture":{"type":"string"},"thumbnail":{"type":"string"},"gcs_url":{"type":"string"},"gcs_480_30_url":{"type":"string"},"gcs_720_30_url":{"type":"string"},"gcs_1080_30_url":{"type":"string"},"picture_gcs_url":{"type":"string"},"transcode_status":{"type":"string","default":"not_started"},"owner_id":{"type":"string","description":"Id of a User."},"source_url":{"type":"string"},"origin":{"type":"string"},"width":{"type":"number"},"height":{"type":"number"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"sequence":{"type":"object","properties":{"status":{"type":"string"},"started_at":{"type":"string"},"updated_at":{"type":"string"},"step":{"type":"string"},"done":{"type":"number"},"total":{"type":"number"},"ext":{"type":"string"},"trim_start":{"type":"number"},"trim_end":{"type":"number"},"build_id":{"type":"string"},"previous_base":{"type":"string"},"frame_count":{"type":"number"},"fps":{"type":"number"},"width":{"type":"number"},"height":{"type":"number"},"desktop_path":{"type":"string"},"mobile_path":{"type":"string"},"portrait_path":{"type":"string"},"poster":{"type":"string"},"error":{"type":"string"}}}}},"Message":{"type":"object","properties":{"sender_id":{"type":"string","description":"Id of a User."},"receiver_id":{"type":"string","description":"Id of a User."},"product_id":{"type":"string","description":"Id of a Product."},"service_id":{"type":"string","description":"Id of a Service."},"isOpened":{"type":"boolean","default":false},"blogpost_id":{"type":"string","description":"Id of a BlogPost."},"isDirectMessage":{"type":"boolean","default":false},"message":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"Id of a User."},"text":{"type":"string"},"createdAt":{"type":"string"},"sent":{"type":"boolean","default":false},"seen":{"type":"boolean","default":false},"seen_by":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"postId":{"type":"string","description":"Id of a Post."},"userId":{"type":"string","description":"Id of a User."},"medias":{"type":"array","items":{"type":"object","properties":{"media":{"type":"string","description":"Id of a Media."},"vimeo_uri":{"type":"string"},"vimeo_picture":{"type":"string"},"vimeo_url":{"type":"string"},"youtube_url":{"type":"string"},"youtube_picture":{"type":"string"},"gcs_url":{"type":"string"},"_id":{"type":"string"}}}},"isSystem":{"type":"boolean","default":false},"groupId":{"type":"string","description":"Id of a Group."},"_id":{"type":"string"}}}},"isGroup":{"type":"boolean","default":false},"group_users":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"current_group_users":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"users_nicknames":{"type":"array","items":{"type":"object","properties":{"nickname":{"type":"string"},"user":{"type":"string","description":"Id of a User."},"_id":{"type":"string"}}}},"group_avatar":{"type":"string","description":"Id of a Media."},"group_name":{"type":"string"},"delete_chat":{"type":"array","items":{"type":"object","properties":{"isDeleted":{"type":"boolean","default":false},"user":{"type":"string","description":"Id of a User."},"createdAt":{"type":"string","format":"date-time"},"_id":{"type":"string"}}}},"program_id":{"type":"string","description":"Id of a Program."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Meta":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"description":{"type":"string"},"site_name":{"type":"string"},"image":{"type":"string"},"_id":{"type":"string"}}},"MiniApp":{"type":"object","properties":{"title":{"type":"string"},"header":{"type":"string"},"description":{"type":"string"},"referer":{"type":"string"},"requiresLogin":{"type":"boolean","default":true},"icon":{"type":"string","description":"Id of a Media."},"previews":{"type":"array","items":{"type":"object","properties":{"media":{"type":"string","description":"Id of a Media."},"_id":{"type":"string"}}}},"owner_id":{"type":"string","description":"Id of a User."},"reviewed":{"type":"boolean","default":false},"approved":{"type":"boolean","default":false},"total_opened":{"type":"number","default":0},"opened_by":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"minimum_age":{"type":"number"},"language":{"type":"array","items":{"type":"string"}},"collection_id":{"type":"string","description":"Id of a Collection."},"total_views":{"type":"number","default":0},"views":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"privacy_policy":{"type":"string"},"support_url":{"type":"string"},"marketing_url":{"type":"string"},"copyright":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"data_collection":{"type":"object","properties":{"contact_info":{"type":"string"},"health_info":{"type":"string"},"payment_info":{"type":"string"},"location_info":{"type":"string"},"other_info":{"type":"string"},"user_info":{"type":"string"},"identifiers_info":{"type":"string"},"usage_data":{"type":"string"},"diagnostics_data":{"type":"string"}}}}},"Model":{"type":"object","properties":{"name":{"type":"string"},"make":{"type":"string","description":"Id of a Make."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"MyContact":{"type":"object","properties":{"zip_code":{"type":"string","description":"Postal/ZIP code."},"city":{"type":"string","description":"The city where the business is located."},"address":{"type":"string","description":"The street address."},"contact":{"type":"string"},"email":{"type":"string","description":"The public contact email address."},"google_app":{"type":"string"},"workhours":{"type":"string"},"logo":{"type":"string"},"site_name":{"type":"string","description":"The business/site name shown publicly."},"domain":{"type":"string"},"stock_domain":{"type":"string"},"isMarket":{"type":"boolean","default":false},"forbidden_collections":{"type":"array","items":{"type":"object","properties":{"collection_id":{"type":"string","description":"Id of a Collection."},"_id":{"type":"string"}}}},"isInit":{"type":"boolean","default":false},"template":{"type":"string","default":"0000"},"lang":{"type":"string","description":"2-letter language code (e.g. \"en\", \"fr\", \"de\")."},"favicon":{"type":"string"},"cacheEnabled":{"type":"boolean"},"has_completed_startup_prompt":{"type":"boolean","default":true},"gmb_location":{"type":"string"},"ga_property":{"type":"string"},"site_generated_at":{"type":"string","format":"date-time"},"admin_first_opened_at":{"type":"string","format":"date-time"},"admin_last_opened_at":{"type":"string","format":"date-time"},"admin_in_app_browser":{"type":"boolean"},"domain_suggestions":{"type":"object"},"_id":{"type":"string"},"allowedComponents":{"type":"object","properties":{"services":{"type":"boolean"},"products":{"type":"boolean"},"blogposts":{"type":"boolean"},"programs":{"type":"boolean"}}}}},"NewsletterContact":{"type":"object","properties":{"name":{"type":"string"},"age":{"type":"number"},"email":{"type":"string"},"city":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Order":{"type":"object","properties":{"organization_name":{"type":"string"},"firstname":{"type":"string"},"lastname":{"type":"string"},"email":{"type":"string"},"phone_number":{"type":"string"},"address":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"country":{"type":"string"},"zip_code":{"type":"string"},"tax_identification_number":{"type":"string"},"notes":{"type":"string"},"products":{"type":"array","items":{"type":"string"}},"products_obj":{"type":"array","items":{"type":"object","properties":{"product_id":{"type":"string","description":"Id of a Product."},"name":{"type":"string"},"options":{"type":"string"},"price":{"type":"number"},"quantity":{"type":"number"},"_id":{"type":"string"}}}},"programs":{"type":"array","items":{"type":"string"}},"programs_obj":{"type":"array","items":{"type":"object","properties":{"program_id":{"type":"string","description":"Id of a Program."},"title":{"type":"string"},"price":{"type":"number"},"_id":{"type":"string"}}}},"tickets":{"type":"array","items":{"type":"string"},"description":"Id of a Ticket."},"donations":{"type":"array","items":{"type":"string"},"description":"Id of a Donation."},"donations_obj":{"type":"array","items":{"type":"object","properties":{"donation_id":{"type":"string","description":"Id of a Donation."},"name":{"type":"string"},"options":{"type":"string"},"price":{"type":"number"},"quantity":{"type":"number"},"_id":{"type":"string"}}}},"value":{"type":"number"},"finalized":{"type":"boolean","default":false},"fulfilled":{"type":"boolean","default":false},"paid":{"type":"boolean","default":false},"delivery_method":{"type":"string"},"payment_method":{"type":"string"},"shipping_cost":{"type":"number"},"coupon_code":{"type":"string"},"owner_id":{"type":"string","description":"Id of a User."},"reference_id":{"type":"string"},"rating_mail_sent":{"type":"boolean","default":false},"shipping_label":{"type":"string"},"shipping_option":{"type":"string","enum":["address","office"],"default":"address"},"shipping_message":{"type":"string"},"shipping_office":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"OriginAddress":{"type":"object","properties":{"title":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Partner":{"type":"object","properties":{"name":{"type":"string"},"venue":{"type":"string"},"venue_types":{"type":"array","items":{"type":"object","properties":{"collection_id":{"type":"string","description":"Id of a Collection."},"_id":{"type":"string"}}}},"city":{"type":"string"},"country":{"type":"string"},"address":{"type":"string"},"contact":{"type":"string"},"additional_information":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"website":{"type":"string"},"hours":{"type":"string"},"latitude":{"type":"number","default":null},"longitude":{"type":"number","default":null},"formatted_address":{"type":"string"},"geo_status":{"type":"string","enum":["pending","ok","failed"],"default":"pending"},"custom_1":{"type":"string"},"custom_2":{"type":"string"},"custom_3":{"type":"string"},"medias":{"type":"array","items":{"type":"object","properties":{"media":{"type":"string","description":"Id of a Media."},"_id":{"type":"string"}}}},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"PaymentMethod":{"type":"object","properties":{"has_cash":{"type":"boolean","default":false},"cash_locale":{"type":"string","default":"Pay by cash"},"cash_instructions":{"type":"string"},"cash_increase":{"type":"number","default":0},"has_card":{"type":"boolean","default":false},"card_locale":{"type":"string","default":"Pay with credit card"},"email":{"type":"string"},"country":{"type":"string"},"has_invoicing":{"type":"boolean","default":false},"invoice_locale":{"type":"string","default":"Pay via invoice"},"invoicing_instructions":{"type":"string"},"currency":{"type":"string"},"agreedToTerms":{"type":"boolean","default":false},"agreedToTermsAt":{"type":"string"},"merchant_id":{"type":"string"},"has_paypal":{"type":"boolean","default":false},"paypal_increase":{"type":"number","default":0},"paypal_id":{"type":"string"},"lock_currency":{"type":"boolean","default":false},"commission_percentage":{"type":"number","default":4.4},"two_currencies":{"type":"boolean","default":false},"second_currency":{"type":"string"},"calculate_rate":{"type":"boolean","default":false},"currency_rate":{"type":"number"},"_id":{"type":"string"}}},"PixelData":{"type":"object","properties":{"id":{"type":"string"},"uid":{"type":"string"},"ev":{"type":"string"},"v":{"type":"string"},"dl":{"type":"string"},"rl":{"type":"string"},"ts":{"type":"string"},"de":{"type":"string"},"sr":{"type":"string"},"vp":{"type":"string"},"cd":{"type":"string"},"dt":{"type":"string"},"bn":{"type":"string"},"md":{"type":"string"},"ua":{"type":"string"},"tz":{"type":"string"},"utm_source":{"type":"string"},"utm_medium":{"type":"string"},"utm_term":{"type":"string"},"utm_content":{"type":"string"},"utm_campaign":{"type":"string"},"utm_source_platform":{"type":"string"},"utm_creative_format":{"type":"string"},"utm_marketing_tactic":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"ed":{"type":"object","properties":{"currency":{"type":"string"},"value":{"type":"number"},"payment_type":{"type":"string"},"coupon":{"type":"string"},"items":{"type":"string"},"shipping_tier":{"type":"string"},"virtual_currency_name":{"type":"string"},"group_id":{"type":"string"},"level_name":{"type":"string"},"success":{"type":"boolean"},"level":{"type":"number"},"character":{"type":"string"},"method":{"type":"string"},"score":{"type":"number"},"transaction_id":{"type":"string"},"shipping":{"type":"number"},"tax":{"type":"number"},"search_term":{"type":"string"},"content_type":{"type":"string"},"content_id":{"type":"string"},"creative_name":{"type":"string"},"creative_slot":{"type":"string"},"promotion_id":{"type":"string"},"promotion_name":{"type":"string"},"achievement_id":{"type":"string"}}}}},"Popup":{"type":"object","properties":{"title":{"type":"string","description":"Internal admin label for this popup (e.g. \"Welcome discount\", \"Newsletter signup\", \"Cookie consent\")."},"body":{"type":"string","description":"The full landing page the user sees after clicking accept. Id of a AboutPage."},"decline_button_text":{"type":"string","description":"Text on the dismiss button (e.g. \"No thanks\", \"Maybe later\", \"Close\")."},"accept_button_text":{"type":"string","description":"Text on the primary CTA button of the popup modal (e.g. \"Sign up\", \"Learn more\", \"Claim offer\")."},"accept_button_link":{"type":"string"},"wide_modal":{"type":"boolean","default":false,"description":"True for wider popup modal, false (default) for compact."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Post":{"type":"object","properties":{"posted_by":{"type":"string","description":"Id of a User."},"repost_of":{"type":"string","description":"Id of a Post."},"connected_account_posted_by":{"type":"string","description":"Id of a User."},"text":{"type":"string"},"title":{"type":"string"},"likes":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"shares":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"Id of a User."},"to":{"type":"string","description":"Id of a User."},"_id":{"type":"string"}}}},"views":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"comments":{"type":"array","items":{"type":"string"},"description":"Id of a Comment."},"medias":{"type":"array","items":{"type":"object","properties":{"media":{"type":"string","description":"Id of a Media."},"vimeo_uri":{"type":"string"},"vimeo_picture":{"type":"string"},"vimeo_url":{"type":"string"},"youtube_url":{"type":"string"},"youtube_picture":{"type":"string"},"gcs_url":{"type":"string"},"gcs_480_30_url":{"type":"string"},"gcs_720_30_url":{"type":"string"},"gcs_1080_30_url":{"type":"string"},"duration":{"type":"number"},"transcode_status":{"type":"string","default":"not_started"},"_id":{"type":"string"}}}},"keywords":{"type":"array","items":{"type":"string"}},"emotion":{"type":"string"},"political_spectrum":{"type":"string"},"explicit":{"type":"string"},"harmful":{"type":"string"},"propaganda":{"type":"string"},"advertisement":{"type":"string"},"engaging":{"type":"string"},"language":{"type":"string"},"interests":{"type":"array","items":{"type":"string"}},"app_category":{"type":"array","items":{"type":"string"}},"user_profile":{"type":"array","items":{"type":"string"}},"user_economics":{"type":"string"},"user_education":{"type":"string"},"marital_status":{"type":"string"},"age":{"type":"string"},"sex":{"type":"string"},"attractiveness":{"type":"string"},"isAdvertisment":{"type":"boolean","default":false},"saves":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"expirable":{"type":"boolean","default":false},"exclusive":{"type":"boolean","default":false},"price_plans":{"type":"array","items":{"type":"string"},"description":"Id of a PricePlan."},"mentions":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"total_views":{"type":"number","default":0},"times_showed":{"type":"number","default":0},"attached_to":{"type":"string","description":"Id of a Post."},"attached_to_cta_text":{"type":"string"},"isBlacklist":{"type":"boolean","default":false},"isReviewed":{"type":"boolean","default":false},"posted_in":{"type":"string","description":"Id of a Group."},"attached_to_service":{"type":"string","description":"Id of a Service."},"attached_to_product":{"type":"string","description":"Id of a Product."},"attached_to_blogpost":{"type":"string","description":"Id of a BlogPost."},"attached_to_program":{"type":"string","description":"Id of a Program."},"attached_to_priceplans":{"type":"boolean","default":false},"isWhitelisted":{"type":"boolean","default":false},"attached_to_group":{"type":"string","description":"Id of a Group."},"reach":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"showAds":{"type":"boolean","default":true},"adminShowAds":{"type":"boolean","default":true},"isAddReviewed":{"type":"boolean","default":false},"reposts":{"type":"array","items":{"type":"string"},"description":"Id of a Post."},"original_post":{"type":"string","description":"Id of a Post."},"isHidden":{"type":"boolean","default":false},"dislikes":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"frames":{"type":"array","items":{"type":"object","properties":{"media":{"type":"string","description":"Id of a Media."},"timestamp":{"type":"number"},"_id":{"type":"string"}}}},"privacy":{"type":"string","enum":["everyone","followers","private"],"default":"everyone"},"isPinned":{"type":"boolean","default":false},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"thumbnail":{"type":"object","properties":{"media":{"type":"string"}}},"targeting":{"type":"object","properties":{"keywords":{"type":"string"},"language":{"type":"string"},"interests":{"type":"string"},"app_category":{"type":"string"},"user_economics":{"type":"string"},"user_education":{"type":"string"},"marital_status":{"type":"string"},"age":{"type":"string"},"sex":{"type":"string"},"isCpc":{"type":"boolean"},"cost_per_click":{"type":"number"},"cost_per_mile":{"type":"number"},"daily_budget":{"type":"number"},"duration":{"type":"number"},"outer_link":{"type":"object","properties":{"text":{"type":"string"},"url":{"type":"string"}}},"locations":{"type":"string"},"total":{"type":"number"},"created_on":{"type":"string"},"inner_link":{"type":"object","properties":{"text":{"type":"string"},"profile_segment":{"type":"string"}}},"total_clicks":{"type":"number"},"unique_clicks":{"type":"string"},"campaign_type":{"type":"string"},"related_videos":{"type":"string"}}},"poll":{"type":"object","properties":{"question":{"type":"string"},"answers":{"type":"string"}}},"custom_link":{"type":"object","properties":{"heading":{"type":"string"},"url":{"type":"string"}}},"embeded_link":{"type":"object","properties":{"og:image":{"type":"string"},"og:site_name":{"type":"string"},"og:title":{"type":"string"},"og:url":{"type":"string"}}}}},"PricePlan":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"statement_descriptor":{"type":"string"},"plan_features":{"type":"array","items":{"type":"object","properties":{"feature_type":{"type":"string"},"feature_name":{"type":"string"},"feature_value":{"type":"string"},"_id":{"type":"string"}}}},"price":{"type":"number"},"link":{"type":"string"},"image":{"type":"string","description":"Id of a Media."},"price_id":{"type":"string"},"payment_link_id":{"type":"string"},"free_trial_days":{"type":"number","default":0},"billing_address_collection":{"type":"string","default":"auto"},"owner_id":{"type":"string","description":"Id of a User."},"times_showed":{"type":"number","default":0},"views":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"total_views":{"type":"number","default":0},"disabled":{"type":"boolean","default":false},"ribbon":{"type":"string"},"linked_plans":{"type":"array","items":{"type":"string"},"description":"Id of a PricePlan."},"is_hidden":{"type":"boolean","default":false},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"recurring_options":{"type":"object","properties":{"interval":{"type":"string"},"interval_count":{"type":"number"}}}}},"PriceQuote":{"type":"object","properties":{"customer_name":{"type":"string"},"customer_address":{"type":"string"},"customer_postal_code":{"type":"string"},"customer_city":{"type":"string"},"customer_country":{"type":"string"},"customer_phone":{"type":"string"},"customer_email":{"type":"string"},"customer_tax_id":{"type":"string"},"customer_vat_id":{"type":"string"},"customer_responsible_official":{"type":"string"},"customer_organization_name":{"type":"string"},"billing_customer_address":{"type":"string"},"billing_customer_postal_code":{"type":"string"},"billing_customer_city":{"type":"string"},"billing_customer_country":{"type":"string"},"billing_customer_phone":{"type":"string"},"subtotal":{"type":"number"},"amount":{"type":"number"},"day_of_issue":{"type":"string"},"number":{"type":"number"},"foreign":{"type":"boolean"},"home_tax":{"type":"number","default":0},"foreign_tax":{"type":"number","default":0},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"qty":{"type":"number"},"unit_price":{"type":"number"},"discount":{"type":"number"},"amount":{"type":"number"},"_id":{"type":"string"}}}},"grounds_for_transaction":{"type":"string"},"description_of_transaction":{"type":"string"},"place_of_transaction":{"type":"string"},"payment":{"type":"string"},"dateDue":{"type":"string"},"invoice_id":{"type":"string","description":"Id of a invoice."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"invoice_settings":{"type":"object","properties":{"number":{"type":"number"},"price_quote_number":{"type":"string"},"bic":{"type":"string"},"swift":{"type":"string"},"tax_id":{"type":"string"},"vat_id":{"type":"string"},"logo":{"type":"string"},"business_name":{"type":"string"},"business_name_translated":{"type":"string"},"responsible_official":{"type":"string"},"responsible_official_translated":{"type":"string"},"business_email":{"type":"string"},"company_id":{"type":"string"},"business_address":{"type":"string"},"business_address_translated":{"type":"string"},"business_phone_number":{"type":"string"},"business_country":{"type":"string"},"business_country_translated":{"type":"string"},"footer":{"type":"string"},"footer_translated":{"type":"string"},"foreign_tax":{"type":"number"},"home_tax":{"type":"number"},"currency_symbol":{"type":"string"}}}}},"Product":{"type":"object","properties":{"name":{"type":"string","description":"Name of the product, required."},"url":{"type":"string","description":"Url of the product, it is automatically generated."},"static_url":{"type":"string"},"ribbon":{"type":"string","description":"A banner that appears on top of product, for example 'Sale', 'New', etc."},"striked":{"type":"string","description":"A striked text that appears next to price, useful for striking old price."},"price":{"type":"number","description":"Price of the product - default 0 if not provided."},"description":{"type":"string","description":"Description of product in html format."},"product_informations":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"_id":{"type":"string"}}},"description":"Dropdown texts with additional information about the product."},"product_options":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"options":{"type":"array","items":{"type":"object","properties":{"option":{"type":"string"},"match_to_collection":{"type":"string","description":"Id of a Collection."},"quantity":{"type":"number"},"badge":{"type":"string"},"option_specific_media":{"type":"string","description":"Id of a Media."},"_id":{"type":"string"}}}},"informations":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"_id":{"type":"string"}}}},"_id":{"type":"string"}}}},"published":{"type":"boolean","default":true,"description":"If true the product is visible in the site/app product pages - default true."},"available_for_purchase":{"type":"boolean","default":true,"description":"If true the product can be purchased - default true."},"medias":{"type":"array","items":{"type":"object","properties":{"media":{"type":"string","description":"Id of a Media."},"gcs_url":{"type":"string"},"gcs_480_30_url":{"type":"string"},"gcs_720_30_url":{"type":"string"},"gcs_1080_30_url":{"type":"string"},"duration":{"type":"number"},"vimeo_uri":{"type":"string"},"vimeo_picture":{"type":"string"},"vimeo_url":{"type":"string"},"youtube_url":{"type":"string"},"youtube_picture":{"type":"string"},"thumbnail":{"type":"string"},"_id":{"type":"string"}}}},"collection_id":{"type":"string","description":"Reference to the Collection model, it is the store where product is grouped. Id of a Collection."},"grouping":{"type":"array","items":{"type":"object","properties":{"collection_id":{"type":"string","description":"Id of a Collection."},"_id":{"type":"string"}}},"description":"References to the Collection model, they act as filters."},"owner_id":{"type":"string","description":"Id of a User."},"connected_account_owner_id":{"type":"string","description":"Id of a User."},"qty":{"type":"number","default":1},"origin_address":{"type":"string","description":"Name of the address, taken from OriginAdress model, used for filtering."},"selected":{"type":"boolean","default":false},"custom_1":{"type":"string","description":"Field used for filtering if additionalFieldsLocales are present."},"custom_2":{"type":"string","description":"Field used for filtering if additionalFieldsLocales are present."},"custom_3":{"type":"string","description":"Field used for filtering if additionalFieldsLocales are present."},"about_page":{"type":"string","description":"Reference to AboutPage model, shown in product page. Id of a AboutPage."},"is_digital":{"type":"boolean","default":false},"digital_contents":{"type":"array","items":{"type":"object","properties":{"content":{"type":"string","description":"Id of a DigitalContent."},"option":{"type":"string"},"_id":{"type":"string"}}}},"suitability_price_plans":{"type":"array","items":{"type":"string"},"description":"A list of references to PricePlan model, if user has any of the listed priceplan ids, then is Suitable is true. Id of a PricePlan."},"isSuitable":{"type":"boolean"},"brand":{"type":"string","description":"Name of the product brand."},"brand_logo":{"type":"string","description":"Logo of the brand, reference to Media model. Id of a Media."},"weight":{"type":"number","default":0,"description":"Weight of product in kg."},"height":{"type":"number","default":0,"description":"Weight of product in cm."},"length":{"type":"number","default":0,"description":"Weight of product in cm."},"width":{"type":"number","default":0,"description":"Weight of product in cm."},"delivery_type":{"type":"string","default":"parcel","description":"Used for delivery, default is parcel, allowed values are books, bulk, letter, parcel or parcel_letter."},"reference_id":{"type":"string"},"wildcard_url":{"type":"object"},"sku":{"type":"object","description":"Sku of product if available."},"reviewed":{"type":"boolean"},"approved":{"type":"boolean"},"expired":{"type":"boolean","default":false},"expires_on":{"type":"string","format":"date-time"},"expire_reminder_sent":{"type":"boolean","default":false},"likes":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"views":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"total_views":{"type":"number","default":0},"saves":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"times_showed":{"type":"number","default":0},"requiresLogin":{"type":"boolean","default":false},"requiresSubscription":{"type":"boolean","default":false},"price_plan_ids":{"type":"array","items":{"type":"string"},"description":"Reference to PricePlan ids."},"linked_products":{"type":"array","items":{"type":"object","properties":{"product":{"type":"string","description":"Id of a Product."},"option":{"type":"string"},"_id":{"type":"string"}}},"description":"List of products that are shown for quick add to cart in the product page."},"about_section":{"type":"string","description":"Reference to AboutPage model, shown below the add to cart button. Id of a AboutPage."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"secondary_cta":{"type":"object","properties":{"show":{"type":"boolean"},"title":{"type":"string"},"webUrl":{"type":"string"},"appUrl":{"type":"string"}}},"attached_priceplans":{"type":"object","properties":{"name":{"type":"string"},"priceplans":{"type":"string"}}}}},"ProfessionalAccount":{"type":"object","properties":{"user":{"type":"string","description":"Id of a User."},"reviewed":{"type":"boolean","default":false},"approved":{"type":"boolean","default":false},"cover":{"type":"string","description":"Id of a Media."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"show":{"type":"object","properties":{"services":{"type":"boolean"},"staff_members":{"type":"boolean"},"blogposts":{"type":"boolean"},"programs":{"type":"boolean"},"products":{"type":"boolean"},"events":{"type":"boolean"},"price_plans":{"type":"boolean"},"posts":{"type":"boolean"}}}}},"Program":{"type":"object","properties":{"title":{"type":"string","description":"Name of the program, required."},"url":{"type":"string"},"static_url":{"type":"string"},"header":{"type":"string","description":"Short tagline or subtitle shown in listings, optional."},"body":{"type":"string","description":"Full program description in HTML format, optional."},"medias":{"type":"array","items":{"type":"object","properties":{"media":{"type":"string","description":"Id of a Media."},"gcs_url":{"type":"string"},"gcs_480_30_url":{"type":"string"},"gcs_720_30_url":{"type":"string"},"gcs_1080_30_url":{"type":"string"},"duration":{"type":"number"},"vimeo_uri":{"type":"string"},"vimeo_picture":{"type":"string"},"vimeo_url":{"type":"string"},"youtube_url":{"type":"string"},"youtube_picture":{"type":"string"},"thumbnail":{"type":"string"},"_id":{"type":"string"}}}},"video":{"type":"string","description":"Id of a Video."},"about_page":{"type":"string","description":"Id of a AboutPage."},"weeks":{"type":"array","items":{"type":"object","properties":{"isCompleted":{"type":"object"},"progress":{"type":"object"},"title":{"type":"string"},"days":{"type":"array","items":{"type":"object","properties":{"isCompleted":{"type":"object"},"progress":{"type":"object"},"title":{"type":"string"},"steps":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"body":{"type":"string"},"video":{"type":"string","description":"Id of a Video."},"medias":{"type":"array","items":{"type":"object","properties":{}}},"about_page":{"type":"string","description":"Id of a AboutPage."},"timer":{"type":"number","default":0},"_id":{"type":"string"}}}},"_id":{"type":"string"}}}},"_id":{"type":"string"}}},"description":"A list of week objects, required."},"suitability_price_plans":{"type":"array","items":{"type":"string"},"description":"A list of PricePlan ids, marks program as suitable for users with those plans. Id of a PricePlan."},"isSuitable":{"type":"boolean"},"price":{"type":"number","default":0,"description":"Price in the user's currency, default 0."},"collection_id":{"type":"string","description":"Reference to a Collection with name starting with 'program-category/', required. Id of a Collection."},"topics":{"type":"array","items":{"type":"object","properties":{"collection_id":{"type":"string","description":"Id of a Collection."},"_id":{"type":"string"}}}},"owner_id":{"type":"string","description":"Id of a User."},"connected_account_owner_id":{"type":"string","description":"Id of a User."},"ribbon":{"type":"string","description":"Short badge text shown on the card (e.g. \"New\", \"Best seller\"), optional."},"striked":{"type":"string","description":"Original price shown as strikethrough next to the real price, optional."},"isConsistent":{"type":"boolean","default":false},"isAcademic":{"type":"boolean","default":true},"wildcard_url":{"type":"object"},"reviewed":{"type":"boolean"},"approved":{"type":"boolean"},"likes":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"views":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"total_views":{"type":"number","default":0},"saves":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"requiresLogin":{"type":"boolean","default":false},"requiresSubscription":{"type":"boolean","default":false},"price_plan_ids":{"type":"array","items":{"type":"string"},"description":"A list of price plan id strings that grant access to this program."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"popup":{"type":"object","properties":{"title":{"type":"string"},"points":{"type":"string"}}}}},"ProgramProgress":{"type":"object","properties":{"program":{"type":"string","description":"Id of a Program."},"user":{"type":"string","description":"Id of a User."},"no_steps":{"type":"number"},"is_completed":{"type":"boolean","default":false},"weeks_completed":{"type":"array","items":{"type":"string"}},"days_completed":{"type":"array","items":{"type":"string"}},"steps_completed":{"type":"array","items":{"type":"string"}},"selectedWeek":{"type":"object"},"selectedWeekIndex":{"type":"object"},"selectedDay":{"type":"object"},"selectedDayIndex":{"type":"object"},"selectedStep":{"type":"object"},"selectedStepIndex":{"type":"object"},"about_section":{"type":"object"},"selected":{"type":"boolean","default":false},"percentage":{"type":"object"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Publish":{"type":"object","properties":{"web":{"type":"boolean"},"ios":{"type":"boolean"},"android":{"type":"boolean"},"pwaSwitch":{"type":"string"},"android_app_id":{"type":"string"},"ios_app_id":{"type":"string"},"_id":{"type":"string"}}},"PushNotification":{"type":"object","properties":{"title":{"type":"string"},"body":{"type":"string"},"image":{"type":"string"},"send_to":{"type":"string"},"type":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"PushToken":{"type":"object","properties":{"user":{"type":"string"},"is_admin":{"type":"boolean","default":false},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"PwaSettings":{"type":"object","properties":{"name":{"type":"string"},"short_name":{"type":"string"},"logo":{"type":"string","description":"Id of a Media."},"background_color":{"type":"string"},"description":{"type":"string"},"screenshots":{"type":"array","items":{"type":"object","properties":{"media":{"type":"string","description":"Id of a Media."},"is_mobile_preview":{"type":"boolean","default":false},"_id":{"type":"string"}}}},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"QrCode":{"type":"object","properties":{"ticket":{"type":"string","description":"Id of a Ticket."},"status":{"type":"string","enum":["used","not-used"],"default":"not-used"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Rating":{"type":"object","properties":{"email":{"type":"string"},"text":{"type":"string"},"medias":{"type":"array","items":{"type":"object","properties":{"media":{"type":"string","description":"Id of a Media."},"_id":{"type":"string"}}}},"stars":{"type":"number"},"product":{"type":"string","description":"Id of a Product."},"service":{"type":"string","description":"Id of a Service."},"program":{"type":"string","description":"Id of a Program."},"price_plan":{"type":"string","description":"Id of a PricePlan."},"name":{"type":"string"},"miniapp":{"type":"string","description":"Id of a MiniApp."},"staff_member":{"type":"string","description":"Id of a User."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"RatingSettings":{"type":"object","properties":{"type":{"type":"string"},"send":{"type":"boolean","default":false},"days":{"type":"number"},"title":{"type":"string"},"text1":{"type":"string"},"text2":{"type":"string"},"useCustomLink":{"type":"boolean","default":false},"customLinkUrl":{"type":"string"},"linkText":{"type":"string"},"startDate":{"type":"string","format":"date-time"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"ReceiptAdjustment":{"type":"object","properties":{"about_page":{"type":"string","description":"Id of a AboutPage."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"RecurringInvoice":{"type":"object","properties":{"title":{"type":"string","default":""},"active":{"type":"boolean","default":true},"auto_send":{"type":"boolean","default":false},"interval_count":{"type":"number","default":1},"interval_unit":{"type":"string","enum":["day","week","month","year"],"default":"month"},"start_date":{"type":"string","format":"date-time"},"end_date":{"type":"string","format":"date-time"},"due_days":{"type":"number","default":0},"next_run_at":{"type":"string","format":"date-time"},"customer_name":{"type":"string"},"customer_address":{"type":"string"},"customer_postal_code":{"type":"string"},"customer_city":{"type":"string"},"customer_country":{"type":"string"},"customer_phone":{"type":"string"},"customer_email":{"type":"string"},"customer_tax_id":{"type":"string"},"customer_vat_id":{"type":"string"},"customer_responsible_official":{"type":"string"},"customer_organization_name":{"type":"string"},"billing_customer_address":{"type":"string"},"billing_customer_postal_code":{"type":"string"},"billing_customer_city":{"type":"string"},"billing_customer_country":{"type":"string"},"billing_customer_phone":{"type":"string"},"foreign":{"type":"boolean","default":false},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"qty":{"type":"number","default":1},"unit_price":{"type":"number","default":0},"discount":{"type":"number","default":0},"_id":{"type":"string"}}}},"payment":{"type":"string"},"grounds_for_transaction":{"type":"string"},"description_of_transaction":{"type":"string"},"place_of_transaction":{"type":"string"},"runs":{"type":"number","default":0},"last_run_at":{"type":"string","format":"date-time"},"last_price_quote_id":{"type":"string"},"last_invoice_id":{"type":"string"},"last_error":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"SeatingPlan":{"type":"object","properties":{"name":{"type":"string"},"sections":{"type":"array","items":{"type":"object","properties":{"subsections":{"type":"array","items":{"type":"object","properties":{"rows":{"type":"array","items":{"type":"object","properties":{"columns":{"type":"array","items":{"type":"object","properties":{}}},"top":{"type":"number"},"left":{"type":"number"},"formated_row_index":{"type":"number"}}}},"edit":{"type":"boolean"},"widest_column":{"type":"number"},"justify":{"type":"string"},"left":{"type":"number"},"top":{"type":"number"}}}},"section_type":{"type":"string"},"name":{"type":"string"},"top":{"type":"number"},"left":{"type":"number"},"color":{"type":"string"},"premium_color":{"type":"string"},"rotation":{"type":"number"},"max_seats":{"type":"number"}}}},"venue":{"type":"string","description":"Id of a Venue."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Service":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"static_url":{"type":"string"},"header":{"type":"string","description":"This is the subtitle of the service."},"description":{"type":"string","description":"This is the description of the service."},"bookable":{"type":"boolean","default":true},"expirable":{"type":"boolean","default":false},"confirm_bookings":{"type":"boolean","default":false},"show_notes":{"type":"boolean","default":false},"minutes_delete_bookings":{"type":"number","description":"Number of minutes before the booking expires before being confirmed and is set 'expirable:true'."},"medias":{"type":"array","items":{"type":"object","properties":{"media":{"type":"string","description":"Id of a Media."},"gcs_url":{"type":"string"},"gcs_480_30_url":{"type":"string"},"gcs_720_30_url":{"type":"string"},"gcs_1080_30_url":{"type":"string"},"duration":{"type":"number"},"vimeo_uri":{"type":"string"},"vimeo_picture":{"type":"string"},"vimeo_url":{"type":"string"},"youtube_url":{"type":"string"},"youtube_picture":{"type":"string"},"thumbnail":{"type":"string"},"_id":{"type":"string"}}}},"collection_id":{"type":"string","description":"Reference to the Collection model, it is the store where service is grouped. Id of a Collection."},"price":{"type":"number","description":"The price of the service in the globally set currency."},"online_payment":{"type":"boolean","default":false},"book_by_date":{"type":"boolean","default":false},"book_date_range":{"type":"boolean","default":false},"start_date":{"type":"string","format":"date-time","description":"Start date of allowed slots for booking."},"end_date":{"type":"string","format":"date-time","description":"End date of allowed slots for booking."},"day_offset":{"type":"number","default":0},"is_recurring":{"type":"boolean","default":false},"max_participants":{"type":"number"},"session_duration":{"type":"number"},"time_between_sessions":{"type":"number","default":0},"discount":{"type":"array","items":{"type":"object","properties":{"days":{"type":"number"},"per_total_price":{"type":"number"},"fixed_price":{"type":"number"},"per_day":{"type":"number"},"_id":{"type":"string"}}}},"address":{"type":"string","description":"Where is the service performed."},"staff_member":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"owner_id":{"type":"string","description":"Id of a User."},"connected_account_owner_id":{"type":"string","description":"Id of a User."},"timezone":{"type":"number","default":false},"choose_timezone":{"type":"boolean"},"origin_address":{"type":"string"},"selected":{"type":"boolean","default":false},"custom_1":{"type":"string","description":"Field used for filtering if additionalFieldsLocales are present."},"custom_2":{"type":"string","description":"Field used for filtering if additionalFieldsLocales are present."},"custom_3":{"type":"string","description":"Field used for filtering if additionalFieldsLocales are present."},"about_page":{"type":"string","description":"Id of a AboutPage."},"show_only_about_page":{"type":"boolean","default":false},"suitability_price_plans":{"type":"array","items":{"type":"string"},"description":"Id of a PricePlan."},"isSuitable":{"type":"boolean"},"booking_only":{"type":"boolean","description":"If the booking page should not show a header and footer."},"dates_disabled":{"type":"array","items":{"type":"string"}},"dates_booked":{"type":"array","items":{"type":"string"}},"receipt_about_page":{"type":"string","description":"Id of a AboutPage."},"wildcard_url":{"type":"object"},"locked_hours":{"type":"array","items":{"type":"string"}},"reviewed":{"type":"boolean"},"approved":{"type":"boolean"},"likes":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"views":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"total_views":{"type":"number","default":0},"saves":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"times_showed":{"type":"number","default":0},"email_text":{"type":"string","description":"The text the client will receive inside the email."},"calendar_description":{"type":"string","description":"The text the client will see when adding the appointment inside their calendar."},"requiresLogin":{"type":"boolean","default":false},"requiresSubscription":{"type":"boolean","default":false},"price_plan_ids":{"type":"array","items":{"type":"string"}},"calendar_filter":{"type":"array","items":{"type":"object","properties":{"collection_id":{"type":"string","description":"Id of a Collection."},"_id":{"type":"string"}}}},"locked_ranges":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string","format":"date-time"},"end":{"type":"string","format":"date-time"},"_id":{"type":"string"}}}},"connected_services":{"type":"array","items":{"type":"string"},"description":"Id of a Service."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"monday":{"type":"object","properties":{"active":{"type":"boolean"},"hours":{"type":"string"}}},"tuesday":{"type":"object","properties":{"active":{"type":"boolean"},"hours":{"type":"string"}}},"wednesday":{"type":"object","properties":{"active":{"type":"boolean"},"hours":{"type":"string"}}},"thursday":{"type":"object","properties":{"active":{"type":"boolean"},"hours":{"type":"string"}}},"friday":{"type":"object","properties":{"active":{"type":"boolean"},"hours":{"type":"string"}}},"saturday":{"type":"object","properties":{"active":{"type":"boolean"},"hours":{"type":"string"}}},"sunday":{"type":"object","properties":{"active":{"type":"boolean"},"hours":{"type":"string"}}},"analytics_locales":{"type":"object","properties":{"google_event_custom_title":{"type":"string"},"facebook_event_custom_title":{"type":"string"},"tiktok_event_custom_title":{"type":"string"},"linkedin_event_custom_title":{"type":"string"},"chatgpt_event_custom_title":{"type":"string"}}}}},"Shipping":{"type":"object","properties":{"region":{"type":"string"},"has_store_pickup":{"type":"boolean","default":false},"pickup_title":{"type":"string"},"pickup_address":{"type":"string"},"pickup_available":{"type":"string"},"pickup_instructions":{"type":"string"},"delivery":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"estimated_delivery_time":{"type":"string"},"fixed_rate":{"type":"number"},"rate_per_total":{"type":"number"},"rate_per_unit":{"type":"number"},"has_free_delivery":{"type":"boolean","default":false},"free_delivery_requirement":{"type":"number","default":0},"delivery_days":{"type":"number","default":3},"hasIntegration":{"type":"boolean","default":true},"has_time_window":{"type":"boolean","default":false},"available_from":{"type":"string"},"available_to":{"type":"string"},"timezone":{"type":"string"},"_id":{"type":"string"}}}},"owner_id":{"type":"string","description":"Id of a User."},"connected_account_owner_id":{"type":"string","description":"Id of a User."},"min_order_value":{"type":"number","default":0},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"SiteMenu":{"type":"object","properties":{"title":{"type":"string","description":"The menu link label shown to users, required."},"url":{"type":"string","description":"The link target."},"position":{"type":"number","description":"Display order starting from 0, optional."},"submenus":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"position":{"type":"number"},"_id":{"type":"string"}}}},"customDropdown":{"type":"boolean","default":false},"customDropdownId":{"type":"string","description":"Id of a AboutPage."},"sideMenu":{"type":"boolean","default":false},"sidemenus":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"submenus":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"position":{"type":"number"},"icon":{"type":"string"},"img":{"type":"string","description":"Id of a Media."},"submenus":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"position":{"type":"number"},"icon":{"type":"string"},"img":{"type":"string","description":"Id of a Media."},"_id":{"type":"string"}}}},"_id":{"type":"string"}}}},"_id":{"type":"string"}}}},"icon":{"type":"string","description":"FontAwesome 5 class (e.g. \"fas fa-home\"), optional."},"_id":{"type":"string"}}},"SocialComment":{"type":"object","properties":{"platform":{"type":"string","enum":["facebook","instagram"],"default":"facebook"},"kind":{"type":"string","enum":["comment","message"],"default":"comment"},"conversation_id":{"type":"string"},"window_expires_at":{"type":"string","format":"date-time"},"page_id":{"type":"string"},"comment_id":{"type":"string"},"post_id":{"type":"string"},"post_url":{"type":"string"},"post_message":{"type":"string"},"post_links":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"title":{"type":"string"}}}},"parent_id":{"type":"string"},"page_replied":{"type":"boolean","default":false},"post_type":{"type":"string","default":"organic"},"message":{"type":"string"},"author_id":{"type":"string"},"author_name":{"type":"string"},"comment_created_at":{"type":"string","format":"date-time"},"suggested_action":{"type":"string"},"reply_message":{"type":"string"},"status":{"type":"string","enum":["new","clean","pending","auto_actioned","approved","rejected","answered_by_page","hidden","failed","expired"],"default":"new"},"action_taken":{"type":"string"},"actioned_by":{"type":"string"},"actioned_at":{"type":"string","format":"date-time"},"reply_comment_id":{"type":"string"},"undone_at":{"type":"string","format":"date-time"},"error":{"type":"string"},"error_source":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"classification":{"type":"object","properties":{"category":{"type":"string"},"score":{"type":"number"},"should_reply":{"type":"boolean"},"answer_available":{"type":"boolean"},"reasoning":{"type":"string"},"language":{"type":"string"}}},"credits":{"type":"object","properties":{"classify":{"type":"number"},"reply":{"type":"number"}}}}},"SocialModeSettings":{"type":"object","properties":{"social_mode":{"type":"boolean","default":false},"allow_products":{"type":"boolean","default":false},"allow_services":{"type":"boolean","default":false},"allow_services_stp":{"type":"boolean","default":false},"allow_blogposts":{"type":"boolean","default":false},"allow_programs":{"type":"boolean","default":false},"allow_programs_stp":{"type":"boolean","default":false},"allow_posts":{"type":"boolean","default":false},"allow_ai":{"type":"boolean","default":false},"allow_bites":{"type":"boolean","default":false},"allow_long_videos":{"type":"boolean","default":false},"allow_explore":{"type":"boolean","default":false},"allow_online_payments":{"type":"boolean","default":false},"allow_price_plans":{"type":"boolean","default":false},"allow_boosting_posts":{"type":"boolean","default":false},"allow_single_ai":{"type":"boolean","default":false},"merchant_agreement":{"type":"string","description":"Id of a AboutPage."},"verification_popup":{"type":"string","description":"Id of a AboutPage."},"commission":{"type":"number"},"home_page":{"type":"string","default":"home"},"allow_google_login":{"type":"boolean","default":true},"use_cdn_for_medias":{"type":"boolean","default":false},"cdn_for_medias":{"type":"string"},"use_cdn_for_microservices":{"type":"boolean","default":false},"cdn_for_microservices":{"type":"string"},"cdn_for_sockets":{"type":"string"},"allow_chat":{"type":"boolean","default":true},"allow_in_app_notifications":{"type":"boolean","default":true},"feed_menus":{"type":"string","default":"grid"},"allow_miniapps":{"type":"boolean","default":false},"user_groups":{"type":"boolean","default":true},"allow_professional_pages":{"type":"boolean","default":false},"allow_professional_account_registration":{"type":"boolean","default":false},"use_companion_bookings":{"type":"boolean","default":false},"confirm_bookings_call":{"type":"boolean","default":false},"hide_feed_menus":{"type":"boolean","default":false},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"navigation_pages":{"type":"object","properties":{"bites":{"type":"boolean"},"long_videos":{"type":"boolean"},"vouchers":{"type":"boolean"},"store":{"type":"boolean"},"programs":{"type":"boolean"},"services":{"type":"boolean"},"blogposts":{"type":"boolean"},"subscription":{"type":"boolean"},"playlists":{"type":"boolean"},"partners":{"type":"boolean"},"contacts":{"type":"boolean"},"tracker":{"type":"boolean"},"more":{"type":"boolean"},"claims":{"type":"boolean"},"miniapps":{"type":"boolean"},"events":{"type":"boolean"},"professional_pages":{"type":"boolean"}}},"paywall":{"type":"object","properties":{"store":{"type":"object","properties":{"has_paywall":{"type":"boolean"},"priceplans":{"type":"string"}}},"programs":{"type":"object","properties":{"has_paywall":{"type":"boolean"},"priceplans":{"type":"string"}}},"services":{"type":"object","properties":{"has_paywall":{"type":"boolean"},"priceplans":{"type":"string"}}},"blogposts":{"type":"object","properties":{"has_paywall":{"type":"boolean"},"priceplans":{"type":"string"}}},"subscription":{"type":"object","properties":{"has_paywall":{"type":"boolean"},"priceplans":{"type":"string"}}},"post":{"type":"object","properties":{"has_paywall":{"type":"boolean"},"priceplans":{"type":"string"}}},"groups":{"type":"object","properties":{"has_paywall":{"type":"boolean"},"priceplans":{"type":"string"}}},"professional_pages":{"type":"object","properties":{"has_paywall":{"type":"boolean"},"priceplans":{"type":"string"}}}}},"dashboard_pages":{"type":"object","properties":{"following":{"type":"boolean"},"recent":{"type":"boolean"},"threads":{"type":"boolean"},"long_videos":{"type":"boolean"},"groups":{"type":"boolean"},"about_pages":{"type":"boolean"},"mini_apps":{"type":"boolean"},"blogposts":{"type":"boolean"},"products":{"type":"boolean"},"services":{"type":"boolean"},"price_plans":{"type":"boolean"},"programs":{"type":"boolean"},"claims":{"type":"boolean"},"bites":{"type":"boolean"},"playlists":{"type":"boolean"},"partners":{"type":"boolean"},"contacts":{"type":"boolean"},"tracker":{"type":"boolean"},"vouchers":{"type":"boolean"},"explore":{"type":"boolean"}}},"about_pages":{"type":"object","properties":{"groups":{"type":"string"}}},"locations_map":{"type":"object","properties":{"enabled":{"type":"boolean"}}},"require_professional_account":{"type":"object","properties":{"services":{"type":"boolean"},"products":{"type":"boolean"},"programs":{"type":"boolean"},"blogposts":{"type":"boolean"},"subscriptions":{"type":"boolean"}}}}},"SocialModerationSettings":{"type":"object","properties":{"platform":{"type":"string","default":"facebook"},"page_id":{"type":"string"},"page_name":{"type":"string"},"connected_by":{"type":"string","description":"Id of a User."},"last_polled_at":{"type":"string","format":"date-time"},"replies_disabled_at":{"type":"string","format":"date-time"},"enabled":{"type":"boolean","default":false},"auto_threshold":{"type":"number","default":0.9},"custom_instructions":{"type":"string"},"auto_action":{"type":"boolean","default":false},"allow_auto_delete":{"type":"boolean","default":false},"auto_reply":{"type":"boolean","default":false},"auto_post_replies":{"type":"boolean","default":false},"reply_instructions":{"type":"string"},"notify_new_comments":{"type":"boolean","default":false},"start_date":{"type":"string","format":"date-time"},"message_instructions":{"type":"string"},"granted_scopes":{"type":"array","items":{"type":"string"}},"instagram_user_id":{"type":"string"},"instagram_username":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"sources":{"type":"object","properties":{"facebook_posts":{"type":"boolean"},"facebook_reviews":{"type":"boolean"},"instagram_comments":{"type":"boolean"},"facebook_messages":{"type":"boolean"},"instagram_messages":{"type":"boolean"}}}}},"SpeedySettings":{"type":"object","properties":{"shipping":{"type":"string","description":"Id of a Shipping."},"create_label":{"type":"boolean","default":false},"username":{"type":"string"},"account_id":{"type":"string"},"owner_id":{"type":"string","description":"Id of a User."},"connected_account_owner_id":{"type":"string","description":"Id of a User."},"from_office":{"type":"boolean","default":false},"contactName":{"type":"string"},"multiple_items":{"type":"string","enum":["box","sum"],"default":"sum"},"divide_by":{"type":"number"},"box":{"type":"array","items":{"type":"object","properties":{"height":{"type":"number"},"length":{"type":"number"},"width":{"type":"number"},"_id":{"type":"string"}}}},"payAfterAccept":{"type":"boolean","default":false},"returnShipmentServiceId":{"type":"string"},"returnShipmentPayer":{"type":"string","enum":["SENDER","RECIPIENT","THIRD_PARTY"]},"bank_transfer_payment":{"type":"boolean","default":false},"cash_receipt":{"type":"boolean","default":false},"cash_vat_group":{"type":"string"},"_id":{"type":"string"},"address":{"type":"object","properties":{"countryId":{"type":"number"},"country":{"type":"string"},"stateId":{"type":"string"},"siteId":{"type":"string"},"postCode":{"type":"string"},"streetName":{"type":"string"},"streetNo":{"type":"string"},"blockNo":{"type":"string"},"entranceNo":{"type":"string"},"floorNo":{"type":"string"},"apartmentNo":{"type":"string"},"complexName":{"type":"string"},"fullAddressString":{"type":"string"}}},"office":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"}}},"services":{"type":"object","properties":{"abroad":{"type":"string"},"local":{"type":"string"}}},"senderBankAccount":{"type":"object","properties":{"accountHolder":{"type":"string"}}},"product_default_dimensions":{"type":"object","properties":{"height":{"type":"number"},"width":{"type":"number"},"length":{"type":"number"},"weight":{"type":"number"}}}}},"Subscription":{"type":"object","properties":{"stripe_subscription_id":{"type":"string"},"user_id":{"type":"string","description":"Id of a User."},"status":{"type":"number","default":0},"payment_intent_id":{"type":"string"},"price_plan":{"type":"string","description":"Id of a PricePlan."},"rating_mail_sent":{"type":"boolean","default":false},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Tax":{"type":"object","properties":{"country":{"type":"string"},"tax_rate":{"type":"number"},"apply_to_shipping":{"type":"boolean","default":false},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Theme":{"type":"object","properties":{"primary":{"type":"string","default":"#3880ff","description":"Used for buttons, links, highlights."},"primary_darkmode":{"type":"string","default":"#3880ff"},"secondary":{"type":"string","default":"#0cd1e8","description":"Used for buttons, links, highlights."},"tertiary":{"type":"string","default":"#7044ff","description":"Used for buttons, links, highlights."},"success":{"type":"string","default":"#10dc60","description":"Used for buttons, links, highlights."},"warning":{"type":"string","default":"#ffce00","description":"Used for buttons, links, highlights."},"danger":{"type":"string","default":"#f04141","description":"Used for buttons, links, highlights."},"dark":{"type":"string","default":"#222428","description":"Used for text."},"dark_darkmode":{"type":"string","default":"#222428"},"medium":{"type":"string","default":"#989aa2","description":"Used for borders."},"light":{"type":"string","default":"#f4f5f8","description":"Used for backgrounds."},"light_darkmode":{"type":"string","default":"#f4f5f8"},"lightContrast":{"type":"string","default":"#000000"},"lightContrast_darkmode":{"type":"string","default":"#f4f5f8"},"headerA":{"type":"string","default":"#f4f5f8"},"headerB":{"type":"string","default":"#f4f5f8"},"headerA_darkmode":{"type":"string","default":"#f4f5f8"},"headerB_darkmode":{"type":"string","default":"#f4f5f8"},"headerText":{"type":"string"},"headerText_darkmode":{"type":"string"},"headerGradientDeg":{"type":"number","default":0},"footerA":{"type":"string","default":"#222428"},"footerB":{"type":"string","default":"#222428"},"footerA_darkmode":{"type":"string","default":"#222428"},"footerB_darkmode":{"type":"string","default":"#222428"},"footerGradientDeg":{"type":"number","default":0},"footerText":{"type":"string"},"footerText_darkmode":{"type":"string"},"headingFontFamily":{"type":"string","default":"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif"},"headingFontLink":{"type":"string","default":""},"headingFontWeight":{"type":"string","default":"400"},"headingFontStyle":{"type":"string","default":"normal"},"bodyFontFamily":{"type":"string","default":"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif"},"bodyFontStyle":{"type":"string","default":"normal"},"bodyFontLink":{"type":"string","default":""},"primary_contrast":{"type":"string","default":"#3880ff","description":"Used for text on primary color backgrounds, like buttons, highlights, links."},"primary_contrast_darkmode":{"type":"string","default":"#3880ff"},"headerMinHeight":{"type":"string","default":"5rem"},"backgroundImage":{"type":"string","default":""},"backgroundVideo":{"type":"string","default":""},"backgroundAttachment":{"type":"string","default":"fixed"},"backgroundOpacity":{"type":"number","default":1},"transparentCard":{"type":"boolean","default":false},"cardColor":{"type":"string"},"cardColor_color":{"type":"string"},"cardColor_color_darkmode":{"type":"string"},"showMorePages":{"type":"boolean","default":true},"allow_darkmode":{"type":"boolean","default":false,"description":"Allows site/app to switch between light and dark mode, default value is false."},"use_darkmode_on_site":{"type":"boolean","default":false,"description":"Allows the site to switch between light and dark mode, default value is false."},"headerA_secondary":{"type":"string","default":"#f4f5f8"},"headerB_secondary":{"type":"string","default":"#f4f5f8"},"headerA_secondary_darkmode":{"type":"string","default":"#f4f5f8"},"headerB_secondary_darkmode":{"type":"string","default":"#f4f5f8"},"headerText_secondary":{"type":"string"},"headerText_secondary_darkmode":{"type":"string"},"customDropdown_background":{"type":"string","default":"#fff"},"customDropdown_text":{"type":"string","default":"#212529"},"breadCrumbs_backgroundColor":{"type":"string","default":"#e8ebf0"},"breadCrumbs_textColor":{"type":"string","default":"#97a0b0"},"breadCrumbs_darkmode_backgroundColor":{"type":"string","default":"#e8ebf0"},"breadCrumbs_darkmode_textColor":{"type":"string","default":"#97a0b0"},"cardColor_secondary":{"type":"string","default":"#757c8d"},"cardColor_secondary_darkmode":{"type":"string","default":"#757c8d"},"show_inapp_message":{"type":"boolean","default":true},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"product":{"type":"object","properties":{"title":{"type":"string"},"gallery":{"type":"string"},"galleryType":{"type":"string"},"options":{"type":"string"},"infos":{"type":"string"},"infosShow":{"type":"boolean"},"description":{"type":"string"},"cartBtn":{"type":"string"},"comments":{"type":"boolean"},"sku":{"type":"boolean"},"brand":{"type":"boolean"},"cardDesign":{"type":"string"},"likes":{"type":"boolean"},"rating":{"type":"boolean"},"titleColor":{"type":"string"},"priceColor":{"type":"string"},"descriptionColor":{"type":"string"},"borderRadius":{"type":"string"},"titleFontSize":{"type":"string"},"descriptionFontSize":{"type":"string"},"priceFontSize":{"type":"string"},"titleFontWeight":{"type":"string"},"descriptionFontWeight":{"type":"string"},"priceFontWeight":{"type":"string"},"cardBorderRadius":{"type":"string"},"cardBorderWidth":{"type":"string"},"cardBorderColor":{"type":"string"},"cardBackgroundColor":{"type":"string"},"imageAspectRatio":{"type":"string"},"ratingList":{"type":"boolean"},"customCss":{"type":"string"},"scroll_next":{"type":"boolean"},"ratingBackgroundColor":{"type":"string"},"quantity_counter":{"type":"string"},"view_counter":{"type":"boolean"},"contactInfo":{"type":"boolean"},"cartBanner":{"type":"boolean"},"navigation":{"type":"boolean"},"price":{"type":"string"},"optionsColor":{"type":"string"},"optionsBackground":{"type":"string"},"optionsFontSize":{"type":"string"},"optionsFontWeight":{"type":"string"},"optionsColorSelected":{"type":"string"},"optionsBackgroundSelected":{"type":"string"},"viewMultiplier":{"type":"number"},"cartColor":{"type":"string"},"cartBackground":{"type":"string"},"cartFontSize":{"type":"string"},"cartFontWeight":{"type":"string"},"ctaColor":{"type":"string"},"ctaBorderColor":{"type":"string"},"ctaFontSize":{"type":"string"},"ctaFontWeight":{"type":"string"},"selectOption":{"type":"boolean"},"skin":{"type":"string"},"mode":{"type":"string"},"accentColor":{"type":"string"},"fieldBackground":{"type":"string"},"imageRadius":{"type":"number"},"titleFontFamily":{"type":"string"},"titleTransform":{"type":"string"},"priceFontFamily":{"type":"string"},"priceFontStyle":{"type":"string"},"buttonRadius":{"type":"number"},"hairlineWidth":{"type":"number"},"hairlineColor":{"type":"string"},"boxShadowColor":{"type":"string"},"boxShadowOffsetX":{"type":"number"},"boxShadowOffsetY":{"type":"number"},"boxShadowBlurRadius":{"type":"number"},"boxShadowSpreadRadius":{"type":"number"},"chipBackground":{"type":"string"},"chipBorderColor":{"type":"string"},"chipTextColor":{"type":"string"}}},"service":{"type":"object","properties":{"title":{"type":"string"},"gallery":{"type":"string"},"galleryType":{"type":"string"},"options":{"type":"string"},"infos":{"type":"string"},"description":{"type":"string"},"comments":{"type":"boolean"},"cardDesign":{"type":"string"},"likes":{"type":"boolean"},"rating":{"type":"boolean"},"titleColor":{"type":"string"},"priceColor":{"type":"string"},"descriptionColor":{"type":"string"},"borderRadius":{"type":"string"},"titleFontSize":{"type":"string"},"descriptionFontSize":{"type":"string"},"priceFontSize":{"type":"string"},"titleFontWeight":{"type":"string"},"descriptionFontWeight":{"type":"string"},"priceFontWeight":{"type":"string"},"cardBorderRadius":{"type":"string"},"cardBorderWidth":{"type":"string"},"cardBorderColor":{"type":"string"},"cardBackgroundColor":{"type":"string"},"imageAspectRatio":{"type":"string"},"ratingList":{"type":"boolean"},"customCss":{"type":"string"},"calendarColor":{"type":"string"},"dateBackground":{"type":"string"},"dateTextColor":{"type":"string"},"skin":{"type":"string"},"mode":{"type":"string"},"accentColor":{"type":"string"},"fieldBackground":{"type":"string"},"imageRadius":{"type":"number"},"buttonRadius":{"type":"number"},"titleFontFamily":{"type":"string"},"titleTransform":{"type":"string"},"priceFontFamily":{"type":"string"},"priceFontStyle":{"type":"string"},"hairlineWidth":{"type":"number"},"hairlineColor":{"type":"string"},"boxShadowColor":{"type":"string"},"boxShadowOffsetX":{"type":"number"},"boxShadowOffsetY":{"type":"number"},"boxShadowBlurRadius":{"type":"number"},"boxShadowSpreadRadius":{"type":"number"},"chipBackground":{"type":"string"},"chipBorderColor":{"type":"string"},"chipTextColor":{"type":"string"},"hideContactInfo":{"type":"boolean"}}},"blogpost":{"type":"object","properties":{"title":{"type":"string"},"gallery":{"type":"string"},"galleryType":{"type":"string"},"description":{"type":"string"},"comments":{"type":"boolean"},"cardDesign":{"type":"string"},"likes":{"type":"boolean"},"titleColor":{"type":"string"},"descriptionColor":{"type":"string"},"borderRadius":{"type":"string"},"titleFontSize":{"type":"string"},"descriptionFontSize":{"type":"string"},"titleFontWeight":{"type":"string"},"descriptionFontWeight":{"type":"string"},"cardBorderRadius":{"type":"string"},"cardBorderWidth":{"type":"string"},"cardBorderColor":{"type":"string"},"cardBackgroundColor":{"type":"string"},"imageAspectRatio":{"type":"string"},"customCss":{"type":"string"},"scroll_next":{"type":"boolean"},"galleryPosition":{"type":"string"},"contactInfo":{"type":"boolean"},"bodyFontSize":{"type":"string"},"bodyFontWeight":{"type":"string"},"bodyColor":{"type":"string"},"skin":{"type":"string"},"mode":{"type":"string"},"accentColor":{"type":"string"},"fieldBackground":{"type":"string"},"imageRadius":{"type":"number"},"buttonRadius":{"type":"number"},"titleFontFamily":{"type":"string"},"titleTransform":{"type":"string"},"hairlineWidth":{"type":"number"},"hairlineColor":{"type":"string"},"boxShadowColor":{"type":"string"},"boxShadowOffsetX":{"type":"number"},"boxShadowOffsetY":{"type":"number"},"boxShadowBlurRadius":{"type":"number"},"boxShadowSpreadRadius":{"type":"number"},"chipBackground":{"type":"string"},"chipBorderColor":{"type":"string"},"chipTextColor":{"type":"string"},"showDate":{"type":"boolean"},"dateColor":{"type":"string"},"dateFontSize":{"type":"number"},"dateFontWeight":{"type":"string"},"dateFontFamily":{"type":"string"},"dateFontStyle":{"type":"string"}}},"products":{"type":"object","properties":{"gridStyle":{"type":"string"},"align":{"type":"string"},"title":{"type":"string"},"image":{"type":"string"},"filters":{"type":"string"},"description":{"type":"boolean"},"transparent":{"type":"boolean"},"price":{"type":"boolean"},"showFilters":{"type":"boolean"},"showBanner":{"type":"boolean"},"animation":{"type":"string"},"animationDuration":{"type":"number"},"animationDelay":{"type":"number"},"titleColor":{"type":"string"},"priceColor":{"type":"string"},"descriptionColor":{"type":"string"},"borderRadius":{"type":"string"},"titleFontSize":{"type":"string"},"descriptionFontSize":{"type":"string"},"priceFontSize":{"type":"string"},"titleFontWeight":{"type":"string"},"descriptionFontWeight":{"type":"string"},"priceFontWeight":{"type":"string"},"cardBorderRadius":{"type":"string"},"cardBorderWidth":{"type":"string"},"cardBorderColor":{"type":"string"},"cardBackgroundColor":{"type":"string"},"imageAspectRatio":{"type":"string"},"customCss":{"type":"string"},"filtersBackgroundColor":{"type":"string"},"filtersTextColor":{"type":"string"},"filtersBorderRadius":{"type":"string"},"filtersCardDesign":{"type":"string"},"boxShadowColor":{"type":"string"},"boxShadowOffsetX":{"type":"number"},"boxShadowOffsetY":{"type":"number"},"boxShadowBlurRadius":{"type":"string"},"boxShadowSpreadRadius":{"type":"string"},"hideOriginAddress":{"type":"boolean"},"categories":{"type":"object","properties":{"layout":{"type":"string"},"showHeading":{"type":"boolean"},"showSubtitle":{"type":"boolean"},"showImage":{"type":"boolean"},"imageSize":{"type":"string"},"imageRadius":{"type":"string"},"imageAspectRatio":{"type":"string"},"imageFit":{"type":"string"},"imagePadding":{"type":"number"},"fallback":{"type":"string"},"showChevron":{"type":"boolean"},"titleColor":{"type":"string"},"titleFontSize":{"type":"string"},"titleFontWeight":{"type":"string"},"cardBackgroundColor":{"type":"string"},"cardBorderRadius":{"type":"string"},"cardBorderWidth":{"type":"string"},"cardBorderColor":{"type":"string"},"customCss":{"type":"string"},"site":{"type":"object","properties":{"showImage":{"type":"boolean"},"imageSize":{"type":"string"},"imageAspectRatio":{"type":"string"},"titleColor":{"type":"string"},"titleFontSize":{"type":"string"},"titleFontWeight":{"type":"string"},"cardBackgroundColor":{"type":"string"},"cardBorderRadius":{"type":"string"},"cardBorderWidth":{"type":"string"},"cardBorderColor":{"type":"string"},"cardPadding":{"type":"string"},"gap":{"type":"string"},"align":{"type":"string"},"titleTransform":{"type":"string"}}}}},"hideRibbon":{"type":"boolean"},"hideCustomFields":{"type":"boolean"},"showLink":{"type":"boolean"},"linkLabel":{"type":"string"},"imageObjectFit":{"type":"string"},"imageRadius":{"type":"number"},"cardPaddingX":{"type":"number"},"cardPaddingY":{"type":"number"},"titleTransform":{"type":"string"},"priceFontStyle":{"type":"string"},"fieldBackground":{"type":"string"},"showRating":{"type":"boolean"},"gap":{"type":"number"},"titleFontFamily":{"type":"string"},"priceFontFamily":{"type":"string"},"mode":{"type":"string"},"hairlineWidth":{"type":"number"},"hairlineColor":{"type":"string"},"scrimGradient":{"type":"string"},"skin":{"type":"string"},"columns":{"type":"number"},"columnsMobile":{"type":"number"},"accentColor":{"type":"string"},"filtersSkin":{"type":"string"},"filtersAccentColor":{"type":"string"},"filtersHeadingFontFamily":{"type":"string"},"filtersHeadingTransform":{"type":"string"},"filtersBorderWidth":{"type":"number"},"filtersBorderColor":{"type":"string"},"filtersPanelBackground":{"type":"string"},"filtersBoxShadowColor":{"type":"string"},"filtersBoxShadowOffsetX":{"type":"number"},"filtersBoxShadowOffsetY":{"type":"number"},"filtersBoxShadowBlurRadius":{"type":"number"},"filtersBoxShadowSpreadRadius":{"type":"number"}}},"services":{"type":"object","properties":{"gridStyle":{"type":"string"},"align":{"type":"string"},"title":{"type":"string"},"image":{"type":"string"},"filters":{"type":"string"},"description":{"type":"boolean"},"transparent":{"type":"boolean"},"price":{"type":"boolean"},"showFilters":{"type":"boolean"},"showCategoryFilters":{"type":"boolean"},"showBanner":{"type":"boolean"},"animation":{"type":"string"},"animationDuration":{"type":"number"},"animationDelay":{"type":"number"},"rating":{"type":"boolean"},"titleColor":{"type":"string"},"priceColor":{"type":"string"},"descriptionColor":{"type":"string"},"borderRadius":{"type":"string"},"titleFontSize":{"type":"string"},"descriptionFontSize":{"type":"string"},"priceFontSize":{"type":"string"},"titleFontWeight":{"type":"string"},"descriptionFontWeight":{"type":"string"},"priceFontWeight":{"type":"string"},"cardBorderRadius":{"type":"string"},"cardBorderWidth":{"type":"string"},"cardBorderColor":{"type":"string"},"cardBackgroundColor":{"type":"string"},"imageAspectRatio":{"type":"string"},"customCss":{"type":"string"},"filtersBackgroundColor":{"type":"string"},"filtersTextColor":{"type":"string"},"filtersBorderRadius":{"type":"string"},"boxShadowColor":{"type":"string"},"boxShadowOffsetX":{"type":"number"},"boxShadowOffsetY":{"type":"number"},"boxShadowBlurRadius":{"type":"string"},"boxShadowSpreadRadius":{"type":"string"},"showBreadCrumbs":{"type":"boolean"},"imagePadding":{"type":"number"},"categories":{"type":"object","properties":{"layout":{"type":"string"},"showHeading":{"type":"boolean"},"showSubtitle":{"type":"boolean"},"showImage":{"type":"boolean"},"imageSize":{"type":"string"},"imageRadius":{"type":"string"},"imageAspectRatio":{"type":"string"},"imageFit":{"type":"string"},"imagePadding":{"type":"number"},"fallback":{"type":"string"},"showChevron":{"type":"boolean"},"titleColor":{"type":"string"},"titleFontSize":{"type":"string"},"titleFontWeight":{"type":"string"},"cardBackgroundColor":{"type":"string"},"cardBorderRadius":{"type":"string"},"cardBorderWidth":{"type":"string"},"cardBorderColor":{"type":"string"},"customCss":{"type":"string"},"site":{"type":"object","properties":{"showImage":{"type":"boolean"},"imageSize":{"type":"string"},"imageAspectRatio":{"type":"string"},"titleColor":{"type":"string"},"titleFontSize":{"type":"string"},"titleFontWeight":{"type":"string"},"cardBackgroundColor":{"type":"string"},"cardBorderRadius":{"type":"string"},"cardBorderWidth":{"type":"string"},"cardBorderColor":{"type":"string"},"cardPadding":{"type":"string"},"gap":{"type":"string"},"align":{"type":"string"},"titleTransform":{"type":"string"}}}}},"titleTransform":{"type":"string"},"priceFontStyle":{"type":"string"},"cardPaddingX":{"type":"number"},"cardPaddingY":{"type":"number"},"fieldBackground":{"type":"string"},"imageObjectFit":{"type":"string"},"imageRadius":{"type":"number"},"accentColor":{"type":"string"},"gap":{"type":"number"},"hideCustomFields":{"type":"boolean"},"showDuration":{"type":"boolean"},"durationLabel":{"type":"string"},"showLink":{"type":"boolean"},"linkLabel":{"type":"string"},"titleFontFamily":{"type":"string"},"priceFontFamily":{"type":"string"},"columns":{"type":"number"},"columnsMobile":{"type":"number"},"skin":{"type":"string"},"mode":{"type":"string"},"hairlineWidth":{"type":"number"},"hairlineColor":{"type":"string"},"scrimGradient":{"type":"string"},"filtersSkin":{"type":"string"},"filtersAccentColor":{"type":"string"},"filtersHeadingFontFamily":{"type":"string"},"filtersHeadingTransform":{"type":"string"},"filtersBorderWidth":{"type":"number"},"filtersBorderColor":{"type":"string"},"filtersPanelBackground":{"type":"string"},"filtersBoxShadowColor":{"type":"string"},"filtersBoxShadowOffsetX":{"type":"number"},"filtersBoxShadowOffsetY":{"type":"number"},"filtersBoxShadowBlurRadius":{"type":"number"},"filtersBoxShadowSpreadRadius":{"type":"number"},"hideCalendarDuration":{"type":"boolean"},"calendar":{"type":"boolean"},"rowRuleWidth":{"type":"number"},"rowRuleColor":{"type":"string"},"maxWidth":{"type":"number"}}},"blogposts":{"type":"object","properties":{"gridStyle":{"type":"string"},"align":{"type":"string"},"title":{"type":"string"},"image":{"type":"string"},"filters":{"type":"string"},"description":{"type":"boolean"},"showFilters":{"type":"boolean"},"header":{"type":"boolean"},"showBanner":{"type":"boolean"},"animation":{"type":"string"},"animationDuration":{"type":"number"},"animationDelay":{"type":"number"},"titleColor":{"type":"string"},"descriptionColor":{"type":"string"},"borderRadius":{"type":"string"},"titleFontSize":{"type":"string"},"descriptionFontSize":{"type":"string"},"titleFontWeight":{"type":"string"},"descriptionFontWeight":{"type":"string"},"cardBorderRadius":{"type":"string"},"cardBorderWidth":{"type":"string"},"cardBorderColor":{"type":"string"},"cardBackgroundColor":{"type":"string"},"imageAspectRatio":{"type":"string"},"customCss":{"type":"string"},"sort":{"type":"number"},"showBreadCrumbs":{"type":"boolean"},"filtersBackgroundColor":{"type":"string"},"filtersTextColor":{"type":"string"},"filtersBorderRadius":{"type":"string"},"boxShadowColor":{"type":"string"},"boxShadowOffsetX":{"type":"number"},"boxShadowOffsetY":{"type":"number"},"boxShadowBlurRadius":{"type":"string"},"boxShadowSpreadRadius":{"type":"string"},"imagePadding":{"type":"number"},"categories":{"type":"object","properties":{"layout":{"type":"string"},"showHeading":{"type":"boolean"},"showSubtitle":{"type":"boolean"},"showImage":{"type":"boolean"},"imageSize":{"type":"string"},"imageRadius":{"type":"string"},"imageAspectRatio":{"type":"string"},"imageFit":{"type":"string"},"imagePadding":{"type":"number"},"fallback":{"type":"string"},"showChevron":{"type":"boolean"},"titleColor":{"type":"string"},"titleFontSize":{"type":"string"},"titleFontWeight":{"type":"string"},"cardBackgroundColor":{"type":"string"},"cardBorderRadius":{"type":"string"},"cardBorderWidth":{"type":"string"},"cardBorderColor":{"type":"string"},"customCss":{"type":"string"},"site":{"type":"object","properties":{"showImage":{"type":"boolean"},"imageSize":{"type":"string"},"imageAspectRatio":{"type":"string"},"titleColor":{"type":"string"},"titleFontSize":{"type":"string"},"titleFontWeight":{"type":"string"},"cardBackgroundColor":{"type":"string"},"cardBorderRadius":{"type":"string"},"cardBorderWidth":{"type":"string"},"cardBorderColor":{"type":"string"},"cardPadding":{"type":"string"},"gap":{"type":"string"},"align":{"type":"string"},"titleTransform":{"type":"string"}}}}},"titleTransform":{"type":"string"},"cardPaddingX":{"type":"number"},"cardPaddingY":{"type":"number"},"fieldBackground":{"type":"string"},"imageObjectFit":{"type":"string"},"imageRadius":{"type":"number"},"accentColor":{"type":"string"},"gap":{"type":"number"},"hideCustomFields":{"type":"boolean"},"hideImage":{"type":"boolean"},"showDate":{"type":"boolean"},"dateColor":{"type":"string"},"dateFontSize":{"type":"string"},"dateFontWeight":{"type":"string"},"dateFontFamily":{"type":"string"},"dateFontStyle":{"type":"string"},"hideLink":{"type":"boolean"},"linkLabel":{"type":"string"},"titleFontFamily":{"type":"string"},"columns":{"type":"number"},"columnsMobile":{"type":"number"},"skin":{"type":"string"},"mode":{"type":"string"},"hairlineWidth":{"type":"number"},"hairlineColor":{"type":"string"},"scrimGradient":{"type":"string"},"filtersSkin":{"type":"string"},"filtersAccentColor":{"type":"string"},"filtersHeadingFontFamily":{"type":"string"},"filtersHeadingTransform":{"type":"string"},"filtersBorderWidth":{"type":"number"},"filtersBorderColor":{"type":"string"},"filtersPanelBackground":{"type":"string"},"filtersBoxShadowColor":{"type":"string"},"filtersBoxShadowOffsetX":{"type":"number"},"filtersBoxShadowOffsetY":{"type":"number"},"filtersBoxShadowBlurRadius":{"type":"number"},"filtersBoxShadowSpreadRadius":{"type":"number"},"rowRuleWidth":{"type":"number"},"rowRuleColor":{"type":"string"},"maxWidth":{"type":"number"},"hideCategory":{"type":"boolean"}}},"videos":{"type":"object","properties":{"gridStyle":{"type":"string"},"align":{"type":"string"},"title":{"type":"string"},"video":{"type":"string"},"filters":{"type":"string"},"showTitle":{"type":"boolean"},"showFilters":{"type":"boolean"},"showBanner":{"type":"boolean"},"animation":{"type":"string"},"animationDuration":{"type":"number"},"animationDelay":{"type":"number"},"showBreadCrumbs":{"type":"boolean"}}},"program":{"type":"object","properties":{"cardDesign":{"type":"string"},"comments":{"type":"boolean"},"likes":{"type":"boolean"},"rating":{"type":"boolean"},"titleColor":{"type":"string"},"descriptionColor":{"type":"string"},"borderRadius":{"type":"string"},"titleFontSize":{"type":"string"},"descriptionFontSize":{"type":"string"},"titleFontWeight":{"type":"string"},"descriptionFontWeight":{"type":"string"},"cardBorderRadius":{"type":"string"},"cardBorderWidth":{"type":"string"},"cardBorderColor":{"type":"string"},"cardBackgroundColor":{"type":"string"},"imageAspectRatio":{"type":"string"},"ratingList":{"type":"boolean"},"customCss":{"type":"string"},"showBreadCrumbs":{"type":"boolean"}}},"professional_account":{"type":"object","properties":{"cardDesign":{"type":"string"},"likes":{"type":"boolean"},"titleColor":{"type":"string"},"priceColor":{"type":"string"},"descriptionColor":{"type":"string"},"borderRadius":{"type":"string"},"titleFontSize":{"type":"string"},"descriptionFontSize":{"type":"string"},"priceFontSize":{"type":"string"},"titleFontWeight":{"type":"string"},"descriptionFontWeight":{"type":"string"},"priceFontWeight":{"type":"string"},"cardBorderRadius":{"type":"string"},"cardBorderWidth":{"type":"string"},"cardBorderColor":{"type":"string"},"cardBackgroundColor":{"type":"string"},"imageAspectRatio":{"type":"string"},"ratingList":{"type":"boolean"},"customCss":{"type":"string"}}},"personal_account":{"type":"object","properties":{"cardDesign":{"type":"string"}}},"footer":{"type":"object","properties":{"columns":{"type":"string"},"about_page":{"type":"string"},"customCss":{"type":"string"}}},"header":{"type":"object","properties":{"twoRows":{"type":"boolean"},"sidenav":{"type":"boolean"},"sticky":{"type":"boolean"},"justifyLinks":{"type":"string"},"justifyLinksMobile":{"type":"string"},"linkFontSize":{"type":"string"},"linkFontWeight":{"type":"string"},"linkFontFamily":{"type":"string"},"linkTextTransform":{"type":"string"},"linkLetterSpacing":{"type":"string"},"barBorderWidth":{"type":"number"},"barBorderColor":{"type":"string"},"barFloating":{"type":"boolean"},"barBorderRadius":{"type":"number"},"barShadow":{"type":"string"},"logoSize":{"type":"string"},"logoSizeMobile":{"type":"string"},"row1Height":{"type":"string"},"row2Height":{"type":"string"},"bannerHeight":{"type":"string"},"contentMaxWidth":{"type":"string"},"justifyLogo":{"type":"string"},"userAndCartPosition":{"type":"string"},"linkMargin":{"type":"string"},"about_page":{"type":"string"},"about_page_position":{"type":"string"},"showSearch":{"type":"boolean"},"smartSearch":{"type":"object","properties":{"enabled":{"type":"boolean"},"placeholder":{"type":"string"},"kinds":{"type":"string"},"collections":{"type":"string"},"items":{"type":"string"},"showKindFilter":{"type":"boolean"},"showPriceFilter":{"type":"boolean"},"showDateFilter":{"type":"boolean"},"showSort":{"type":"boolean"},"dateMode":{"type":"string"},"layout":{"type":"string"},"columns":{"type":"number"},"perPage":{"type":"number"},"instant":{"type":"boolean"},"showImages":{"type":"boolean"},"showPrices":{"type":"boolean"},"showInitial":{"type":"boolean"},"showAnswer":{"type":"boolean"}}},"showLogIn":{"type":"boolean"},"showActionButton":{"type":"boolean"},"actionButton":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"fill":{"type":"string"},"color":{"type":"string"},"class":{"type":"string"},"customColor":{"type":"string"},"textColor":{"type":"string"},"fontSize":{"type":"number"},"borderRadius":{"type":"string"},"position":{"type":"string"}}},"showCart":{"type":"boolean"},"cart_position":{"type":"string"},"login_position":{"type":"string"},"search_position":{"type":"string"},"login_icon":{"type":"boolean"},"login_icon_only":{"type":"boolean"},"login_icon_class":{"type":"string"},"login_in_app":{"type":"boolean"},"cart_row":{"type":"string"},"login_row":{"type":"string"},"search_row":{"type":"string"},"pinned_links":{"type":"string"},"customCss":{"type":"string"},"logoPosition":{"type":"string"},"firstrow_links":{"type":"string"},"firstrow_links_justify":{"type":"string"},"firstrow_links_spread":{"type":"string"},"showBanner":{"type":"boolean"},"banner":{"type":"object","properties":{"items":{"type":"string"},"fontSize":{"type":"string"},"fontWeight":{"type":"string"},"textColor":{"type":"string"},"backgroundColor":{"type":"string"},"justifyContent":{"type":"string"}}},"isFullWidth":{"type":"boolean"},"app_user_position":{"type":"string"},"logoMediaMobile":{"type":"string"},"sidenavIconBorderRadius":{"type":"string"},"sidenavIconBorderWidth":{"type":"string"},"sidenavIconColor":{"type":"string"},"sidenavIcon":{"type":"string"},"sidenavIconSize":{"type":"string"},"sidenavIconMedia":{"type":"string"},"menuIconPosition":{"type":"string"},"logoPositionMobile":{"type":"string"},"search_position_mobile":{"type":"string"},"login_position_mobile":{"type":"string"},"cart_position_mobile":{"type":"string"},"button_position_mobile":{"type":"string"},"sidenavIconAnimation":{"type":"string"},"sidenavIconClose":{"type":"string"},"sidenavIconMediaClose":{"type":"string"},"elements_order":{"type":"object","properties":{"logo":{"type":"object","properties":{"value":{"type":"number"},"mobile_value":{"type":"number"}}},"nav":{"type":"object","properties":{"value":{"type":"number"},"mobile_value":{"type":"number"}}},"firstrow":{"type":"object","properties":{"value":{"type":"number"},"mobile_value":{"type":"number"}}},"search":{"type":"object","properties":{"value":{"type":"number"},"mobile_value":{"type":"number"}}},"login":{"type":"object","properties":{"value":{"type":"number"},"mobile_value":{"type":"number"}}},"cart":{"type":"object","properties":{"value":{"type":"number"},"mobile_value":{"type":"number"}}},"button":{"type":"object","properties":{"value":{"type":"number"},"mobile_value":{"type":"number"}}},"menuicon":{"type":"object","properties":{"value":{"type":"number"},"mobile_value":{"type":"number"}}}}},"elements_style":{"type":"object","properties":{"nav":{"type":"object","properties":{"background":{"type":"string"},"color":{"type":"string"},"border_color":{"type":"string"},"border_width":{"type":"number"},"border_radius":{"type":"number"},"font_size":{"type":"number"},"border_top_width":{"type":"number"},"border_right_width":{"type":"number"},"border_bottom_width":{"type":"number"},"border_left_width":{"type":"number"}}},"nav_active":{"type":"object","properties":{"background":{"type":"string"},"color":{"type":"string"},"border_color":{"type":"string"},"border_width":{"type":"number"},"border_radius":{"type":"number"},"font_size":{"type":"number"},"border_top_width":{"type":"number"},"border_right_width":{"type":"number"},"border_bottom_width":{"type":"number"},"border_left_width":{"type":"number"}}},"firstrow":{"type":"object","properties":{"background":{"type":"string"},"color":{"type":"string"},"border_color":{"type":"string"},"border_width":{"type":"number"},"border_radius":{"type":"number"},"font_size":{"type":"number"},"border_top_width":{"type":"number"},"border_right_width":{"type":"number"},"border_bottom_width":{"type":"number"},"border_left_width":{"type":"number"}}},"search":{"type":"object","properties":{"background":{"type":"string"},"color":{"type":"string"},"border_color":{"type":"string"},"border_width":{"type":"number"},"border_radius":{"type":"number"},"font_size":{"type":"number"},"border_top_width":{"type":"number"},"border_right_width":{"type":"number"},"border_bottom_width":{"type":"number"},"border_left_width":{"type":"number"}}},"login":{"type":"object","properties":{"background":{"type":"string"},"color":{"type":"string"},"border_color":{"type":"string"},"border_width":{"type":"number"},"border_radius":{"type":"number"},"font_size":{"type":"number"},"border_top_width":{"type":"number"},"border_right_width":{"type":"number"},"border_bottom_width":{"type":"number"},"border_left_width":{"type":"number"}}},"cart":{"type":"object","properties":{"background":{"type":"string"},"color":{"type":"string"},"border_color":{"type":"string"},"border_width":{"type":"number"},"border_radius":{"type":"number"},"font_size":{"type":"number"},"border_top_width":{"type":"number"},"border_right_width":{"type":"number"},"border_bottom_width":{"type":"number"},"border_left_width":{"type":"number"}}}}},"elements_spacing":{"type":"object","properties":{"logo":{"type":"object","properties":{"margin_top":{"type":"number"},"margin_top_unit":{"type":"string"},"mobile_margin_top":{"type":"number"},"mobile_margin_top_unit":{"type":"string"},"margin_right":{"type":"number"},"margin_right_unit":{"type":"string"},"mobile_margin_right":{"type":"number"},"mobile_margin_right_unit":{"type":"string"},"margin_bottom":{"type":"number"},"margin_bottom_unit":{"type":"string"},"mobile_margin_bottom":{"type":"number"},"mobile_margin_bottom_unit":{"type":"string"},"margin_left":{"type":"number"},"margin_left_unit":{"type":"string"},"mobile_margin_left":{"type":"number"},"mobile_margin_left_unit":{"type":"string"}}},"nav":{"type":"object","properties":{"margin_top":{"type":"number"},"margin_top_unit":{"type":"string"},"mobile_margin_top":{"type":"number"},"mobile_margin_top_unit":{"type":"string"},"padding_top":{"type":"number"},"padding_top_unit":{"type":"string"},"mobile_padding_top":{"type":"number"},"mobile_padding_top_unit":{"type":"string"},"margin_right":{"type":"number"},"margin_right_unit":{"type":"string"},"mobile_margin_right":{"type":"number"},"mobile_margin_right_unit":{"type":"string"},"padding_right":{"type":"number"},"padding_right_unit":{"type":"string"},"mobile_padding_right":{"type":"number"},"mobile_padding_right_unit":{"type":"string"},"margin_bottom":{"type":"number"},"margin_bottom_unit":{"type":"string"},"mobile_margin_bottom":{"type":"number"},"mobile_margin_bottom_unit":{"type":"string"},"padding_bottom":{"type":"number"},"padding_bottom_unit":{"type":"string"},"mobile_padding_bottom":{"type":"number"},"mobile_padding_bottom_unit":{"type":"string"},"margin_left":{"type":"number"},"margin_left_unit":{"type":"string"},"mobile_margin_left":{"type":"number"},"mobile_margin_left_unit":{"type":"string"},"padding_left":{"type":"number"},"padding_left_unit":{"type":"string"},"mobile_padding_left":{"type":"number"},"mobile_padding_left_unit":{"type":"string"}}},"firstrow":{"type":"object","properties":{"margin_top":{"type":"number"},"margin_top_unit":{"type":"string"},"mobile_margin_top":{"type":"number"},"mobile_margin_top_unit":{"type":"string"},"padding_top":{"type":"number"},"padding_top_unit":{"type":"string"},"mobile_padding_top":{"type":"number"},"mobile_padding_top_unit":{"type":"string"},"margin_right":{"type":"number"},"margin_right_unit":{"type":"string"},"mobile_margin_right":{"type":"number"},"mobile_margin_right_unit":{"type":"string"},"padding_right":{"type":"number"},"padding_right_unit":{"type":"string"},"mobile_padding_right":{"type":"number"},"mobile_padding_right_unit":{"type":"string"},"margin_bottom":{"type":"number"},"margin_bottom_unit":{"type":"string"},"mobile_margin_bottom":{"type":"number"},"mobile_margin_bottom_unit":{"type":"string"},"padding_bottom":{"type":"number"},"padding_bottom_unit":{"type":"string"},"mobile_padding_bottom":{"type":"number"},"mobile_padding_bottom_unit":{"type":"string"},"margin_left":{"type":"number"},"margin_left_unit":{"type":"string"},"mobile_margin_left":{"type":"number"},"mobile_margin_left_unit":{"type":"string"},"padding_left":{"type":"number"},"padding_left_unit":{"type":"string"},"mobile_padding_left":{"type":"number"},"mobile_padding_left_unit":{"type":"string"}}},"search":{"type":"object","properties":{"margin_top":{"type":"number"},"margin_top_unit":{"type":"string"},"mobile_margin_top":{"type":"number"},"mobile_margin_top_unit":{"type":"string"},"padding_top":{"type":"number"},"padding_top_unit":{"type":"string"},"mobile_padding_top":{"type":"number"},"mobile_padding_top_unit":{"type":"string"},"margin_right":{"type":"number"},"margin_right_unit":{"type":"string"},"mobile_margin_right":{"type":"number"},"mobile_margin_right_unit":{"type":"string"},"padding_right":{"type":"number"},"padding_right_unit":{"type":"string"},"mobile_padding_right":{"type":"number"},"mobile_padding_right_unit":{"type":"string"},"margin_bottom":{"type":"number"},"margin_bottom_unit":{"type":"string"},"mobile_margin_bottom":{"type":"number"},"mobile_margin_bottom_unit":{"type":"string"},"padding_bottom":{"type":"number"},"padding_bottom_unit":{"type":"string"},"mobile_padding_bottom":{"type":"number"},"mobile_padding_bottom_unit":{"type":"string"},"margin_left":{"type":"number"},"margin_left_unit":{"type":"string"},"mobile_margin_left":{"type":"number"},"mobile_margin_left_unit":{"type":"string"},"padding_left":{"type":"number"},"padding_left_unit":{"type":"string"},"mobile_padding_left":{"type":"number"},"mobile_padding_left_unit":{"type":"string"}}},"login":{"type":"object","properties":{"margin_top":{"type":"number"},"margin_top_unit":{"type":"string"},"mobile_margin_top":{"type":"number"},"mobile_margin_top_unit":{"type":"string"},"padding_top":{"type":"number"},"padding_top_unit":{"type":"string"},"mobile_padding_top":{"type":"number"},"mobile_padding_top_unit":{"type":"string"},"margin_right":{"type":"number"},"margin_right_unit":{"type":"string"},"mobile_margin_right":{"type":"number"},"mobile_margin_right_unit":{"type":"string"},"padding_right":{"type":"number"},"padding_right_unit":{"type":"string"},"mobile_padding_right":{"type":"number"},"mobile_padding_right_unit":{"type":"string"},"margin_bottom":{"type":"number"},"margin_bottom_unit":{"type":"string"},"mobile_margin_bottom":{"type":"number"},"mobile_margin_bottom_unit":{"type":"string"},"padding_bottom":{"type":"number"},"padding_bottom_unit":{"type":"string"},"mobile_padding_bottom":{"type":"number"},"mobile_padding_bottom_unit":{"type":"string"},"margin_left":{"type":"number"},"margin_left_unit":{"type":"string"},"mobile_margin_left":{"type":"number"},"mobile_margin_left_unit":{"type":"string"},"padding_left":{"type":"number"},"padding_left_unit":{"type":"string"},"mobile_padding_left":{"type":"number"},"mobile_padding_left_unit":{"type":"string"}}},"cart":{"type":"object","properties":{"margin_top":{"type":"number"},"margin_top_unit":{"type":"string"},"mobile_margin_top":{"type":"number"},"mobile_margin_top_unit":{"type":"string"},"padding_top":{"type":"number"},"padding_top_unit":{"type":"string"},"mobile_padding_top":{"type":"number"},"mobile_padding_top_unit":{"type":"string"},"margin_right":{"type":"number"},"margin_right_unit":{"type":"string"},"mobile_margin_right":{"type":"number"},"mobile_margin_right_unit":{"type":"string"},"padding_right":{"type":"number"},"padding_right_unit":{"type":"string"},"mobile_padding_right":{"type":"number"},"mobile_padding_right_unit":{"type":"string"},"margin_bottom":{"type":"number"},"margin_bottom_unit":{"type":"string"},"mobile_margin_bottom":{"type":"number"},"mobile_margin_bottom_unit":{"type":"string"},"padding_bottom":{"type":"number"},"padding_bottom_unit":{"type":"string"},"mobile_padding_bottom":{"type":"number"},"mobile_padding_bottom_unit":{"type":"string"},"margin_left":{"type":"number"},"margin_left_unit":{"type":"string"},"mobile_margin_left":{"type":"number"},"mobile_margin_left_unit":{"type":"string"},"padding_left":{"type":"number"},"padding_left_unit":{"type":"string"},"mobile_padding_left":{"type":"number"},"mobile_padding_left_unit":{"type":"string"}}},"button":{"type":"object","properties":{"margin_top":{"type":"number"},"margin_top_unit":{"type":"string"},"mobile_margin_top":{"type":"number"},"mobile_margin_top_unit":{"type":"string"},"padding_top":{"type":"number"},"padding_top_unit":{"type":"string"},"mobile_padding_top":{"type":"number"},"mobile_padding_top_unit":{"type":"string"},"margin_right":{"type":"number"},"margin_right_unit":{"type":"string"},"mobile_margin_right":{"type":"number"},"mobile_margin_right_unit":{"type":"string"},"padding_right":{"type":"number"},"padding_right_unit":{"type":"string"},"mobile_padding_right":{"type":"number"},"mobile_padding_right_unit":{"type":"string"},"margin_bottom":{"type":"number"},"margin_bottom_unit":{"type":"string"},"mobile_margin_bottom":{"type":"number"},"mobile_margin_bottom_unit":{"type":"string"},"padding_bottom":{"type":"number"},"padding_bottom_unit":{"type":"string"},"mobile_padding_bottom":{"type":"number"},"mobile_padding_bottom_unit":{"type":"string"},"margin_left":{"type":"number"},"margin_left_unit":{"type":"string"},"mobile_margin_left":{"type":"number"},"mobile_margin_left_unit":{"type":"string"},"padding_left":{"type":"number"},"padding_left_unit":{"type":"string"},"mobile_padding_left":{"type":"number"},"mobile_padding_left_unit":{"type":"string"}}},"menuicon":{"type":"object","properties":{"margin_top":{"type":"number"},"margin_top_unit":{"type":"string"},"mobile_margin_top":{"type":"number"},"mobile_margin_top_unit":{"type":"string"},"padding_top":{"type":"number"},"padding_top_unit":{"type":"string"},"mobile_padding_top":{"type":"number"},"mobile_padding_top_unit":{"type":"string"},"margin_right":{"type":"number"},"margin_right_unit":{"type":"string"},"mobile_margin_right":{"type":"number"},"mobile_margin_right_unit":{"type":"string"},"padding_right":{"type":"number"},"padding_right_unit":{"type":"string"},"mobile_padding_right":{"type":"number"},"mobile_padding_right_unit":{"type":"string"},"margin_bottom":{"type":"number"},"margin_bottom_unit":{"type":"string"},"mobile_margin_bottom":{"type":"number"},"mobile_margin_bottom_unit":{"type":"string"},"padding_bottom":{"type":"number"},"padding_bottom_unit":{"type":"string"},"mobile_padding_bottom":{"type":"number"},"mobile_padding_bottom_unit":{"type":"string"},"margin_left":{"type":"number"},"margin_left_unit":{"type":"string"},"mobile_margin_left":{"type":"number"},"mobile_margin_left_unit":{"type":"string"},"padding_left":{"type":"number"},"padding_left_unit":{"type":"string"},"mobile_padding_left":{"type":"number"},"mobile_padding_left_unit":{"type":"string"}}},"row1":{"type":"object","properties":{"margin_top":{"type":"number"},"margin_top_unit":{"type":"string"},"mobile_margin_top":{"type":"number"},"mobile_margin_top_unit":{"type":"string"},"padding_top":{"type":"number"},"padding_top_unit":{"type":"string"},"mobile_padding_top":{"type":"number"},"mobile_padding_top_unit":{"type":"string"},"margin_right":{"type":"number"},"margin_right_unit":{"type":"string"},"mobile_margin_right":{"type":"number"},"mobile_margin_right_unit":{"type":"string"},"padding_right":{"type":"number"},"padding_right_unit":{"type":"string"},"mobile_padding_right":{"type":"number"},"mobile_padding_right_unit":{"type":"string"},"margin_bottom":{"type":"number"},"margin_bottom_unit":{"type":"string"},"mobile_margin_bottom":{"type":"number"},"mobile_margin_bottom_unit":{"type":"string"},"padding_bottom":{"type":"number"},"padding_bottom_unit":{"type":"string"},"mobile_padding_bottom":{"type":"number"},"mobile_padding_bottom_unit":{"type":"string"},"margin_left":{"type":"number"},"margin_left_unit":{"type":"string"},"mobile_margin_left":{"type":"number"},"mobile_margin_left_unit":{"type":"string"},"padding_left":{"type":"number"},"padding_left_unit":{"type":"string"},"mobile_padding_left":{"type":"number"},"mobile_padding_left_unit":{"type":"string"}}},"row2":{"type":"object","properties":{"margin_top":{"type":"number"},"margin_top_unit":{"type":"string"},"mobile_margin_top":{"type":"number"},"mobile_margin_top_unit":{"type":"string"},"padding_top":{"type":"number"},"padding_top_unit":{"type":"string"},"mobile_padding_top":{"type":"number"},"mobile_padding_top_unit":{"type":"string"},"margin_right":{"type":"number"},"margin_right_unit":{"type":"string"},"mobile_margin_right":{"type":"number"},"mobile_margin_right_unit":{"type":"string"},"padding_right":{"type":"number"},"padding_right_unit":{"type":"string"},"mobile_padding_right":{"type":"number"},"mobile_padding_right_unit":{"type":"string"},"margin_bottom":{"type":"number"},"margin_bottom_unit":{"type":"string"},"mobile_margin_bottom":{"type":"number"},"mobile_margin_bottom_unit":{"type":"string"},"padding_bottom":{"type":"number"},"padding_bottom_unit":{"type":"string"},"mobile_padding_bottom":{"type":"number"},"mobile_padding_bottom_unit":{"type":"string"},"margin_left":{"type":"number"},"margin_left_unit":{"type":"string"},"mobile_margin_left":{"type":"number"},"mobile_margin_left_unit":{"type":"string"},"padding_left":{"type":"number"},"padding_left_unit":{"type":"string"},"mobile_padding_left":{"type":"number"},"mobile_padding_left_unit":{"type":"string"}}},"banner":{"type":"object","properties":{"margin_top":{"type":"number"},"margin_top_unit":{"type":"string"},"mobile_margin_top":{"type":"number"},"mobile_margin_top_unit":{"type":"string"},"padding_top":{"type":"number"},"padding_top_unit":{"type":"string"},"mobile_padding_top":{"type":"number"},"mobile_padding_top_unit":{"type":"string"},"margin_right":{"type":"number"},"margin_right_unit":{"type":"string"},"mobile_margin_right":{"type":"number"},"mobile_margin_right_unit":{"type":"string"},"padding_right":{"type":"number"},"padding_right_unit":{"type":"string"},"mobile_padding_right":{"type":"number"},"mobile_padding_right_unit":{"type":"string"},"margin_bottom":{"type":"number"},"margin_bottom_unit":{"type":"string"},"mobile_margin_bottom":{"type":"number"},"mobile_margin_bottom_unit":{"type":"string"},"padding_bottom":{"type":"number"},"padding_bottom_unit":{"type":"string"},"mobile_padding_bottom":{"type":"number"},"mobile_padding_bottom_unit":{"type":"string"},"margin_left":{"type":"number"},"margin_left_unit":{"type":"string"},"mobile_margin_left":{"type":"number"},"mobile_margin_left_unit":{"type":"string"},"padding_left":{"type":"number"},"padding_left_unit":{"type":"string"},"mobile_padding_left":{"type":"number"},"mobile_padding_left_unit":{"type":"string"}}}}},"nav_links_spacing":{"type":"string"},"searchInputColor":{"type":"string"},"searchInputBackground":{"type":"string"},"searchInputPosition":{"type":"string"},"searchInputMaxWidth":{"type":"number"},"searchInputBorderRadius":{"type":"string"},"bar_menus":{"type":"string"}}},"partners":{"type":"object","properties":{"gridStyle":{"type":"string"},"align":{"type":"string"},"name":{"type":"string"},"image":{"type":"string"},"description":{"type":"string"},"title":{"type":"string"},"showSearch":{"type":"boolean"},"showCategories":{"type":"boolean"},"showMap":{"type":"boolean"},"perPage":{"type":"number"},"sort":{"type":"string"}}},"contacts":{"type":"object","properties":{"map":{"type":"boolean"},"partners":{"type":"boolean"}}},"price_plan":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"plan_features_style":{"type":"string"},"rating":{"type":"boolean"},"ratingList":{"type":"boolean"},"image":{"type":"boolean"},"about_page":{"type":"string"},"header":{"type":"string"}}},"backgroundGradient":{"type":"object","properties":{"enabled":{"type":"boolean"},"degrees":{"type":"number"},"colors":{"type":"string"},"css":{"type":"string"}}},"programs":{"type":"object","properties":{"rating":{"type":"boolean"},"titleColor":{"type":"string"},"descriptionColor":{"type":"string"},"borderRadius":{"type":"string"},"titleFontSize":{"type":"string"},"descriptionFontSize":{"type":"string"},"titleFontWeight":{"type":"string"},"descriptionFontWeight":{"type":"string"},"cardBorderRadius":{"type":"string"},"cardBorderWidth":{"type":"string"},"cardBorderColor":{"type":"string"},"cardBackgroundColor":{"type":"string"},"imageAspectRatio":{"type":"string"},"customCss":{"type":"string"},"sort":{"type":"number"},"showBreadCrumbs":{"type":"boolean"},"filtersBackgroundColor":{"type":"string"},"filtersTextColor":{"type":"string"},"filtersBorderRadius":{"type":"string"},"boxShadowColor":{"type":"string"},"boxShadowOffsetX":{"type":"number"},"boxShadowOffsetY":{"type":"number"},"boxShadowBlurRadius":{"type":"string"},"boxShadowSpreadRadius":{"type":"string"},"imagePadding":{"type":"number"},"categories":{"type":"object","properties":{"layout":{"type":"string"},"showHeading":{"type":"boolean"},"showSubtitle":{"type":"boolean"},"showImage":{"type":"boolean"},"imageSize":{"type":"string"},"imageRadius":{"type":"string"},"imageAspectRatio":{"type":"string"},"imageFit":{"type":"string"},"imagePadding":{"type":"number"},"fallback":{"type":"string"},"showChevron":{"type":"boolean"},"titleColor":{"type":"string"},"titleFontSize":{"type":"string"},"titleFontWeight":{"type":"string"},"cardBackgroundColor":{"type":"string"},"cardBorderRadius":{"type":"string"},"cardBorderWidth":{"type":"string"},"cardBorderColor":{"type":"string"},"customCss":{"type":"string"},"site":{"type":"object","properties":{"showImage":{"type":"boolean"},"imageSize":{"type":"string"},"imageAspectRatio":{"type":"string"},"titleColor":{"type":"string"},"titleFontSize":{"type":"string"},"titleFontWeight":{"type":"string"},"cardBackgroundColor":{"type":"string"},"cardBorderRadius":{"type":"string"},"cardBorderWidth":{"type":"string"},"cardBorderColor":{"type":"string"},"cardPadding":{"type":"string"},"gap":{"type":"string"},"align":{"type":"string"},"titleTransform":{"type":"string"}}}}}}},"tabs":{"type":"object","properties":{"allow_custom_tabs_color":{"type":"boolean"},"background":{"type":"string"},"background_checked":{"type":"string"},"color":{"type":"string"},"color_checked":{"type":"string"},"indicator_color":{"type":"string"},"hide_text":{"type":"boolean"},"hide_home":{"type":"boolean"},"button_spacing_vertical":{"type":"number"},"button_spacing_horizontal":{"type":"number"},"button_border_radius":{"type":"number"},"navigations":{"type":"object","properties":{"home":{"type":"object","properties":{"icon":{"type":"string"},"img":{"type":"string"}}},"explore":{"type":"object","properties":{"icon":{"type":"string"},"img":{"type":"string"}}},"bites":{"type":"object","properties":{"icon":{"type":"string"},"img":{"type":"string"}}},"videos":{"type":"object","properties":{"icon":{"type":"string"},"img":{"type":"string"}}},"groups":{"type":"object","properties":{"icon":{"type":"string"},"img":{"type":"string"}}},"vouchers":{"type":"object","properties":{"icon":{"type":"string"},"img":{"type":"string"}}},"store":{"type":"object","properties":{"icon":{"type":"string"},"img":{"type":"string"}}},"programs":{"type":"object","properties":{"icon":{"type":"string"},"img":{"type":"string"}}},"services":{"type":"object","properties":{"icon":{"type":"string"},"img":{"type":"string"}}},"blogposts":{"type":"object","properties":{"icon":{"type":"string"},"img":{"type":"string"}}},"subscriptions":{"type":"object","properties":{"icon":{"type":"string"},"img":{"type":"string"}}},"events":{"type":"object","properties":{"icon":{"type":"string"},"img":{"type":"string"}}},"playlists":{"type":"object","properties":{"icon":{"type":"string"},"img":{"type":"string"}}},"user":{"type":"object","properties":{"icon":{"type":"string"},"img":{"type":"string"}}},"partners":{"type":"object","properties":{"icon":{"type":"string"},"img":{"type":"string"}}},"contacts":{"type":"object","properties":{"icon":{"type":"string"},"img":{"type":"string"}}},"tracker":{"type":"object","properties":{"icon":{"type":"string"},"img":{"type":"string"}}},"mini_apps":{"type":"object","properties":{"icon":{"type":"string"},"img":{"type":"string"}}},"more":{"type":"object","properties":{"icon":{"type":"string"},"img":{"type":"string"}}},"claims":{"type":"object","properties":{"icon":{"type":"string"},"img":{"type":"string"}}},"professional_pages":{"type":"object","properties":{"icon":{"type":"string"},"img":{"type":"string"}}},"bookings":{"type":"object","properties":{"icon":{"type":"string"},"img":{"type":"string"}}}}}}},"products_partial":{"type":"object","properties":{"showCart":{"type":"boolean"},"swiper":{"type":"object","properties":{"enabled":{"type":"boolean"},"loop":{"type":"boolean"},"showControls":{"type":"boolean"}}},"brand":{"type":"boolean"}}},"groups":{"type":"object","properties":{"participants":{"type":"boolean"},"description":{"type":"boolean"}}},"service_categories":{"type":"object","properties":{"gridStyle":{"type":"string"},"titleFontSize":{"type":"string"},"titleFontWeight":{"type":"string"},"cardBorderRadius":{"type":"string"},"cardBorderWidth":{"type":"string"},"cardBorderColor":{"type":"string"},"cardBackgroundColor":{"type":"string"},"imageAspectRatio":{"type":"string"},"customCss":{"type":"string"},"cardPadding":{"type":"number"}}}}},"Ticket":{"type":"object","properties":{"event":{"type":"string","description":"Id of a Event."},"date":{"type":"number"},"section":{"type":"number"},"subsection":{"type":"number"},"row":{"type":"number"},"seat":{"type":"number"},"row_index_formated":{"type":"number"},"seat_index_formated":{"type":"number"},"lead_id":{"type":"string","description":"Id of a Lead."},"socket_id":{"type":"string"},"status":{"type":"string","enum":["frozen","waiting-for-payment","paid","frozen-by-admin","bought-by-admin"],"default":"frozen"},"expiration_time":{"type":"string","format":"date-time"},"qr_code":{"type":"string","description":"Id of a QrCode."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"tier":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"}}}}},"Tracker":{"type":"object","properties":{"title":{"type":"string"},"unit":{"type":"string"},"score_direction":{"type":"string","enum":["up","down"],"default":"down"},"additional_fields":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"type":{"type":"string"},"options":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"value":{"type":"string"},"_id":{"type":"string"}}}},"_id":{"type":"string"}}}},"body":{"type":"string"},"video":{"type":"string","description":"Id of a Video."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"goal_definition":{"type":"object","properties":{"label":{"type":"string"},"type":{"type":"string"},"options":{"type":"string"}}}}},"TrackerProgress":{"type":"object","properties":{"score":{"type":"string"},"user_id":{"type":"string","description":"Id of a User."},"media":{"type":"string"},"additional_fields":{"type":"object"},"goal":{"type":"object"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Tracking":{"type":"object","properties":{"title":{"type":"string"},"script":{"type":"string"},"prefix":{"type":"string"},"place_in_body":{"type":"boolean","default":false},"external_tracker_id":{"type":"string"},"external_tracker_integration":{"type":"string"},"event_map":{"type":"object"},"_id":{"type":"string"}}},"Traffic":{"type":"object","properties":{"session_id":{"type":"string"},"page_views":{"type":"number"},"site_session":{"type":"number","default":0},"app_session":{"type":"number","default":0},"last_url":{"type":"string"},"path":{"type":"array","items":{"type":"string"}},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Unsubscribed":{"type":"object","properties":{"email":{"type":"string"},"_id":{"type":"string"}}},"User":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"avatar":{"type":"string"},"social_avatar":{"type":"string"},"isAdmin":{"type":"boolean","default":false},"isStaff":{"type":"boolean","default":false},"owner_id":{"type":"string"},"organization_name":{"type":"string"},"firstname":{"type":"string"},"lastname":{"type":"string"},"phone_number":{"type":"string"},"address":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"country":{"type":"string"},"zip_code":{"type":"string"},"tax_identification_number":{"type":"string"},"notes":{"type":"string"},"isConfirmed":{"type":"boolean","default":false},"number_of_sales":{"type":"number","default":0},"stripe_id":{"type":"string"},"paypal_id":{"type":"string"},"access_level":{"type":"number"},"validation_code":{"type":"string"},"price_plans":{"type":"array","items":{"type":"string"},"description":"Id of a PricePlan."},"emotion":{"type":"string"},"political_spectrum":{"type":"string"},"language":{"type":"object"},"interests":{"type":"object"},"app_category":{"type":"object"},"user_profile":{"type":"object"},"user_economics":{"type":"string"},"user_education":{"type":"string"},"marital_status":{"type":"string"},"age":{"type":"string"},"sex":{"type":"string"},"attractiveness":{"type":"string"},"following":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"followers":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"handle":{"type":"string"},"saved_posts":{"type":"array","items":{"type":"string"},"description":"Id of a Post."},"blocked_users":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"blocked_by":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"bio":{"type":"string"},"wallet":{"type":"number","default":0},"location":{"type":"object","properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","items":{"type":"number"}},"_id":{"type":"string"}}},"checkout_recovery_at":{"type":"string","format":"date-time"},"search_history":{"type":"array","items":{"type":"string"}},"isRestricted":{"type":"boolean","default":false},"isMonetized":{"type":"boolean","default":false},"sentFollowersEmail":{"type":"string","format":"date-time"},"isShadowbanned":{"type":"boolean","default":false},"custom_url":{"type":"array","items":{"type":"object","properties":{"heading":{"type":"string"},"url":{"type":"string"},"_id":{"type":"string"}}}},"isWhitelisted":{"type":"boolean","default":false},"isReviewedWhitelist":{"type":"boolean","default":false},"advertiser_id":{"type":"string"},"selected_events":{"type":"array","items":{"type":"string"}},"profile_feed_style":{"type":"string","default":"list"},"hidden_users":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"isVerified":{"type":"boolean","default":false},"saved_products":{"type":"array","items":{"type":"string"},"description":"Id of a Product."},"saved_programs":{"type":"array","items":{"type":"string"},"description":"Id of a Program."},"saved_blogposts":{"type":"array","items":{"type":"string"},"description":"Id of a Blogpots."},"saved_services":{"type":"array","items":{"type":"string"},"description":"Id of a Service."},"last_used_miniapps":{"type":"array","items":{"type":"string"},"description":"Id of a MiniApp."},"has_disabled_seen":{"type":"boolean","default":false},"other_address":{"type":"array","items":{"type":"object","properties":{"firstname":{"type":"string"},"lastname":{"type":"string"},"email":{"type":"string"},"phone_number":{"type":"string"},"address":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"country":{"type":"string"},"zip_code":{"type":"string"},"_id":{"type":"string"}}}},"is_disabled":{"type":"boolean","default":false},"delete_date":{"type":"string","format":"date-time"},"trial_price_plans":{"type":"array","items":{"type":"object","properties":{"end_date":{"type":"string","format":"date-time"},"start_date":{"type":"string","format":"date-time"},"price_plan":{"type":"string","description":"Id of a PricePlan."},"_id":{"type":"string"}}}},"lastActivity":{"type":"string","format":"date-time"},"attached_dynamic_models":{"type":"array","items":{"type":"object","properties":{"model":{"type":"string","description":"Id of a DynamicModel."},"document":{"type":"string"},"_id":{"type":"string"}}}},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"can_edit":{"type":"object","properties":{"site":{"type":"boolean"},"crm":{"type":"boolean"},"store":{"type":"boolean"},"payments":{"type":"boolean"},"staff":{"type":"boolean"}}},"ip_location":{"type":"object","properties":{"city":{"type":"string"},"continent_name":{"type":"string"},"country_name":{"type":"string"},"country_subdivision":{"type":"string"},"location_latitude":{"type":"number"},"location_longitude":{"type":"number"},"last_updated":{"type":"string"},"ip_address":{"type":"string"},"zip_code":{"type":"string"},"dialing_code":{"type":"string"}}},"monetization_request":{"type":"object","properties":{"isRequested":{"type":"boolean"},"requested_on":{"type":"string"}}}}},"UserEngagementNotification":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"body":{"type":"string"},"owner_id":{"type":"string","description":"Id of a User."},"from":{"type":"string","description":"Id of a User."},"post":{"type":"string","description":"Id of a Post."},"group":{"type":"string","description":"Id of a Group."},"sendToAll":{"type":"boolean","default":false},"comment":{"type":"string","description":"Id of a Comment."},"is_received":{"type":"boolean","default":false},"is_seen":{"type":"boolean","default":false},"url":{"type":"string"},"image":{"type":"string"},"service":{"type":"string","description":"Id of a Service."},"product":{"type":"string","description":"Id of a Product."},"blogpost":{"type":"string","description":"Id of a BlogPost."},"program":{"type":"string","description":"Id of a Program."},"booking":{"type":"string","description":"Id of a Booking."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"UserInvoice":{"type":"object","properties":{"stripeNumber":{"type":"string"},"is_credit_note":{"type":"boolean","default":false},"credit_note_invoice_number":{"type":"string"},"credit_note_invoice_date":{"type":"string"},"is_debit_note":{"type":"boolean","default":false},"debit_note_invoice_number":{"type":"string"},"debit_note_invoice_date":{"type":"string"},"number":{"type":"number"},"stripeInvoiceId":{"type":"string"},"has_price_quote":{"type":"boolean","default":false},"customer_name":{"type":"string"},"customer_address":{"type":"string"},"customer_postal_code":{"type":"string"},"customer_city":{"type":"string"},"customer_country":{"type":"string"},"customer_phone":{"type":"string"},"customer_email":{"type":"string"},"customer_tax_id":{"type":"string"},"customer_vat_id":{"type":"string"},"customer_responsible_official":{"type":"string"},"customer_organization_name":{"type":"string"},"billing_customer_address":{"type":"string"},"billing_customer_postal_code":{"type":"string"},"billing_customer_city":{"type":"string"},"billing_customer_country":{"type":"string"},"billing_customer_phone":{"type":"string"},"subtotal":{"type":"number"},"amount":{"type":"number"},"day_of_issue":{"type":"string"},"foreign":{"type":"boolean"},"home_tax":{"type":"number","default":0},"foreign_tax":{"type":"number","default":0},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"qty":{"type":"number"},"unit_price":{"type":"number"},"discount":{"type":"number"},"amount":{"type":"number"},"_id":{"type":"string"}}}},"grounds_for_transaction":{"type":"string"},"description_of_transaction":{"type":"string"},"place_of_transaction":{"type":"string"},"payment":{"type":"string"},"dateDue":{"type":"string"},"owner_id":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"UserLockedHours":{"type":"object","properties":{"user":{"type":"string"},"locked_ranges":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string","format":"date-time"},"end":{"type":"string","format":"date-time"},"_id":{"type":"string"}}}},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"UserPaymentSettings":{"type":"object","properties":{"has_card":{"type":"boolean","default":false},"card_locale":{"type":"string","default":"Pay with credit card"},"email":{"type":"string"},"country":{"type":"string"},"agreedToTerms":{"type":"boolean","default":false},"agreedToTermsAt":{"type":"string"},"merchant_id":{"type":"string"},"has_paypal":{"type":"boolean","default":false},"paypal_increase":{"type":"number","default":0},"paypal_id":{"type":"string"},"owner_id":{"type":"string"},"number":{"type":"number"},"price_quote_number":{"type":"string"},"bic":{"type":"string"},"swift":{"type":"string"},"tax_id":{"type":"string"},"vat_id":{"type":"string"},"logo":{"type":"string"},"business_name":{"type":"string"},"business_name_translated":{"type":"string"},"responsible_official":{"type":"string"},"responsible_official_translated":{"type":"string"},"business_email":{"type":"string"},"company_id":{"type":"string"},"business_address":{"type":"string"},"business_address_translated":{"type":"string"},"business_phone_number":{"type":"string"},"business_country":{"type":"string"},"business_country_translated":{"type":"string"},"footer":{"type":"string"},"footer_translated":{"type":"string"},"foreign_tax":{"type":"number","default":0},"home_tax":{"type":"number","default":0},"_id":{"type":"string"}}},"UserReport":{"type":"object","properties":{"user":{"type":"string","description":"Id of a User."},"post":{"type":"string","description":"Id of a Post."},"reason":{"type":"string"},"reported_user":{"type":"string","description":"Id of a User."},"comment":{"type":"string","description":"Id of a Comment."},"reply":{"type":"string"},"seen":{"type":"boolean","default":false},"miniApp":{"type":"string","description":"Id of a MiniApp."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Venue":{"type":"object","properties":{"name":{"type":"string"},"origin_address":{"type":"string","description":"Id of a OriginAddress."},"address":{"type":"string"},"medias":{"type":"array","items":{"type":"object","properties":{"media":{"type":"string","description":"Id of a Media."},"gcs_url":{"type":"string"},"gcs_480_30_url":{"type":"string"},"gcs_720_30_url":{"type":"string"},"gcs_1080_30_url":{"type":"string"},"duration":{"type":"number"},"vimeo_uri":{"type":"string"},"vimeo_picture":{"type":"string"},"vimeo_url":{"type":"string"},"youtube_url":{"type":"string"},"youtube_picture":{"type":"string"},"thumbnail":{"type":"string"},"_id":{"type":"string"}}}},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Video":{"type":"object","properties":{"name":{"type":"string"},"link":{"type":"string"},"collection_id":{"type":"string","description":"Id of a Collection."},"media_id":{"type":"string","description":"Id of a Media."},"selected":{"type":"boolean","default":false},"custom_1":{"type":"string"},"custom_2":{"type":"string"},"custom_3":{"type":"string"},"suitability_price_plans":{"type":"array","items":{"type":"string"},"description":"Id of a PricePlan."},"isSuitable":{"type":"boolean"},"views":{"type":"array","items":{"type":"string"},"description":"Id of a User."},"total_views":{"type":"number","default":0},"times_showed":{"type":"number","default":0},"owner_id":{"type":"string","description":"Id of a User."},"requiresLogin":{"type":"boolean","default":false},"requiresSubscription":{"type":"boolean","default":false},"price_plan_ids":{"type":"array","items":{"type":"string"}},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"VideoInteraction":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"},"watch_time":{"type":"number"},"video_viewer":{"type":"string","description":"Id of a User."},"video_id":{"type":"string","description":"Id of a Post."},"video_owner":{"type":"string","description":"Id of a User."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Voucher":{"type":"object","properties":{"title":{"type":"string"},"body":{"type":"string"},"media":{"type":"string"},"show_to":{"type":"string","default":"0"},"coupon":{"type":"string","description":"Id of a Coupon."},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Wildcard":{"type":"object","properties":{"url":{"type":"string"},"points_to":{"type":"string"},"_id":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}}}},"paths":{"/about-pages":{"get":{"operationId":"get-about-pages","tags":["Pages"],"x-section":"About Page","summary":"List all pages","description":"Returns the site's pages, newest first unless a sort is given.","x-access":[],"x-models":["AboutPage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/about-pages-by-id/{id}":{"get":{"operationId":"get-about-pages-by-id-id","tags":["Pages"],"x-section":"About Page","summary":"Retrieve a page","description":"Returns one page, found by its ID.","x-access":["user-priv","optional-user"],"x-models":["AboutPage"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the page."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"301":{"description":"The address changed; follow the Location header."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"402":{"description":"The content needs a subscription: the user has no price plan that unlocks it."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/about-pages/{id}":{"patch":{"operationId":"patch-about-pages-id","tags":["Pages"],"x-section":"About Page","summary":"Update a page","description":"Update AboutPage by id.","x-access":["admin"],"x-models":["AboutPage"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the page."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"containers":{"description":"The page's content: sections, each with columns of components."}}}}}}},"delete":{"operationId":"delete-about-pages-id","tags":["Pages"],"x-section":"About Page","summary":"Delete a page","description":"Delete AboutPage record by id.","x-access":["admin"],"x-models":["AboutPage","Product","Service","BlogPost","SiteMenu","Meta"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the page."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/about-pages/{id}/draft":{"post":{"operationId":"post-about-pages-id-draft","tags":["Pages"],"x-section":"About Page","summary":"Create a page","description":"The editor's save: content goes to the draft, access settings to the live page.","x-access":["admin"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the page."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}}},"delete":{"operationId":"delete-about-pages-id-draft","tags":["Pages"],"x-section":"About Page","summary":"Delete a page","description":"Throw the draft away.","x-access":["admin"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the page."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/about-pages/{id}/preview-token":{"post":{"operationId":"post-about-pages-id-preview-token","tags":["Pages"],"x-section":"About Page","summary":"Create a page","description":"A short-lived link query that shows one version on the public page.","x-access":["admin"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the page."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"version_id":{"type":"string","description":"The page's version id."}}}}}}}},"/about-pages/{id}/publish":{"post":{"operationId":"post-about-pages-id-publish","tags":["Pages"],"x-section":"About Page","summary":"Publish the page","description":"Make the draft the live page.","x-access":["admin"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the page."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/about-pages/{id}/revert":{"post":{"operationId":"post-about-pages-id-revert","tags":["Pages"],"x-section":"About Page","summary":"Revert the page","description":"Publish a copy of an earlier version.","x-access":["admin"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the page."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"version_id":{"type":"string","description":"The page's version id."}}}}}}}},"/about-pages/{id}/rollout":{"post":{"operationId":"post-about-pages-id-rollout","tags":["Pages"],"x-section":"About Page","summary":"Create a page","description":"Show a version (the draft or an older one) to a share of the visitors, or. change the share. Ends a rollout of any other version of the page.","x-access":["admin"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the page."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"version_id":{"type":"string","description":"The page's version id."},"percent":{"type":"string","description":"The page's percent."}}}}}}},"delete":{"operationId":"delete-about-pages-id-rollout","tags":["Pages"],"x-section":"About Page","summary":"Delete a page","description":"Stop the rollout: everyone sees the live page again; the version stays.","x-access":["admin"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the page."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/about-pages/{id}/versions":{"get":{"operationId":"get-about-pages-id-versions","tags":["Pages"],"x-section":"About Page","summary":"Retrieve a page","description":"The page's versions, newest first, without their content.","x-access":["admin"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the page."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/about-pages/{id}/versions/{versionId}":{"patch":{"operationId":"patch-about-pages-id-versions-versionid","tags":["Pages"],"x-section":"About Page","summary":"Update a page","description":"Name a version; named versions are never pruned.","x-access":["admin"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the page."},{"name":"versionId","in":"path","required":true,"schema":{"type":"string"},"description":"The page's version id."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","description":"The page's label."}}}}}}}},"/about-pages/{url}":{"get":{"operationId":"get-about-pages-url","tags":["Pages"],"x-section":"About Page","summary":"Retrieve a page","description":"Returns one page, found by its URL slug.","x-access":["page-priv","optional-user"],"x-models":["AboutPage"],"parameters":[{"name":"url","in":"path","required":true,"schema":{"type":"string"},"description":"The page's URL slug, as in its address on the site."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"301":{"description":"The address changed; follow the Location header."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"402":{"description":"The content needs a subscription: the user has no price plan that unlocks it."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/about-section-imports":{"get":{"operationId":"get-about-section-imports","tags":["Pages"],"x-section":"About Page Import","summary":"List all section imports","description":"Returns the site's section imports, newest first unless a sort is given.","x-access":[],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-about-section-imports","tags":["Pages"],"x-section":"About Page Import","summary":"Create a section import","description":"Creates a section import from the fields sent.","x-access":["admin"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","description":"The section import's body."}}}}}}}},"/about-section-imports/{id}":{"get":{"operationId":"get-about-section-imports-id","tags":["Pages"],"x-section":"About Page Import","summary":"Retrieve a section import","description":"Returns one section import, found by its ID.","x-access":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the section import."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/custom_pages":{"get":{"operationId":"get-custom-pages","tags":["Pages"],"x-section":"Custom Page","summary":"List all custom pages","description":"Returns the site's custom pages, newest first unless a sort is given.","x-access":[],"x-models":["CustomPage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/custom_pages/{id}":{"get":{"operationId":"get-custom-pages-id","tags":["Pages"],"x-section":"Custom Page","summary":"Retrieve a custom page","description":"Returns one custom page, found by its ID.","x-access":[],"x-models":["CustomPage"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the custom page."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-custom-pages-id","tags":["Pages"],"x-section":"Custom Page","summary":"Update a custom page","description":"Update CustomPage by id.","x-access":["admin"],"x-models":["CustomPage"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the custom page."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomPage"}}}}},"delete":{"operationId":"delete-custom-pages-id","tags":["Pages"],"x-section":"Custom Page","summary":"Delete a custom page","description":"Delete CustomPage record by id.","x-access":["admin"],"x-models":["CustomPage"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the custom page."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/publish":{"get":{"operationId":"get-publish","tags":["Pages"],"x-section":"Publish","summary":"Retrieve the publish","description":"Get publish settings.","x-access":[],"x-models":["Publish"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-publish","tags":["Pages"],"x-section":"Publish","summary":"Create a publish","description":"Set new publish settings.","x-access":["admin"],"x-models":["Publish"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Publish"}}}}}},"/publish/{id}":{"get":{"operationId":"get-publish-id","tags":["Pages"],"x-section":"Publish","summary":"Retrieve a publish","description":"Returns one publish, found by its ID.","deprecated":true,"x-access":[],"x-models":["Publish"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the publish."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-publish-id","tags":["Pages"],"x-section":"Publish","summary":"Update a publish","description":"Update publish settings by id.","x-access":["admin"],"x-models":["Publish"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the publish."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Publish"}}}}}},"/add-section":{"post":{"operationId":"post-add-section","tags":["Pages"],"x-section":"AI builder","summary":"Add an add section","description":"Use it to add, insert, append, or place a new section on an existing page.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the add section, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_data":{"type":"string","description":"The current add section, as JSON - the AI changes it and returns the result."},"current_page_url":{"type":"string","description":"The add section's current page url."},"section_blueprint":{"type":"string","description":"The add section's section blueprint."},"section_style_blueprint":{"type":"string","description":"The add section's section style blueprint."},"explicit_target":{"type":"string","description":"The add section's explicit target."},"parsed_intent":{"type":"string","description":"The add section's parsed intent."}}}}}}}},"/commit-about-page-preview":{"post":{"operationId":"post-commit-about-page-preview","tags":["Pages"],"x-section":"AI builder","summary":"Create a commit page","description":"Creates a commit page from the fields sent.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"messageId":{"type":"string","description":"The commit page's message id."}}}}}}}},"/confirm-ai-action":{"post":{"operationId":"post-confirm-ai-action","tags":["Pages"],"x-section":"AI builder","summary":"Confirm an AI action","description":"Confirm an AI action.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"409":{"description":"It clashes with the current state: the item is already being processed, a version is already applied, or an AI plan or preview is no longer available."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"messageId":{"type":"string","description":"The AI action's message id."},"confirmed":{"type":"string","description":"The AI action's confirmed."},"skip_steps":{"type":"string","description":"The AI action's skip steps."},"choice":{"type":"string","description":"The AI action's choice."},"item_data":{"type":"string","description":"The current AI action, as JSON - the AI changes it and returns the result."}}}}}}}},"/confirm-page-plan":{"post":{"operationId":"post-confirm-page-plan","tags":["Pages"],"x-section":"AI builder","summary":"Confirm a page plan","description":"Confirm a page plan.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"messageId":{"type":"string","description":"The page plan's message id."}}}}}}}},"/create-new-page":{"post":{"operationId":"post-create-new-page","tags":["Pages"],"x-section":"AI builder","summary":"Create a page with AI","description":"Create a page from a prompt, written by the AI builder.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the page, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"socketId":{"type":"string","description":"The page's socket id."}}}}}}}},"/generate-page":{"post":{"operationId":"post-generate-page","tags":["Pages"],"x-section":"AI builder","summary":"Generate a page with AI","description":"Use it for a new standalone page, from a prompt or modelled on one the site has.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the page, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"socketId":{"type":"string","description":"The page's socket id."}}}}}}}},"/modify-footer":{"post":{"operationId":"post-modify-footer","tags":["Pages"],"x-section":"AI builder","summary":"Modify a footer with AI","description":"Use it to change footer components and columns.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the footer, in plain words - any language."},"item_data":{"type":"string","description":"The current footer, as JSON - the AI changes it and returns the result."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/modify-header":{"post":{"operationId":"post-modify-header","tags":["Pages"],"x-section":"AI builder","summary":"Modify a header with AI","description":"Use it to change link font size and weight, links positioning and justification, action button text color and background, banner style of the header of the site.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the header, in plain words - any language."},"item_data":{"type":"string","description":"The current header, as JSON - the AI changes it and returns the result."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/modify-page":{"post":{"operationId":"post-modify-page","tags":["Pages"],"x-section":"AI builder","summary":"Modify a page with AI","description":"Use it to edit or update existing page content or structure, including page colors.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the page, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"item_id":{"type":"string","description":"The ID of the page to change."},"item_ids":{"type":"string","description":"The page's item ids."}}}}}}}},"/modify-page-permissions":{"post":{"operationId":"post-modify-page-permissions","tags":["Pages"],"x-section":"AI builder","summary":"Modify a page permission with AI","description":"Use it to require login to access content sections, or set up a paywall when social mode is off. Makes products, services, blogposts, videos, programs, or custom pages require login or subscription.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the page permission, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the page permission to change."}}}}}}}},"/modify-theme":{"post":{"operationId":"post-modify-theme","tags":["Pages"],"x-section":"AI builder","summary":"Modify a theme with AI","description":"Use it to change the look, colors, fonts, or layout theme of the site, including the header background and link colors.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the theme, in plain words - any language."},"item_data":{"type":"string","description":"The current theme, as JSON - the AI changes it and returns the result."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/onboarding-intent-planner":{"post":{"operationId":"post-onboarding-intent-planner","tags":["Pages"],"x-section":"AI builder","summary":"Create an onboarding intent planner","description":"Used only for the very first user prompt (or first session) when you describe a business/intent. The first message, normalized into something the planner can build from. WHAT THIS IS FOR. 67% of real first prompts name a business and stop — `Автокъща`, `майстор плочкаджия`, `детски учител`, with no verb and no object (see USER_LOGS_ANALYSIS.md §2). This rewrites that into one implementation-ready sentence and, usefully, encodes which platform area it needs in plain language, so `apply_domain_recipe` downstream picks store vs bookings vs informational. IT USED TO ASK FOR A PAGE. The rewrite began \"Създай страница за …\" and the redirect went to `create-new-page`, which layout-plans ONE page and parks at \"Awaiting confirmation\". So the single most common thing anyone types produced a page and a template site: no services, no products, no collections, no legal pages, no locale pass — all of which the recipes build. Routing was never the problem; the router sent 16 of 20 real first prompts to a whole-site destination, and 12–13 of those were THIS route, which then threw the site away. Now it asks for a site and redirects to `create-plan`. That is safe because `/create-plan` orchestrates with `planOnly: true` (planners.js) — it gets propose_plan, apply_domain_recipe and ask_clarification but no routes, so it cannot route back here or sideways into a single item. The redirect carries the rewrite in `response`, which is what the client turns into the next request's `prompt` — this is a SECOND-hop redirect, handled at ai-components-chat.component.ts:2437 (`handleRes(res2.target_url, res2.response, …)`). First-hop redirects out of the orchestrator use `user_prompt` instead; do not confuse the two.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the onboarding intent planner, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."}}}}}}}},"/regenerate-component":{"post":{"operationId":"post-regenerate-component","tags":["Pages"],"x-section":"AI builder","summary":"Create a regenerate component","description":"Creates a regenerate component from the fields sent.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the regenerate component, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_data":{"type":"string","description":"The current regenerate component, as JSON - the AI changes it and returns the result."},"current_page_url":{"type":"string","description":"The regenerate component's current page url."},"explicit_target":{"type":"string","description":"The regenerate component's explicit target."},"save_user_message":{"type":"string","description":"The regenerate component's save user message."},"preview_only":{"type":"string","description":"The regenerate component's preview only."}}}}}}}},"/regenerate-section":{"post":{"operationId":"post-regenerate-section","tags":["Pages"],"x-section":"AI builder","summary":"Create a regenerate section","description":"From the editor: regenerates the currently selected section of the open about-page.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the regenerate section, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_data":{"type":"string","description":"The current regenerate section, as JSON - the AI changes it and returns the result."},"current_page_url":{"type":"string","description":"The regenerate section's current page url."},"explicit_target":{"type":"string","description":"The regenerate section's explicit target."},"save_user_message":{"type":"string","description":"The regenerate section's save user message."},"section_blueprint":{"type":"string","description":"The regenerate section's section blueprint."},"section_style_blueprint":{"type":"string","description":"The regenerate section's section style blueprint."},"preview_only":{"type":"string","description":"The regenerate section's preview only."},"regeneration_mode":{"type":"string","description":"The regenerate section's regeneration mode."},"replacement_strategy":{"type":"string","description":"The regenerate section's replacement strategy."},"source_small_target":{"type":"string","description":"The regenerate section's source small target."}}}}}}}},"/reopen-about-page-preview":{"post":{"operationId":"post-reopen-about-page-preview","tags":["Pages"],"x-section":"AI builder","summary":"Create a reopen page","description":"Creates a reopen page from the fields sent.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"409":{"description":"It clashes with the current state: the item is already being processed, a version is already applied, or an AI plan or preview is no longer available."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"messageId":{"type":"string","description":"The reopen page's message id."}}}}}}}},"/section-options":{"post":{"operationId":"post-section-options","tags":["Pages"],"x-section":"AI builder","summary":"Create a section option","description":"Creates a section option from the fields sent.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"410":{"description":"It existed but is no longer there - for example a comment already deleted on the social network."}},"security":[{"bearer":[]}]}},"/section-style-options":{"post":{"operationId":"post-section-style-options","tags":["Pages"],"x-section":"AI builder","summary":"Create a section style option","description":"Creates a section style option from the fields sent.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"410":{"description":"It existed but is no longer there - for example a comment already deleted on the social network."}},"security":[{"bearer":[]}]}},"/update-footer":{"post":{"operationId":"post-update-footer","tags":["Pages"],"x-section":"AI builder","summary":"Update a footer with AI","description":"Update a footer from a prompt, written by the AI builder.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the footer, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."}}}}}}}},"/update-header":{"post":{"operationId":"post-update-header","tags":["Pages"],"x-section":"AI builder","summary":"Update a header with AI","description":"Update a header from a prompt, written by the AI builder.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the header, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."}}}}}}}},"/update-page":{"post":{"operationId":"post-update-page","tags":["Pages"],"x-section":"AI builder","summary":"Update a page with AI","description":"From the editor: applies a targeted edit to the about-page currently open in the editor.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the page, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_data":{"type":"string","description":"The current page, as JSON - the AI changes it and returns the result."},"current_page_url":{"type":"string","description":"The page's current page url."},"explicit_target":{"type":"string","description":"The page's explicit target."},"item_id":{"type":"string","description":"The ID of the page to change."},"pending_selection_intent":{"type":"string","description":"The page's pending selection intent."},"save_user_message":{"type":"string","description":"The page's save user message."},"preview_only":{"type":"string","description":"The page's preview only."},"regeneration_mode":{"type":"string","description":"The page's regeneration mode."},"force_targeted_modifier":{"type":"string","description":"The page's force targeted modifier."},"redesign_another":{"type":"string","description":"The page's redesign another."}}}}}}}},"/update-theme":{"post":{"operationId":"post-update-theme","tags":["Pages"],"x-section":"AI builder","summary":"Update a theme with AI","description":"Update a theme from a prompt, written by the AI builder.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the theme, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."}}}}}}}},"/blogpost-likes/{id}":{"patch":{"operationId":"patch-blogpost-likes-id","tags":["Blog posts"],"x-section":"Blogpost","summary":"Like or unlike a blog post","description":"Like or unlike a blog post.","x-access":["user"],"x-models":["BlogPost","UserEngagementNotification"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the blog post."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/blogpost-redirect/{url}":{"get":{"operationId":"get-blogpost-redirect-url","tags":["Blog posts"],"x-section":"Blogpost","summary":"Find a blog post by its address","description":"Find a blog post by its address.","x-access":["optional-user"],"x-models":["MyContact","SocialModeSettings"],"parameters":[{"name":"url","in":"path","required":true,"schema":{"type":"string"},"description":"The blog post's URL slug, as in its address on the site."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/blogpost-saves/{id}":{"patch":{"operationId":"patch-blogpost-saves-id","tags":["Blog posts"],"x-section":"Blogpost","summary":"Save or unsave a blog post","description":"Save or unsave a blog post.","x-access":["user"],"x-models":["BlogPost"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the blog post."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/blogposts":{"get":{"operationId":"get-blogposts","tags":["Blog posts"],"x-section":"Blogpost","summary":"List all blog posts","description":"Returns the site's blog posts, newest first unless a sort is given.","x-access":["user-priv","optional-user"],"x-models":["Theme","SocialModeSettings","Collection","BlogPost","AboutPage"],"parameters":[{"name":"published","in":"query","required":false,"schema":{"type":"string"},"description":"true: only blog posts that are published; false: only those that are not."},{"name":"sortBy","in":"query","required":false,"schema":{"type":"string"},"description":"The order of the results."},{"name":"collection","in":"query","required":false,"schema":{"type":"string"},"description":"Only results in this collection."},{"name":"skip","in":"query","required":false,"schema":{"type":"string"},"description":"How many results to skip - for paging."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"402":{"description":"The content needs a subscription: the user has no price plan that unlocks it."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-blogposts","tags":["Blog posts"],"x-section":"Blogpost","summary":"Create a blog post","description":"Create new blogpost.","x-access":["user"],"x-models":["ConnectedAccount","SocialModeSettings","BlogPost","ProfessionalAccount","MyContact"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"Name of the blog post, required."},"on_behalf_of":{"type":"string","description":"The blog post's on behalf of."}}}}}}}},"/blogposts-multiple/{delete_ids}":{"delete":{"operationId":"delete-blogposts-multiple-delete-ids","tags":["Blog posts"],"x-section":"Blogpost","summary":"Delete multiple blog posts","description":"Deletes the blog post. This cannot be undone.","x-access":["user"],"x-models":["BlogPost"],"parameters":[{"name":"delete_ids","in":"path","required":true,"schema":{"type":"string"},"description":"The blog post's delete ids."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/blogposts-multiple/{patch_ids}":{"patch":{"operationId":"patch-blogposts-multiple-patch-ids","tags":["Blog posts"],"x-section":"Blogpost","summary":"Update multiple blog posts","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["BlogPost"],"parameters":[{"name":"patch_ids","in":"path","required":true,"schema":{"type":"string"},"description":"The blog post's patch ids."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"collection_id":{"type":"string","description":"Reference to a Collection model with name starting with 'blogpost/', used to categorise the post."},"grouping":{"type":"string","description":"The blog post's grouping."},"updates":{"type":"string","description":"The blog post's updates."}}}}}}}},"/blogposts/{id}":{"patch":{"operationId":"patch-blogposts-id","tags":["Blog posts"],"x-section":"Blogpost","summary":"Update a blog post","description":"Update Blogpost by id.","x-access":["user"],"x-models":["BlogPost","ConnectedAccount"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the blog post."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogPost"}}}}},"delete":{"operationId":"delete-blogposts-id","tags":["Blog posts"],"x-section":"Blogpost","summary":"Delete a blog post","description":"Delete Blogpost record by id.","x-access":["user"],"x-models":["BlogPost","ConnectedAccount"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the blog post."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/blogposts/{id}/media":{"get":{"operationId":"get-blogposts-id-media","tags":["Blog posts"],"x-section":"Blogpost","summary":"Retrieve a blog post","description":"Returns one blog post, found by its ID.","x-access":[],"x-models":["BlogPost","Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the blog post."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-blogposts-id-media","tags":["Blog posts"],"x-section":"Blogpost","summary":"Create a blog post","description":"Creates a blog post from the fields sent.","x-access":["user"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the blog post."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/blogposts/{id}/media/delete_last":{"delete":{"operationId":"delete-blogposts-id-media-delete-last","tags":["Blog posts"],"x-section":"Blogpost","summary":"Delete a blog post","description":"Deletes the blog post. This cannot be undone.","x-access":["user"],"x-models":["BlogPost","Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the blog post."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/blogposts/{url}":{"get":{"operationId":"get-blogposts-url","tags":["Blog posts"],"x-section":"Blogpost","summary":"Retrieve a blog post","description":"Returns one blog post, found by its URL slug.","x-access":["page-priv","optional-user"],"x-models":["BlogPost","Collection","SocialModeSettings","User","AboutPage","Comment"],"parameters":[{"name":"url","in":"path","required":true,"schema":{"type":"string"},"description":"The blog post's URL slug, as in its address on the site."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"402":{"description":"The content needs a subscription: the user has no price plan that unlocks it."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/create-new-blogpost":{"post":{"operationId":"post-create-new-blogpost","tags":["Blog posts"],"x-section":"AI builder","summary":"Create a blog post with AI","description":"Create a blog post from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the blog post, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the blog post to change."}}}}}}}},"/generate-blogpost":{"post":{"operationId":"post-generate-blogpost","tags":["Blog posts"],"x-section":"AI builder","summary":"Generate a blog post with AI","description":"Use it to create a new blog post or article from scratch or a prompt.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the blog post, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/modify-blogpost":{"post":{"operationId":"post-modify-blogpost","tags":["Blog posts"],"x-section":"AI builder","summary":"Modify a blog post with AI","description":"Use it to edit or update an existing blog post.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the blog post, in plain words - any language."},"item_data":{"type":"string","description":"The current blog post, as JSON - the AI changes it and returns the result."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"item_id":{"type":"string","description":"The ID of the blog post to change."},"item_ids":{"type":"string","description":"The blog post's item ids."}}}}}}}},"/digital-product/{url}":{"get":{"operationId":"get-digital-product-url","tags":["Products"],"x-section":"Product","summary":"Retrieve a digital product","description":"Returns one digital product, found by its URL slug.","x-access":["user","optional-user"],"x-models":["PaymentMethod","Product"],"parameters":[{"name":"url","in":"path","required":true,"schema":{"type":"string"},"description":"The digital product's URL slug, as in its address on the site."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/export-products":{"get":{"operationId":"get-export-products","tags":["Products"],"x-section":"Product","summary":"Export products","description":"Export products.","x-access":["admin"],"x-models":["Product","Collection","MyContact"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/get-import-template":{"get":{"operationId":"get-get-import-template","tags":["Products"],"x-section":"Product","summary":"Import templates","description":"Import templates.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/import-products-custom":{"post":{"operationId":"post-import-products-custom","tags":["Products"],"x-section":"Product","summary":"Import products custom","description":"Import products custom.","x-access":["admin"],"x-models":["Collection","Media","Product"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/import-products-shopify":{"post":{"operationId":"post-import-products-shopify","tags":["Products"],"x-section":"Product","summary":"Import products shopify","description":"Import products shopify.","x-access":["admin"],"x-models":["Collection","Product","Media"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/import-products-squarespace":{"post":{"operationId":"post-import-products-squarespace","tags":["Products"],"x-section":"Product","summary":"Import products squarespace","description":"Import products squarespace.","x-access":["admin"],"x-models":["Collection","Product","Media"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/import-products-wix":{"post":{"operationId":"post-import-products-wix","tags":["Products"],"x-section":"Product","summary":"Import products wix","description":"Import products wix.","x-access":["admin"],"x-models":["Collection","Product","Media"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/product-likes/{id}":{"patch":{"operationId":"patch-product-likes-id","tags":["Products"],"x-section":"Product","summary":"Like or unlike a product","description":"Like or unlike a product.","x-access":["user"],"x-models":["Product","UserEngagementNotification"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the product."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/product-redirect/{url}":{"get":{"operationId":"get-product-redirect-url","tags":["Products"],"x-section":"Product","summary":"Find a product by its address","description":"Find a product by its address.","x-access":["optional-user"],"x-models":["MyContact","SocialModeSettings"],"parameters":[{"name":"url","in":"path","required":true,"schema":{"type":"string"},"description":"The product's URL slug, as in its address on the site."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/product-saves/{id}":{"patch":{"operationId":"patch-product-saves-id","tags":["Products"],"x-section":"Product","summary":"Save or unsave a product","description":"Save or unsave a product.","x-access":["user"],"x-models":["Product"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the product."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/products":{"get":{"operationId":"get-products","tags":["Products"],"x-section":"Product","summary":"List all products","description":"Returns the site's products, newest first unless a sort is given.","x-access":["user-priv","optional-user"],"x-models":["MyContact","SocialModeSettings","Collection","Product","AboutPage","OriginAddress","RatingSettings","Inventory","Theme"],"parameters":[{"name":"published","in":"query","required":false,"schema":{"type":"string"},"description":"true: only products that are published; false: only those that are not."},{"name":"completed","in":"query","required":false,"schema":{"type":"string"},"description":"Only products with this completed."},{"name":"sortBy","in":"query","required":false,"schema":{"type":"string"},"description":"The order of the results."},{"name":"minPrice","in":"query","required":false,"schema":{"type":"string"},"description":"Only products with a price of at least this."},{"name":"maxPrice","in":"query","required":false,"schema":{"type":"string"},"description":"Only products with a price of at most this."},{"name":"collection","in":"query","required":false,"schema":{"type":"string"},"description":"Only results in this collection."},{"name":"origin_address","in":"query","required":false,"schema":{"type":"string"},"description":"Only products with this origin address."},{"name":"skip","in":"query","required":false,"schema":{"type":"string"},"description":"How many results to skip - for paging."},{"name":"where","in":"query","required":false,"schema":{"type":"string"},"description":"Only products with this where."},{"name":"rating","in":"query","required":false,"schema":{"type":"string"},"description":"Only products with this rating."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"402":{"description":"The content needs a subscription: the user has no price plan that unlocks it."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-products","tags":["Products"],"x-section":"Product","summary":"Create a product","description":"Create new product.","x-access":["user"],"x-models":["ConnectedAccount","SocialModeSettings","Product","ProfessionalAccount","MyContact","Collection"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the product, required."},"on_behalf_of":{"type":"string","description":"The product's on behalf of."}}}}}}}},"/products-multiple/{delete_ids}":{"delete":{"operationId":"delete-products-multiple-delete-ids","tags":["Products"],"x-section":"Product","summary":"Delete multiple products","description":"Deletes the product. This cannot be undone.","x-access":["user"],"x-models":["Product","Inventory"],"parameters":[{"name":"delete_ids","in":"path","required":true,"schema":{"type":"string"},"description":"The product's delete ids."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/products-multiple/{patch_ids}":{"patch":{"operationId":"patch-products-multiple-patch-ids","tags":["Products"],"x-section":"Product","summary":"Update multiple products","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Product","Inventory"],"parameters":[{"name":"patch_ids","in":"path","required":true,"schema":{"type":"string"},"description":"The product's patch ids."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"collection_id":{"type":"string","description":"Reference to the Collection model, it is the store where product is grouped."},"grouping":{"description":"References to the Collection model, they act as filters."},"updates":{"type":"string","description":"The product's updates."}}}}}}}},"/products-multiple/{product_ids}":{"get":{"operationId":"get-products-multiple-product-ids","tags":["Products"],"x-section":"Product","summary":"List multiple products","description":"Returns the site's products, newest first unless a sort is given.","x-access":["user"],"x-models":["Product"],"parameters":[{"name":"product_ids","in":"path","required":true,"schema":{"type":"string"},"description":"The product's product ids."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/products/{id}":{"patch":{"operationId":"patch-products-id","tags":["Products"],"x-section":"Product","summary":"Update a product","description":"Update Product by id.","x-access":["user"],"x-models":["Product","ConnectedAccount","SocialModeSettings","Inventory","MyContact","Collection"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the product."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"convertedPrice":{"type":"string","description":"The product's converted price."},"product_options":{"description":"The product's product options."}}}}}}},"delete":{"operationId":"delete-products-id","tags":["Products"],"x-section":"Product","summary":"Delete a product","description":"Delete Product record by id.","x-access":["user"],"x-models":["Product","ConnectedAccount","Inventory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the product."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/products/{id}/media":{"get":{"operationId":"get-products-id-media","tags":["Products"],"x-section":"Product","summary":"Retrieve a product","description":"Returns one product, found by its ID.","x-access":[],"x-models":["Product","Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the product."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-products-id-media","tags":["Products"],"x-section":"Product","summary":"Create a product","description":"Creates a product from the fields sent.","x-access":["user"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the product."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/products/{id}/media/{media_id}":{"delete":{"operationId":"delete-products-id-media-media-id","tags":["Products"],"x-section":"Product","summary":"Delete a product","description":"Deletes the product. This cannot be undone.","x-access":["user"],"x-models":["Product"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the product."},{"name":"media_id","in":"path","required":true,"schema":{"type":"string"},"description":"The product's media id."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/products/{url}":{"get":{"operationId":"get-products-url","tags":["Products"],"x-section":"Product","summary":"Retrieve a product","description":"Returns one product, found by its URL slug.","x-access":["optional-user","page-priv"],"x-models":["Product","AboutPage","SocialModeSettings","OriginAddress","Collection","User","Comment","PaymentMethod","UserPaymentSettings","RatingSettings","Rating","Cart","Shipping","Theme"],"parameters":[{"name":"url","in":"path","required":true,"schema":{"type":"string"},"description":"The product's URL slug, as in its address on the site."},{"name":"sessionId","in":"query","required":false,"schema":{"type":"string"},"description":"Only products with this session id."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"402":{"description":"The content needs a subscription: the user has no price plan that unlocks it."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/digital-content":{"get":{"operationId":"get-digital-content","tags":["Products"],"x-section":"Digital Content","summary":"Retrieve the digital content","description":"Returns the digital content.","x-access":["admin"],"x-models":["DigitalContent"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-digital-content","tags":["Products"],"x-section":"Digital Content","summary":"Create a digital content","description":"Create new digital_content.","x-access":["admin"],"x-models":["DigitalContent"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","description":"The digital content's body."}}}}}}}},"/digital-content-file/{id}":{"get":{"operationId":"get-digital-content-file-id","tags":["Products"],"x-section":"Digital Content","summary":"Retrieve a digital content file","description":"Returns one digital content file, found by its ID.","x-access":["user"],"x-models":["DigitalContent","Product","Order"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the digital content file."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/digital-content/{id}":{"get":{"operationId":"get-digital-content-id","tags":["Products"],"x-section":"Digital Content","summary":"Retrieve a digital content","description":"Returns one digital content, found by its ID.","x-access":["admin"],"x-models":["DigitalContent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the digital content."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-digital-content-id","tags":["Products"],"x-section":"Digital Content","summary":"Update a digital content","description":"Update DigitalContent by id.","x-access":["admin"],"x-models":["DigitalContent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the digital content."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DigitalContent"}}}}},"delete":{"operationId":"delete-digital-content-id","tags":["Products"],"x-section":"Digital Content","summary":"Delete a digital content","description":"Delete DigitalContent record by id.","x-access":["admin"],"x-models":["DigitalContent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the digital content."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/inventory":{"get":{"operationId":"get-inventory","tags":["Products"],"x-section":"Inventory","summary":"Retrieve the inventory","description":"Returns the inventory.","x-access":["admin"],"x-models":["Inventory"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-inventory","tags":["Products"],"x-section":"Inventory","summary":"Create an inventory","description":"Create new inventory.","x-access":["admin"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/inventory/{id}":{"get":{"operationId":"get-inventory-id","tags":["Products"],"x-section":"Inventory","summary":"Retrieve an inventory","description":"Returns one inventory, found by its ID.","x-access":[],"x-models":["Inventory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the inventory."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-inventory-id","tags":["Products"],"x-section":"Inventory","summary":"Update an inventory","description":"Update Inventory by id.","x-access":["admin"],"x-models":["Inventory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the inventory."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"quantity":{"type":"number","description":"The inventory's quantity."},"track":{"type":"boolean","description":"Whether the inventory is track."},"sku":{"type":"string","description":"The inventory's sku."}}}}}}},"delete":{"operationId":"delete-inventory-id","tags":["Products"],"x-section":"Inventory","summary":"Delete an inventory","description":"Delete Inventory record by id.","x-access":["admin"],"x-models":["Inventory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the inventory."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/inventory/{product_id}/{option}":{"get":{"operationId":"get-inventory-product-id-option","tags":["Products"],"x-section":"Inventory","summary":"Retrieve an inventory","description":"Returns one inventory, found by its ID.","x-access":[],"x-models":["SocialModeSettings","Product","Inventory"],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string"},"description":"The inventory's product id."},{"name":"option","in":"path","required":true,"schema":{"type":"string"},"description":"The inventory's option."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/create-new-product":{"post":{"operationId":"post-create-new-product","tags":["Products"],"x-section":"AI builder","summary":"Create a product with AI","description":"Create a product from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the product, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the product to change."}}}}}}}},"/generate-product":{"post":{"operationId":"post-generate-product","tags":["Products"],"x-section":"AI builder","summary":"Generate a product with AI","description":"Use it to create one new product record from scratch or a prompt.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the product, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/modify-product":{"post":{"operationId":"post-modify-product","tags":["Products"],"x-section":"AI builder","summary":"Modify a product with AI","description":"Use it to edit or update existing product or add a filter to the product.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the product, in plain words - any language."},"item_data":{"type":"string","description":"The current product, as JSON - the AI changes it and returns the result."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"item_id":{"type":"string","description":"The ID of the product to change."},"item_ids":{"type":"string","description":"The product's item ids."}}}}}}}},"/locations-map":{"get":{"operationId":"get-locations-map","tags":["Services"],"x-section":"Service","summary":"Retrieve the locations map","description":"Returns the locations map.","x-access":["user-priv"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"402":{"description":"The content needs a subscription: the user has no price plan that unlocks it."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/locations-search":{"get":{"operationId":"get-locations-search","tags":["Services"],"x-section":"Service","summary":"Search locations","description":"Search locations.","x-access":["user-priv"],"x-models":["SocialModeSettings","Collection","PaymentMethod","Service","GeoLocation","Rating","OriginAddress"],"parameters":[{"name":"collection","in":"query","required":false,"schema":{"type":"string"},"description":"Only results in this collection."},{"name":"origin_address","in":"query","required":false,"schema":{"type":"string"},"description":"Only locations with this origin address."},{"name":"where","in":"query","required":false,"schema":{"type":"string"},"description":"Only locations with this where."},{"name":"sortBy","in":"query","required":false,"schema":{"type":"string"},"description":"The order of the results."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"402":{"description":"The content needs a subscription: the user has no price plan that unlocks it."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/service-allowed-ranges":{"patch":{"operationId":"patch-service-allowed-ranges","tags":["Services"],"x-section":"Service","summary":"Update the service allowed range","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"services":{"type":"string","description":"The service allowed range's services."}}}}}}}},"/service-likes/{id}":{"patch":{"operationId":"patch-service-likes-id","tags":["Services"],"x-section":"Service","summary":"Like or unlike a service","description":"Like or unlike a service.","x-access":["user"],"x-models":["Service","UserEngagementNotification"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the service."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/service-redirect/{url}":{"get":{"operationId":"get-service-redirect-url","tags":["Services"],"x-section":"Service","summary":"Find a service by its address","description":"Find a service by its address.","x-access":["optional-user"],"x-models":["MyContact","SocialModeSettings"],"parameters":[{"name":"url","in":"path","required":true,"schema":{"type":"string"},"description":"The service's URL slug, as in its address on the site."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/service-saves/{id}":{"patch":{"operationId":"patch-service-saves-id","tags":["Services"],"x-section":"Service","summary":"Save or unsave a service","description":"Save or unsave a service.","x-access":["user"],"x-models":["Service"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the service."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/services":{"get":{"operationId":"get-services","tags":["Services"],"x-section":"Service","summary":"List all services","description":"Returns the site's services, newest first unless a sort is given.","x-access":["user-priv","optional-user"],"x-models":["SocialModeSettings","Collection","Service","AboutPage","OriginAddress"],"parameters":[{"name":"published","in":"query","required":false,"schema":{"type":"string"},"description":"Only services with this published."},{"name":"completed","in":"query","required":false,"schema":{"type":"string"},"description":"Only services with this completed."},{"name":"sortBy","in":"query","required":false,"schema":{"type":"string"},"description":"The order of the results."},{"name":"collection","in":"query","required":false,"schema":{"type":"string"},"description":"Only results in this collection."},{"name":"origin_address","in":"query","required":false,"schema":{"type":"string"},"description":"Only services with this origin address."},{"name":"skip","in":"query","required":false,"schema":{"type":"string"},"description":"How many results to skip - for paging."},{"name":"where","in":"query","required":false,"schema":{"type":"string"},"description":"Only services with this where."},{"name":"selectedDate","in":"query","required":false,"schema":{"type":"string"},"description":"Only services with this selected date."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"402":{"description":"The content needs a subscription: the user has no price plan that unlocks it."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-services","tags":["Services"],"x-section":"Service","summary":"Create a service","description":"Create new service.","x-access":["optional-user","user"],"x-models":["ConnectedAccount","SocialModeSettings","Service","ProfessionalAccount"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"The service's title."},"on_behalf_of":{"type":"string","description":"The service's on behalf of."},"address":{"type":"string","description":"Where is the service performed."}}}}}}}},"/services-multiple/{delete_ids}":{"delete":{"operationId":"delete-services-multiple-delete-ids","tags":["Services"],"x-section":"Service","summary":"Delete multiple services","description":"Deletes the service. This cannot be undone.","x-access":["user"],"x-models":["Service"],"parameters":[{"name":"delete_ids","in":"path","required":true,"schema":{"type":"string"},"description":"The service's delete ids."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/services-multiple/{patch_ids}":{"patch":{"operationId":"patch-services-multiple-patch-ids","tags":["Services"],"x-section":"Service","summary":"Update multiple services","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Service"],"parameters":[{"name":"patch_ids","in":"path","required":true,"schema":{"type":"string"},"description":"The service's patch ids."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"collection_id":{"type":"string","description":"Reference to the Collection model, it is the store where service is grouped."},"updates":{"type":"string","description":"The service's updates."}}}}}}}},"/services/{id}":{"patch":{"operationId":"patch-services-id","tags":["Services"],"x-section":"Service","summary":"Update a service","description":"Update Service by id.","x-access":["user"],"x-models":["Service","ConnectedAccount","SocialModeSettings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the service."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"_id":{"type":"string","description":"The ID of the service."},"convertedPrice":{"type":"string","description":"The service's converted price."},"locked_hours":{"type":"array","items":{"type":"string"},"description":"The service's locked hours."},"locked_ranges":{"description":"The service's locked ranges."},"attached_dynamic_models":{"type":"string","description":"The service's attached dynamic models."},"medias":{"description":"The service's medias."},"address":{"type":"string","description":"Where is the service performed."}}}}}}},"delete":{"operationId":"delete-services-id","tags":["Services"],"x-section":"Service","summary":"Delete a service","description":"Delete Service record by id.","x-access":["user"],"x-models":["Service","ConnectedAccount"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the service."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/services/{id}/media":{"get":{"operationId":"get-services-id-media","tags":["Services"],"x-section":"Service","summary":"Retrieve a service","description":"Returns one service, found by its ID.","x-access":[],"x-models":["Service","Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the service."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-services-id-media","tags":["Services"],"x-section":"Service","summary":"Create a service","description":"Creates a service from the fields sent.","x-access":["user"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the service."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/services/{id}/media/delete_last":{"delete":{"operationId":"delete-services-id-media-delete-last","tags":["Services"],"x-section":"Service","summary":"Delete a service","description":"Deletes the service. This cannot be undone.","x-access":["user"],"x-models":["Service","Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the service."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/services/{url}":{"get":{"operationId":"get-services-url","tags":["Services"],"x-section":"Service","summary":"Retrieve a service","description":"Returns one service, found by its URL slug.","x-access":["page-priv","optional-user"],"x-models":["Service","SocialModeSettings","Collection","AboutPage","User","Comment","RatingSettings","Rating"],"parameters":[{"name":"url","in":"path","required":true,"schema":{"type":"string"},"description":"The service's URL slug, as in its address on the site."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"402":{"description":"The content needs a subscription: the user has no price plan that unlocks it."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/user-has-services":{"get":{"operationId":"get-user-has-services","tags":["Services"],"x-section":"Service","summary":"List all user has services","description":"Returns the site's user has services, newest first unless a sort is given.","x-access":["user"],"x-models":["ProfessionalAccount","Service"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/single-user-locked-hour":{"patch":{"operationId":"patch-single-user-locked-hour","tags":["Services"],"x-section":"User Locked Hours","summary":"Update the single user locked hour","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["UserLockedHours","ConnectedAccount"],"parameters":[{"name":"on_behalf_of","in":"query","required":false,"schema":{"type":"string"},"description":"Only single user locked hours with this on behalf of."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"locked_range":{"type":"string","description":"The single user locked hour's locked range."}}}}}}}},"/user-locked-hours":{"get":{"operationId":"get-user-locked-hours","tags":["Services"],"x-section":"User Locked Hours","summary":"List all user locked hours","description":"Returns the site's user locked hours, newest first unless a sort is given.","x-access":["user"],"x-models":["UserLockedHours"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-user-locked-hours","tags":["Services"],"x-section":"User Locked Hours","summary":"Create a user locked hour","description":"Creates a user locked hour from the fields sent.","x-access":["user"],"x-models":["UserLockedHours"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"locked_ranges":{"description":"The user locked hour's locked ranges."}}}}}}},"patch":{"operationId":"patch-user-locked-hours","tags":["Services"],"x-section":"User Locked Hours","summary":"Update the user locked hour","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["UserLockedHours","ConnectedAccount"],"parameters":[{"name":"on_behalf_of","in":"query","required":false,"schema":{"type":"string"},"description":"Only user locked hours with this on behalf of."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"locked_ranges":{"description":"The user locked hour's locked ranges."}}}}}}}},"/create-new-service":{"post":{"operationId":"post-create-new-service","tags":["Services"],"x-section":"AI builder","summary":"Create a service with AI","description":"Create a service from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the service, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the service to change."}}}}}}}},"/generate-service":{"post":{"operationId":"post-generate-service","tags":["Services"],"x-section":"AI builder","summary":"Generate a service with AI","description":"Use it to create a new appointment booking service.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the service, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/modify-service":{"post":{"operationId":"post-modify-service","tags":["Services"],"x-section":"AI builder","summary":"Modify a service with AI","description":"Use it to edit or update existing appointment booking service or add a filter to the service.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the service, in plain words - any language."},"item_data":{"type":"string","description":"The current service, as JSON - the AI changes it and returns the result."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"item_id":{"type":"string","description":"The ID of the service to change."},"item_ids":{"type":"string","description":"The service's item ids."}}}}}}}},"/booking-event/{id}":{"get":{"operationId":"get-booking-event-id","tags":["Bookings"],"x-section":"Booking","summary":"Retrieve a booking event","description":"Returns one booking event, found by its ID.","x-access":[],"x-models":["Booking"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the booking event."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/booking-receipt":{"get":{"operationId":"get-booking-receipt","tags":["Bookings"],"x-section":"Booking","summary":"Retrieve the booking receipt","description":"Returns the booking receipt.","x-access":["optional-user"],"x-models":["Booking","Service","User","AboutPage"],"parameters":[{"name":"id","in":"query","required":false,"schema":{"type":"string"},"description":"The ID of the booking receipt."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/bookings":{"get":{"operationId":"get-bookings","tags":["Bookings"],"x-section":"Booking","summary":"List all bookings","description":"Returns the site's bookings, newest first unless a sort is given.","x-access":["admin"],"x-models":["Booking"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-bookings","tags":["Bookings"],"x-section":"Booking","summary":"Create a booking","description":"Create new booking.","x-access":[],"x-models":["MyContact","Service","User","Lead","NewsletterContact","PaymentMethod","Booking"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"newsletter":{"type":"string","description":"The booking's newsletter."},"email":{"type":"string","description":"An email address."},"name":{"type":"string","description":"The booking's name."},"age":{"type":"string","description":"The booking's age."},"city":{"type":"string","description":"The booking's city."},"event_id":{"type":"string","description":"The booking's event id."}}}}}}}},"/bookings-checkout":{"post":{"operationId":"post-bookings-checkout","tags":["Bookings"],"x-section":"Booking","summary":"Create a bookings checkout","description":"Creates a bookings checkout from the fields sent.","x-access":[],"x-models":["PaymentMethod","SocialModeSettings","NewsletterContact","Service","UserPaymentSettings","User","Lead","Booking"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"newsletter":{"type":"string","description":"The bookings checkout's newsletter."},"email":{"type":"string","description":"An email address."},"name":{"type":"string","description":"The bookings checkout's name."},"age":{"type":"string","description":"The bookings checkout's age."},"city":{"type":"string","description":"The bookings checkout's city."}}}}}}}},"/bookings-date/{id}":{"patch":{"operationId":"patch-bookings-date-id","tags":["Bookings"],"x-section":"Booking","summary":"Update a bookings date","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Booking","Service"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the bookings date."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Booking"}}}}}},"/bookings-status/{id}":{"patch":{"operationId":"patch-bookings-status-id","tags":["Bookings"],"x-section":"Booking","summary":"Change the status of a booking","description":"Change the status of a booking.","x-access":["user"],"x-models":["Booking","Service","Lead","PaymentMethod","Order"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the booking."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":"The booking's status."},"order":{"type":"string","description":"The booking's order."}}}}}}}},"/bookings/{id}":{"patch":{"operationId":"patch-bookings-id","tags":["Bookings"],"x-section":"Booking","summary":"Update a booking","description":"Update Booking by id.","x-access":["user"],"x-models":["Booking"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the booking."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Booking"}}}}},"delete":{"operationId":"delete-bookings-id","tags":["Bookings"],"x-section":"Booking","summary":"Delete a booking","description":"Delete Booking record by id.","x-access":["user"],"x-models":["Booking","Service","ConnectedAccount"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the booking."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/bookings/flow":{"post":{"operationId":"post-bookings-flow","tags":["Bookings"],"x-section":"Booking","summary":"Create a booking","description":"Creates a booking from the fields sent.","x-access":[],"x-models":["Booking"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"type":"string","description":"The booking's action."},"product":{"type":"string","description":"The booking's product."},"options":{"type":"string","description":"The booking's options."}}}}}}}},"/confirm-booking/{booking_id}&{service_id}&{validation_code}":{"get":{"operationId":"get-confirm-booking-booking-id-service-id-validation-code","tags":["Bookings"],"x-section":"Booking","summary":"Confirm a booking","description":"Confirm a booking.","x-access":[],"parameters":[{"name":"booking_id","in":"path","required":true,"schema":{"type":"string"},"description":"The booking's booking id."},{"name":"service_id","in":"path","required":true,"schema":{"type":"string"},"description":"The booking's service id."},{"name":"validation_code","in":"path","required":true,"schema":{"type":"string"},"description":"The booking's validation code."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/finalize-booking":{"patch":{"operationId":"patch-finalize-booking","tags":["Bookings"],"x-section":"Booking","summary":"Update the finalize booking","description":"Changes the fields sent; the others stay as they are.","x-access":[],"x-models":["Booking","Service","Lead","User","PaymentMethod"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"booking_id":{"type":"string","description":"The finalize booking's booking id."},"payment_intent":{"type":"string","description":"The finalize booking's payment intent."},"email":{"type":"string","description":"An email address."},"event_id":{"type":"string","description":"The finalize booking's event id."}}}}}}}},"/get-hours/{service_id}/{date}/{staff_id}":{"get":{"operationId":"get-get-hours-service-id-date-staff-id","tags":["Bookings"],"x-section":"Booking","summary":"Retrieve a hour","description":"Returns one hour, found by its ID.","x-access":["optional-user"],"x-models":["Booking","UserLockedHours"],"parameters":[{"name":"service_id","in":"path","required":true,"schema":{"type":"string"},"description":"The hour's service id."},{"name":"date","in":"path","required":true,"schema":{"type":"string"},"description":"A date (YYYY-MM-DD)."},{"name":"staff_id","in":"path","required":true,"schema":{"type":"string"},"description":"The hour's staff id."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/get-services/{id}":{"get":{"operationId":"get-get-services-id","tags":["Bookings"],"x-section":"Booking","summary":"Retrieve a service","description":"Returns one service, found by its ID.","x-access":["optional-user"],"x-models":["Service"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the service."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/my_bookings/{id}":{"get":{"operationId":"get-my-bookings-id","tags":["Bookings"],"x-section":"Booking","summary":"Retrieve a booking","description":"Returns one booking, found by its ID.","x-access":["optional-user"],"x-models":["Booking"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the booking."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/user-booking-change/{booking_id}":{"delete":{"operationId":"delete-user-booking-change-booking-id","tags":["Bookings"],"x-section":"Booking","summary":"Delete a user booking change","description":"Deletes the user booking change. This cannot be undone.","x-access":["user"],"parameters":[{"name":"booking_id","in":"path","required":true,"schema":{"type":"string"},"description":"The user booking change's booking id."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/beds24-settings":{"get":{"operationId":"get-beds24-settings","tags":["Bookings"],"x-section":"Beds24 Settings","summary":"List all beds24 settings","description":"Returns the site's beds24 settings, newest first unless a sort is given.","x-access":["admin"],"x-models":["Beds24Settings"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-beds24-settings","tags":["Bookings"],"x-section":"Beds24 Settings","summary":"Create a beds24 setting","description":"Creates a beds24 setting from the fields sent.","x-access":["admin"],"x-models":["MyContact","Beds24Settings"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"inviteCode":{"type":"string","description":"The beds24 setting's invite code."}}}}}}}},"/beds24-settings/{id}":{"patch":{"operationId":"patch-beds24-settings-id","tags":["Bookings"],"x-section":"Beds24 Settings","summary":"Update a beds24 setting","description":"Changes the fields sent; the others stay as they are.","x-access":["admin"],"x-models":["Beds24Settings","Service"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the beds24 setting."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"room_mappings":{"description":"The beds24 setting's room mappings."}}}}}}},"delete":{"operationId":"delete-beds24-settings-id","tags":["Bookings"],"x-section":"Beds24 Settings","summary":"Delete a beds24 setting","description":"Deletes the beds24 setting. This cannot be undone.","x-access":["admin"],"x-models":["Beds24Settings","ConnectedAccount"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the beds24 setting."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/beds24-settings/{id}/sync":{"post":{"operationId":"post-beds24-settings-id-sync","tags":["Bookings"],"x-section":"Beds24 Settings","summary":"Sync the beds24 setting","description":"Sync the beds24 setting.","x-access":["admin"],"x-models":["Beds24Settings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the beds24 setting."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/beds24-settings/rooms":{"get":{"operationId":"get-beds24-settings-rooms","tags":["Bookings"],"x-section":"Beds24 Settings","summary":"List all beds24 settings","description":"Returns the site's beds24 settings, newest first unless a sort is given.","x-access":["admin"],"x-models":["Beds24Settings"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/program-likes/{id}":{"patch":{"operationId":"patch-program-likes-id","tags":["Programs"],"x-section":"Program","summary":"Like or unlike a program","description":"Like or unlike a program.","x-access":["user"],"x-models":["Program","UserEngagementNotification"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the program."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/program-redirect/{url}":{"get":{"operationId":"get-program-redirect-url","tags":["Programs"],"x-section":"Program","summary":"Find a program by its address","description":"Find a program by its address.","x-access":["optional-user"],"x-models":["MyContact","SocialModeSettings"],"parameters":[{"name":"url","in":"path","required":true,"schema":{"type":"string"},"description":"The program's URL slug, as in its address on the site."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/program-saves/{id}":{"patch":{"operationId":"patch-program-saves-id","tags":["Programs"],"x-section":"Program","summary":"Save or unsave a program","description":"Save or unsave a program.","x-access":["user"],"x-models":["Program"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the program."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/programs":{"get":{"operationId":"get-programs","tags":["Programs"],"x-section":"Program","summary":"List all programs","description":"Returns the site's programs, newest first unless a sort is given.","x-access":["user-priv","optional-user"],"x-models":["Theme","MyContact","SocialModeSettings","Collection","Program","AboutPage"],"parameters":[{"name":"published","in":"query","required":false,"schema":{"type":"string"},"description":"Only programs with this published."},{"name":"completed","in":"query","required":false,"schema":{"type":"string"},"description":"Only programs with this completed."},{"name":"sortBy","in":"query","required":false,"schema":{"type":"string"},"description":"The order of the results."},{"name":"collection","in":"query","required":false,"schema":{"type":"string"},"description":"Only results in this collection."},{"name":"skip","in":"query","required":false,"schema":{"type":"string"},"description":"How many results to skip - for paging."},{"name":"where","in":"query","required":false,"schema":{"type":"string"},"description":"Only programs with this where."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"402":{"description":"The content needs a subscription: the user has no price plan that unlocks it."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-programs","tags":["Programs"],"x-section":"Program","summary":"Create a program","description":"Create new program.","x-access":["user"],"x-models":["ConnectedAccount","SocialModeSettings","Program","ProfessionalAccount"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"Name of the program, required."},"on_behalf_of":{"type":"string","description":"The program's on behalf of."}}}}}}}},"/programs/{id}":{"patch":{"operationId":"patch-programs-id","tags":["Programs"],"x-section":"Program","summary":"Update a program","description":"Update Program by id.","x-access":["user"],"x-models":["Program","ConnectedAccount","SocialModeSettings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the program."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"convertedPrice":{"type":"string","description":"The program's converted price."}}}}}}},"delete":{"operationId":"delete-programs-id","tags":["Programs"],"x-section":"Program","summary":"Delete a program","description":"Delete Program record by id.","x-access":["user"],"x-models":["Program","ConnectedAccount"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the program."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/programs/{url}":{"get":{"operationId":"get-programs-url","tags":["Programs"],"x-section":"Program","summary":"Retrieve a program","description":"Returns one program, found by its URL slug.","x-access":["page-priv","optional-user"],"x-models":["Program","MyContact","SocialModeSettings","Collection","Video","PaymentMethod","Order","Comment","RatingSettings","Rating"],"parameters":[{"name":"url","in":"path","required":true,"schema":{"type":"string"},"description":"The program's URL slug, as in its address on the site."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"402":{"description":"The content needs a subscription: the user has no price plan that unlocks it."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/program-progress":{"get":{"operationId":"get-program-progress","tags":["Programs"],"x-section":"Program Progress","summary":"Retrieve the program progress","description":"Returns the program progress.","x-access":[],"x-models":["ProgramProgress"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-program-progress","tags":["Programs"],"x-section":"Program Progress","summary":"Create a program progress","description":"Create new program_progress.","x-access":["user"],"x-models":["ProgramProgress","Program","Order"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"program":{"type":"string","description":"The program - the ID of a program."}}}}}}}},"/program-progress/{id}":{"get":{"operationId":"get-program-progress-id","tags":["Programs"],"x-section":"Program Progress","summary":"Retrieve a program progress","description":"Returns one program progress, found by its ID.","x-access":["optional-user","user"],"x-models":["ProgramProgress","Video","AboutPage","MyContact"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the program progress."},{"name":"week","in":"query","required":false,"schema":{"type":"string"},"description":"Only program progresses with this week."},{"name":"day","in":"query","required":false,"schema":{"type":"string"},"description":"Only program progresses with this day."},{"name":"step","in":"query","required":false,"schema":{"type":"string"},"description":"Only program progresses with this step."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-program-progress-id","tags":["Programs"],"x-section":"Program Progress","summary":"Update a program progress","description":"Update ProgramProgress by id.","x-access":["user"],"x-models":["ProgramProgress","Program"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the program progress."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"concatinated_progress":{"type":"string","description":"The program progress's concatinated progress."},"isCompleted":{"type":"string","description":"The program progress's is completed."},"split":{"type":"string","description":"The program progress's split."},"progress":{"type":"string","description":"The program progress's progress."}}}}}}},"delete":{"operationId":"delete-program-progress-id","tags":["Programs"],"x-section":"Program Progress","summary":"Delete a program progress","description":"Delete ProgramProgress record by id.","x-access":["user"],"x-models":["ProgramProgress"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the program progress."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/tracker":{"get":{"operationId":"get-tracker","tags":["Programs"],"x-section":"Tracker","summary":"Retrieve the tracker","description":"Returns the tracker.","x-access":["optional-user","user"],"x-models":["Tracker","MyContact","TrackerProgress","Theme"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-tracker","tags":["Programs"],"x-section":"Tracker","summary":"Create a tracker","description":"Create new tracker.","x-access":["admin"],"x-models":["Tracker"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Tracker"}}}}}},"/tracker/{id}":{"get":{"operationId":"get-tracker-id","tags":["Programs"],"x-section":"Tracker","summary":"Retrieve a tracker","description":"Returns one tracker, found by its ID.","x-access":["user"],"x-models":["Tracker"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the tracker."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-tracker-id","tags":["Programs"],"x-section":"Tracker","summary":"Update a tracker","description":"Update Tracker by id.","x-access":["admin"],"x-models":["Tracker"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the tracker."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Tracker"}}}}},"delete":{"operationId":"delete-tracker-id","tags":["Programs"],"x-section":"Tracker","summary":"Delete a tracker","description":"Delete Tracker record by id.","x-access":["admin"],"x-models":["Tracker"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the tracker."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/tracker-progress":{"get":{"operationId":"get-tracker-progress","tags":["Programs"],"x-section":"Tracker Progress","summary":"Retrieve the tracker progress","description":"Returns the tracker progress.","x-access":["optional-user","user"],"x-models":["TrackerProgress","Tracker","MyContact"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-tracker-progress","tags":["Programs"],"x-section":"Tracker Progress","summary":"Create a tracker progress","description":"Create new tracker_progress.","x-access":["user"],"x-models":["TrackerProgress"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","description":"The tracker progress's body."}}}}}}}},"/tracker-progress/{id}":{"get":{"operationId":"get-tracker-progress-id","tags":["Programs"],"x-section":"Tracker Progress","summary":"Retrieve a tracker progress","description":"Returns one tracker progress, found by its ID.","x-access":["user"],"x-models":["TrackerProgress"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the tracker progress."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-tracker-progress-id","tags":["Programs"],"x-section":"Tracker Progress","summary":"Update a tracker progress","description":"Update TrackerProgress by id.","x-access":["user"],"x-models":["TrackerProgress"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the tracker progress."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackerProgress"}}}}},"delete":{"operationId":"delete-tracker-progress-id","tags":["Programs"],"x-section":"Tracker Progress","summary":"Delete a tracker progress","description":"Delete TrackerProgress record by id.","x-access":["user"],"x-models":["TrackerProgress"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the tracker progress."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/create-new-program":{"post":{"operationId":"post-create-new-program","tags":["Programs"],"x-section":"AI builder","summary":"Create a program with AI","description":"Create a program from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the program, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the program to change."}}}}}}}},"/generate-program":{"post":{"operationId":"post-generate-program","tags":["Programs"],"x-section":"AI builder","summary":"Generate a program with AI","description":"Use it to create a new online course or program from scratch or a prompt.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the program, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/modify-program":{"post":{"operationId":"post-modify-program","tags":["Programs"],"x-section":"AI builder","summary":"Modify a program with AI","description":"Use it to edit or update an existing online course or program.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the program, in plain words - any language."},"item_data":{"type":"string","description":"The current program, as JSON - the AI changes it and returns the result."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"item_id":{"type":"string","description":"The ID of the program to change."},"item_ids":{"type":"string","description":"The program's item ids."}}}}}}}},"/modify-tracker-settings":{"post":{"operationId":"post-modify-tracker-settings","tags":["Programs"],"x-section":"AI builder","summary":"Modify a tracker setting with AI","description":"Use it to set up, configure, or update the built-in progress tracker.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the tracker setting, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the tracker setting to change."}}}}}}}},"/donations":{"get":{"operationId":"get-donations","tags":["Donations"],"x-section":"Donation","summary":"List all donations","description":"Returns the site's donations, newest first unless a sort is given.","x-access":["user-priv","optional-user"],"x-models":["Theme","MyContact","SocialModeSettings","Collection","Donation","AboutPage","Order"],"parameters":[{"name":"published","in":"query","required":false,"schema":{"type":"string"},"description":"Only donations with this published."},{"name":"completed","in":"query","required":false,"schema":{"type":"string"},"description":"Only donations with this completed."},{"name":"sortBy","in":"query","required":false,"schema":{"type":"string"},"description":"The order of the results."},{"name":"collection","in":"query","required":false,"schema":{"type":"string"},"description":"Only results in this collection."},{"name":"skip","in":"query","required":false,"schema":{"type":"string"},"description":"How many results to skip - for paging."},{"name":"where","in":"query","required":false,"schema":{"type":"string"},"description":"Only donations with this where."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"402":{"description":"The content needs a subscription: the user has no price plan that unlocks it."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-donations","tags":["Donations"],"x-section":"Donation","summary":"Create a donation","description":"Creates a donation from the fields sent.","x-access":["admin"],"x-models":["Donation"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"Name of the campaign, required."}}}}}}}},"/donations/{id}":{"patch":{"operationId":"patch-donations-id","tags":["Donations"],"x-section":"Donation","summary":"Update a donation","description":"Changes the fields sent; the others stay as they are.","x-access":["admin"],"x-models":["Donation"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the donation."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Donation"}}}}},"delete":{"operationId":"delete-donations-id","tags":["Donations"],"x-section":"Donation","summary":"Delete a donation","description":"Deletes the donation. This cannot be undone.","x-access":["admin"],"x-models":["Donation"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the donation."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/donations/{url}":{"get":{"operationId":"get-donations-url","tags":["Donations"],"x-section":"Donation","summary":"Retrieve a donation","description":"Returns one donation, found by its URL slug.","x-access":["page-priv","optional-user"],"x-models":["Donation","MyContact","SocialModeSettings","PaymentMethod","Order","Comment","RatingSettings","Rating","Cart"],"parameters":[{"name":"url","in":"path","required":true,"schema":{"type":"string"},"description":"The donation's URL slug, as in its address on the site."},{"name":"sessionId","in":"query","required":false,"schema":{"type":"string"},"description":"Only donations with this session id."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"402":{"description":"The content needs a subscription: the user has no price plan that unlocks it."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/create-new-donation":{"post":{"operationId":"post-create-new-donation","tags":["Donations"],"x-section":"AI builder","summary":"Create a donation with AI","description":"Create a donation from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the donation, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the donation to change."}}}}}}}},"/generate-donation":{"post":{"operationId":"post-generate-donation","tags":["Donations"],"x-section":"AI builder","summary":"Generate a donation with AI","description":"Use it to create a new donation or fundraising campaign from scratch or a prompt.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the donation, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/modify-donation":{"post":{"operationId":"post-modify-donation","tags":["Donations"],"x-section":"AI builder","summary":"Modify a donation with AI","description":"Use it to edit or update an existing donation campaign.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the donation, in plain words - any language."},"item_data":{"type":"string","description":"The current donation, as JSON - the AI changes it and returns the result."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"item_id":{"type":"string","description":"The ID of the donation to change."},"item_ids":{"type":"string","description":"The donation's item ids."}}}}}}}},"/events":{"get":{"operationId":"get-events","tags":["Events"],"x-section":"Event","summary":"List all events","description":"Returns the site's events, newest first unless a sort is given.","x-access":["optional-user"],"x-models":["Event"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-events","tags":["Events"],"x-section":"Event","summary":"Create an event","description":"Creates an event from the fields sent.","x-access":["user"],"x-models":["Event"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Event"}}}}}},"/events/{id}":{"get":{"operationId":"get-events-id","tags":["Events"],"x-section":"Event","summary":"Retrieve an event","description":"Returns one event, found by its ID.","x-access":["optional-user"],"x-models":["Event"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the event."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-events-id","tags":["Events"],"x-section":"Event","summary":"Update an event","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Event"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the event."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Event"}}}}},"delete":{"operationId":"delete-events-id","tags":["Events"],"x-section":"Event","summary":"Delete an event","description":"Deletes the event. This cannot be undone.","x-access":["user"],"x-models":["Event"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the event."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/seating-plans":{"get":{"operationId":"get-seating-plans","tags":["Events"],"x-section":"Seating Plan","summary":"List all seating plans","description":"Returns the site's seating plans, newest first unless a sort is given.","x-access":[],"x-models":["SeatingPlan"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-seating-plans","tags":["Events"],"x-section":"Seating Plan","summary":"Create a seating plan","description":"Creates a seating plan from the fields sent.","x-access":["user"],"x-models":["SeatingPlan"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeatingPlan"}}}}}},"/seating-plans/{id}":{"get":{"operationId":"get-seating-plans-id","tags":["Events"],"x-section":"Seating Plan","summary":"Retrieve a seating plan","description":"Returns one seating plan, found by its ID.","x-access":[],"x-models":["SeatingPlan"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the seating plan."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-seating-plans-id","tags":["Events"],"x-section":"Seating Plan","summary":"Update a seating plan","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["SeatingPlan"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the seating plan."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeatingPlan"}}}}},"delete":{"operationId":"delete-seating-plans-id","tags":["Events"],"x-section":"Seating Plan","summary":"Delete a seating plan","description":"Deletes the seating plan. This cannot be undone.","x-access":["user"],"x-models":["SeatingPlan"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the seating plan."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/events-date/{id}/{date_index}":{"get":{"operationId":"get-events-date-id-date-index","tags":["Events"],"x-section":"Ticket","summary":"Retrieve an events date","description":"Returns one events date, found by its ID.","x-access":["optional-user"],"x-models":["Event"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the events date."},{"name":"date_index","in":"path","required":true,"schema":{"type":"string"},"description":"The events date's date index."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/ticket/{id}":{"get":{"operationId":"get-ticket-id","tags":["Events"],"x-section":"Ticket","summary":"Retrieve a ticket","description":"Returns one ticket, found by its ID.","x-access":["optional-user"],"x-models":["Ticket","Event","Order","QrCode"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the ticket."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/tickets":{"post":{"operationId":"post-tickets","tags":["Events"],"x-section":"Ticket","summary":"Create a ticket","description":"Creates a ticket from the fields sent.","x-access":["optional-user"],"x-models":["Event","Ticket"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"findIndex":{"type":"string","description":"The ticket's find index."},"splice":{"type":"string","description":"The ticket's splice."},"push":{"type":"string","description":"The ticket's push."},"tickets":{"type":"string","description":"The ticket's tickets."},"freeze_action":{"type":"string","description":"The ticket's freeze action."},"bought_by_admin":{"type":"string","description":"The ticket's bought by admin."},"freeze":{"type":"string","description":"The ticket's freeze."}}}}}}}},"/venues":{"get":{"operationId":"get-venues","tags":["Events"],"x-section":"Venue","summary":"List all venues","description":"Returns the site's venues, newest first unless a sort is given.","x-access":[],"x-models":["Venue"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-venues","tags":["Events"],"x-section":"Venue","summary":"Create a venue","description":"Creates a venue from the fields sent.","x-access":["user"],"x-models":["Venue"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Venue"}}}}}},"/venues/{id}":{"get":{"operationId":"get-venues-id","tags":["Events"],"x-section":"Venue","summary":"Retrieve a venue","description":"Returns one venue, found by its ID.","x-access":[],"x-models":["Venue"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the venue."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-venues-id","tags":["Events"],"x-section":"Venue","summary":"Update a venue","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Venue"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the venue."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Venue"}}}}},"delete":{"operationId":"delete-venues-id","tags":["Events"],"x-section":"Venue","summary":"Delete a venue","description":"Deletes the venue. This cannot be undone.","x-access":["user"],"x-models":["Venue"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the venue."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/create-new-event":{"post":{"operationId":"post-create-new-event","tags":["Events"],"x-section":"AI builder","summary":"Create an event with AI","description":"Create an event from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the event, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the event to change."}}}}}}}},"/create-new-seating-plan":{"post":{"operationId":"post-create-new-seating-plan","tags":["Events"],"x-section":"AI builder","summary":"Create a seating plan with AI","description":"Create a seating plan from a prompt, written by the AI builder.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the seating plan, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the seating plan to change."}}}}}}}},"/create-new-venue":{"post":{"operationId":"post-create-new-venue","tags":["Events"],"x-section":"AI builder","summary":"Create a venue with AI","description":"Create a venue from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the venue, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the venue to change."}}}}}}}},"/generate-event":{"post":{"operationId":"post-generate-event","tags":["Events"],"x-section":"AI builder","summary":"Generate an event with AI","description":"Use it to create a new ticketed event with dates, ticket tiers, and a venue.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the event, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/generate-seating-plan":{"post":{"operationId":"post-generate-seating-plan","tags":["Events"],"x-section":"AI builder","summary":"Generate a seating plan with AI","description":"Use it to create a new seating plan or seat map layout for an event venue.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the seating plan, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/generate-venue":{"post":{"operationId":"post-generate-venue","tags":["Events"],"x-section":"AI builder","summary":"Generate a venue with AI","description":"Use it to create a new event venue (name, address, and origin/region).","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the venue, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/modify-event":{"post":{"operationId":"post-modify-event","tags":["Events"],"x-section":"AI builder","summary":"Modify an event with AI","description":"Use it to edit or update an existing event.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the event, in plain words - any language."},"item_data":{"type":"string","description":"The current event, as JSON - the AI changes it and returns the result."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"item_id":{"type":"string","description":"The ID of the event to change."},"item_ids":{"type":"string","description":"The event's item ids."}}}}}}}},"/modify-seating-plan":{"post":{"operationId":"post-modify-seating-plan","tags":["Events"],"x-section":"AI builder","summary":"Modify a seating plan with AI","description":"Use it to edit or update an existing seating plan.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the seating plan, in plain words - any language."},"item_data":{"type":"string","description":"The current seating plan, as JSON - the AI changes it and returns the result."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/modify-venue":{"post":{"operationId":"post-modify-venue","tags":["Events"],"x-section":"AI builder","summary":"Modify a venue with AI","description":"Use it to edit or update an existing venue.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the venue, in plain words - any language."},"item_data":{"type":"string","description":"The current venue, as JSON - the AI changes it and returns the result."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"item_id":{"type":"string","description":"The ID of the venue to change."},"item_ids":{"type":"string","description":"The venue's item ids."}}}}}}}},"/associated-groups/{id}":{"get":{"operationId":"get-associated-groups-id","tags":["Collections"],"x-section":"Collection","summary":"Retrieve an associated group","description":"Get associated collections to another collection.","x-access":[],"x-models":["Collection"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the associated group."},{"name":"topic","in":"query","required":false,"schema":{"type":"string"},"description":"Only associated groups with this topic."},{"name":"service","in":"query","required":false,"schema":{"type":"string"},"description":"Only associated groups with this service."},{"name":"donation-topic","in":"query","required":false,"schema":{"type":"string"},"description":"Only associated groups with this donation topic."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/collections":{"get":{"operationId":"get-collections","tags":["Collections"],"x-section":"Collection","summary":"List all collections","description":"Returns the site's collections, newest first unless a sort is given.","x-access":[],"x-models":["Collection"],"parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string"},"description":"Only collections with this type."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-collections","tags":["Collections"],"x-section":"Collection","summary":"Create a collection","description":"Create new collection.","x-access":["admin"],"x-models":["Collection","SiteMenu"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"createNav":{"type":"string","description":"The collection's create nav."}}}}}}}},"/collections-reorder":{"patch":{"operationId":"patch-collections-reorder","tags":["Collections"],"x-section":"Collection","summary":"Reorder collections","description":"Persist a new display order for a set of collections.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"string","description":"The collection's items."}}}}}}}},"/collections/{id}":{"get":{"operationId":"get-collections-id","tags":["Collections"],"x-section":"Collection","summary":"Retrieve a collection","description":"Returns one collection, found by its ID.","x-access":[],"x-models":["Collection"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the collection."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-collections-id","tags":["Collections"],"x-section":"Collection","summary":"Update a collection","description":"Update Collection by id.","x-access":["admin"],"x-models":["Collection","SiteMenu"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the collection."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Collection"}}}}},"delete":{"operationId":"delete-collections-id","tags":["Collections"],"x-section":"Collection","summary":"Delete a collection","description":"Delete Collection record by id.","x-access":["admin"],"x-models":["Collection"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the collection."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/collections/{id}/media":{"get":{"operationId":"get-collections-id-media","tags":["Collections"],"x-section":"Collection","summary":"Retrieve a collection","description":"Returns one collection, found by its ID.","x-access":[],"x-models":["Collection"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the collection."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-collections-id-media","tags":["Collections"],"x-section":"Collection","summary":"Create a collection","description":"Creates a collection from the fields sent.","x-access":["admin"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the collection."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]},"delete":{"operationId":"delete-collections-id-media","tags":["Collections"],"x-section":"Collection","summary":"Delete a collection","description":"Deletes the collection. This cannot be undone.","x-access":["admin"],"x-models":["Collection","Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the collection."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/create-new-collection":{"post":{"operationId":"post-create-new-collection","tags":["Collections"],"x-section":"AI builder","summary":"Create a collection with AI","description":"Create a collection from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the collection, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the collection to change."}}}}}}}},"/generate-collection":{"post":{"operationId":"post-generate-collection","tags":["Collections"],"x-section":"AI builder","summary":"Generate a collection with AI","description":"Use it to create a new category/collection/filter/store/topic for products, services, programs, blogposts, or donations.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the collection, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/generate-undefined-collection":{"post":{"operationId":"post-generate-undefined-collection","tags":["Collections"],"x-section":"AI builder","summary":"Generate an undefined collection with AI","description":"Generate an undefined collection from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/modify-collection":{"post":{"operationId":"post-modify-collection","tags":["Collections"],"x-section":"AI builder","summary":"Modify a collection with AI","description":"Use it to modify existing collection/category/filter.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the collection, in plain words - any language."},"item_data":{"type":"string","description":"The current collection, as JSON - the AI changes it and returns the result."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"item_id":{"type":"string","description":"The ID of the collection to change."},"item_ids":{"type":"string","description":"The collection's item ids."}}}}}}}},"/boxnow-offices":{"get":{"operationId":"get-boxnow-offices","tags":["Orders & checkout"],"x-section":"Boxnow Settings","summary":"List all boxnow offices","description":"Returns the site's boxnow offices, newest first unless a sort is given.","x-access":[],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/boxnow-settings":{"post":{"operationId":"post-boxnow-settings","tags":["Orders & checkout"],"x-section":"Boxnow Settings","summary":"Create a boxnow setting","description":"Creates a boxnow setting from the fields sent.","x-access":["user"],"x-models":["ConnectedAccount","BoxNowSettings"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"on_behalf_of":{"type":"string","description":"The boxnow setting's on behalf of."}}}}}}}},"/boxnow-settings/{delivery}":{"get":{"operationId":"get-boxnow-settings-delivery","tags":["Orders & checkout"],"x-section":"Boxnow Settings","summary":"List all boxnow settings","description":"Returns the site's boxnow settings, newest first unless a sort is given.","x-access":["user"],"x-models":["BoxNowSettings"],"parameters":[{"name":"delivery","in":"path","required":true,"schema":{"type":"string"},"description":"The boxnow setting's delivery."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/boxnow-settings/{id}":{"patch":{"operationId":"patch-boxnow-settings-id","tags":["Orders & checkout"],"x-section":"Boxnow Settings","summary":"Update a boxnow setting","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["BoxNowSettings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the boxnow setting."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BoxNowSettings"}}}}},"delete":{"operationId":"delete-boxnow-settings-id","tags":["Orders & checkout"],"x-section":"Boxnow Settings","summary":"Delete a boxnow setting","description":"Deletes the boxnow setting. This cannot be undone.","x-access":["user"],"x-models":["BoxNowSettings","ConnectedAccount"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the boxnow setting."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/boxnow-shipping-id/{id}":{"patch":{"operationId":"patch-boxnow-shipping-id-id","tags":["Orders & checkout"],"x-section":"Boxnow Settings","summary":"Update a boxnow shipping","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["BoxNowSettings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the boxnow shipping."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"shipping":{"type":"string","description":"The boxnow shipping's shipping."}}}}}}}},"/carts":{"get":{"operationId":"get-carts","tags":["Orders & checkout"],"x-section":"Cart","summary":"List all carts","description":"Returns the site's carts, newest first unless a sort is given.","x-access":["user"],"x-models":["Cart"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-carts","tags":["Orders & checkout"],"x-section":"Cart","summary":"Create a cart","description":"Creates a cart from the fields sent.","x-access":["user"],"x-models":["Cart"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Cart"}}}}}},"/carts/{id}":{"patch":{"operationId":"patch-carts-id","tags":["Orders & checkout"],"x-section":"Cart","summary":"Update a cart","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Cart"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the cart."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Cart"}}}}},"delete":{"operationId":"delete-carts-id","tags":["Orders & checkout"],"x-section":"Cart","summary":"Delete a cart","description":"Deletes the cart. This cannot be undone.","x-access":["user"],"x-models":["Cart"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the cart."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/carts/count":{"get":{"operationId":"get-carts-count","tags":["Orders & checkout"],"x-section":"Cart","summary":"Count carts","description":"Count carts.","x-access":[],"x-models":["Cart"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/my_carts":{"get":{"operationId":"get-my-carts","tags":["Orders & checkout"],"x-section":"Cart","summary":"List all carts","description":"Returns the site's carts, newest first unless a sort is given.","x-access":["optional-user"],"x-models":["Cart","Product","Collection","Inventory","Coupon","MyContact","SocialModeSettings","Shipping","EcontSettings","SpeedySettings","BoxNowSettings","RatingSettings","Rating"],"parameters":[{"name":"sessionId","in":"query","required":false,"schema":{"type":"string"},"description":"Only carts with this session id."},{"name":"pending_coupon","in":"query","required":false,"schema":{"type":"string"},"description":"Only carts with this pending coupon."},{"name":"region","in":"query","required":false,"schema":{"type":"string"},"description":"Only carts with this region."},{"name":"cart_only","in":"query","required":false,"schema":{"type":"string"},"description":"Only carts with this cart only."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/econt-settings":{"post":{"operationId":"post-econt-settings","tags":["Orders & checkout"],"x-section":"Econt Settings","summary":"Create an econt setting","description":"Creates an econt setting from the fields sent.","x-access":["user"],"x-models":["ConnectedAccount","EcontSettings"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"on_behalf_of":{"type":"string","description":"The econt setting's on behalf of."}}}}}}}},"/econt-settings/{delivery}":{"get":{"operationId":"get-econt-settings-delivery","tags":["Orders & checkout"],"x-section":"Econt Settings","summary":"List all econt settings","description":"Returns the site's econt settings, newest first unless a sort is given.","x-access":["user"],"x-models":["EcontSettings"],"parameters":[{"name":"delivery","in":"path","required":true,"schema":{"type":"string"},"description":"The econt setting's delivery."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/econt-settings/{id}":{"patch":{"operationId":"patch-econt-settings-id","tags":["Orders & checkout"],"x-section":"Econt Settings","summary":"Update an econt setting","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["EcontSettings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the econt setting."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EcontSettings"}}}}}},"/econt-shipping-id/{id}":{"patch":{"operationId":"patch-econt-shipping-id-id","tags":["Orders & checkout"],"x-section":"Econt Settings","summary":"Update an econt shipping","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["EcontSettings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the econt shipping."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"shipping":{"type":"string","description":"The econt shipping's shipping."}}}}}}}},"/abandoned-orders":{"get":{"operationId":"get-abandoned-orders","tags":["Orders & checkout"],"x-section":"Order","summary":"List all abandoned orders","description":"Returns the site's abandoned orders, newest first unless a sort is given.","x-access":["user"],"x-models":["Order"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/orders":{"get":{"operationId":"get-orders","tags":["Orders & checkout"],"x-section":"Order","summary":"List all orders","description":"Returns the site's orders, newest first unless a sort is given.","x-access":["user"],"x-models":["Order"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-orders","tags":["Orders & checkout"],"x-section":"Order","summary":"Create an order","description":"Creates an order from the fields sent.","x-access":[],"x-models":["Order"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"products":{"type":"array","items":{"type":"string"},"description":"The order's products."}}}}}}}},"/orders/{id}":{"get":{"operationId":"get-orders-id","tags":["Orders & checkout"],"x-section":"Order","summary":"Retrieve an order","description":"Returns one order, found by its ID.","x-access":[],"x-models":["Order"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the order."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/origin-address":{"get":{"operationId":"get-origin-address","tags":["Orders & checkout"],"x-section":"Origin Address","summary":"Retrieve the origin address","description":"Returns the origin address.","x-access":[],"x-models":["OriginAddress"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-origin-address","tags":["Orders & checkout"],"x-section":"Origin Address","summary":"Create an origin address","description":"Create new origin_addres.","x-access":["admin"],"x-models":["OriginAddress"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OriginAddress"}}}}}},"/origin-address/{id}":{"get":{"operationId":"get-origin-address-id","tags":["Orders & checkout"],"x-section":"Origin Address","summary":"Retrieve an origin address","description":"Returns one origin address, found by its ID.","x-access":[],"x-models":["OriginAddress"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the origin address."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-origin-address-id","tags":["Orders & checkout"],"x-section":"Origin Address","summary":"Update an origin address","description":"Update OriginAddress by id.","x-access":["admin"],"x-models":["OriginAddress"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the origin address."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OriginAddress"}}}}},"delete":{"operationId":"delete-origin-address-id","tags":["Orders & checkout"],"x-section":"Origin Address","summary":"Delete an origin address","description":"Delete OriginAddress record by id.","x-access":["admin"],"x-models":["OriginAddress"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the origin address."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/checkout":{"post":{"operationId":"post-checkout","tags":["Orders & checkout"],"x-section":"Payment","summary":"Create a checkout","description":"Creates a checkout from the fields sent.","x-access":[],"x-models":["PaymentMethod","SocialModeSettings","Order","Ticket","Event","Product","Program","Donation","UserPaymentSettings","Lead","Cart","Tax"],"parameters":[{"name":"sessionId","in":"query","required":false,"schema":{"type":"string"},"description":"Only checkouts with this session id."}],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"order_id":{"type":"string","description":"The checkout's order id."},"use_admin_pm":{"type":"string","description":"The checkout's use admin pm."}}}}}}}},"/client_token":{"get":{"operationId":"get-client-token","tags":["Orders & checkout"],"x-section":"Payment","summary":"Retrieve the client token","description":"Returns the client token.","x-access":[],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/finalize-order":{"patch":{"operationId":"patch-finalize-order","tags":["Orders & checkout"],"x-section":"Payment","summary":"Update the finalize order","description":"Changes the fields sent; the others stay as they are.","x-access":[],"x-models":["Order","User","Inventory","Ticket","Event","Product","Program","Donation","Post","Lead","PaymentMethod","QrCode"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"order_id":{"type":"string","description":"The finalize order's order id."},"payment_intent":{"type":"string","description":"The finalize order's payment intent."},"ads_credits":{"type":"string","description":"The finalize order's ads credits."},"user_id":{"type":"string","description":"The finalize order's user id."},"post_id":{"type":"string","description":"The finalize order's post id."}}}}}}}},"/payment":{"get":{"operationId":"get-payment","tags":["Orders & checkout"],"x-section":"Payment","summary":"Retrieve the payment","description":"Returns the payment.","x-access":["optional-user"],"x-models":["Order","MyContact","SocialModeSettings","Cart","Ticket","Coupon","PaymentMethod","Lead","User","Product","Collection","Inventory","Post","Program","Event","Donation","Shipping","UserPaymentSettings","EcontSettings","SpeedySettings","BoxNowSettings","Tax","InvoiceSettings","PriceQuote"],"parameters":[{"name":"order_id","in":"query","required":false,"schema":{"type":"string"},"description":"Only payments with this order id."},{"name":"skip_check","in":"query","required":false,"schema":{"type":"string"},"description":"Only payments with this skip check."},{"name":"sessionId","in":"query","required":false,"schema":{"type":"string"},"description":"Only payments with this session id."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/payment-receipt":{"get":{"operationId":"get-payment-receipt","tags":["Orders & checkout"],"x-section":"Payment","summary":"Retrieve the payment receipt","description":"Returns the payment receipt.","x-access":["optional-user"],"x-models":["Order","PaymentMethod","SocialModeSettings","AboutPage","Product","Program","Ticket","Event","QrCode","Donation","Shipping","Tax"],"parameters":[{"name":"id","in":"query","required":false,"schema":{"type":"string"},"description":"The ID of the payment receipt."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/ticket-pdf/{id}":{"get":{"operationId":"get-ticket-pdf-id","tags":["Orders & checkout"],"x-section":"Payment","summary":"Retrieve a ticket pdf","description":"Returns one ticket pdf, found by its ID.","x-access":["optional-user"],"x-models":["Order","Ticket","Event","QrCode","PaymentMethod","Theme","MyContact"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the ticket pdf."},{"name":"download_only","in":"query","required":false,"schema":{"type":"string"},"description":"Only ticket pdfs with this download only."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/merchant_account_link/{status}/{id}":{"get":{"operationId":"get-merchant-account-link-status-id","tags":["Orders & checkout"],"x-section":"Payment Metod","summary":"Retrieve a merchant account link","description":"Returns one merchant account link, found by its ID.","x-access":["admin"],"parameters":[{"name":"status","in":"path","required":true,"schema":{"type":"string"},"description":"The merchant account link's status."},{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the merchant account link."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/payment_methods":{"post":{"operationId":"post-payment-methods","tags":["Orders & checkout"],"x-section":"Payment Metod","summary":"Create a payment method","description":"Creates a payment method from the fields sent.","x-access":["admin"],"x-models":["PaymentMethod"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentMethod"}}}}},"get":{"operationId":"get-payment-methods","tags":["Price plans & subscriptions"],"x-section":"Subscription","summary":"List all payment methods","description":"Returns the site's payment methods, newest first unless a sort is given.","x-access":["admin"],"x-models":["PaymentMethod"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/payment_methods/{id}":{"get":{"operationId":"get-payment-methods-id","tags":["Orders & checkout"],"x-section":"Payment Metod","summary":"Retrieve a payment method","description":"Returns one payment method, found by its ID.","x-access":["admin"],"x-models":["PaymentMethod"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the payment method."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-payment-methods-id","tags":["Orders & checkout"],"x-section":"Payment Metod","summary":"Update a payment method","description":"Changes the fields sent; the others stay as they are.","x-access":["admin"],"x-models":["PaymentMethod"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the payment method."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"has_card":{"type":"boolean","description":"Whether the payment method is has card."},"email":{"type":"string","description":"An email address."},"country":{"type":"string","description":"The payment method's country."}}}}}}},"delete":{"operationId":"delete-payment-methods-id","tags":["Orders & checkout"],"x-section":"Payment Metod","summary":"Delete a payment method","description":"Deletes the payment method. This cannot be undone.","x-access":["admin"],"x-models":["PaymentMethod"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the payment method."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/receipt-adjustments":{"get":{"operationId":"get-receipt-adjustments","tags":["Orders & checkout"],"x-section":"Receipt Adjustment","summary":"List all receipt adjustments","description":"Returns the site's receipt adjustments, newest first unless a sort is given.","x-access":["admin"],"x-models":["ReceiptAdjustment"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-receipt-adjustments","tags":["Orders & checkout"],"x-section":"Receipt Adjustment","summary":"Create a receipt adjustment","description":"Create new receipt_adjustment.","x-access":["admin"],"x-models":["ReceiptAdjustment"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReceiptAdjustment"}}}}}},"/receipt-adjustments/{id}":{"get":{"operationId":"get-receipt-adjustments-id","tags":["Orders & checkout"],"x-section":"Receipt Adjustment","summary":"Retrieve a receipt adjustment","description":"Returns one receipt adjustment, found by its ID.","x-access":["admin"],"x-models":["ReceiptAdjustment"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the receipt adjustment."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/shippings":{"get":{"operationId":"get-shippings","tags":["Orders & checkout"],"x-section":"Shipping","summary":"List all shippings","description":"Returns the site's shippings, newest first unless a sort is given.","x-access":[],"x-models":["Shipping"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-shippings","tags":["Orders & checkout"],"x-section":"Shipping","summary":"Create a shipping","description":"Create new shipping.","x-access":["user"],"x-models":["ConnectedAccount","Shipping"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"on_behalf_of":{"type":"string","description":"The shipping's on behalf of."}}}}}}}},"/shippings-by-id/{id}":{"get":{"operationId":"get-shippings-by-id-id","tags":["Orders & checkout"],"x-section":"Shipping","summary":"Retrieve a shipping","description":"Returns one shipping, found by its ID.","x-access":[],"x-models":["Shipping"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the shipping."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/shippings/{id}":{"patch":{"operationId":"patch-shippings-id","tags":["Orders & checkout"],"x-section":"Shipping","summary":"Update a shipping","description":"Update Shipping by id.","x-access":["user"],"x-models":["Shipping","ConnectedAccount"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the shipping."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Shipping"}}}}},"delete":{"operationId":"delete-shippings-id","tags":["Orders & checkout"],"x-section":"Shipping","summary":"Delete a shipping","description":"Delete Shipping record by id.","x-access":["user"],"x-models":["Shipping","ConnectedAccount"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the shipping."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/shippings/{region}":{"get":{"operationId":"get-shippings-region","tags":["Orders & checkout"],"x-section":"Shipping","summary":"List all shippings","description":"Returns the site's shippings, newest first unless a sort is given.","x-access":[],"x-models":["Shipping"],"parameters":[{"name":"region","in":"path","required":true,"schema":{"type":"string"},"description":"The shipping's region."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/speedy-integration/{order}":{"get":{"operationId":"get-speedy-integration-order","tags":["Orders & checkout"],"x-section":"Speedy Settings","summary":"List all speedy integrations","description":"Returns the site's speedy integrations, newest first unless a sort is given.","x-access":[],"x-models":["Order","SocialModeSettings","Product","Shipping","SpeedySettings"],"parameters":[{"name":"order","in":"path","required":true,"schema":{"type":"string"},"description":"The speedy integration's order."},{"name":"productId","in":"query","required":false,"schema":{"type":"string"},"description":"Only speedy integrations with this product id."},{"name":"region","in":"query","required":false,"schema":{"type":"string"},"description":"Only speedy integrations with this region."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/speedy-login/{delivery}/{username}/{password}":{"get":{"operationId":"get-speedy-login-delivery-username-password","tags":["Orders & checkout"],"x-section":"Speedy Settings","summary":"Sign in","description":"Sign in.","x-access":["user"],"x-models":["SpeedySettings"],"parameters":[{"name":"delivery","in":"path","required":true,"schema":{"type":"string"},"description":"The speedy login's delivery."},{"name":"username","in":"path","required":true,"schema":{"type":"string"},"description":"The speedy login's username."},{"name":"password","in":"path","required":true,"schema":{"type":"string"},"description":"The account password."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/speedy-offices-by-product/{product}/{country}/{city}":{"get":{"operationId":"get-speedy-offices-by-product-product-country-city","tags":["Orders & checkout"],"x-section":"Speedy Settings","summary":"List all speedy offices products","description":"Returns the site's speedy offices products, newest first unless a sort is given.","x-access":[],"x-models":["Product","SocialModeSettings","Shipping"],"parameters":[{"name":"product","in":"path","required":true,"schema":{"type":"string"},"description":"The speedy offices product's product."},{"name":"country","in":"path","required":true,"schema":{"type":"string"},"description":"The speedy offices product's country."},{"name":"city","in":"path","required":true,"schema":{"type":"string"},"description":"The speedy offices product's city."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/speedy-offices/{delivery}/{country}/{city}":{"get":{"operationId":"get-speedy-offices-delivery-country-city","tags":["Orders & checkout"],"x-section":"Speedy Settings","summary":"List all speedy offices","description":"Returns the site's speedy offices, newest first unless a sort is given.","x-access":[],"parameters":[{"name":"delivery","in":"path","required":true,"schema":{"type":"string"},"description":"The speedy office's delivery."},{"name":"country","in":"path","required":true,"schema":{"type":"string"},"description":"The speedy office's country."},{"name":"city","in":"path","required":true,"schema":{"type":"string"},"description":"The speedy office's city."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/speedy-offices/{order}":{"get":{"operationId":"get-speedy-offices-order","tags":["Orders & checkout"],"x-section":"Speedy Settings","summary":"List all speedy offices","description":"Returns the site's speedy offices, newest first unless a sort is given.","x-access":[],"x-models":["Order","SocialModeSettings","Product","Shipping"],"parameters":[{"name":"order","in":"path","required":true,"schema":{"type":"string"},"description":"The speedy office's order."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/speedy-services/{delivery}":{"get":{"operationId":"get-speedy-services-delivery","tags":["Orders & checkout"],"x-section":"Speedy Settings","summary":"List all speedy services","description":"Returns the site's speedy services, newest first unless a sort is given.","x-access":["user"],"x-models":["SpeedySettings"],"parameters":[{"name":"delivery","in":"path","required":true,"schema":{"type":"string"},"description":"The speedy service's delivery."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/speedy-settings":{"post":{"operationId":"post-speedy-settings","tags":["Orders & checkout"],"x-section":"Speedy Settings","summary":"Create a speedy setting","description":"Creates a speedy setting from the fields sent.","x-access":["user"],"x-models":["ConnectedAccount","SpeedySettings"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"on_behalf_of":{"type":"string","description":"The speedy setting's on behalf of."}}}}}}}},"/speedy-settings/{delivery}":{"get":{"operationId":"get-speedy-settings-delivery","tags":["Orders & checkout"],"x-section":"Speedy Settings","summary":"List all speedy settings","description":"Returns the site's speedy settings, newest first unless a sort is given.","x-access":["user"],"x-models":["SpeedySettings"],"parameters":[{"name":"delivery","in":"path","required":true,"schema":{"type":"string"},"description":"The speedy setting's delivery."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/speedy-settings/{id}":{"patch":{"operationId":"patch-speedy-settings-id","tags":["Orders & checkout"],"x-section":"Speedy Settings","summary":"Update a speedy setting","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["SpeedySettings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the speedy setting."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"countryId":{"type":"string","description":"The speedy setting's country id."},"siteId":{"type":"string","description":"The speedy setting's site id."},"address":{"type":"string","description":"The speedy setting's address."}}}}}}},"delete":{"operationId":"delete-speedy-settings-id","tags":["Orders & checkout"],"x-section":"Speedy Settings","summary":"Delete a speedy setting","description":"Deletes the speedy setting. This cannot be undone.","x-access":["user"],"x-models":["SpeedySettings","ConnectedAccount"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the speedy setting."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/speedy-shipping-id/{id}":{"patch":{"operationId":"patch-speedy-shipping-id-id","tags":["Orders & checkout"],"x-section":"Speedy Settings","summary":"Update a speedy shipping","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["SpeedySettings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the speedy shipping."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"shipping":{"type":"string","description":"The speedy shipping's shipping."}}}}}}}},"/validate-speedy-address/{order}":{"post":{"operationId":"post-validate-speedy-address-order","tags":["Orders & checkout"],"x-section":"Speedy Settings","summary":"Validate a speedy address","description":"Validate a speedy address.","x-access":["user"],"x-models":["Order","SocialModeSettings","Product","Shipping","SpeedySettings"],"parameters":[{"name":"order","in":"path","required":true,"schema":{"type":"string"},"description":"The speedy address's order."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}}}},"/tax":{"get":{"operationId":"get-tax","tags":["Orders & checkout"],"x-section":"Tax","summary":"Retrieve the tax","description":"Returns the tax.","x-access":["admin"],"x-models":["Tax"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-tax","tags":["Orders & checkout"],"x-section":"Tax","summary":"Create a tax","description":"Create new tax.","x-access":["admin"],"x-models":["Tax"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Tax"}}}}}},"/tax/{id}":{"get":{"operationId":"get-tax-id","tags":["Orders & checkout"],"x-section":"Tax","summary":"Retrieve a tax","description":"Returns one tax, found by its ID.","x-access":["admin"],"x-models":["Tax"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the tax."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/currency":{"get":{"operationId":"get-currency","tags":["Orders & checkout"],"x-section":"User Payment Settings","summary":"Retrieve the currency","description":"Returns the currency.","x-access":[],"x-models":["UserPaymentSettings"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/user_merchant_account_link/{status}/{id}":{"get":{"operationId":"get-user-merchant-account-link-status-id","tags":["Orders & checkout"],"x-section":"User Payment Settings","summary":"Retrieve a user merchant account link","description":"Returns one user merchant account link, found by its ID.","x-access":["user"],"x-models":["MyContact"],"parameters":[{"name":"status","in":"path","required":true,"schema":{"type":"string"},"description":"The user merchant account link's status."},{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user merchant account link."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-payment-settings":{"get":{"operationId":"get-user-payment-settings","tags":["Orders & checkout"],"x-section":"User Payment Settings","summary":"List all user payment settings","description":"Returns the site's user payment settings, newest first unless a sort is given.","x-access":["user"],"x-models":["UserPaymentSettings"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-user-payment-settings","tags":["Orders & checkout"],"x-section":"User Payment Settings","summary":"Create a user payment setting","description":"Creates a user payment setting from the fields sent.","x-access":["user"],"x-models":["UserPaymentSettings"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPaymentSettings"}}}}}},"/user-payment-settings/{id}":{"get":{"operationId":"get-user-payment-settings-id","tags":["Orders & checkout"],"x-section":"User Payment Settings","summary":"Retrieve a user payment setting","description":"Returns one user payment setting, found by its ID.","x-access":["user"],"x-models":["UserPaymentSettings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user payment setting."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-user-payment-settings-id","tags":["Orders & checkout"],"x-section":"User Payment Settings","summary":"Update a user payment setting","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["UserInvoice","UserPaymentSettings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user payment setting."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"has_card":{"type":"boolean","description":"Whether the user payment setting is has card."},"email":{"type":"string","description":"An email address."},"country":{"type":"string","description":"The user payment setting's country."}}}}}}},"delete":{"operationId":"delete-user-payment-settings-id","tags":["Orders & checkout"],"x-section":"User Payment Settings","summary":"Delete a user payment setting","description":"Deletes the user payment setting. This cannot be undone.","x-access":["user"],"x-models":["UserPaymentSettings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user payment setting."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/generate-origin-addresses":{"post":{"operationId":"post-generate-origin-addresses","tags":["Orders & checkout"],"x-section":"AI builder","summary":"Generate an origin address with AI","description":"Use it to add, modify, remove, translate, or manage origin addresses.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the origin address, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."}}}}}}}},"/can_alter_invoice_sequence":{"get":{"operationId":"get-can-alter-invoice-sequence","tags":["Invoices"],"x-section":"Invoice","summary":"Retrieve the can alter invoice sequence","description":"Return boolean if invoice sequence can be alteerd.","x-access":["admin"],"x-models":["Invoice","PriceQuote"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/download-invoice/{id}/{translate}/{filename}":{"get":{"operationId":"get-download-invoice-id-translate-filename","tags":["Invoices"],"x-section":"Invoice","summary":"Retrieve a download invoice","description":"Download invoice.","x-access":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the download invoice."},{"name":"translate","in":"path","required":true,"schema":{"type":"string"},"description":"The download invoice's translate."},{"name":"filename","in":"path","required":true,"schema":{"type":"string"},"description":"The download invoice's filename."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/invoices/{id}":{"delete":{"operationId":"delete-invoices-id","tags":["Invoices"],"x-section":"Invoice","summary":"Delete an invoice","description":"Delete Invoicerecord by id.","x-access":["admin"],"x-models":["Invoice","PriceQuote"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the invoice."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/invoice-settings":{"get":{"operationId":"get-invoice-settings","tags":["Invoices"],"x-section":"Invoice Settings","summary":"List all invoice settings","description":"Returns the site's invoice settings, newest first unless a sort is given.","x-access":["admin"],"x-models":["InvoiceSettings"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-invoice-settings","tags":["Invoices"],"x-section":"Invoice Settings","summary":"Create an invoice setting","description":"Create new Invoice Settings.","x-access":["admin"],"x-models":["InvoiceSettings"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceSettings"}}}}}},"/invoice-settings/{id}":{"get":{"operationId":"get-invoice-settings-id","tags":["Invoices"],"x-section":"Invoice Settings","summary":"Retrieve an invoice setting","description":"Returns one invoice setting, found by its ID.","x-access":["admin"],"x-models":["InvoiceSettings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the invoice setting."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-invoice-settings-id","tags":["Invoices"],"x-section":"Invoice Settings","summary":"Update an invoice setting","description":"Update InvoiceSettings by id.","x-access":["admin"],"x-models":["Invoice","InvoiceSettings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the invoice setting."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Invoice"}}}}}},"/nra-audit-file":{"get":{"operationId":"get-nra-audit-file","tags":["Invoices"],"x-section":"Nra Audit","summary":"Retrieve the NRA audit file","description":"The audit file itself, as a windows-1251 XML attachment.","x-access":["admin"],"parameters":[{"name":"month","in":"query","required":false,"schema":{"type":"string"},"description":"Only NRA audit files with this month."},{"name":"year","in":"query","required":false,"schema":{"type":"string"},"description":"Only NRA audit files with this year."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/nra-audit-summary":{"get":{"operationId":"get-nra-audit-summary","tags":["Invoices"],"x-section":"Nra Audit","summary":"Retrieve the NRA audit summary","description":"Dry run - what the file would contain, without producing it.","x-access":["admin"],"parameters":[{"name":"month","in":"query","required":false,"schema":{"type":"string"},"description":"Only NRA audit summaries with this month."},{"name":"year","in":"query","required":false,"schema":{"type":"string"},"description":"Only NRA audit summaries with this year."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/nra-settings":{"get":{"operationId":"get-nra-settings","tags":["Invoices"],"x-section":"Nra Audit","summary":"List all NRA settings","description":"Current NRA audit-file settings, with the default payment map.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-nra-settings","tags":["Invoices"],"x-section":"Nra Audit","summary":"Create a NRA setting","description":"Create or update the tenant's NRA audit-file settings.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}}}},"/recurring-invoices":{"get":{"operationId":"get-recurring-invoices","tags":["Invoices"],"x-section":"Recurring Invoice","summary":"List all recurring invoices","description":"All recurring invoices, the next due first.","x-access":["admin"],"x-models":["RecurringInvoice"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-recurring-invoices","tags":["Invoices"],"x-section":"Recurring Invoice","summary":"Create a recurring invoice","description":"Creates a recurring invoice from the fields sent. POST /recurring-invoices - create; its first run is the start date (or the next one after now).","x-access":["admin"],"x-models":["RecurringInvoice"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecurringInvoice"}}}}}},"/recurring-invoices/{id}":{"get":{"operationId":"get-recurring-invoices-id","tags":["Invoices"],"x-section":"Recurring Invoice","summary":"Retrieve a recurring invoice","description":"Returns one recurring invoice, found by its ID. GET /recurring-invoices/:id","x-access":["admin"],"x-models":["RecurringInvoice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the recurring invoice."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-recurring-invoices-id","tags":["Invoices"],"x-section":"Recurring Invoice","summary":"Update a recurring invoice","description":"Changes the fields sent; the others stay as they are. PATCH /recurring-invoices/:id - a schedule change (or switching it on) reschedules it.","x-access":["admin"],"x-models":["RecurringInvoice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the recurring invoice."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecurringInvoice"}}}}},"delete":{"operationId":"delete-recurring-invoices-id","tags":["Invoices"],"x-section":"Recurring Invoice","summary":"Delete a recurring invoice","description":"Deletes the recurring invoice. This cannot be undone. DELETE /recurring-invoices/:id - the quotes and invoices it already made stay.","x-access":["admin"],"x-models":["RecurringInvoice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the recurring invoice."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/recurring-invoices/{id}/run":{"post":{"operationId":"post-recurring-invoices-id-run","tags":["Invoices"],"x-section":"Recurring Invoice","summary":"Create a recurring invoice","description":"Creates a recurring invoice from the fields sent. auto_send), outside the schedule, which it leaves as it is.","x-access":["admin"],"x-models":["RecurringInvoice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the recurring invoice."}],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/modify-invoice-settings":{"post":{"operationId":"post-modify-invoice-settings","tags":["Invoices"],"x-section":"AI builder","summary":"Modify an invoice setting with AI","description":"Use it to set up or update invoice document settings: legal business name, iban/swift for invoice PDFs, vat/tax ID, home/foreign tax rates, or invoice template field translations.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the invoice setting, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/update-invoice-settings-ai":{"post":{"operationId":"post-update-invoice-settings-ai","tags":["Invoices"],"x-section":"AI builder","summary":"Update an invoice setting with AI","description":"Update an invoice setting from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the invoice setting, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the invoice setting to change."}}}}}}}},"/owner-price-plan":{"get":{"operationId":"get-owner-price-plan","tags":["Price plans & subscriptions"],"x-section":"Price Plan","summary":"Retrieve the owner price plan","description":"Returns the owner price plan.","x-access":["user"],"x-models":["PricePlan"],"parameters":[{"name":"id","in":"query","required":false,"schema":{"type":"string"},"description":"The ID of the owner price plan."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/price-plan":{"get":{"operationId":"get-price-plan","tags":["Price plans & subscriptions"],"x-section":"Price Plan","summary":"Retrieve the price plan","description":"Returns the price plan.","x-access":[],"x-models":["SocialModeSettings","PricePlan","AboutPage"],"parameters":[{"name":"skip","in":"query","required":false,"schema":{"type":"string"},"description":"How many results to skip - for paging."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-price-plan","tags":["Price plans & subscriptions"],"x-section":"Price Plan","summary":"Create a price plan","description":"Create new price_plan.","x-access":["user"],"x-models":["PaymentMethod","MyContact","SocialModeSettings","ProfessionalAccount","ConnectedAccount","PricePlan"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"on_behalf_of":{"type":"string","description":"The price plan's on behalf of."},"name":{"type":"string","description":"The price plan's name."},"description":{"type":"string","description":"The price plan's description."},"image":{"type":"string","description":"The image - the ID of a media."},"price":{"type":"number","description":"The price plan's price."},"recurring_options":{"type":"string","description":"The price plan's recurring options."},"days":{"type":"string","description":"The price plan's days."},"free_trial_days":{"type":"number","description":"The price plan's free trial days."},"billing_address_collection":{"type":"string","description":"The price plan's billing address collection."}}}}}}}},"/price-plan/{id}":{"get":{"operationId":"get-price-plan-id","tags":["Price plans & subscriptions"],"x-section":"Price Plan","summary":"Retrieve a price plan","description":"Returns one price plan, found by its ID.","x-access":["optional-user","user"],"x-models":["PricePlan"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the price plan."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-price-plan-id","tags":["Price plans & subscriptions"],"x-section":"Price Plan","summary":"Update a price plan","description":"Update PricePlan by id.","x-access":["user"],"x-models":["PricePlan"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the price plan."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"The price plan's name."},"description":{"type":"string","description":"The price plan's description."},"image":{"type":"string","description":"The image - the ID of a media."},"plan_features":{"description":"The price plan's plan features."},"disabled":{"type":"boolean","description":"Whether the price plan is disabled."},"ribbon":{"type":"string","description":"The price plan's ribbon."},"linked_plans":{"type":"array","items":{"type":"string"},"description":"The linked plans - the ID of a price plan."},"is_hidden":{"type":"boolean","description":"Whether the price plan is is hidden."}}}}}}},"delete":{"operationId":"delete-price-plan-id","tags":["Price plans & subscriptions"],"x-section":"Price Plan","summary":"Delete a price plan","description":"Delete PricePlan record by id.","x-access":["user"],"x-models":["PricePlan","ConnectedAccount"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the price plan."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/billings":{"get":{"operationId":"get-billings","tags":["Price plans & subscriptions"],"x-section":"Subscription","summary":"List all billings","description":"Returns the site's billings, newest first unless a sort is given.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/billings-pdf":{"get":{"operationId":"get-billings-pdf","tags":["Price plans & subscriptions"],"x-section":"Subscription","summary":"Retrieve the billings pdf","description":"Returns the billings pdf.","x-access":["user"],"x-models":["Invoice"],"parameters":[{"name":"startDate","in":"query","required":false,"schema":{"type":"string"},"description":"Only billings pdfs with this start date."},{"name":"endDate","in":"query","required":false,"schema":{"type":"string"},"description":"Only billings pdfs with this end date."},{"name":"translate","in":"query","required":false,"schema":{"type":"string"},"description":"Only billings pdfs with this translate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/billings/{id}/{name}":{"get":{"operationId":"get-billings-id-name","tags":["Price plans & subscriptions"],"x-section":"Subscription","summary":"Retrieve a billing","description":"Returns one billing, found by its ID.","x-access":[],"x-models":["Invoice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the billing."},{"name":"name","in":"path","required":true,"schema":{"type":"string"},"description":"The billing's name."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/cancel_all_subscriptions/{user_id}":{"post":{"operationId":"post-cancel-all-subscriptions-user-id","tags":["Price plans & subscriptions"],"x-section":"Subscription","summary":"Create a subscription","description":"Creates a subscription from the fields sent.","x-access":["user"],"x-models":["User","Subscription"],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string"},"description":"The user id - the ID of a user."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/cancel_subscription/{subscription_id}":{"post":{"operationId":"post-cancel-subscription-subscription-id","tags":["Price plans & subscriptions"],"x-section":"Subscription","summary":"Create a subscription","description":"Creates a subscription from the fields sent.","x-access":["user"],"x-models":["Subscription","PricePlan"],"parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string"},"description":"The subscription's subscription id."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/create_subscription":{"post":{"operationId":"post-create-subscription","tags":["Price plans & subscriptions"],"x-section":"Subscription","summary":"Create a create subscription","description":"Creates a create subscription from the fields sent.","x-access":["user","optional-user"],"x-models":["Subscription","PricePlan","PaymentMethod"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"subscription_id":{"type":"string","description":"The create subscription's subscription id."},"payment_intent":{"type":"string","description":"The create subscription's payment intent."}}}}}}}},"/create_subscription_dpm":{"post":{"operationId":"post-create-subscription-dpm","tags":["Price plans & subscriptions"],"x-section":"Subscription","summary":"Create a create subscription dpm","description":"Creates a create subscription dpm from the fields sent.","x-access":["user","optional-user"],"x-models":["NewsletterContact","MyContact","PaymentMethod","PricePlan","User","SocialModeSettings","UserPaymentSettings","Subscription"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"newsletter":{"type":"string","description":"The create subscription dpm's newsletter."},"age":{"type":"string","description":"The create subscription dpm's age."},"city":{"type":"string","description":"The create subscription dpm's city."},"price_plan":{"type":"string","description":"The create subscription dpm's price plan."},"payment_method":{"type":"string","description":"The create subscription dpm's payment method."}}}}}}}},"/invoices":{"get":{"operationId":"get-invoices","tags":["Price plans & subscriptions"],"x-section":"Subscription","summary":"List all invoices","description":"Returns the site's invoices, newest first unless a sort is given.","x-access":["user"],"parameters":[{"name":"endDate","in":"query","required":false,"schema":{"type":"string"},"description":"Only invoices with this end date."},{"name":"startDate","in":"query","required":false,"schema":{"type":"string"},"description":"Only invoices with this start date."},{"name":"customer","in":"query","required":false,"schema":{"type":"string"},"description":"Only invoices with this customer."},{"name":"language","in":"query","required":false,"schema":{"type":"string"},"description":"Only invoices with this language."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/new_payment_method":{"post":{"operationId":"post-new-payment-method","tags":["Price plans & subscriptions"],"x-section":"Subscription","summary":"Create a payment method","description":"Creates a payment method from the fields sent.","x-access":["optional-user","user"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/payment_method":{"post":{"operationId":"post-payment-method","tags":["Price plans & subscriptions"],"x-section":"Subscription","summary":"Create a payment method","description":"Creates a payment method from the fields sent.","x-access":["optional-user","user"],"x-models":["MyContact","NewsletterContact","PricePlan","PaymentMethod","SocialModeSettings","User","UserPaymentSettings","Subscription"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"newsletter":{"type":"string","description":"The payment method's newsletter."},"age":{"type":"string","description":"The payment method's age."},"city":{"type":"string","description":"The payment method's city."},"price_plan":{"type":"string","description":"The payment method's price plan."}}}}}}}},"/payment_method/{id}":{"get":{"operationId":"get-payment-method-id","tags":["Price plans & subscriptions"],"x-section":"Subscription","summary":"Retrieve a payment method","description":"Returns one payment method, found by its ID.","x-access":["user"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the payment method."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"delete":{"operationId":"delete-payment-method-id","tags":["Price plans & subscriptions"],"x-section":"Subscription","summary":"Delete a payment method","description":"Deletes the payment method. This cannot be undone.","x-access":["user"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the payment method."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/payment_method/{setup_intent}/{old_payment_method}":{"patch":{"operationId":"patch-payment-method-setup-intent-old-payment-method","tags":["Price plans & subscriptions"],"x-section":"Subscription","summary":"Update the payment method","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"parameters":[{"name":"setup_intent","in":"path","required":true,"schema":{"type":"string"},"description":"The payment method's setup intent."},{"name":"old_payment_method","in":"path","required":true,"schema":{"type":"string"},"description":"The payment method's old payment method."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/subscription_reciept/{id}":{"get":{"operationId":"get-subscription-reciept-id","tags":["Price plans & subscriptions"],"x-section":"Subscription","summary":"Retrieve a subscription reciept","description":"Returns one subscription reciept, found by its ID.","x-access":[],"x-models":["Subscription","PricePlan"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the subscription reciept."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/subscriptions":{"get":{"operationId":"get-subscriptions","tags":["Price plans & subscriptions"],"x-section":"Subscription","summary":"List all subscriptions","description":"Returns the site's subscriptions, newest first unless a sort is given.","x-access":["user"],"x-models":["Subscription"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-subscriptions","tags":["Price plans & subscriptions"],"x-section":"Subscription","summary":"Create a subscription","description":"Create new subscription.","x-access":["user"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/subscriptions/{id}":{"get":{"operationId":"get-subscriptions-id","tags":["Price plans & subscriptions"],"x-section":"Subscription","summary":"Retrieve a subscription","description":"Returns one subscription, found by its ID.","x-access":["user"],"x-models":["Subscription"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the subscription."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/transactions":{"get":{"operationId":"get-transactions","tags":["Price plans & subscriptions"],"x-section":"Subscription","summary":"List all transactions","description":"Returns the site's transactions, newest first unless a sort is given.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-billings-pdf":{"get":{"operationId":"get-user-billings-pdf","tags":["Price plans & subscriptions"],"x-section":"Subscription","summary":"Retrieve the user billings pdf","description":"Returns the user billings pdf.","x-access":["user"],"x-models":["UserInvoice"],"parameters":[{"name":"startDate","in":"query","required":false,"schema":{"type":"string"},"description":"Only user billings pdfs with this start date."},{"name":"endDate","in":"query","required":false,"schema":{"type":"string"},"description":"Only user billings pdfs with this end date."},{"name":"translate","in":"query","required":false,"schema":{"type":"string"},"description":"Only user billings pdfs with this translate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-billings/{id}/{name}":{"get":{"operationId":"get-user-billings-id-name","tags":["Price plans & subscriptions"],"x-section":"Subscription","summary":"Retrieve a user billing","description":"Returns one user billing, found by its ID.","x-access":["user"],"x-models":["UserInvoice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user billing."},{"name":"name","in":"path","required":true,"schema":{"type":"string"},"description":"The user billing's name."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/create-new-price-plan":{"post":{"operationId":"post-create-new-price-plan","tags":["Price plans & subscriptions"],"x-section":"AI builder","summary":"Create a price plan with AI","description":"Create a price plan from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the price plan, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the price plan to change."}}}}}}}},"/generate-price-plan":{"post":{"operationId":"post-generate-price-plan","tags":["Price plans & subscriptions"],"x-section":"AI builder","summary":"Generate a price plan with AI","description":"Use it to create a new subscription tier or price plan product.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the price plan, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/modify-price-plan":{"post":{"operationId":"post-modify-price-plan","tags":["Price plans & subscriptions"],"x-section":"AI builder","summary":"Modify a price plan with AI","description":"Use it to edit or update an existing subscription or price plan.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the price plan, in plain words - any language."},"item_data":{"type":"string","description":"The current price plan, as JSON - the AI changes it and returns the result."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"item_id":{"type":"string","description":"The ID of the price plan to change."},"item_ids":{"type":"string","description":"The price plan's item ids."}}}}}}}},"/coupon_capture":{"get":{"operationId":"get-coupon-capture","tags":["Coupons & vouchers"],"x-section":"Coupon","summary":"Retrieve the coupon capture","description":"Lightweight endpoint for the ionic app to trigger the couponCapture middleware. The middleware runs before this handler, validates ?coupon= and sets the pending_coupon cookie.","x-access":[],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."}}}},"/coupon_code":{"get":{"operationId":"get-coupon-code","tags":["Coupons & vouchers"],"x-section":"Coupon","summary":"Retrieve the coupon code","description":"Returns if a coupon is valid.","x-access":["optional-user"],"x-models":["Coupon"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"coupon_code":{"type":"string","description":"The coupon code's coupon code."}}}}}}}},"/coupon_code/{code}":{"get":{"operationId":"get-coupon-code-code","tags":["Coupons & vouchers"],"x-section":"Coupon","summary":"List all coupon codes","description":"Returns if a coupon is valid.","x-access":["optional-user"],"x-models":["Coupon"],"parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string"},"description":"The coupon code's code."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Coupon"}}}}}},"/coupon_info/{code}":{"get":{"operationId":"get-coupon-info-code","tags":["Coupons & vouchers"],"x-section":"Coupon","summary":"List all coupon infos","description":"Returns public coupon details by code without incrementing uses.","x-access":[],"x-models":["Coupon"],"parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string"},"description":"The coupon info's code."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/coupons":{"get":{"operationId":"get-coupons","tags":["Coupons & vouchers"],"x-section":"Coupon","summary":"List all coupons","description":"Returns the site's coupons, newest first unless a sort is given.","x-access":[],"x-models":["Coupon"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-coupons","tags":["Coupons & vouchers"],"x-section":"Coupon","summary":"Create a coupon","description":"Create new coupon.","x-access":["admin"],"x-models":["Coupon"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Coupon"}}}}}},"/coupons/{id}":{"get":{"operationId":"get-coupons-id","tags":["Coupons & vouchers"],"x-section":"Coupon","summary":"Retrieve a coupon","description":"Returns one coupon, found by its ID.","x-access":[],"x-models":["Coupon"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the coupon."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-coupons-id","tags":["Coupons & vouchers"],"x-section":"Coupon","summary":"Update a coupon","description":"Update Coupon by id.","x-access":["admin"],"x-models":["Coupon"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the coupon."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Coupon"}}}}},"delete":{"operationId":"delete-coupons-id","tags":["Coupons & vouchers"],"x-section":"Coupon","summary":"Delete a coupon","description":"Delete Coupon record by id.","x-access":["admin"],"x-models":["Coupon"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the coupon."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/vouchers":{"get":{"operationId":"get-vouchers","tags":["Coupons & vouchers"],"x-section":"Voucher","summary":"List all vouchers","description":"Returns the site's vouchers, newest first unless a sort is given.","x-access":[],"x-models":["Voucher"],"parameters":[{"name":"authenticated","in":"query","required":false,"schema":{"type":"string"},"description":"Only vouchers with this authenticated."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/vouchers/{id}":{"get":{"operationId":"get-vouchers-id","tags":["Coupons & vouchers"],"x-section":"Voucher","summary":"Retrieve a voucher","description":"Returns one voucher, found by its ID.","x-access":["admin"],"x-models":["Voucher"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the voucher."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/create-new-coupon":{"post":{"operationId":"post-create-new-coupon","tags":["Coupons & vouchers"],"x-section":"AI builder","summary":"Create a coupon with AI","description":"Create a coupon from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the coupon, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the coupon to change."}}}}}}}},"/generate-coupon":{"post":{"operationId":"post-generate-coupon","tags":["Coupons & vouchers"],"x-section":"AI builder","summary":"Generate a coupon with AI","description":"Use it to create a new discount coupon or promo code.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the coupon, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/custom_forms":{"get":{"operationId":"get-custom-forms","tags":["Leads & forms"],"x-section":"Custom Form","summary":"List all custom forms","description":"Returns the site's custom forms, newest first unless a sort is given.","x-access":["admin"],"x-models":["CustomForm"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/custom_forms/{id}":{"get":{"operationId":"get-custom-forms-id","tags":["Leads & forms"],"x-section":"Custom Form","summary":"Retrieve a custom form","description":"Returns one custom form, found by its ID.","x-access":["admin"],"x-models":["CustomForm"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the custom form."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-custom-forms-id","tags":["Leads & forms"],"x-section":"Custom Form","summary":"Update a custom form","description":"Update CustomForm by id.","x-access":["admin"],"x-models":["CustomForm"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the custom form."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomForm"}}}}},"delete":{"operationId":"delete-custom-forms-id","tags":["Leads & forms"],"x-section":"Custom Form","summary":"Delete a custom form","description":"Delete CustomForm record by id.","x-access":["admin"],"x-models":["CustomForm"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the custom form."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/forms":{"get":{"operationId":"get-forms","tags":["Leads & forms"],"x-section":"Form","summary":"List all forms","description":"Returns the site's forms, newest first unless a sort is given.","x-access":["admin"],"x-models":["Form"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-forms","tags":["Leads & forms"],"x-section":"Form","summary":"Create a form","description":"Create new form.","x-access":["recaptcha"],"x-models":["NewsletterContact","Form"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","description":"The form's body."},"email":{"type":"string","description":"An email address."}}}}}}}},"/forms/{id}":{"get":{"operationId":"get-forms-id","tags":["Leads & forms"],"x-section":"Form","summary":"Retrieve a form","description":"Returns one form, found by its ID.","x-access":["admin"],"x-models":["Form"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the form."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-forms-id","tags":["Leads & forms"],"x-section":"Form","summary":"Update a form","description":"Update Form by id.","x-access":["admin"],"x-models":["Form"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the form."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Form"}}}}},"delete":{"operationId":"delete-forms-id","tags":["Leads & forms"],"x-section":"Form","summary":"Delete a form","description":"Delete Form record by id.","x-access":["admin"],"x-models":["Form"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the form."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/leads":{"get":{"operationId":"get-leads","tags":["Leads & forms"],"x-section":"Lead","summary":"List all leads","description":"Returns the site's leads, newest first unless a sort is given.","x-access":["admin"],"x-models":["Lead"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-leads","tags":["Leads & forms"],"x-section":"Lead","summary":"Create a lead","description":"Creates a lead from the fields sent.","x-access":[],"x-models":["Lead","NewsletterContact","Product","Shipping","SocialModeSettings","Ticket","PaymentMethod","Order"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."},"503":{"description":"Used by the lead form when an order is below its minimum value, not only for outages: read the message."}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"owner_id":{"type":"string","description":"The lead's owner id."},"split":{"type":"string","description":"The lead's split."},"email":{"type":"string","description":"An email address."},"phone_number":{"type":"string","description":"The lead's phone number."},"organization_name":{"type":"string","description":"The lead's organization name."},"firstname":{"type":"string","description":"The lead's firstname."},"lastname":{"type":"string","description":"The lead's lastname."},"address":{"type":"string","description":"The lead's address."},"city":{"type":"string","description":"The lead's city."},"state":{"type":"string","description":"The lead's state."},"country":{"type":"string","description":"The lead's country."},"zip_code":{"type":"string","description":"The lead's zip code."},"tax_identification_number":{"type":"string","description":"The lead's tax identification number."},"notes":{"type":"string","description":"The lead's notes."},"tickets":{"type":"array","items":{"type":"string"},"description":"The tickets - the ID of a ticket."},"products":{"type":"array","items":{"type":"string"},"description":"The lead's products."},"programs":{"type":"array","items":{"type":"string"},"description":"The lead's programs."},"donations":{"type":"array","items":{"type":"string"},"description":"The donations - the ID of a donation."},"newsletter":{"type":"string","description":"The lead's newsletter."},"name":{"type":"string","description":"The lead's name."},"age":{"type":"string","description":"The lead's age."},"products_obj":{"description":"The lead's products obj."},"programs_obj":{"description":"The lead's programs obj."},"value":{"type":"string","description":"The lead's value."},"donations_str":{"type":"string","description":"The lead's donations str."}}}}}}}},"/leads/{id}":{"get":{"operationId":"get-leads-id","tags":["Leads & forms"],"x-section":"Lead","summary":"Retrieve a lead","description":"Returns one lead, found by its ID.","x-access":[],"x-models":["Lead"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the lead."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-leads-id","tags":["Leads & forms"],"x-section":"Lead","summary":"Update a lead","description":"Changes the fields sent; the others stay as they are.","x-access":["admin"],"x-models":["Lead"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the lead."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Lead"}}}}},"delete":{"operationId":"delete-leads-id","tags":["Leads & forms"],"x-section":"Lead","summary":"Delete a lead","description":"Deletes the lead. This cannot be undone.","x-access":["admin"],"x-models":["Lead"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the lead."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/newsletter_contacts":{"get":{"operationId":"get-newsletter-contacts","tags":["Leads & forms"],"x-section":"Newsletter Contact","summary":"List all newsletter contacts","description":"Returns the site's newsletter contacts, newest first unless a sort is given.","x-access":["user"],"x-models":["NewsletterContact"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-newsletter-contacts","tags":["Leads & forms"],"x-section":"Newsletter Contact","summary":"Create a newsletter contact","description":"Create new newsletter_contact.","x-access":["recaptcha"],"x-models":["Unsubscribed","NewsletterContact"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"The newsletter contact's name."},"email":{"type":"string","description":"An email address."},"age":{"type":"number","description":"The newsletter contact's age."},"city":{"type":"string","description":"The newsletter contact's city."}}}}}}}},"/newsletter_contacts/{id}":{"get":{"operationId":"get-newsletter-contacts-id","tags":["Leads & forms"],"x-section":"Newsletter Contact","summary":"Retrieve a newsletter contact","description":"Returns one newsletter contact, found by its ID.","x-access":["user"],"x-models":["NewsletterContact"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the newsletter contact."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-newsletter-contacts-id","tags":["Leads & forms"],"x-section":"Newsletter Contact","summary":"Update a newsletter contact","description":"Update NewsletterContact by id.","x-access":["user"],"x-models":["NewsletterContact"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the newsletter contact."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsletterContact"}}}}},"delete":{"operationId":"delete-newsletter-contacts-id","tags":["Leads & forms"],"x-section":"Newsletter Contact","summary":"Delete a newsletter contact","description":"Delete NewsletterContact record by id.","x-access":["user"],"x-models":["NewsletterContact"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the newsletter contact."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/download-price-quote/{id}/{translate}/{filename}":{"get":{"operationId":"get-download-price-quote-id-translate-filename","tags":["Leads & forms"],"x-section":"Price Quote","summary":"Retrieve a download price quote","description":"Download price quote pdf.","x-access":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the download price quote."},{"name":"translate","in":"path","required":true,"schema":{"type":"string"},"description":"The download price quote's translate."},{"name":"filename","in":"path","required":true,"schema":{"type":"string"},"description":"The download price quote's filename."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/price-quote":{"get":{"operationId":"get-price-quote","tags":["Leads & forms"],"x-section":"Price Quote","summary":"Retrieve the price quote","description":"Returns the price quote.","x-access":["admin"],"x-models":["PriceQuote"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-price-quote","tags":["Leads & forms"],"x-section":"Price Quote","summary":"Create a price quote","description":"Create new price quote.","x-access":["admin"],"x-models":["MyContact","Lead","PaymentMethod","User","PriceQuote"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"send":{"type":"string","description":"The price quote's send."}}}}}}}},"/price-quote/{id}":{"get":{"operationId":"get-price-quote-id","tags":["Leads & forms"],"x-section":"Price Quote","summary":"Retrieve a price quote","description":"Returns one price quote, found by its ID.","x-access":["admin"],"x-models":["PriceQuote"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the price quote."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"delete":{"operationId":"delete-price-quote-id","tags":["Leads & forms"],"x-section":"Price Quote","summary":"Delete a price quote","description":"Delete PriceQuote record by id.","x-access":["admin"],"x-models":["PriceQuote"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the price quote."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/unsubscribe":{"get":{"operationId":"get-unsubscribe","tags":["Leads & forms"],"x-section":"Unsubscribed","summary":"Retrieve the unsubscribe","description":"Returns the unsubscribe.","x-access":["optional-user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."}}}},"/unsubscribed-list":{"get":{"operationId":"get-unsubscribed-list","tags":["Leads & forms"],"x-section":"Unsubscribed","summary":"Retrieve the unsubscribed","description":"Returns the unsubscribed.","x-access":["admin"],"x-models":["Unsubscribed"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-unsubscribed-list","tags":["Leads & forms"],"x-section":"Unsubscribed","summary":"Create an unsubscribed","description":"Create new unsubscribed.","x-access":[],"x-models":["Unsubscribed"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"409":{"description":"It clashes with the current state: the item is already being processed, a version is already applied, or an AI plan or preview is no longer available."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","description":"An email address."}}}}}}}},"/unsubscribed-list/{id}":{"get":{"operationId":"get-unsubscribed-list-id","tags":["Leads & forms"],"x-section":"Unsubscribed","summary":"Retrieve an unsubscribed","description":"Returns one unsubscribed, found by its ID.","x-access":["admin"],"x-models":["Unsubscribed"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the unsubscribed."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-unsubscribed-list-id","tags":["Leads & forms"],"x-section":"Unsubscribed","summary":"Update an unsubscribed","description":"Update Unsubscribed by id.","x-access":["admin"],"x-models":["Unsubscribed"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the unsubscribed."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unsubscribed"}}}}},"delete":{"operationId":"delete-unsubscribed-list-id","tags":["Leads & forms"],"x-section":"Unsubscribed","summary":"Delete an unsubscribed","description":"Delete Unsubscribed record by id.","x-access":["admin"],"x-models":["Unsubscribed"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the unsubscribed."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/professional-account":{"post":{"operationId":"post-professional-account","tags":["Users & staff"],"x-section":"Professional Account","summary":"Create a professional account","description":"Creates a professional account from the fields sent.","x-access":["user"],"x-models":["SocialModeSettings","ProfessionalAccount"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"402":{"description":"The content needs a subscription: the user has no price plan that unlocks it."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/professional-account-pages/{model}":{"get":{"operationId":"get-professional-account-pages-model","tags":["Users & staff"],"x-section":"Professional Account","summary":"List all professional account pages","description":"Returns the site's professional account pages, newest first unless a sort is given.","x-access":["optional-user"],"x-models":["PaymentMethod","Collection","ProfessionalAccount","OriginAddress"],"parameters":[{"name":"model","in":"path","required":true,"schema":{"type":"string"},"description":"The professional account page's model."},{"name":"collection","in":"query","required":false,"schema":{"type":"string"},"description":"Only results in this collection."},{"name":"origin_address","in":"query","required":false,"schema":{"type":"string"},"description":"Only professional account pages with this origin address."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/professional-account-preview/{user}":{"get":{"operationId":"get-professional-account-preview-user","tags":["Users & staff"],"x-section":"Professional Account","summary":"List all professional accounts","description":"Returns the site's professional accounts, newest first unless a sort is given.","x-access":[],"x-models":["ProfessionalAccount"],"parameters":[{"name":"user","in":"path","required":true,"schema":{"type":"string"},"description":"The user - the ID of a user."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/professional-account/{id}":{"patch":{"operationId":"patch-professional-account-id","tags":["Users & staff"],"x-section":"Professional Account","summary":"Update a professional account","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["ProfessionalAccount"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the professional account."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfessionalAccount"}}}}},"delete":{"operationId":"delete-professional-account-id","tags":["Users & staff"],"x-section":"Professional Account","summary":"Delete a professional account","description":"Deletes the professional account. This cannot be undone.","x-access":["user"],"x-models":["ProfessionalAccount"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the professional account."}],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/professional-account/{user}":{"get":{"operationId":"get-professional-account-user","tags":["Users & staff"],"x-section":"Professional Account","summary":"List all professional accounts","description":"Returns the site's professional accounts, newest first unless a sort is given.","x-access":["optional-user"],"x-models":["ProfessionalAccount"],"parameters":[{"name":"user","in":"path","required":true,"schema":{"type":"string"},"description":"The user - the ID of a user."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/account-confirmation":{"get":{"operationId":"get-account-confirmation","tags":["Users & staff"],"x-section":"User","summary":"Retrieve the account confirmation","description":"Returns the account confirmation.","x-access":["optional-user"],"x-models":["MyContact"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."}}}},"/block-user/{id}":{"patch":{"operationId":"patch-block-user-id","tags":["Users & staff"],"x-section":"User","summary":"Block a block user","description":"Block a block user.","x-access":["user"],"x-models":["User"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the block user."}],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/blocked-users":{"get":{"operationId":"get-blocked-users","tags":["Users & staff"],"x-section":"User","summary":"List all blocked users","description":"Returns the site's blocked users, newest first unless a sort is given.","x-access":["user"],"x-models":["User"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/booking-schedule-full-month/{date}":{"get":{"operationId":"get-booking-schedule-full-month-date","tags":["Users & staff"],"x-section":"User","summary":"List all booking schedule full months","description":"Returns the site's booking schedule full months, newest first unless a sort is given.","x-access":["optional-user","user"],"x-models":["Service","Booking","UserLockedHours"],"parameters":[{"name":"date","in":"path","required":true,"schema":{"type":"string"},"description":"A date (YYYY-MM-DD)."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/booking-schedule-month/{date}":{"get":{"operationId":"get-booking-schedule-month-date","tags":["Users & staff"],"x-section":"User","summary":"List all booking schedule months","description":"Returns the site's booking schedule months, newest first unless a sort is given.","x-access":["optional-user","user"],"x-models":["Service","Booking","UserLockedHours"],"parameters":[{"name":"date","in":"path","required":true,"schema":{"type":"string"},"description":"A date (YYYY-MM-DD)."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/booking-schedule-week/{date}&{direction}":{"get":{"operationId":"get-booking-schedule-week-date-direction","tags":["Users & staff"],"x-section":"User","summary":"List all booking schedule weeks","description":"Returns the site's booking schedule weeks, newest first unless a sort is given.","x-access":["optional-user","user"],"x-models":["Service","Booking","UserLockedHours"],"parameters":[{"name":"date","in":"path","required":true,"schema":{"type":"string"},"description":"A date (YYYY-MM-DD)."},{"name":"direction","in":"path","required":true,"schema":{"type":"string"},"description":"The booking schedule week's direction."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/disable-user":{"patch":{"operationId":"patch-disable-user","tags":["Users & staff"],"x-section":"User","summary":"Update the disable user","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/followers-email":{"get":{"operationId":"get-followers-email","tags":["Users & staff"],"x-section":"User","summary":"Retrieve the followers email","description":"Returns the followers email.","x-access":["user"],"x-models":["User"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/generate-2auth-token":{"get":{"operationId":"get-generate-2auth-token","tags":["Users & staff"],"x-section":"User","summary":"Generate a 2auth token with AI","description":"Generate a 2auth token from a prompt, written by the AI builder.","x-access":["user"],"x-models":["MyContact","User"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/new-user-bookings":{"get":{"operationId":"get-new-user-bookings","tags":["Users & staff"],"x-section":"User","summary":"List all user bookings","description":"Returns the site's user bookings, newest first unless a sort is given.","x-access":["optional-user","user"],"x-models":["Service","Booking"],"parameters":[{"name":"newer_than","in":"query","required":false,"schema":{"type":"string"},"description":"Only user bookings with this newer than."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/password-reset":{"get":{"operationId":"get-password-reset","tags":["Users & staff"],"x-section":"User","summary":"Retrieve the password reset","description":"Returns the password reset.","x-access":["optional-user"],"x-models":["MyContact"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."}}}},"/reset-password/{email}&{validation_code}":{"get":{"operationId":"get-reset-password-email-validation-code","tags":["Users & staff"],"x-section":"User","summary":"Reset a reset password","description":"Reset a reset password.","x-access":["optional-user"],"x-models":["MyContact"],"parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string"},"description":"An email address."},{"name":"validation_code","in":"path","required":true,"schema":{"type":"string"},"description":"The reset password's validation code."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/signup":{"get":{"operationId":"get-signup","tags":["Users & staff"],"x-section":"User","summary":"Retrieve the signup","description":"Returns the signup.","x-access":["optional-user"],"x-models":["MyContact"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."}}}},"/staff/{id}":{"patch":{"operationId":"patch-staff-id","tags":["Users & staff"],"x-section":"User","summary":"Update a staff","description":"Changes the fields sent; the others stay as they are.","x-access":["admin"],"x-models":["User"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the staff."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}},"/u/{handle}":{"get":{"operationId":"get-u-handle","tags":["Users & staff"],"x-section":"User","summary":"Retrieve an u","description":"Returns one u, found by its ID.","x-access":["optional-user"],"x-models":["MyContact"],"parameters":[{"name":"handle","in":"path","required":true,"schema":{"type":"string"},"description":"The u's handle."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/user-address/{index}":{"delete":{"operationId":"delete-user-address-index","tags":["Users & staff"],"x-section":"User","summary":"Delete user addresses","description":"Deletes the user address. This cannot be undone.","x-access":["user"],"parameters":[{"name":"index","in":"path","required":true,"schema":{"type":"string"},"description":"The user address's index."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-ads":{"get":{"operationId":"get-user-ads","tags":["Users & staff"],"x-section":"User","summary":"List all user ads","description":"Returns the site's user ads, newest first unless a sort is given.","x-access":["optional-user"],"x-models":["User","ProfessionalAccount","SocialModeSettings","Product","Service","BlogPost","PricePlan","Program","Subscription","Media","UserEngagementNotification"],"parameters":[{"name":"handle","in":"query","required":false,"schema":{"type":"string"},"description":"Only user ads with this handle."},{"name":"user","in":"query","required":false,"schema":{"type":"string"},"description":"Only user ads with this user."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/user-attributions":{"get":{"operationId":"get-user-attributions","tags":["Users & staff"],"x-section":"User","summary":"List all user attributions","description":"Returns the site's user attributions, newest first unless a sort is given.","x-access":["user"],"x-models":["AttributedRevenue"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-attributions/{days}":{"get":{"operationId":"get-user-attributions-days","tags":["Users & staff"],"x-section":"User","summary":"List all user attributions","description":"Returns the site's user attributions, newest first unless a sort is given.","x-access":["user"],"x-models":["AttributedRevenue"],"parameters":[{"name":"days","in":"path","required":true,"schema":{"type":"string"},"description":"The user attribution's days."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-blogpost":{"get":{"operationId":"get-user-blogpost","tags":["Users & staff"],"x-section":"User","summary":"Retrieve the user blog post","description":"Returns the user blog post.","x-access":["optional-user","user"],"x-models":["BlogPost","Collection"],"parameters":[{"name":"id","in":"query","required":false,"schema":{"type":"string"},"description":"The ID of the user blog post."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/user-booking":{"get":{"operationId":"get-user-booking","tags":["Users & staff"],"x-section":"User","summary":"Retrieve the user booking","description":"Returns the user booking.","x-access":["optional-user","user"],"x-models":["Booking","Service","ConnectedAccount","User"],"parameters":[{"name":"id","in":"query","required":false,"schema":{"type":"string"},"description":"The ID of the user booking."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-bookings-search/{args}":{"get":{"operationId":"get-user-bookings-search-args","tags":["Users & staff"],"x-section":"User","summary":"Search user bookings","description":"Search user bookings.","x-access":["user"],"x-models":["Service","Booking"],"parameters":[{"name":"args","in":"path","required":true,"schema":{"type":"string"},"description":"The user booking's args."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-bookings/{skip}":{"get":{"operationId":"get-user-bookings-skip","tags":["Users & staff"],"x-section":"User","summary":"List all user bookings","description":"Returns the site's user bookings, newest first unless a sort is given.","x-access":["optional-user","user"],"x-models":["Service","Booking"],"parameters":[{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."},{"name":"sortBy","in":"query","required":false,"schema":{"type":"string"},"description":"The order of the results."},{"name":"sortOrder","in":"query","required":false,"schema":{"type":"string"},"description":"Only user bookings with this sort order."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-churned-booking":{"patch":{"operationId":"patch-user-churned-booking","tags":["Users & staff"],"x-section":"User","summary":"Update the user churned booking","description":"Changes the fields sent; the others stay as they are.","x-access":["optional-user","user"],"x-models":["Booking"],"parameters":[{"name":"booking_id","in":"query","required":false,"schema":{"type":"string"},"description":"Only user churned bookings with this booking id."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-confirm-booking":{"patch":{"operationId":"patch-user-confirm-booking","tags":["Users & staff"],"x-section":"User","summary":"Confirm a user booking","description":"Confirm a user booking.","x-access":["optional-user","user"],"x-models":["Booking"],"parameters":[{"name":"booking_id","in":"query","required":false,"schema":{"type":"string"},"description":"Only user bookings with this booking id."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-confirmation-mail":{"get":{"operationId":"get-user-confirmation-mail","tags":["Users & staff"],"x-section":"User","summary":"Retrieve the user confirmation mail","description":"Returns the user confirmation mail.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-confirmed-bookings-search/{args}":{"get":{"operationId":"get-user-confirmed-bookings-search-args","tags":["Users & staff"],"x-section":"User","summary":"Search user confirmed bookings","description":"Search user confirmed bookings.","x-access":["user"],"x-models":["Service","Booking"],"parameters":[{"name":"args","in":"path","required":true,"schema":{"type":"string"},"description":"The user confirmed booking's args."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-confirmed-bookings/{skip}":{"get":{"operationId":"get-user-confirmed-bookings-skip","tags":["Users & staff"],"x-section":"User","summary":"List all user confirmed bookings","description":"Returns the site's user confirmed bookings, newest first unless a sort is given.","x-access":["optional-user","user"],"x-models":["Service","Booking"],"parameters":[{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."},{"name":"sortBy","in":"query","required":false,"schema":{"type":"string"},"description":"The order of the results."},{"name":"sortOrder","in":"query","required":false,"schema":{"type":"string"},"description":"Only user confirmed bookings with this sort order."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-current-bookings":{"get":{"operationId":"get-user-current-bookings","tags":["Users & staff"],"x-section":"User","summary":"List all user current bookings","description":"Returns the site's user current bookings, newest first unless a sort is given.","x-access":["optional-user","user"],"x-models":["Service","Booking"],"parameters":[{"name":"sortBy","in":"query","required":false,"schema":{"type":"string"},"description":"The order of the results."},{"name":"sortOrder","in":"query","required":false,"schema":{"type":"string"},"description":"Only user current bookings with this sort order."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-did-not-answer-booking":{"patch":{"operationId":"patch-user-did-not-answer-booking","tags":["Users & staff"],"x-section":"User","summary":"Update the user did not answer booking","description":"Changes the fields sent; the others stay as they are.","x-access":["optional-user","user"],"x-models":["Booking"],"parameters":[{"name":"booking_id","in":"query","required":false,"schema":{"type":"string"},"description":"Only user did not answer bookings with this booking id."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-dynamic-models":{"get":{"operationId":"get-user-dynamic-models","tags":["Users & staff"],"x-section":"User","summary":"List all user dynamic models","description":"Returns the site's user dynamic models, newest first unless a sort is given.","x-access":["user"],"x-models":["DynamicModel","Model"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-dynamic-models/{id}":{"get":{"operationId":"get-user-dynamic-models-id","tags":["Users & staff"],"x-section":"User","summary":"Retrieve a user dynamic model","description":"Returns one user dynamic model, found by its ID.","x-access":["user"],"x-models":["DynamicModel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user dynamic model."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-followers/{id}&{skip}":{"get":{"operationId":"get-user-followers-id-skip","tags":["Users & staff"],"x-section":"User","summary":"Retrieve a user follower","description":"Returns one user follower, found by its ID.","x-access":[],"x-models":["User"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user follower."},{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/user-following/{id}&{skip}":{"get":{"operationId":"get-user-following-id-skip","tags":["Users & staff"],"x-section":"User","summary":"Retrieve a user following","description":"Returns one user following, found by its ID.","x-access":[],"x-models":["User"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user following."},{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/user-handle/{handle}":{"get":{"operationId":"get-user-handle-handle","tags":["Users & staff"],"x-section":"User","summary":"Retrieve a user handle","description":"Returns one user handle, found by its ID.","x-access":[],"x-models":["User"],"parameters":[{"name":"handle","in":"path","required":true,"schema":{"type":"string"},"description":"The user handle's handle."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/user-inbox":{"get":{"operationId":"get-user-inbox","tags":["Users & staff"],"x-section":"User","summary":"Retrieve the user inbox","description":"Returns the user inbox.","x-access":["user"],"x-models":["ConnectedAccount","Message","User","Product","Service","BlogPost"],"parameters":[{"name":"on_behalf_of","in":"query","required":false,"schema":{"type":"string"},"description":"Only user inboxes with this on behalf of."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-invoices":{"get":{"operationId":"get-user-invoices","tags":["Users & staff"],"x-section":"User","summary":"List all user invoices","description":"Returns the site's user invoices, newest first unless a sort is given.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-lead-from-booking":{"get":{"operationId":"get-user-lead-from-booking","tags":["Users & staff"],"x-section":"User","summary":"Retrieve the user lead from booking","description":"Returns the user lead from booking.","x-access":["optional-user","user"],"x-models":["Booking","Order","Lead","Service"],"parameters":[{"name":"id","in":"query","required":false,"schema":{"type":"string"},"description":"The ID of the user lead from booking."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-mention/{handle}":{"get":{"operationId":"get-user-mention-handle","tags":["Users & staff"],"x-section":"User","summary":"Retrieve a user mention","description":"Returns one user mention, found by its ID.","x-access":["user"],"x-models":["User"],"parameters":[{"name":"handle","in":"path","required":true,"schema":{"type":"string"},"description":"The user mention's handle."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-order":{"get":{"operationId":"get-user-order","tags":["Users & staff"],"x-section":"User","summary":"Retrieve the user order","description":"Returns the user order.","x-access":["optional-user","user"],"x-models":["Order","Lead","Product","Program"],"parameters":[{"name":"id","in":"query","required":false,"schema":{"type":"string"},"description":"The ID of the user order."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-payment-method/{payment_method}":{"get":{"operationId":"get-user-payment-method-payment-method","tags":["Users & staff"],"x-section":"User","summary":"List all user payment methods","description":"Returns the site's user payment methods, newest first unless a sort is given.","x-access":["optional-user","user"],"parameters":[{"name":"payment_method","in":"path","required":true,"schema":{"type":"string"},"description":"The user payment method's payment method."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-payments":{"get":{"operationId":"get-user-payments","tags":["Users & staff"],"x-section":"User","summary":"List all user payments","description":"Returns the site's user payments, newest first unless a sort is given.","x-access":["user"],"x-models":["UserPaymentSettings","PaymentMethod","SocialModeSettings","AboutPage","MyContact"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-price-plan/":{"get":{"operationId":"get-user-price-plan","tags":["Users & staff"],"x-section":"User","summary":"Retrieve the user price plan","description":"Returns the user price plan.","x-access":["user"],"x-models":["User","PricePlan"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-product":{"get":{"operationId":"get-user-product","tags":["Users & staff"],"x-section":"User","summary":"Retrieve the user product","description":"Returns the user product.","x-access":["optional-user","user"],"x-models":["Product","Media","Collection","OriginAddress"],"parameters":[{"name":"id","in":"query","required":false,"schema":{"type":"string"},"description":"The ID of the user product."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-products":{"get":{"operationId":"get-user-products","tags":["Users & staff"],"x-section":"User","summary":"List all user products","description":"Returns the site's user products, newest first unless a sort is given.","x-access":["optional-user"],"x-models":["Product","User","Media"],"parameters":[{"name":"user","in":"query","required":false,"schema":{"type":"string"},"description":"Only user products with this user."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/user-program":{"get":{"operationId":"get-user-program","tags":["Users & staff"],"x-section":"User","summary":"Retrieve the user program","description":"Returns the user program.","x-access":["optional-user","user"],"x-models":["Program","Collection"],"parameters":[{"name":"id","in":"query","required":false,"schema":{"type":"string"},"description":"The ID of the user program."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-service":{"get":{"operationId":"get-user-service","tags":["Users & staff"],"x-section":"User","summary":"Retrieve the user service","description":"Returns the user service.","x-access":["optional-user","user"],"x-models":["Service","ConnectedAccount","User","Collection","OriginAddress"],"parameters":[{"name":"id","in":"query","required":false,"schema":{"type":"string"},"description":"The ID of the user service."},{"name":"on_behalf_of","in":"query","required":false,"schema":{"type":"string"},"description":"Only user services with this on behalf of."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."}},"security":[{"bearer":[]}]}},"/user-services":{"get":{"operationId":"get-user-services","tags":["Users & staff"],"x-section":"User","summary":"List all user services","description":"Returns the site's user services, newest first unless a sort is given.","x-access":["user"],"x-models":["Service"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-shipping":{"get":{"operationId":"get-user-shipping","tags":["Users & staff"],"x-section":"User","summary":"Retrieve the user shipping","description":"Returns the user shipping.","x-access":["optional-user","user"],"x-models":["Shipping"],"parameters":[{"name":"id","in":"query","required":false,"schema":{"type":"string"},"description":"The ID of the user shipping."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-staff":{"get":{"operationId":"get-user-staff","tags":["Users & staff"],"x-section":"User","summary":"Retrieve the user staff","description":"Returns the user staff.","x-access":["optional-user","user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/user-tokens/{id}":{"patch":{"operationId":"patch-user-tokens-id","tags":["Users & staff"],"x-section":"User","summary":"Update a user token","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["User"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user token."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user/add_staff/{owner_id}&{validation_code}":{"get":{"operationId":"get-user-add-staff-owner-id-validation-code","tags":["Users & staff"],"x-section":"User","summary":"Retrieve a user","description":"Returns one user, found by its ID.","x-access":["user"],"x-models":["User","MyContact","Publish"],"parameters":[{"name":"owner_id","in":"path","required":true,"schema":{"type":"string"},"description":"The user's owner id."},{"name":"validation_code","in":"path","required":true,"schema":{"type":"string"},"description":"The user's validation code."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user/me/password":{"patch":{"operationId":"patch-user-me-password","tags":["Users & staff"],"x-section":"User","summary":"Update your user","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user/remove_admin/{id}":{"delete":{"operationId":"delete-user-remove-admin-id","tags":["Users & staff"],"x-section":"User","summary":"Delete a user","description":"Deletes the user. This cannot be undone.","x-access":["admin"],"x-models":["User","Product","Service","Media","Booking","Order","Shipping"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user."},{"name":"deleteQuery","in":"query","required":false,"schema":{"type":"string"},"description":"Only users with this delete query."}],"responses":{"204":{"description":"It worked, and there is nothing to send back - for example after removing a staff member."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user/remove_staff/{id}":{"delete":{"operationId":"delete-user-remove-staff-id","tags":["Users & staff"],"x-section":"User","summary":"Delete a user","description":"Deletes the user. This cannot be undone.","x-access":["user"],"x-models":["User","Product","Service","Media","Booking","Order","Shipping"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user."},{"name":"deleteQuery","in":"query","required":false,"schema":{"type":"string"},"description":"Only users with this delete query."}],"responses":{"204":{"description":"It worked, and there is nothing to send back - for example after removing a staff member."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user/send_staff_email":{"post":{"operationId":"post-user-send-staff-email","tags":["Users & staff"],"x-section":"User","summary":"Create a user","description":"Creates a user from the fields sent.","x-access":["optional-user","user"],"x-models":["ConnectedAccount"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"on_behalf_of":{"type":"string","description":"The user's on behalf of."},"email":{"type":"string","description":"An email address."}}}}}}}},"/users":{"post":{"operationId":"post-users","tags":["Users & staff"],"x-section":"User","summary":"Create a user","description":"Creates a user from the fields sent.","x-access":[],"x-models":["User"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}},"/users-admin":{"post":{"operationId":"post-users-admin","tags":["Users & staff"],"x-section":"User","summary":"Create a users admin","description":"Creates a users admin from the fields sent.","x-access":["admin"],"x-models":["User"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","description":"An email address."},"name":{"type":"string","description":"The users admin's name."},"can_edit":{"type":"string","description":"The users admin's can edit."}}}}}}}},"/users/{id}":{"patch":{"operationId":"patch-users-id","tags":["Users & staff"],"x-section":"User","summary":"Update a user","description":"Changes the fields sent; the others stay as they are.","x-access":["admin"],"x-models":["User"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}},"/users/confirm/{email}&{validation_code}":{"get":{"operationId":"get-users-confirm-email-validation-code","tags":["Users & staff"],"x-section":"User","summary":"Confirm the user","description":"Confirm the user.","x-access":[],"x-models":["User"],"parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string"},"description":"An email address."},{"name":"validation_code","in":"path","required":true,"schema":{"type":"string"},"description":"The user's validation code."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"418":{"description":"An account confirmation or password reset link was used with an email that does not match it."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/users/is-logged":{"get":{"operationId":"get-users-is-logged","tags":["Users & staff"],"x-section":"User","summary":"Retrieve the user","description":"Returns the user.","x-access":["optional-user","user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/users/login":{"post":{"operationId":"post-users-login","tags":["Users & staff"],"x-section":"User","summary":"Sign in","description":"Sign in.","x-access":[],"x-models":["User","PricePlan"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","description":"An email address."}}}}}}}},"/users/logout":{"post":{"operationId":"post-users-logout","tags":["Users & staff"],"x-section":"User","summary":"Sign out","description":"Sign out.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/users/me":{"get":{"operationId":"get-users-me","tags":["Users & staff"],"x-section":"User","summary":"Retrieve your user","description":"Returns the user.","x-access":["optional-user","user"],"x-models":["MyContact","SocialModeSettings","Publish","Order","Program","Ticket","Event","QrCode","Donation","Product","BlogPost","PricePlan","Subscription","User","Service","Shipping","Booking","PaymentMethod","ProfessionalAccount"],"parameters":[{"name":"skip_transactions_check","in":"query","required":false,"schema":{"type":"string"},"description":"Only users with this skip transactions check."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-users-me","tags":["Users & staff"],"x-section":"User","summary":"Update your user","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"saved_products":{"type":"string","description":"The user's saved products."},"saved_programs":{"type":"string","description":"The user's saved programs."},"saved_blogposts":{"type":"string","description":"The user's saved blog posts."},"saved_services":{"type":"string","description":"The user's saved services."}}}}}}},"delete":{"operationId":"delete-users-me","tags":["Users & staff"],"x-section":"User","summary":"Delete your user","description":"Deletes the users. This cannot be undone.","x-access":["user"],"x-models":["ProfessionalAccount"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/users/me/avatar":{"get":{"operationId":"get-users-me-avatar","tags":["Users & staff"],"x-section":"User","summary":"Retrieve your user","description":"Returns the user.","x-access":["user"],"x-models":["Media"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-users-me-avatar","tags":["Users & staff"],"x-section":"User","summary":"Create a user","description":"Creates a user from the fields sent.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]},"delete":{"operationId":"delete-users-me-avatar","tags":["Users & staff"],"x-section":"User","summary":"Delete your user","description":"Deletes the users. This cannot be undone.","x-access":["user"],"x-models":["Media"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/users/me/delete":{"get":{"operationId":"get-users-me-delete","tags":["Users & staff"],"x-section":"User","summary":"Retrieve your user","description":"Returns the user.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/users/me/transactions":{"get":{"operationId":"get-users-me-transactions","tags":["Users & staff"],"x-section":"User","summary":"Retrieve your user","description":"Returns the user.","x-access":["optional-user","user"],"x-models":["PaymentMethod","PricePlan"],"parameters":[{"name":"skip_transactions_check","in":"query","required":false,"schema":{"type":"string"},"description":"Only users with this skip transactions check."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/users/on-behalf-of":{"get":{"operationId":"get-users-on-behalf-of","tags":["Users & staff"],"x-section":"User","summary":"Retrieve the user","description":"Returns the user.","x-access":["optional-user","user"],"x-models":["MyContact","ConnectedAccount","Order","Product","Program","User","BlogPost","PricePlan","Subscription","Service","Shipping","Booking","PaymentMethod","Post","UserPaymentSettings","SocialModeSettings"],"parameters":[{"name":"on_behalf_of","in":"query","required":false,"schema":{"type":"string"},"description":"Only users with this on behalf of."},{"name":"skip_transactions_check","in":"query","required":false,"schema":{"type":"string"},"description":"Only users with this skip transactions check."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/users/send-password-reset/{email}":{"get":{"operationId":"get-users-send-password-reset-email","tags":["Users & staff"],"x-section":"User","summary":"List all users","description":"Returns the site's users, newest first unless a sort is given.","x-access":[],"x-models":["User"],"parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string"},"description":"An email address."}],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/verify-token":{"patch":{"operationId":"patch-verify-token","tags":["Users & staff"],"x-section":"User","summary":"Verify a token","description":"Verify a token.","x-access":["user"],"x-models":["User"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/latest-user-engagement-notifications/{users}":{"get":{"operationId":"get-latest-user-engagement-notifications-users","tags":["Users & staff"],"x-section":"User Engagement Notification","summary":"List all user engagement notifications","description":"Returns the site's user engagement notifications, newest first unless a sort is given.","x-access":["user"],"x-models":["UserEngagementNotification","Post","Group"],"parameters":[{"name":"users","in":"path","required":true,"schema":{"type":"string"},"description":"The user engagement notification's users."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/new-user-engagement-notifications":{"get":{"operationId":"get-new-user-engagement-notifications","tags":["Users & staff"],"x-section":"User Engagement Notification","summary":"List all user engagement notifications","description":"Returns the site's user engagement notifications, newest first unless a sort is given.","x-access":["user"],"x-models":["UserEngagementNotification"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/seen-my-message-notification":{"patch":{"operationId":"patch-seen-my-message-notification","tags":["Users & staff"],"x-section":"User Engagement Notification","summary":"Update the seen message notification","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["UserEngagementNotification"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/seen-my-notifications":{"patch":{"operationId":"patch-seen-my-notifications","tags":["Users & staff"],"x-section":"User Engagement Notification","summary":"Update the seen notification","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["UserEngagementNotification"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/system-user-engagement-notifications":{"get":{"operationId":"get-system-user-engagement-notifications","tags":["Users & staff"],"x-section":"User Engagement Notification","summary":"List all system user engagement notifications","description":"Returns the site's system user engagement notifications, newest first unless a sort is given.","x-access":["user"],"x-models":["UserEngagementNotification"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-engagement-notifications":{"get":{"operationId":"get-user-engagement-notifications","tags":["Users & staff"],"x-section":"User Engagement Notification","summary":"List all user engagement notifications","description":"Returns the site's user engagement notifications, newest first unless a sort is given.","x-access":["user"],"x-models":["UserEngagementNotification","Post","Group"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-engagement-notifications/{skip}&{users}":{"get":{"operationId":"get-user-engagement-notifications-skip-users","tags":["Users & staff"],"x-section":"User Engagement Notification","summary":"List all user engagement notifications","description":"Returns the site's user engagement notifications, newest first unless a sort is given.","x-access":["user"],"x-models":["UserEngagementNotification"],"parameters":[{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."},{"name":"users","in":"path","required":true,"schema":{"type":"string"},"description":"The user engagement notification's users."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-privileges":{"get":{"operationId":"get-user-privileges","tags":["Users & staff"],"x-section":"User Privilege","summary":"List all user privileges","description":"Returns the site's user privileges, newest first unless a sort is given.","x-access":[],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-user-privileges","tags":["Users & staff"],"x-section":"User Privilege","summary":"Create a user privilege","description":"Create new user_privilege.","x-access":["admin"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}}}},"/user-privileges/{id}":{"get":{"operationId":"get-user-privileges-id","tags":["Users & staff"],"x-section":"User Privilege","summary":"Retrieve a user privilege","description":"Returns one user privilege, found by its ID.","x-access":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user privilege."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-user-privileges-id","tags":["Users & staff"],"x-section":"User Privilege","summary":"Update a user privilege","description":"Update UserPrivilege by id.","x-access":["admin"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user privilege."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}}},"delete":{"operationId":"delete-user-privileges-id","tags":["Users & staff"],"x-section":"User Privilege","summary":"Delete a user privilege","description":"Delete UserPrivilege record by id.","x-access":["admin"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user privilege."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/mini-app-reports/{skip}":{"get":{"operationId":"get-mini-app-reports-skip","tags":["Users & staff"],"x-section":"User Report","summary":"List all mini app reports","description":"Returns the site's mini app reports, newest first unless a sort is given.","x-access":["user"],"x-models":["UserReport"],"parameters":[{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-report":{"post":{"operationId":"post-user-report","tags":["Users & staff"],"x-section":"User Report","summary":"Create a user report","description":"Create new UserReport.","x-access":["user"],"x-models":["UserReport"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserReport"}}}}}},"/user-report/{id}":{"patch":{"operationId":"patch-user-report-id","tags":["Users & staff"],"x-section":"User Report","summary":"Update a user report","description":"Update UserReport by id.","x-access":["user"],"x-models":["UserReport"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user report."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserReport"}}}}}},"/user-reports/{skip}&{limit}":{"get":{"operationId":"get-user-reports-skip-limit","tags":["Users & staff"],"x-section":"User Report","summary":"List all user reports","description":"Returns the site's user reports, newest first unless a sort is given.","x-access":["user"],"x-models":["UserReport","KeywordBlacklist","Post"],"parameters":[{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."},{"name":"limit","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to return."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/create-staff-member":{"post":{"operationId":"post-create-staff-member","tags":["Users & staff"],"x-section":"AI builder","summary":"Create a staff member with AI","description":"Create a staff member from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the staff member, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the staff member to change."}}}}}}}},"/create-staff-schedule":{"post":{"operationId":"post-create-staff-schedule","tags":["Users & staff"],"x-section":"AI builder","summary":"Create a staff schedule with AI","description":"Create a staff schedule from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the staff schedule, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the staff schedule to change."}}}}}}}},"/generate-staff":{"post":{"operationId":"post-generate-staff","tags":["Users & staff"],"x-section":"AI builder","summary":"Generate a staff with AI","description":"Use it to create a new staff member or team member account.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the staff, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/generate-staff-schedule":{"post":{"operationId":"post-generate-staff-schedule","tags":["Users & staff"],"x-section":"AI builder","summary":"Generate a staff schedule with AI","description":"Use it to lock or block time slots in a staff member's schedule.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the staff schedule, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/companion-app-settings":{"get":{"operationId":"get-companion-app-settings","tags":["Site settings"],"x-section":"Companion App Settings","summary":"List all companion app settings","description":"Returns the site's companion app settings, newest first unless a sort is given.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-companion-app-settings","tags":["Site settings"],"x-section":"Companion App Settings","summary":"Create a companion app setting","description":"Create new companion_app_settings.","x-access":["admin"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}}}},"/companion-app-settings/{id}":{"get":{"operationId":"get-companion-app-settings-id","tags":["Site settings"],"x-section":"Companion App Settings","summary":"Retrieve a companion app setting","description":"Returns one companion app setting, found by its ID.","x-access":["admin"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the companion app setting."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-companion-app-settings-id","tags":["Site settings"],"x-section":"Companion App Settings","summary":"Update a companion app setting","description":"Update CompanionAppSettings by id.","x-access":["admin"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the companion app setting."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}}},"delete":{"operationId":"delete-companion-app-settings-id","tags":["Site settings"],"x-section":"Companion App Settings","summary":"Delete a companion app setting","description":"Delete CompanionAppSettings record by id.","x-access":["admin"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the companion app setting."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/accept-consent":{"post":{"operationId":"post-accept-consent","tags":["Site settings"],"x-section":"Consent","summary":"Accept an accept consent","description":"Log agreement.","x-access":[],"x-models":["Click"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"The accept consent's type."}}}}}}}},"/consent":{"get":{"operationId":"get-consent","tags":["Site settings"],"x-section":"Consent","summary":"Retrieve the consent","description":"Returns the consent.","deprecated":true,"x-access":[],"x-models":["Consent"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-consent","tags":["Site settings"],"x-section":"Consent","summary":"Create a consent","description":"Create new terms of use.","x-access":["admin"],"x-models":["Consent"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Consent"}}}}}},"/consent-text":{"get":{"operationId":"get-consent-text","tags":["Site settings"],"x-section":"Consent","summary":"Retrieve the consent text","description":"Get the terms of use text.","x-access":[],"x-models":["Consent"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/consent/{id}":{"get":{"operationId":"get-consent-id","tags":["Site settings"],"x-section":"Consent","summary":"Retrieve a consent","description":"Returns one consent, found by its ID.","deprecated":true,"x-access":[],"x-models":["Consent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the consent."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-consent-id","tags":["Site settings"],"x-section":"Consent","summary":"Update a consent","description":"Update terms of use by id.","x-access":["admin"],"x-models":["Consent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the consent."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Consent"}}}}}},"/gdpr-text":{"get":{"operationId":"get-gdpr-text","tags":["Site settings"],"x-section":"Gdpr","summary":"Retrieve the GDPR text","description":"Get the terms of use text.","x-access":[],"x-models":["Gdpr"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/gdprs":{"get":{"operationId":"get-gdprs","tags":["Site settings"],"x-section":"Gdpr","summary":"List all gdprs","description":"Returns the site's gdprs, newest first unless a sort is given.","deprecated":true,"x-access":["admin"],"x-models":["Gdpr"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-gdprs","tags":["Site settings"],"x-section":"Gdpr","summary":"Create a gdpr","description":"Create new terms of use.","x-access":["admin"],"x-models":["Gdpr"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Gdpr"}}}}}},"/gdprs/{id}":{"get":{"operationId":"get-gdprs-id","tags":["Site settings"],"x-section":"Gdpr","summary":"Retrieve a gdpr","description":"Returns one gdpr, found by its ID.","deprecated":true,"x-access":[],"x-models":["Gdpr"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the gdpr."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-gdprs-id","tags":["Site settings"],"x-section":"Gdpr","summary":"Update a gdpr","description":"Update terms of use by id.","x-access":["admin"],"x-models":["Gdpr"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the gdpr."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Gdpr"}}}}}},"/home-page-settings":{"get":{"operationId":"get-home-page-settings","tags":["Site settings"],"x-section":"Home Page Settings","summary":"List all home page settings","description":"Returns the site's home page settings, newest first unless a sort is given.","x-access":["admin"],"x-models":["HomePageSettings"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/home-page-settings/{id}":{"patch":{"operationId":"patch-home-page-settings-id","tags":["Site settings"],"x-section":"Home Page Settings","summary":"Update a home page setting","description":"Changes the fields sent; the others stay as they are.","x-access":["admin"],"x-models":["HomePageSettings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the home page setting."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"useDifferentLayoutForApp":{"type":"boolean","description":"Whether the home page setting is use different layout for app."}}}}}}}},"/mycontacts":{"get":{"operationId":"get-mycontacts","tags":["Site settings"],"x-section":"Mycontact","summary":"List all site contacts","description":"Returns the site's site contacts, newest first unless a sort is given.","x-access":[],"x-models":["MyContact"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-mycontacts","tags":["Site settings"],"x-section":"Mycontact","summary":"Create a site contact","description":"Create new mycontacts.","x-access":["admin"],"x-models":["MyContact"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyContact"}}}}}},"/mycontacts/{id}":{"get":{"operationId":"get-mycontacts-id","tags":["Site settings"],"x-section":"Mycontact","summary":"Retrieve a site contact","description":"Returns one site contact, found by its ID.","x-access":[],"x-models":["MyContact"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the site contact."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-mycontacts-id","tags":["Site settings"],"x-section":"Mycontact","summary":"Update a site contact","description":"Update MyContact by id.","x-access":["admin"],"x-models":["MyContact"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the site contact."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"gmb_location":{"type":"string","description":"The site contact's Google Business Profile location."},"ga_property":{"type":"string","description":"The site contact's Google Analytics property."},"google_app":{"type":"string","description":"The site contact's google app."}}}}}}},"delete":{"operationId":"delete-mycontacts-id","tags":["Site settings"],"x-section":"Mycontact","summary":"Delete a site contact","description":"Delete MyContact record by id.","x-access":["admin"],"x-models":["MyContact"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the site contact."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/pwa-settings":{"get":{"operationId":"get-pwa-settings","tags":["Site settings"],"x-section":"Pwa Settings","summary":"List all app settings","description":"Returns the site's app settings, newest first unless a sort is given.","x-access":["admin"],"x-models":["PwaSettings"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-pwa-settings","tags":["Site settings"],"x-section":"Pwa Settings","summary":"Create an app setting","description":"Create new pwaSettings.","x-access":["admin"],"x-models":["PwaSettings"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PwaSettings"}}}}}},"/pwa-settings/{id}":{"get":{"operationId":"get-pwa-settings-id","tags":["Site settings"],"x-section":"Pwa Settings","summary":"Retrieve an app setting","description":"Returns one app setting, found by its ID.","x-access":["admin"],"x-models":["PwaSettings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the app setting."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/rating-settings":{"get":{"operationId":"get-rating-settings","tags":["Site settings"],"x-section":"Rating Settings","summary":"List all rating settings","description":"Returns the site's rating settings, newest first unless a sort is given.","x-access":[],"x-models":["RatingSettings"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/rating-settings/":{"post":{"operationId":"post-rating-settings","tags":["Site settings"],"x-section":"Rating Settings","summary":"Create a rating setting","description":"Creates a rating setting from the fields sent.","x-access":["user"],"x-models":["RatingSettings"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RatingSettings"}}}}}},"/rating-settings/{id}":{"patch":{"operationId":"patch-rating-settings-id","tags":["Site settings"],"x-section":"Rating Settings","summary":"Update a rating setting","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["RatingSettings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the rating setting."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"send":{"type":"boolean","description":"Whether the rating setting is send."}}}}}}}},"/rating-settings/{type}":{"get":{"operationId":"get-rating-settings-type","tags":["Site settings"],"x-section":"Rating Settings","summary":"List all rating settings","description":"Returns the site's rating settings, newest first unless a sort is given.","x-access":["user"],"x-models":["RatingSettings"],"parameters":[{"name":"type","in":"path","required":true,"schema":{"type":"string"},"description":"The rating setting's type."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/all_possible_site_menus":{"get":{"operationId":"get-all-possible-site-menus","tags":["Site settings"],"x-section":"Site Menu","summary":"List all possible site menus","description":"Returns the site's possible site menus, newest first unless a sort is given.","x-access":[],"x-models":["Collection","AboutPage","PricePlan","SiteMenu"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/site_menus":{"get":{"operationId":"get-site-menus","tags":["Site settings"],"x-section":"Site Menu","summary":"List all site menus","description":"Returns the site's site menus, newest first unless a sort is given.","x-access":[],"x-models":["SiteMenu"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-site-menus","tags":["Site settings"],"x-section":"Site Menu","summary":"Create a site menu","description":"Create new site_menu.","x-access":["admin"],"x-models":["SiteMenu"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteMenu"}}}}}},"/site_menus/{id}":{"get":{"operationId":"get-site-menus-id","tags":["Site settings"],"x-section":"Site Menu","summary":"Retrieve a site menu","description":"Returns one site menu, found by its ID.","x-access":[],"x-models":["SiteMenu"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the site menu."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-site-menus-id","tags":["Site settings"],"x-section":"Site Menu","summary":"Update a site menu","description":"Update SiteMenu by id.","x-access":["admin"],"x-models":["SiteMenu"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the site menu."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteMenu"}}}}},"delete":{"operationId":"delete-site-menus-id","tags":["Site settings"],"x-section":"Site Menu","summary":"Delete a site menu","description":"Delete SiteMenu record by id.","x-access":["admin"],"x-models":["SiteMenu"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the site menu."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/site_menus/ionic":{"get":{"operationId":"get-site-menus-ionic","tags":["Site settings"],"x-section":"Site Menu","summary":"Retrieve the site menu","description":"Returns the site menu.","x-access":[],"x-models":["Collection","AboutPage","Partner","MyContact","Tracker","PricePlan","Voucher","Theme","SocialModeSettings"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/social-mode-settings":{"get":{"operationId":"get-social-mode-settings","tags":["Site settings"],"x-section":"Social Mode Settings","summary":"List all social mode settings","description":"Returns the site's social mode settings, newest first unless a sort is given.","x-access":[],"x-models":["SocialModeSettings"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-social-mode-settings","tags":["Site settings"],"x-section":"Social Mode Settings","summary":"Create a social mode setting","description":"Create new SocialModeSettings.","x-access":["admin"],"x-models":["SocialModeSettings"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialModeSettings"}}}}}},"/social-mode-settings/{id}":{"patch":{"operationId":"patch-social-mode-settings-id","tags":["Site settings"],"x-section":"Social Mode Settings","summary":"Update a social mode setting","description":"Update SocialModeSettings by id.","x-access":["admin"],"x-models":["SocialModeSettings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the social mode setting."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialModeSettings"}}}}},"delete":{"operationId":"delete-social-mode-settings-id","tags":["Site settings"],"x-section":"Social Mode Settings","summary":"Delete a social mode setting","description":"Delete SocialModeSettings record by id.","x-access":["admin"],"x-models":["SocialModeSettings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the social mode setting."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/unlocked-content":{"get":{"operationId":"get-unlocked-content","tags":["Site settings"],"x-section":"Social Mode Settings","summary":"Retrieve the unlocked content","description":"Returns the unlocked content.","x-access":["optional-user"],"x-models":["SocialModeSettings","ProfessionalAccount"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/social/connect":{"post":{"operationId":"post-social-connect","tags":["Site settings"],"x-section":"Social Moderation Settings","summary":"Connect the social","description":"Connect the social.","x-access":["user"],"x-models":["SocialModerationSettings","SocialComment"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"pageId":{"type":"string","description":"The social's page id."},"grantedScopes":{"type":"string","description":"The social's granted scopes."},"deleteComments":{"type":"string","description":"The social's delete comments."}}}}}}}},"/social/disconnect":{"post":{"operationId":"post-social-disconnect","tags":["Site settings"],"x-section":"Social Moderation Settings","summary":"Disconnect the social","description":"Disconnect the social.","x-access":["user"],"x-models":["SocialModerationSettings","SocialComment"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"deleteComments":{"type":"string","description":"The social's delete comments."}}}}}}}},"/social/messages-probe":{"get":{"operationId":"get-social-messages-probe","tags":["Site settings"],"x-section":"Social Moderation Settings","summary":"Retrieve the social","description":"Returns the social. TEMPORARY. Delete once Instagram messages are settled. Asks Graph the conversations question directly, with the stored Page token and none of our own filtering, across both platforms and both folders. The sync reports zero Instagram conversations while Messenger returns thirteen from the same call and the same token; this shows what Meta actually answers, including the raw error when it refuses rather than returning empty.","x-access":["user"],"x-models":["SocialModerationSettings"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/social/queue":{"get":{"operationId":"get-social-queue","tags":["Site settings"],"x-section":"Social Moderation Settings","summary":"Retrieve the social","description":"Returns the social.","x-access":["user"],"x-models":["SocialModerationSettings","SocialComment"],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"How many results to return."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/social/queue/{id}/approve":{"post":{"operationId":"post-social-queue-id-approve","tags":["Site settings"],"x-section":"Social Moderation Settings","summary":"Approve the social","description":"Approve the social.","x-access":["user"],"x-models":["SocialModerationSettings","SocialComment"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the social."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"410":{"description":"It existed but is no longer there - for example a comment already deleted on the social network."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reply_message":{"type":"string","description":"The social's reply message."},"action":{"type":"string","description":"The social's action."}}}}}}}},"/social/queue/{id}/regenerate-reply":{"post":{"operationId":"post-social-queue-id-regenerate-reply","tags":["Site settings"],"x-section":"Social Moderation Settings","summary":"Create a social","description":"Creates a social from the fields sent.","x-access":["user"],"x-models":["SocialModerationSettings","SocialComment"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the social."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/social/queue/{id}/reject":{"post":{"operationId":"post-social-queue-id-reject","tags":["Site settings"],"x-section":"Social Moderation Settings","summary":"Reject the social","description":"Reject the social.","x-access":["user"],"x-models":["SocialComment"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the social."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/social/queue/{id}/undo":{"post":{"operationId":"post-social-queue-id-undo","tags":["Site settings"],"x-section":"Social Moderation Settings","summary":"Undo the social","description":"Undo the social.","x-access":["user"],"x-models":["SocialModerationSettings","SocialComment"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the social."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/social/settings":{"get":{"operationId":"get-social-settings","tags":["Site settings"],"x-section":"Social Moderation Settings","summary":"List all socials","description":"Returns the site's socials, newest first unless a sort is given.","x-access":["user"],"x-models":["SocialModerationSettings"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-social-settings","tags":["Site settings"],"x-section":"Social Moderation Settings","summary":"Update the social","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["SocialModerationSettings"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"clear_replies_disabled":{"type":"string","description":"The social's clear replies disabled."}}}}}}}},"/social/status":{"get":{"operationId":"get-social-status","tags":["Site settings"],"x-section":"Social Moderation Settings","summary":"Change the status of a social","description":"Change the status of a social.","x-access":["user"],"x-models":["SocialModerationSettings","SocialComment"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/social/sync":{"post":{"operationId":"post-social-sync","tags":["Site settings"],"x-section":"Social Moderation Settings","summary":"Sync the social","description":"Pull the page's recent comments now, instead of waiting for the. scheduled run. Same function the cron calls, so a manual sync and an automatic one cannot drift apart.","x-access":["user"],"x-models":["SocialModerationSettings"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"402":{"description":"The content needs a subscription: the user has no price plan that unlocks it."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/create-new-location":{"post":{"operationId":"post-create-new-location","tags":["Site settings"],"x-section":"AI builder","summary":"Create a location with AI","description":"Create a location from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the location, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the location to change."}}}}}}}},"/generate-location":{"post":{"operationId":"post-generate-location","tags":["Site settings"],"x-section":"AI builder","summary":"Generate a location with AI","description":"Use it to create a new physical store location or partner business listing (name, address, city, contact info).","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the location, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/generate-privacy-policy":{"post":{"operationId":"post-generate-privacy-policy","tags":["Site settings"],"x-section":"AI builder","summary":"Generate a privacy policy with AI","description":"Use it for a privacy policy page for your site, optionally together with the site's cookie consent banner.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the privacy policy, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"socketId":{"type":"string","description":"The privacy policy's socket id."},"include_consent":{"type":"string","description":"Whether to also create the cookie consent banner and link it to this privacy policy."}}}}}}}},"/modify-location":{"post":{"operationId":"post-modify-location","tags":["Site settings"],"x-section":"AI builder","summary":"Modify a location with AI","description":"Use it to edit or update an existing physical location or partner business entry.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the location, in plain words - any language."},"item_data":{"type":"string","description":"The current location, as JSON - the AI changes it and returns the result."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"item_id":{"type":"string","description":"The ID of the location to change."},"item_ids":{"type":"string","description":"The location's item ids."}}}}}}}},"/modify-rating-settings":{"post":{"operationId":"post-modify-rating-settings","tags":["Site settings"],"x-section":"AI builder","summary":"Modify a rating setting with AI","description":"Use it to set up or configure automated review/rating request emails.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the rating setting, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/modify-site-contacts":{"post":{"operationId":"post-modify-site-contacts","tags":["Site settings"],"x-section":"AI builder","summary":"Modify a site contact with AI","description":"Use it to update site contact info such as site name, address, city, zip code, email, phone, working hours, or language.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the site contact, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/modify-site-navigation":{"post":{"operationId":"post-modify-site-navigation","tags":["Site settings"],"x-section":"AI builder","summary":"Modify a site navigation with AI","description":"Use it to add or remove a navigation menu link, rename one, or change where it points.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the site navigation, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/update-rating-settings-ai":{"post":{"operationId":"post-update-rating-settings-ai","tags":["Site settings"],"x-section":"AI builder","summary":"Update a rating setting with AI","description":"Update a rating setting from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the rating setting, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"rating_type":{"type":"string","description":"The rating setting's rating type."}}}}}}}},"/update-site-contacts":{"post":{"operationId":"post-update-site-contacts","tags":["Site settings"],"x-section":"AI builder","summary":"Update a site contact with AI","description":"Update a site contact from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the site contact, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the site contact to change."}}}}}}}},"/update-site-navigation":{"post":{"operationId":"post-update-site-navigation","tags":["Site settings"],"x-section":"AI builder","summary":"Update a site navigation with AI","description":"Update a site navigation from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the site navigation, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the site navigation to change."}}}}}}}},"/custom-components":{"get":{"operationId":"get-custom-components","tags":["Design & components"],"x-section":"Custom Component","summary":"List all custom components","description":"Returns the site's custom components, newest first unless a sort is given.","x-access":[],"x-models":["CustomComponent"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-custom-components","tags":["Design & components"],"x-section":"Custom Component","summary":"Create a custom component","description":"Create new custom_component.","x-access":["admin"],"x-models":["CustomComponent"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomComponent"}}}}}},"/custom-components/{id}":{"get":{"operationId":"get-custom-components-id","tags":["Design & components"],"x-section":"Custom Component","summary":"Retrieve a custom component","description":"Returns one custom component, found by its ID.","x-access":[],"x-models":["CustomComponent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the custom component."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-custom-components-id","tags":["Design & components"],"x-section":"Custom Component","summary":"Update a custom component","description":"Update CustomComponent by id.","x-access":["admin"],"x-models":["CustomComponent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the custom component."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomComponent"}}}}},"delete":{"operationId":"delete-custom-components-id","tags":["Design & components"],"x-section":"Custom Component","summary":"Delete a custom component","description":"Delete CustomComponent record by id.","x-access":["admin"],"x-models":["CustomComponent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the custom component."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/custom-font":{"get":{"operationId":"get-custom-font","tags":["Design & components"],"x-section":"Custom Font","summary":"Retrieve the custom font","description":"Returns the custom font.","x-access":["admin"],"x-models":["CustomFont"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-custom-font","tags":["Design & components"],"x-section":"Custom Font","summary":"Create a custom font","description":"Import a Google font. Takes `{ query }` — a family name, a Google. Fonts URL, a <link> tag or a `font-family:` declaration — and          resolves its real weights against Google's font metadata. The older          `{ family, link }` body still works unchanged.","x-access":["admin"],"x-models":["CustomFont"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"The custom font's query."}}}}}}}},"/custom-font/{id}":{"get":{"operationId":"get-custom-font-id","tags":["Design & components"],"x-section":"Custom Font","summary":"Retrieve a custom font","description":"Returns one custom font, found by its ID.","x-access":["admin"],"x-models":["CustomFont"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the custom font."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-custom-font-id","tags":["Design & components"],"x-section":"Custom Font","summary":"Update a custom font","description":"Update CustomFont by id.","x-access":["admin"],"x-models":["CustomFont"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the custom font."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomFont"}}}}},"delete":{"operationId":"delete-custom-font-id","tags":["Design & components"],"x-section":"Custom Font","summary":"Delete a custom font","description":"Deletes the custom font. This cannot be undone.","x-access":["admin"],"x-models":["CustomFont"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the custom font."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/font-catalogue":{"get":{"operationId":"get-font-catalogue","tags":["Design & components"],"x-section":"Custom Font","summary":"Retrieve the font catalogue","description":"Every font the theme picker may offer — the built-in library plus. this tenant's own imports, in one shape.","x-access":["admin"],"x-models":["CustomFont"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/google-fonts/search":{"get":{"operationId":"get-google-fonts-search","tags":["Design & components"],"x-section":"Custom Font","summary":"Search google fonts","description":"Typeahead over the whole Google Fonts library, for the admin's font. picker. `q` is whatever the user has typed so far.","x-access":["admin"],"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"The words to search for."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/add-locale":{"post":{"operationId":"post-add-locale","tags":["Design & components"],"x-section":"Editor","summary":"Add an add locale","description":"Add an add locale.","x-access":[],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"locale":{"type":"string","description":"The add locale's locale."}}}}}}}},"/get-404":{"get":{"operationId":"get-get-404","tags":["Design & components"],"x-section":"Editor","summary":"Retrieve the 404","description":"Returns the 404.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/get-app-scss":{"get":{"operationId":"get-get-app-scss","tags":["Design & components"],"x-section":"Editor","summary":"Retrieve the app scss","description":"Returns the app scss.","x-access":[],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."}}}},"/get-blog":{"get":{"operationId":"get-get-blog","tags":["Design & components"],"x-section":"Editor","summary":"Retrieve the blog","description":"Returns the blog.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/get-blogs":{"get":{"operationId":"get-get-blogs","tags":["Design & components"],"x-section":"Editor","summary":"List all blogs","description":"Returns the site's blogs, newest first unless a sort is given.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/get-bs-css":{"get":{"operationId":"get-get-bs-css","tags":["Design & components"],"x-section":"Editor","summary":"Retrieve the bs css","description":"Returns the bs css.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/get-cart":{"get":{"operationId":"get-get-cart","tags":["Design & components"],"x-section":"Editor","summary":"Retrieve the cart","description":"Returns the cart.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/get-contacts":{"get":{"operationId":"get-get-contacts","tags":["Design & components"],"x-section":"Editor","summary":"List all contacts","description":"Returns the site's contacts, newest first unless a sort is given.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/get-css":{"get":{"operationId":"get-get-css","tags":["Design & components"],"x-section":"Editor","summary":"Retrieve the css","description":"Returns the css.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/get-footer":{"get":{"operationId":"get-get-footer","tags":["Design & components"],"x-section":"Editor","summary":"Retrieve the footer","description":"Returns the footer.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/get-footer-css":{"get":{"operationId":"get-get-footer-css","tags":["Design & components"],"x-section":"Editor","summary":"Retrieve the footer css","description":"Returns the footer css.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/get-header":{"get":{"operationId":"get-get-header","tags":["Design & components"],"x-section":"Editor","summary":"Retrieve the header","description":"Returns the header.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/get-header-css":{"get":{"operationId":"get-get-header-css","tags":["Design & components"],"x-section":"Editor","summary":"Retrieve the header css","description":"Returns the header css.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/get-index":{"get":{"operationId":"get-get-index","tags":["Design & components"],"x-section":"Editor","summary":"Retrieve the index","description":"Returns the index.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/get-locales":{"get":{"operationId":"get-get-locales","tags":["Design & components"],"x-section":"Editor","summary":"List all locales","description":"Returns the site's locales, newest first unless a sort is given.","x-access":[],"x-models":["Locales"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/get-main-css":{"get":{"operationId":"get-get-main-css","tags":["Design & components"],"x-section":"Editor","summary":"Retrieve the main css","description":"Returns the main css.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/get-partners":{"get":{"operationId":"get-get-partners","tags":["Design & components"],"x-section":"Editor","summary":"List all partners","description":"Returns the site's partners, newest first unless a sort is given.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/get-payment":{"get":{"operationId":"get-get-payment","tags":["Design & components"],"x-section":"Editor","summary":"Retrieve the payment","description":"Returns the payment.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/get-product":{"get":{"operationId":"get-get-product","tags":["Design & components"],"x-section":"Editor","summary":"Retrieve the product","description":"Returns the product.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/get-products":{"get":{"operationId":"get-get-products","tags":["Design & components"],"x-section":"Editor","summary":"List all products","description":"Returns the site's products, newest first unless a sort is given.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/get-service":{"get":{"operationId":"get-get-service","tags":["Design & components"],"x-section":"Editor","summary":"Retrieve the service","description":"Returns the service.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/get-services":{"get":{"operationId":"get-get-services","tags":["Design & components"],"x-section":"Editor","summary":"List all services","description":"Returns the site's services, newest first unless a sort is given.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/get-store":{"get":{"operationId":"get-get-store","tags":["Design & components"],"x-section":"Editor","summary":"Retrieve the store","description":"Returns the store.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/get-theme":{"get":{"operationId":"get-get-theme","tags":["Design & components"],"x-section":"Editor","summary":"Retrieve the theme","description":"Returns the theme.","x-access":[],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/get-vlog":{"get":{"operationId":"get-get-vlog","tags":["Design & components"],"x-section":"Editor","summary":"Retrieve the vlog","description":"Returns the vlog.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/get-vlogs":{"get":{"operationId":"get-get-vlogs","tags":["Design & components"],"x-section":"Editor","summary":"List all vlogs","description":"Returns the site's vlogs, newest first unless a sort is given.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/set-404":{"post":{"operationId":"post-set-404","tags":["Design & components"],"x-section":"Editor","summary":"Set a 404","description":"Set a 404.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"The 404's content."}}}}}}}},"/set-blog":{"post":{"operationId":"post-set-blog","tags":["Design & components"],"x-section":"Editor","summary":"Set a blog","description":"Set a blog.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"The blog's content."}}}}}}}},"/set-blogs":{"post":{"operationId":"post-set-blogs","tags":["Design & components"],"x-section":"Editor","summary":"Set blogs","description":"Set blogs.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"The blog's content."}}}}}}}},"/set-bs-css":{"post":{"operationId":"post-set-bs-css","tags":["Design & components"],"x-section":"Editor","summary":"Set bs css","description":"Set bs css.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"The bs css's content."}}}}}}}},"/set-cart":{"post":{"operationId":"post-set-cart","tags":["Design & components"],"x-section":"Editor","summary":"Set a cart","description":"Set a cart.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"The cart's content."}}}}}}}},"/set-contacts":{"post":{"operationId":"post-set-contacts","tags":["Design & components"],"x-section":"Editor","summary":"Set contacts","description":"Set contacts.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"The contact's content."}}}}}}}},"/set-css":{"post":{"operationId":"post-set-css","tags":["Design & components"],"x-section":"Editor","summary":"Set a css","description":"Set a css.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"The css's content."}}}}}}}},"/set-footer":{"post":{"operationId":"post-set-footer","tags":["Design & components"],"x-section":"Editor","summary":"Set a footer","description":"Set a footer.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"The footer's content."}}}}}}}},"/set-footer-css":{"post":{"operationId":"post-set-footer-css","tags":["Design & components"],"x-section":"Editor","summary":"Set a footer css","description":"Set a footer css.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"The footer css's content."}}}}}}}},"/set-header":{"post":{"operationId":"post-set-header","tags":["Design & components"],"x-section":"Editor","summary":"Set a header","description":"Set a header.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"The header's content."}}}}}}}},"/set-header-css":{"post":{"operationId":"post-set-header-css","tags":["Design & components"],"x-section":"Editor","summary":"Set a header css","description":"Set a header css.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"The header css's content."}}}}}}}},"/set-index":{"post":{"operationId":"post-set-index","tags":["Design & components"],"x-section":"Editor","summary":"Set an index","description":"Set an index.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"The index's content."}}}}}}}},"/set-locales":{"post":{"operationId":"post-set-locales","tags":["Design & components"],"x-section":"Editor","summary":"Set locales","description":"Set locales.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"The locale's content."}}}}}}}},"/set-main-css":{"post":{"operationId":"post-set-main-css","tags":["Design & components"],"x-section":"Editor","summary":"Set a main css","description":"Set a main css.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"The main css's content."}}}}}}}},"/set-partners":{"post":{"operationId":"post-set-partners","tags":["Design & components"],"x-section":"Editor","summary":"Set partners","description":"Set partners.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"The partner's content."}}}}}}}},"/set-payment":{"post":{"operationId":"post-set-payment","tags":["Design & components"],"x-section":"Editor","summary":"Set a payment","description":"Set a payment.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"The payment's content."}}}}}}}},"/set-product":{"post":{"operationId":"post-set-product","tags":["Design & components"],"x-section":"Editor","summary":"Set a product","description":"Set a product.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"The product's content."}}}}}}}},"/set-products":{"post":{"operationId":"post-set-products","tags":["Design & components"],"x-section":"Editor","summary":"Set products","description":"Set products.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"The product's content."}}}}}}}},"/set-service":{"post":{"operationId":"post-set-service","tags":["Design & components"],"x-section":"Editor","summary":"Set a service","description":"Set a service.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"The service's content."}}}}}}}},"/set-services":{"post":{"operationId":"post-set-services","tags":["Design & components"],"x-section":"Editor","summary":"Set services","description":"Set services.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"The service's content."}}}}}}}},"/set-store":{"post":{"operationId":"post-set-store","tags":["Design & components"],"x-section":"Editor","summary":"Set a store","description":"Set a store.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"The store's content."}}}}}}}},"/set-theme":{"post":{"operationId":"post-set-theme","tags":["Design & components"],"x-section":"Editor","summary":"Set a theme","description":"Set a theme.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"The theme's content."}}}}}}}},"/set-vlog":{"post":{"operationId":"post-set-vlog","tags":["Design & components"],"x-section":"Editor","summary":"Set a vlog","description":"Set a vlog.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"The vlog's content."}}}}}}}},"/set-vlogs":{"post":{"operationId":"post-set-vlogs","tags":["Design & components"],"x-section":"Editor","summary":"Set vlogs","description":"Set vlogs.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"The vlog's content."}}}}}}}},"/index-components":{"get":{"operationId":"get-index-components","tags":["Design & components"],"x-section":"Index Component","summary":"List all index components","description":"Returns the site's index components, newest first unless a sort is given.","x-access":["admin"],"x-models":["IndexComponent"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-index-components","tags":["Design & components"],"x-section":"Index Component","summary":"Create an index component","description":"Create new indexComponent.","x-access":["admin"],"x-models":["IndexComponent"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndexComponent"}}}}}},"/index-components/{id}":{"get":{"operationId":"get-index-components-id","tags":["Design & components"],"x-section":"Index Component","summary":"Retrieve an index component","description":"Returns one index component, found by its ID.","x-access":["admin"],"x-models":["IndexComponent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the index component."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-index-components-id","tags":["Design & components"],"x-section":"Index Component","summary":"Update an index component","description":"Update IndexComponent by id.","x-access":["admin"],"x-models":["IndexComponent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the index component."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndexComponent"}}}}},"delete":{"operationId":"delete-index-components-id","tags":["Design & components"],"x-section":"Index Component","summary":"Delete an index component","description":"Delete IndexComponent record by id.","x-access":["admin"],"x-models":["IndexComponent"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the index component."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/popup":{"get":{"operationId":"get-popup","tags":["Design & components"],"x-section":"Popup","summary":"Retrieve the popup","description":"Returns the popup.","x-access":["admin"],"x-models":["Popup"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-popup","tags":["Design & components"],"x-section":"Popup","summary":"Create a popup","description":"Create new popup.","x-access":["admin"],"x-models":["Popup"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Popup"}}}}}},"/popup/{id}":{"get":{"operationId":"get-popup-id","tags":["Design & components"],"x-section":"Popup","summary":"Retrieve a popup","description":"Returns one popup, found by its ID.","x-access":["admin"],"x-models":["Popup"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the popup."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/g/{url}(*)":{"get":{"operationId":"get-g-url","tags":["Design & components"],"x-section":"Wildcard","summary":"Retrieve a g","description":"Returns one g, found by its URL slug.","x-access":[],"x-models":["Wildcard"],"parameters":[{"name":"url","in":"path","required":true,"schema":{"type":"string"},"description":"The g's URL slug, as in its address on the site."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."},"502":{"description":"A service the request depends on failed - for example the address a redirect forwards to."}}}},"/wildcards":{"get":{"operationId":"get-wildcards","tags":["Design & components"],"x-section":"Wildcard","summary":"List all wildcards","description":"Returns the site's wildcards, newest first unless a sort is given.","x-access":["admin"],"x-models":["Wildcard"],"parameters":[{"name":"authenticated","in":"query","required":false,"schema":{"type":"string"},"description":"Only wildcards with this authenticated."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-wildcards","tags":["Design & components"],"x-section":"Wildcard","summary":"Create a wildcard","description":"Create new wildcard.","x-access":["admin"],"x-models":["Wildcard"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Wildcard"}}}}}},"/wildcards/{id}":{"get":{"operationId":"get-wildcards-id","tags":["Design & components"],"x-section":"Wildcard","summary":"Retrieve a wildcard","description":"Returns one wildcard, found by its ID.","x-access":["admin"],"x-models":["Wildcard"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the wildcard."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-wildcards-id","tags":["Design & components"],"x-section":"Wildcard","summary":"Update a wildcard","description":"Update Wildcard by id.","x-access":["admin"],"x-models":["Wildcard"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the wildcard."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Wildcard"}}}}},"delete":{"operationId":"delete-wildcards-id","tags":["Design & components"],"x-section":"Wildcard","summary":"Delete a wildcard","description":"Delete Wildcard record by id.","x-access":["admin"],"x-models":["Wildcard"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the wildcard."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/create-new-popup":{"post":{"operationId":"post-create-new-popup","tags":["Design & components"],"x-section":"AI builder","summary":"Create a popup with AI","description":"Create a popup from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the popup, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the popup to change."}}}}}}}},"/generate-popup":{"post":{"operationId":"post-generate-popup","tags":["Design & components"],"x-section":"AI builder","summary":"Generate a popup with AI","description":"Use it to create or set up a site popup or modal.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the popup, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/modify-locales":{"post":{"operationId":"post-modify-locales","tags":["Translations"],"x-section":"AI builder","summary":"Modify a locale with AI","description":"Use it to translate the site UI strings (buttons, labels, menus, system text) to a different language, or update the site's translations/locales.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the locale, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/update-locales":{"post":{"operationId":"post-update-locales","tags":["Translations"],"x-section":"AI builder","summary":"Update a locale with AI","description":"Update a locale from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the locale, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the locale to change."}}}}}}}},"/email":{"get":{"operationId":"get-email","tags":["Emails"],"x-section":"Email","summary":"Retrieve the email","description":"Returns the email.","x-access":["admin"],"x-models":["Email"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/email/{type}":{"get":{"operationId":"get-email-type","tags":["Emails"],"x-section":"Email","summary":"List all emails","description":"Returns the site's emails, newest first unless a sort is given.","x-access":["admin"],"x-models":["Email"],"parameters":[{"name":"type","in":"path","required":true,"schema":{"type":"string"},"description":"The email's type."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/email-template":{"get":{"operationId":"get-email-template","tags":["Emails"],"x-section":"Email Template","summary":"Retrieve the email template","description":"Returns the email template.","x-access":["admin"],"x-models":["EmailTemplate"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-email-template","tags":["Emails"],"x-section":"Email Template","summary":"Create an email template","description":"Creates an email template from the fields sent.","x-access":["admin"],"x-models":["EmailTemplate"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"owner_id":{"type":"string","description":"The email template's owner id."}}}}}}}},"/email-template/{id}":{"get":{"operationId":"get-email-template-id","tags":["Emails"],"x-section":"Email Template","summary":"Retrieve an email template","description":"Returns one email template, found by its ID.","x-access":["admin"],"x-models":["EmailTemplate"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the email template."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-email-template-id","tags":["Emails"],"x-section":"Email Template","summary":"Update an email template","description":"Changes the fields sent; the others stay as they are.","x-access":["admin"],"x-models":["EmailTemplate"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the email template."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTemplate"}}}}}},"/email-templates/{id}":{"delete":{"operationId":"delete-email-templates-id","tags":["Emails"],"x-section":"Email Template","summary":"Delete an email template","description":"Deletes the email template. This cannot be undone.","x-access":["admin"],"x-models":["EmailTemplate"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the email template."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/modify-email-settings":{"post":{"operationId":"post-modify-email-settings","tags":["Emails"],"x-section":"AI builder","summary":"Modify an email setting with AI","description":"Use it to change what your automated emails say.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the email setting, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/modify-email-template":{"post":{"operationId":"post-modify-email-template","tags":["Emails"],"x-section":"AI builder","summary":"Modify an email template with AI","description":"Use it to design or create the visual look of your emails.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the email template, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/modify-store-email-text":{"post":{"operationId":"post-modify-store-email-text","tags":["Emails"],"x-section":"AI builder","summary":"Modify a store email text with AI","description":"Use it to write or customize the body message that appears inside order or subscription emails.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the store email text, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/update-email-settings-ai":{"post":{"operationId":"post-update-email-settings-ai","tags":["Emails"],"x-section":"AI builder","summary":"Update an email setting with AI","description":"Update an email setting from a prompt, written by the AI builder.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the email setting, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"email_type":{"type":"string","description":"The email setting's email type."}}}}}}}},"/update-email-template-ai":{"post":{"operationId":"post-update-email-template-ai","tags":["Emails"],"x-section":"AI builder","summary":"Update an email template with AI","description":"Update an email template from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the email template, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the email template to change."}}}}}}}},"/update-store-email-text-ai":{"post":{"operationId":"post-update-store-email-text-ai","tags":["Emails"],"x-section":"AI builder","summary":"Update a store email text with AI","description":"Update a store email text from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the store email text, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the store email text to change."}}}}}}}},"/add-media-quality":{"post":{"operationId":"post-add-media-quality","tags":["Media"],"x-section":"Media","summary":"Add an add media quality","description":"Add an add media quality.","x-access":["user"],"x-models":["Media"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"media_id":{"type":"string","description":"The add media quality's media id."},"transcode":{"type":"string","description":"The add media quality's transcode."},"type":{"type":"string","description":"The add media quality's type."}}}}}}}},"/check-video/{id}":{"get":{"operationId":"get-check-video-id","tags":["Media"],"x-section":"Media","summary":"Check a video","description":"Check a video.","x-access":["user"],"x-models":["Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the video."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/create-storage-folder":{"post":{"operationId":"post-create-storage-folder","tags":["Media"],"x-section":"Media","summary":"Create a storage folder with AI","description":"Create a storage folder from a prompt, written by the AI builder.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"The storage folder's name."}}}}}}}},"/download-media/{id}":{"get":{"operationId":"get-download-media-id","tags":["Media"],"x-section":"Media","summary":"Retrieve a download media","description":"Returns one download media, found by its ID.","x-access":[],"x-models":["Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the download media."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/get-media-cdn":{"get":{"operationId":"get-get-media-cdn","tags":["Media"],"x-section":"Media","summary":"Retrieve the media cdn","description":"Returns the media cdn.","x-access":["user"],"parameters":[{"name":"without_path","in":"query","required":false,"schema":{"type":"string"},"description":"Only media cdns with this without path."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/get-media-upload-signed-url":{"post":{"operationId":"post-get-media-upload-signed-url","tags":["Media"],"x-section":"Media","summary":"Upload a media signed url","description":"Upload a media signed url.","x-access":["user"],"x-models":["Media"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"The media signed url's name."},"type":{"type":"string","description":"The media signed url's type."},"duration":{"type":"string","description":"The media signed url's duration."},"saveOwner":{"type":"string","description":"The media signed url's save owner."}}}}}}}},"/get-storage-upload-signed-url":{"post":{"operationId":"post-get-storage-upload-signed-url","tags":["Media"],"x-section":"Media","summary":"Upload a storage signed url","description":"Upload a storage signed url.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"The storage signed url's name."},"type":{"type":"string","description":"The storage signed url's type."}}}}}}}},"/get-vimeo-form":{"post":{"operationId":"post-get-vimeo-form","tags":["Media"],"x-section":"Media","summary":"Create a vimeo form","description":"Creates a vimeo form from the fields sent.","x-access":["user"],"x-models":["Media"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/import-medias":{"post":{"operationId":"post-import-medias","tags":["Media"],"x-section":"Media","summary":"Import medias","description":"Import medias.","x-access":["user"],"x-models":["Media"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Media"}}}}}},"/import-medias-from-site":{"post":{"operationId":"post-import-medias-from-site","tags":["Media"],"x-section":"Media","summary":"Import medias from site","description":"Import medias from site.","x-access":["user"],"x-models":["Media"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"media":{"type":"string","description":"The medias from site's media."},"_id":{"type":"string","description":"The ID of the medias from site."},"url":{"type":"string","description":"The medias from site's URL slug, as in its address on the site."}}}}}}}},"/logo":{"get":{"operationId":"get-logo","tags":["Media"],"x-section":"Media","summary":"Retrieve the logo","description":"Get a 150 width version of the logo.","x-access":[],"x-models":["MyContact","Media"],"parameters":[{"name":"size","in":"query","required":false,"schema":{"type":"string"},"description":"Only logos with this size."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/media-about-section-import/{id}":{"get":{"operationId":"get-media-about-section-import-id","tags":["Media"],"x-section":"Media","summary":"Import media sections","description":"Import media sections.","x-access":[],"x-models":["AboutPageImport"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the media section."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/media-instagram":{"get":{"operationId":"get-media-instagram","tags":["Media"],"x-section":"Media","summary":"Retrieve the media instagram","description":"Returns the media instagram.","x-access":[],"parameters":[{"name":"url","in":"query","required":false,"schema":{"type":"string"},"description":"The media instagram's URL slug, as in its address on the site."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/media-sequence-generate":{"post":{"operationId":"post-media-sequence-generate","tags":["Media"],"x-section":"Media","summary":"Create a media sequence generate","description":"Make a scroll animation's video with AI, from an idea and up to 3 of the user's pictures. The idea is rewritten into a scroll-friendly, safe video prompt first (utils/ai-builder/scroll-sequence-ai). Answers at once with an AsyncJob to poll (GET /async-jobs/:id); when it completes, its jobContext holds { media, summary, prompt } - the video, already cut into frames - or { error, refused }.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"idea":{"type":"string","description":"The media sequence generate's idea."},"mediaIds":{"type":"string","description":"The media sequence generate's media ids."},"quality":{"type":"string","description":"The media sequence generate's quality."}}}}}}}},"/media-sequence-generate/cost":{"get":{"operationId":"get-media-sequence-generate-cost","tags":["Media"],"x-section":"Media","summary":"Retrieve the media sequence generate","description":"What an AI scroll-animation video costs, in credits, by quality - and the user's. balance (null when the wallet cannot be read).","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/media-sequence/{id}":{"get":{"operationId":"get-media-sequence-id","tags":["Media"],"x-section":"Media","summary":"Retrieve a media sequence","description":"The frames of a scroll animation - status, count, size and CDN. URLs. Public: the live site's player reads it.","x-access":[],"x-models":["Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the media sequence."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-media-sequence-id","tags":["Media"],"x-section":"Media","summary":"Create a media sequence","description":"Cut a stored video into the still frames a scroll animation plays. Starts the build and answers 202 { status: 'processing' } at once; follow it with while a build runs, it answers the same (no second build) unless ?force.","x-access":["admin"],"x-models":["Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the media sequence."},{"name":"force","in":"query","required":false,"schema":{"type":"string"},"description":"Only media sequences with this force."}],"responses":{"202":{"description":"The work was started and finishes in the background - for example a video being processed ({ \"status\": \"processing\" }). Check back on the object."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"trim_start":{"type":"string","description":"The media sequence's trim start."}}}}}}}},"/media-sequence/{id}/client-fail":{"post":{"operationId":"post-media-sequence-id-client-fail","tags":["Media"],"x-section":"Media","summary":"Create a media sequence","description":"The browser could not finish (and says why) - so the build is not left \"processing\".","x-access":["admin"],"x-models":["Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the media sequence."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"The media sequence's error."}}}}}}}},"/media-sequence/{id}/client-finish":{"post":{"operationId":"post-media-sequence-id-client-finish","tags":["Media"],"x-section":"Media","summary":"Create a media sequence","description":"The frames are up: check them and mark the animation ready.","x-access":["admin"],"x-models":["Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the media sequence."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Media"}}}}}},"/media-sequence/{id}/client-progress":{"post":{"operationId":"post-media-sequence-id-client-progress","tags":["Media"],"x-section":"Media","summary":"Create a media sequence","description":"The admin's heartbeat while it builds: frames done so far.","x-access":["admin"],"x-models":["Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the media sequence."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Media"}}}}}},"/media-sequence/{id}/client-start":{"post":{"operationId":"post-media-sequence-id-client-start","tags":["Media"],"x-section":"Media","summary":"Create a media sequence","description":"Signed upload links for every frame the admin is about to make.","x-access":["admin"],"x-models":["Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the media sequence."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"409":{"description":"It clashes with the current state: the item is already being processed, a version is already applied, or an AI plan or preview is no longer available."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"force":{"type":"string","description":"The media sequence's force."}}}}}}}},"/media-tracker/{id}":{"get":{"operationId":"get-media-tracker-id","tags":["Media"],"x-section":"Media","summary":"Retrieve a media tracker","description":"Returns one media tracker, found by its ID.","x-access":[],"x-models":["TrackerProgress"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the media tracker."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/medias":{"post":{"operationId":"post-medias","tags":["Media"],"x-section":"Media","summary":"Create a media","description":"Create new media.","x-access":["user"],"x-models":["MyContact","Media"],"parameters":[{"name":"skip_owner_id","in":"query","required":false,"schema":{"type":"string"},"description":"Only medias with this skip owner id."}],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","description":"The media's body."},"alt":{"type":"string","description":"The media's alt."},"youtube_url":{"type":"string","description":"The media's youtube url."},"vimeo_url":{"type":"string","description":"The media's vimeo url."},"picture_gcs_url":{"type":"string","description":"The media's picture gcs url."}}}}}}}},"/medias-avatar/{id}":{"get":{"operationId":"get-medias-avatar-id","tags":["Media"],"x-section":"Media","summary":"Retrieve a medias avatar","description":"Returns one medias avatar, found by its ID.","x-access":[],"x-models":["Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the medias avatar."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/medias-count":{"get":{"operationId":"get-medias-count","tags":["Media"],"x-section":"Media","summary":"Count medias","description":"Count medias.","x-access":["user"],"x-models":["Media"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/medias-form/{form_id}&{img_index}":{"get":{"operationId":"get-medias-form-form-id-img-index","tags":["Media"],"x-section":"Media","summary":"Retrieve a medias form","description":"Returns one medias form, found by its ID.","x-access":[],"x-models":["Form"],"parameters":[{"name":"form_id","in":"path","required":true,"schema":{"type":"string"},"description":"The medias form's form id."},{"name":"img_index","in":"path","required":true,"schema":{"type":"string"},"description":"The medias form's img index."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/medias-large/{id}":{"get":{"operationId":"get-medias-large-id","tags":["Media"],"x-section":"Media","summary":"Retrieve a medias large","description":"Get a 1200px width version of the image.","x-access":[],"x-models":["Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the medias large."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/medias-marker/{id}":{"get":{"operationId":"get-medias-marker-id","tags":["Media"],"x-section":"Media","summary":"Retrieve a medias marker","description":"Returns one medias marker, found by its ID.","x-access":[],"x-models":["Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the medias marker."},{"name":"size","in":"query","required":false,"schema":{"type":"string"},"description":"Only medias markers with this size."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/medias-medium/{id}":{"get":{"operationId":"get-medias-medium-id","tags":["Media"],"x-section":"Media","summary":"Retrieve a medias medium","description":"Get a 850px width version of the image.","x-access":[],"x-models":["Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the medias medium."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/medias-object/{id}":{"get":{"operationId":"get-medias-object-id","tags":["Media"],"x-section":"Media","summary":"Retrieve a medias object","description":"Get a Media object.","x-access":["user"],"x-models":["Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the medias object."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/medias-og/{id}":{"get":{"operationId":"get-medias-og-id","tags":["Media"],"x-section":"Media","summary":"Retrieve a medias og","description":"Get a 1200x630px version of the logo.","x-access":[],"x-models":["Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the medias og."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/medias-responsive/{id}":{"get":{"operationId":"get-medias-responsive-id","tags":["Media"],"x-section":"Media","summary":"Retrieve a medias responsive","description":"Get a 1920px width version of the image.","x-access":[],"x-models":["Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the medias responsive."},{"name":"size","in":"query","required":false,"schema":{"type":"string"},"description":"Only medias responsives with this size."},{"name":"isFluid","in":"query","required":false,"schema":{"type":"string"},"description":"Only medias responsives with this is fluid."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/medias-storage":{"get":{"operationId":"get-medias-storage","tags":["Media"],"x-section":"Media","summary":"Retrieve the medias storage","description":"Returns the medias storage.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/medias-thumbnail/{id}":{"get":{"operationId":"get-medias-thumbnail-id","tags":["Media"],"x-section":"Media","summary":"Retrieve a medias thumbnail","description":"Returns one medias thumbnail, found by its ID.","x-access":[],"x-models":["Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the medias thumbnail."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/medias-xlarge/{id}":{"get":{"operationId":"get-medias-xlarge-id","tags":["Media"],"x-section":"Media","summary":"Retrieve a medias xlarge","description":"Get a 1920px width version of the image.","x-access":[],"x-models":["Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the medias xlarge."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/medias/{id}":{"get":{"operationId":"get-medias-id","tags":["Media"],"x-section":"Media","summary":"Retrieve a media","description":"Get a 500px width version of the image.","x-access":[],"x-models":["Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the media."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-medias-id","tags":["Media"],"x-section":"Media","summary":"Update a media","description":"Update Media by id.","x-access":["user"],"x-models":["Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the media."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"alt":{"type":"string","description":"The media's alt."},"filename":{"type":"string","description":"The media's filename."},"thumbnail":{"type":"string","description":"The media's thumbnail."}}}}}}},"delete":{"operationId":"delete-medias-id","tags":["Media"],"x-section":"Media","summary":"Delete a media","description":"Delete Media record by id.","x-access":["user"],"x-models":["Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the media."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/pwa-logo":{"get":{"operationId":"get-pwa-logo","tags":["Media"],"x-section":"Media","summary":"Retrieve the app logo","description":"Returns the app logo.","x-access":[],"x-models":["PwaSettings","MyContact","Media"],"parameters":[{"name":"media_id","in":"query","required":false,"schema":{"type":"string"},"description":"Only app logos with this media id."},{"name":"size","in":"query","required":false,"schema":{"type":"string"},"description":"Only app logos with this size."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/pwa-media/{id}":{"get":{"operationId":"get-pwa-media-id","tags":["Media"],"x-section":"Media","summary":"Retrieve an app media","description":"Returns one app media, found by its ID.","x-access":[],"x-models":["Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the app media."},{"name":"size_x","in":"query","required":false,"schema":{"type":"string"},"description":"Only app medias with this size x."},{"name":"size_y","in":"query","required":false,"schema":{"type":"string"},"description":"Only app medias with this size y."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/qr-code-medias/{id}":{"get":{"operationId":"get-qr-code-medias-id","tags":["Media"],"x-section":"Media","summary":"Retrieve a QR code code media","description":"Returns one QR code code media, found by its ID.","x-access":[],"x-models":["Ticket"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the QR code code media."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/remove-media-quality":{"patch":{"operationId":"patch-remove-media-quality","tags":["Media"],"x-section":"Media","summary":"Remove a remove media quality","description":"Remove a remove media quality.","x-access":["user"],"x-models":["Media"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"media_id":{"type":"string","description":"The remove media quality's media id."},"transcode":{"type":"string","description":"The remove media quality's transcode."}}}}}}}},"/storage-file":{"patch":{"operationId":"patch-storage-file","tags":["Media"],"x-section":"Media","summary":"Update the storage file","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":"string","description":"The storage file's file."}}}}}}}},"/storage-files":{"get":{"operationId":"get-storage-files","tags":["Media"],"x-section":"Media","summary":"List all storage files","description":"Returns the site's storage files, newest first unless a sort is given.","x-access":["admin"],"parameters":[{"name":"folder_path","in":"query","required":false,"schema":{"type":"string"},"description":"Only storage files with this folder path."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/file-routes":{"get":{"operationId":"get-file-routes","tags":["Media"],"x-section":"File Route","summary":"List all file routes","description":"Returns the site's file routes, newest first unless a sort is given.","x-access":["admin"],"x-models":["FileRoute"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-file-routes","tags":["Media"],"x-section":"File Route","summary":"Create a file route","description":"Create new file route.","x-access":["admin"],"x-models":["FileRoute"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"The file route's URL slug, as in its address on the site."},"content_type":{"type":"string","description":"The file route's content type."}}}}}}}},"/file-routes/{id}":{"patch":{"operationId":"patch-file-routes-id","tags":["Media"],"x-section":"File Route","summary":"Update a file route","description":"Update FileRoute by id.","x-access":["admin"],"x-models":["FileRoute"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the file route."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"The file route's URL slug, as in its address on the site."},"content_type":{"type":"string","description":"The file route's content type."}}}}}}},"delete":{"operationId":"delete-file-routes-id","tags":["Media"],"x-section":"File Route","summary":"Delete a file route","description":"Delete FileRoute record by id.","x-access":["admin"],"x-models":["FileRoute"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the file route."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/qr-code":{"get":{"operationId":"get-qr-code","tags":["Media"],"x-section":"Qr Code","summary":"Retrieve the QR code code","description":"Returns the QR code code.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-qr-code","tags":["Media"],"x-section":"Qr Code","summary":"Create a QR code code","description":"Create new qr-code.","x-access":["admin"],"x-models":["QrCode"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QrCode"}}}}}},"/qr-code/{id}":{"get":{"operationId":"get-qr-code-id","tags":["Media"],"x-section":"Qr Code","summary":"Retrieve a QR code code","description":"Returns one QR code code, found by its ID.","x-access":["admin"],"x-models":["QrCode"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the QR code code."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-qr-code-id","tags":["Media"],"x-section":"Qr Code","summary":"Update a QR code code","description":"Update Alert by id.","x-access":["admin"],"x-models":["QrCode"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the QR code code."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QrCode"}}}}}},"/single-video/{id}":{"get":{"operationId":"get-single-video-id","tags":["Media"],"x-section":"Video","summary":"Retrieve a single video","description":"Returns one single video, found by its ID.","x-access":["optional-user","page-priv"],"x-models":["Video","Comment","Collection"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the single video."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"402":{"description":"The content needs a subscription: the user has no price plan that unlocks it."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/videos":{"get":{"operationId":"get-videos","tags":["Media"],"x-section":"Video","summary":"List all videos","description":"Returns the site's videos, newest first unless a sort is given.","x-access":["user-priv","optional-user"],"x-models":["Collection","Video","AboutPage"],"parameters":[{"name":"published","in":"query","required":false,"schema":{"type":"string"},"description":"Only videos with this published."},{"name":"sortBy","in":"query","required":false,"schema":{"type":"string"},"description":"The order of the results."},{"name":"collection","in":"query","required":false,"schema":{"type":"string"},"description":"Only results in this collection."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"402":{"description":"The content needs a subscription: the user has no price plan that unlocks it."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-videos","tags":["Media"],"x-section":"Video","summary":"Create a video","description":"Creates a video from the fields sent.","x-access":["user"],"x-models":["Video"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Video"}}}}}},"/videos-multiple/{delete_ids}":{"delete":{"operationId":"delete-videos-multiple-delete-ids","tags":["Media"],"x-section":"Video","summary":"Delete multiple videos","description":"Deletes the video. This cannot be undone.","x-access":["user"],"x-models":["Video"],"parameters":[{"name":"delete_ids","in":"path","required":true,"schema":{"type":"string"},"description":"The video's delete ids."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/videos-multiple/{patch_ids}":{"patch":{"operationId":"patch-videos-multiple-patch-ids","tags":["Media"],"x-section":"Video","summary":"Update multiple videos","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Video"],"parameters":[{"name":"patch_ids","in":"path","required":true,"schema":{"type":"string"},"description":"The video's patch ids."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"collection_id":{"type":"string","description":"The collection id - the ID of a collection."},"updates":{"type":"string","description":"The video's updates."}}}}}}}},"/videos/{id}":{"get":{"operationId":"get-videos-id","tags":["Media"],"x-section":"Video","summary":"Retrieve a video","description":"Returns one video, found by its ID.","x-access":["optional-user"],"x-models":["Collection","Video"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the video."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-videos-id","tags":["Media"],"x-section":"Video","summary":"Update a video","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Video"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the video."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Video"}}}}},"delete":{"operationId":"delete-videos-id","tags":["Media"],"x-section":"Video","summary":"Delete a video","description":"Deletes the video. This cannot be undone.","x-access":["user"],"x-models":["Video"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the video."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/videos/playlists":{"get":{"operationId":"get-videos-playlists","tags":["Media"],"x-section":"Video","summary":"List all videos","description":"Returns the site's videos, newest first unless a sort is given.","x-access":["optional-user"],"x-models":["Collection","Media"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/video-interaction":{"post":{"operationId":"post-video-interaction","tags":["Media"],"x-section":"Video Interaction","summary":"Create a video interaction","description":"Create new video_interaction.","x-access":["user"],"x-models":["VideoInteraction"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"video_viewer":{"type":"string","description":"The video viewer - the ID of a user."}}}}}}}},"/create-new-image":{"post":{"operationId":"post-create-new-image","tags":["Media"],"x-section":"AI builder","summary":"Create an image with AI","description":"Create an image from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the image, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."}}}}}}}},"/create-new-video":{"post":{"operationId":"post-create-new-video","tags":["Media"],"x-section":"AI builder","summary":"Create a video with AI","description":"Create a video from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage","Media"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"duration":{"type":"string","description":"The video's duration."},"prompt":{"type":"string","description":"What the AI should do with the video, in plain words - any language."},"mediaIds":{"type":"string","description":"The video's media ids."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aspect_ratio":{"type":"string","description":"The video's aspect ratio."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."}}}}}}}},"/generate-image":{"post":{"operationId":"post-generate-image","tags":["Media"],"x-section":"AI builder","summary":"Generate an image with AI","description":"Use it to create a new image using only a text description.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the image, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/generate-image-to-video":{"post":{"operationId":"post-generate-image-to-video","tags":["Media"],"x-section":"AI builder","summary":"Generate an image to video with AI","description":"Use it to create or generate a specific video right now.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the image to video, in plain words - any language."},"aspect_ratio":{"type":"string","description":"The image to video's aspect ratio."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/generate-text-to-video":{"post":{"operationId":"post-generate-text-to-video","tags":["Media"],"x-section":"AI builder","summary":"Generate a text to video with AI","description":"Use it to create or generate a specific video right now using a text description.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the text to video, in plain words - any language."},"aspect_ratio":{"type":"string","description":"The text to video's aspect ratio."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/generate-video-to-video":{"post":{"operationId":"post-generate-video-to-video","tags":["Media"],"x-section":"AI builder","summary":"Generate a video to video with AI","description":"Use it to modify or extend an AI-generated video that was just created.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the video to video, in plain words - any language."},"aspect_ratio":{"type":"string","description":"The video to video's aspect ratio."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/modify-ai-image":{"post":{"operationId":"post-modify-ai-image","tags":["Media"],"x-section":"AI builder","summary":"Modify an AI image with AI","description":"Use it to modify last AI-generated image.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the AI image, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/modify-ai-user-image":{"post":{"operationId":"post-modify-ai-user-image","tags":["Media"],"x-section":"AI builder","summary":"Modify an AI user image with AI","description":"Use it to modify last AI-generated image from the chat.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the AI user image, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/modify-user-image":{"post":{"operationId":"post-modify-user-image","tags":["Media"],"x-section":"AI builder","summary":"Modify a user image with AI","description":"Use it to generate new image or modify existing only when the user provided media.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the user image, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/update-image":{"post":{"operationId":"post-update-image","tags":["Media"],"x-section":"AI builder","summary":"Update an image with AI","description":"Update an image from a prompt, written by the AI builder.","x-access":["user"],"x-models":["Media","ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the image, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"mediaIds":{"type":"string","description":"The image's media ids."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."}}}}}}}},"/smart-search":{"post":{"operationId":"post-smart-search","tags":["Search"],"x-section":"Smart Search","summary":"Create a smart search","description":"Meaning-based search over the site's content, for the search component.","x-access":[],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"kinds":{"type":"string","description":"The smart search's kinds."},"q":{"type":"string","description":"The words to search for."},"price":{"type":"string","description":"The smart search's price."},"dates":{"type":"string","description":"The smart search's dates."},"collections":{"type":"string","description":"The smart search's collections."},"items":{"type":"string","description":"The smart search's items."},"sort":{"type":"string","description":"The order of the results."},"skip":{"type":"string","description":"How many results to skip - for paging."},"limit":{"type":"string","description":"How many results to return."}}}}}}}},"/smart-search/answer":{"post":{"operationId":"post-smart-search-answer","tags":["Search"],"x-section":"Smart Search","summary":"Create a smart search","description":"An overview answer to the visitor's question, written only from the site's content the search finds.","x-access":[],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"429":{"description":"Slow down: the site's request limit was reached, an AI chat already has a request running, or the hourly limit of AI search answers is used up. Wait and retry."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string","description":"The words to search for."},"kinds":{"type":"string","description":"The smart search's kinds."},"price":{"type":"string","description":"The smart search's price."},"dates":{"type":"string","description":"The smart search's dates."},"collections":{"type":"string","description":"The smart search's collections."},"items":{"type":"string","description":"The smart search's items."}}}}}}}},"/smart-search/items":{"get":{"operationId":"get-smart-search-items","tags":["Search"],"x-section":"Smart Search","summary":"List all smart searches","description":"The site's searchable items, for the editor's \"only these items\" picker.","x-access":["admin"],"parameters":[{"name":"kinds","in":"query","required":false,"schema":{"type":"string"},"description":"Only smart searches with this kinds."},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"The words to search for."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/smart-search/locales":{"post":{"operationId":"post-smart-search-locales","tags":["Search"],"x-section":"Smart Search","summary":"Create a smart search","description":"Fills the site's locales with the search component's words in the site's language - the editor calls it when the component is added.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/smart-search/reindex":{"post":{"operationId":"post-smart-search-reindex","tags":["Search"],"x-section":"Smart Search","summary":"Reindex the smart search","description":"Teach the search: index the site's content now (the editor's button).","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"rebuild":{"type":"string","description":"The smart search's rebuild."}}}}}}}},"/activity-log-filters":{"get":{"operationId":"get-activity-log-filters","tags":["SEO & analytics"],"x-section":"Activity Log","summary":"List the activity log filters","description":"The action and entity values actually present, for the filter menus.","x-access":["admin"],"x-models":["ActivityLog"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/activity-logs":{"get":{"operationId":"get-activity-logs","tags":["SEO & analytics"],"x-section":"Activity Log","summary":"List all activity logs","description":"List activity log entries, newest first.","x-access":["admin"],"x-models":["ActivityLog"],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"How many results to return."},{"name":"skip","in":"query","required":false,"schema":{"type":"string"},"description":"How many results to skip - for paging."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/activity-logs-export":{"get":{"operationId":"get-activity-logs-export","tags":["SEO & analytics"],"x-section":"Activity Log","summary":"Export activity logs","description":"The current selection as CSV.","x-access":["admin"],"x-models":["ActivityLog"],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"How many results to return."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/activity-logs/{id}":{"get":{"operationId":"get-activity-logs-id","tags":["SEO & analytics"],"x-section":"Activity Log","summary":"Retrieve an activity log","description":"One entry, including the full recorded payload.","x-access":["admin"],"x-models":["ActivityLog"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the activity log."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/ga/connect":{"post":{"operationId":"post-ga-connect","tags":["SEO & analytics"],"x-section":"Ga","summary":"Connect the Google Analytic","description":"Connect the Google Analytic.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/ga/create":{"post":{"operationId":"post-ga-create","tags":["SEO & analytics"],"x-section":"Ga","summary":"Create a Google Analytic","description":"Creates a Google Analytic from the fields sent.","x-access":["user"],"x-models":["MyContact","PaymentMethod"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"property":{"type":"string","description":"The Google Analytic's property."},"accountName":{"type":"string","description":"The Google Analytic's account name."},"currencyCode":{"type":"string","description":"The Google Analytic's currency code."},"propertyName":{"type":"string","description":"The Google Analytic's property name."},"timeZone":{"type":"string","description":"The Google Analytic's time zone."},"replaceTag":{"type":"string","description":"The Google Analytic's replace tag."}}}}}}}},"/ga/disconnect":{"post":{"operationId":"post-ga-disconnect","tags":["SEO & analytics"],"x-section":"Ga","summary":"Disconnect the Google Analytic","description":"Disconnect the Google Analytic.","x-access":["user"],"x-models":["MyContact","Tracking"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/ga/events":{"get":{"operationId":"get-ga-events","tags":["SEO & analytics"],"x-section":"Ga","summary":"List all Google Analytics","description":"Returns the site's Google Analytics, newest first unless a sort is given.","x-access":["user"],"x-models":["MyContact"],"parameters":[{"name":"range","in":"query","required":false,"schema":{"type":"string"},"description":"Only Google Analytics with this range."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/ga/pages":{"get":{"operationId":"get-ga-pages","tags":["SEO & analytics"],"x-section":"Ga","summary":"List all Google Analytics","description":"Returns the site's Google Analytics, newest first unless a sort is given.","x-access":["user"],"x-models":["MyContact"],"parameters":[{"name":"range","in":"query","required":false,"schema":{"type":"string"},"description":"Only Google Analytics with this range."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/ga/realtime":{"get":{"operationId":"get-ga-realtime","tags":["SEO & analytics"],"x-section":"Ga","summary":"Retrieve the Google Analytic","description":"Returns the Google Analytic.","x-access":["user"],"x-models":["MyContact"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/ga/report":{"get":{"operationId":"get-ga-report","tags":["SEO & analytics"],"x-section":"Ga","summary":"Report the Google Analytic","description":"Report the Google Analytic.","x-access":["user"],"x-models":["MyContact"],"parameters":[{"name":"range","in":"query","required":false,"schema":{"type":"string"},"description":"Only Google Analytics with this range."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/ga/status":{"get":{"operationId":"get-ga-status","tags":["SEO & analytics"],"x-section":"Ga","summary":"Change the status of a Google Analytic","description":"Change the status of a Google Analytic.","x-access":["user"],"x-models":["MyContact","Tracking"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/gmb/categories":{"get":{"operationId":"get-gmb-categories","tags":["SEO & analytics"],"x-section":"Gmb","summary":"List all Google Business Profiles","description":"Returns the site's Google Business Profiles, newest first unless a sort is given.","x-access":["user"],"parameters":[{"name":"accessToken","in":"query","required":false,"schema":{"type":"string"},"description":"Only Google Business Profiles with this access token."},{"name":"regionCode","in":"query","required":false,"schema":{"type":"string"},"description":"Only Google Business Profiles with this region code."},{"name":"languageCode","in":"query","required":false,"schema":{"type":"string"},"description":"Only Google Business Profiles with this language code."},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"The words to search for."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/gmb/connect":{"post":{"operationId":"post-gmb-connect","tags":["SEO & analytics"],"x-section":"Gmb","summary":"Connect the Google Business Profile","description":"Connect the Google Business Profile.","x-access":["user"],"x-models":["MyContact"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/gmb/create":{"post":{"operationId":"post-gmb-create","tags":["SEO & analytics"],"x-section":"Gmb","summary":"Create a Google Business Profile","description":"Creates a Google Business Profile from the fields sent.","x-access":["user"],"x-models":["MyContact"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"locations":{"type":"string","description":"The Google Business Profile's locations."}}}}}}}},"/gmb/disconnect":{"post":{"operationId":"post-gmb-disconnect","tags":["SEO & analytics"],"x-section":"Gmb","summary":"Disconnect the Google Business Profile","description":"Disconnect the Google Business Profile.","x-access":["user"],"x-models":["MyContact"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/gmb/import":{"post":{"operationId":"post-gmb-import","tags":["SEO & analytics"],"x-section":"Gmb","summary":"Import the Google Business Profile","description":"Import the Google Business Profile.","x-access":["user"],"x-models":["OriginAddress","Collection","MyContact","Service"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"serviceItems":{"type":"string","description":"The Google Business Profile's service items."},"storefrontAddress":{"type":"string","description":"The Google Business Profile's storefront address."},"regularHours":{"type":"string","description":"The Google Business Profile's regular hours."},"location":{"type":"string","description":"The Google Business Profile's location."},"importServices":{"type":"string","description":"The Google Business Profile's import services."},"collectionId":{"type":"string","description":"The Google Business Profile's collection id."},"importHours":{"type":"string","description":"The Google Business Profile's import hours."},"importAddress":{"type":"string","description":"The Google Business Profile's import address."},"email":{"type":"string","description":"An email address."},"importEmail":{"type":"string","description":"The Google Business Profile's import email."}}}}}}}},"/gmb/select":{"post":{"operationId":"post-gmb-select","tags":["SEO & analytics"],"x-section":"Gmb","summary":"Create a Google Business Profile","description":"Creates a Google Business Profile from the fields sent.","x-access":["user"],"x-models":["MyContact"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"location":{"type":"string","description":"The Google Business Profile's location."}}}}}}}},"/gmb/status":{"get":{"operationId":"get-gmb-status","tags":["SEO & analytics"],"x-section":"Gmb","summary":"Change the status of a Google Business Profile","description":"Change the status of a Google Business Profile.","x-access":["user"],"x-models":["MyContact"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/gsc/breakdown":{"get":{"operationId":"get-gsc-breakdown","tags":["SEO & analytics"],"x-section":"Gsc","summary":"Retrieve the Search Console","description":"Returns the Search Console.","x-access":["user"],"x-models":["MyContact","Tracking"],"parameters":[{"name":"range","in":"query","required":false,"schema":{"type":"string"},"description":"Only Search Consoles with this range."},{"name":"type","in":"query","required":false,"schema":{"type":"string"},"description":"Only Search Consoles with this type."},{"name":"dimension","in":"query","required":false,"schema":{"type":"string"},"description":"Only Search Consoles with this dimension."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/gsc/connect":{"post":{"operationId":"post-gsc-connect","tags":["SEO & analytics"],"x-section":"Gsc","summary":"Connect the Search Console","description":"Connect the Search Console.","x-access":["user"],"x-models":["MyContact","Tracking"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/gsc/disconnect":{"post":{"operationId":"post-gsc-disconnect","tags":["SEO & analytics"],"x-section":"Gsc","summary":"Disconnect the Search Console","description":"Disconnect the Search Console.","x-access":["user"],"x-models":["Tracking"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/gsc/performance":{"get":{"operationId":"get-gsc-performance","tags":["SEO & analytics"],"x-section":"Gsc","summary":"Retrieve the Search Console","description":"Returns the Search Console.","x-access":["user"],"x-models":["MyContact","Tracking"],"parameters":[{"name":"range","in":"query","required":false,"schema":{"type":"string"},"description":"Only Search Consoles with this range."},{"name":"type","in":"query","required":false,"schema":{"type":"string"},"description":"Only Search Consoles with this type."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/gsc/sites":{"get":{"operationId":"get-gsc-sites","tags":["SEO & analytics"],"x-section":"Gsc","summary":"List all Search Consoles","description":"Returns the site's Search Consoles, newest first unless a sort is given.","x-access":["user"],"x-models":["MyContact","Tracking"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/keywords":{"get":{"operationId":"get-keywords","tags":["SEO & analytics"],"x-section":"Keyword","summary":"List all keywords","description":"Returns the site's keywords, newest first unless a sort is given.","x-access":["admin"],"x-models":["Keyword"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/keywords/{id}":{"get":{"operationId":"get-keywords-id","tags":["SEO & analytics"],"x-section":"Keyword","summary":"Retrieve a keyword","description":"Returns one keyword, found by its ID.","x-access":["admin"],"x-models":["Keyword"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the keyword."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/keyword-blacklist":{"get":{"operationId":"get-keyword-blacklist","tags":["SEO & analytics"],"x-section":"Keyword Blacklist","summary":"Retrieve the keyword blacklist","description":"Returns the keyword blacklist.","x-access":["user"],"x-models":["KeywordBlacklist"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-keyword-blacklist","tags":["SEO & analytics"],"x-section":"Keyword Blacklist","summary":"Create a keyword blacklist","description":"Create new KeywordBlacklist.","x-access":["user"],"x-models":["KeywordBlacklist"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeywordBlacklist"}}}}}},"/keyword-blacklist/{id}":{"patch":{"operationId":"patch-keyword-blacklist-id","tags":["SEO & analytics"],"x-section":"Keyword Blacklist","summary":"Update a keyword blacklist","description":"Update KeywordBlacklist by id.","x-access":["user"],"x-models":["KeywordBlacklist"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the keyword blacklist."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeywordBlacklist"}}}}},"delete":{"operationId":"delete-keyword-blacklist-id","tags":["SEO & analytics"],"x-section":"Keyword Blacklist","summary":"Delete a keyword blacklist","description":"Delete KeywordBlacklist record by id.","x-access":["user"],"x-models":["KeywordBlacklist"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the keyword blacklist."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/metas":{"get":{"operationId":"get-metas","tags":["SEO & analytics"],"x-section":"Meta","summary":"List all metas","description":"Returns the site's metas, newest first unless a sort is given.","x-access":[],"x-models":["Meta"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-metas","tags":["SEO & analytics"],"x-section":"Meta","summary":"Create a meta","description":"Creates a meta from the fields sent.","x-access":["user"],"x-models":["Meta"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Meta"}}}}}},"/metas/{id}":{"get":{"operationId":"get-metas-id","tags":["SEO & analytics"],"x-section":"Meta","summary":"Retrieve a meta","description":"Returns one meta, found by its ID.","x-access":[],"x-models":["Meta"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the meta."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/conversions-by-days/{days}":{"get":{"operationId":"get-conversions-by-days-days","tags":["SEO & analytics"],"x-section":"Pixel Data","summary":"List all conversions days","description":"Returns the site's conversions days, newest first unless a sort is given.","x-access":["user"],"x-models":["ConnectedAccount","User","PixelData"],"parameters":[{"name":"days","in":"path","required":true,"schema":{"type":"string"},"description":"The conversions day's days."},{"name":"on_behalf_of","in":"query","required":false,"schema":{"type":"string"},"description":"Only conversions days with this on behalf of."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/conversions-graph-by-days/{days}":{"get":{"operationId":"get-conversions-graph-by-days-days","tags":["SEO & analytics"],"x-section":"Pixel Data","summary":"List all conversions graph days","description":"Returns the site's conversions graph days, newest first unless a sort is given.","x-access":["user"],"x-models":["ConnectedAccount","User","PixelData"],"parameters":[{"name":"days","in":"path","required":true,"schema":{"type":"string"},"description":"The conversions graph day's days."},{"name":"on_behalf_of","in":"query","required":false,"schema":{"type":"string"},"description":"Only conversions graph days with this on behalf of."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/conversions-table-by-days/{days}":{"get":{"operationId":"get-conversions-table-by-days-days","tags":["SEO & analytics"],"x-section":"Pixel Data","summary":"List all conversions table days","description":"Returns the site's conversions table days, newest first unless a sort is given.","x-access":["user"],"x-models":["ConnectedAccount","User","PixelData"],"parameters":[{"name":"days","in":"path","required":true,"schema":{"type":"string"},"description":"The conversions table day's days."},{"name":"on_behalf_of","in":"query","required":false,"schema":{"type":"string"},"description":"Only conversions table days with this on behalf of."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/event-count-by-days/{days}":{"get":{"operationId":"get-event-count-by-days-days","tags":["SEO & analytics"],"x-section":"Pixel Data","summary":"Count event days","description":"Count event days.","x-access":["user"],"x-models":["ConnectedAccount","User","PixelData"],"parameters":[{"name":"days","in":"path","required":true,"schema":{"type":"string"},"description":"The event day's days."},{"name":"on_behalf_of","in":"query","required":false,"schema":{"type":"string"},"description":"Only event days with this on behalf of."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/pages-and-screens-by-days/{days}":{"get":{"operationId":"get-pages-and-screens-by-days-days","tags":["SEO & analytics"],"x-section":"Pixel Data","summary":"List all pages and screens days","description":"Returns the site's pages and screens days, newest first unless a sort is given.","x-access":["user"],"x-models":["ConnectedAccount","User","MyContact","PixelData"],"parameters":[{"name":"days","in":"path","required":true,"schema":{"type":"string"},"description":"The pages and screens day's days."},{"name":"on_behalf_of","in":"query","required":false,"schema":{"type":"string"},"description":"Only pages and screens days with this on behalf of."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/pages-and-screens-graph-by-days/{days}":{"get":{"operationId":"get-pages-and-screens-graph-by-days-days","tags":["SEO & analytics"],"x-section":"Pixel Data","summary":"List all pages and screens graph days","description":"Returns the site's pages and screens graph days, newest first unless a sort is given.","x-access":["user"],"x-models":["MyContact","ConnectedAccount","User","PixelData"],"parameters":[{"name":"days","in":"path","required":true,"schema":{"type":"string"},"description":"The pages and screens graph day's days."},{"name":"on_behalf_of","in":"query","required":false,"schema":{"type":"string"},"description":"Only pages and screens graph days with this on behalf of."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/sessions-count-by-days/{days}":{"get":{"operationId":"get-sessions-count-by-days-days","tags":["SEO & analytics"],"x-section":"Pixel Data","summary":"Count sessions days","description":"Count sessions days.","x-access":["user"],"x-models":["ConnectedAccount","User","PixelData"],"parameters":[{"name":"days","in":"path","required":true,"schema":{"type":"string"},"description":"The sessions day's days."},{"name":"on_behalf_of","in":"query","required":false,"schema":{"type":"string"},"description":"Only sessions days with this on behalf of."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-count-by-days/{days}":{"get":{"operationId":"get-user-count-by-days-days","tags":["SEO & analytics"],"x-section":"Pixel Data","summary":"Count user days","description":"Count user days.","x-access":["user"],"x-models":["ConnectedAccount","User","PixelData"],"parameters":[{"name":"days","in":"path","required":true,"schema":{"type":"string"},"description":"The user day's days."},{"name":"on_behalf_of","in":"query","required":false,"schema":{"type":"string"},"description":"Only user days with this on behalf of."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/item-rating-over-time/{from}&{to}":{"get":{"operationId":"get-item-rating-over-time-from-to","tags":["SEO & analytics"],"x-section":"Report","summary":"List all item rating over times","description":"Returns the site's item rating over times, newest first unless a sort is given.","x-access":["admin"],"x-models":["Rating"],"parameters":[{"name":"from","in":"path","required":true,"schema":{"type":"string"},"description":"The item rating over time's from."},{"name":"to","in":"path","required":true,"schema":{"type":"string"},"description":"The item rating over time's to."},{"name":"split","in":"query","required":false,"schema":{"type":"string"},"description":"Only item rating over times with this split."},{"name":"itemsString","in":"query","required":false,"schema":{"type":"string"},"description":"Only item rating over times with this items string."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/report-bookings-over-time/{from}&{to}":{"get":{"operationId":"get-report-bookings-over-time-from-to","tags":["SEO & analytics"],"x-section":"Report","summary":"Report bookings over time","description":"Get report-bookings-over-time.","x-access":["admin"],"x-models":["Service","Booking","Order"],"parameters":[{"name":"from","in":"path","required":true,"schema":{"type":"string"},"description":"The bookings over time's from."},{"name":"to","in":"path","required":true,"schema":{"type":"string"},"description":"The bookings over time's to."},{"name":"split","in":"query","required":false,"schema":{"type":"string"},"description":"Only bookings over times with this split."},{"name":"services","in":"query","required":false,"schema":{"type":"string"},"description":"Only bookings over times with this services."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/report-clicks-over-time/{from}&{to}":{"get":{"operationId":"get-report-clicks-over-time-from-to","tags":["SEO & analytics"],"x-section":"Report","summary":"Report clicks over time","description":"Get report-users-over-time.","x-access":["admin"],"x-models":["Click"],"parameters":[{"name":"from","in":"path","required":true,"schema":{"type":"string"},"description":"The clicks over time's from."},{"name":"to","in":"path","required":true,"schema":{"type":"string"},"description":"The clicks over time's to."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/report-coupon-over-time/{from}&{to}":{"get":{"operationId":"get-report-coupon-over-time-from-to","tags":["SEO & analytics"],"x-section":"Report","summary":"Report a coupon over time","description":"Get report-coupon-over-time.","x-access":["admin"],"x-models":["Coupon","Order"],"parameters":[{"name":"from","in":"path","required":true,"schema":{"type":"string"},"description":"The coupon over time's from."},{"name":"to","in":"path","required":true,"schema":{"type":"string"},"description":"The coupon over time's to."},{"name":"split","in":"query","required":false,"schema":{"type":"string"},"description":"Only coupon over times with this split."},{"name":"coupons","in":"query","required":false,"schema":{"type":"string"},"description":"Only coupon over times with this coupons."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/report-interaction-over-time/{from}&{to}":{"get":{"operationId":"get-report-interaction-over-time-from-to","tags":["SEO & analytics"],"x-section":"Report","summary":"Report an interaction over time","description":"Get report-interaction-over-time.","x-access":[],"x-models":["Traffic"],"parameters":[{"name":"from","in":"path","required":true,"schema":{"type":"string"},"description":"The interaction over time's from."},{"name":"to","in":"path","required":true,"schema":{"type":"string"},"description":"The interaction over time's to."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/report-item-over-time/{from}&{to}":{"get":{"operationId":"get-report-item-over-time-from-to","tags":["SEO & analytics"],"x-section":"Report","summary":"Report an item over time","description":"Get report-item-over-time.","x-access":["admin"],"x-models":["Product","Order"],"parameters":[{"name":"from","in":"path","required":true,"schema":{"type":"string"},"description":"The item over time's from."},{"name":"to","in":"path","required":true,"schema":{"type":"string"},"description":"The item over time's to."},{"name":"split","in":"query","required":false,"schema":{"type":"string"},"description":"Only item over times with this split."},{"name":"ids","in":"query","required":false,"schema":{"type":"string"},"description":"Only item over times with this ids."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/report-item-sales-over-time/{from}&{to}":{"get":{"operationId":"get-report-item-sales-over-time-from-to","tags":["SEO & analytics"],"x-section":"Report","summary":"Report an item sales over time","description":"Get report-item-sales-over-time.","x-access":["admin"],"x-models":["Order","Product"],"parameters":[{"name":"from","in":"path","required":true,"schema":{"type":"string"},"description":"The item sales over time's from."},{"name":"to","in":"path","required":true,"schema":{"type":"string"},"description":"The item sales over time's to."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/report-newsletter-over-time/{from}&{to}":{"get":{"operationId":"get-report-newsletter-over-time-from-to","tags":["SEO & analytics"],"x-section":"Report","summary":"Report a newsletter over time","description":"Get report-newsletter-over-time.","x-access":["admin"],"x-models":["NewsletterContact"],"parameters":[{"name":"from","in":"path","required":true,"schema":{"type":"string"},"description":"The newsletter over time's from."},{"name":"to","in":"path","required":true,"schema":{"type":"string"},"description":"The newsletter over time's to."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/report-payment-methods-revenue-over-time/{from}&{to}":{"get":{"operationId":"get-report-payment-methods-revenue-over-time-from-to","tags":["SEO & analytics"],"x-section":"Report","summary":"Report a payment methods revenue over time","description":"Get report-payment-methods-revenue-over-time.","x-access":["admin"],"x-models":["Order"],"parameters":[{"name":"from","in":"path","required":true,"schema":{"type":"string"},"description":"The payment methods revenue over time's from."},{"name":"to","in":"path","required":true,"schema":{"type":"string"},"description":"The payment methods revenue over time's to."},{"name":"split","in":"query","required":false,"schema":{"type":"string"},"description":"Only payment methods revenue over times with this split."},{"name":"payments","in":"query","required":false,"schema":{"type":"string"},"description":"Only payment methods revenue over times with this payments."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/report-priceplan-over-time/{from}&{to}":{"get":{"operationId":"get-report-priceplan-over-time-from-to","tags":["SEO & analytics"],"x-section":"Report","summary":"Report a price plan over time","description":"Get report-priceplan-over-time.","x-access":["admin"],"x-models":["PricePlan","Subscription"],"parameters":[{"name":"from","in":"path","required":true,"schema":{"type":"string"},"description":"The price plan over time's from."},{"name":"to","in":"path","required":true,"schema":{"type":"string"},"description":"The price plan over time's to."},{"name":"split","in":"query","required":false,"schema":{"type":"string"},"description":"Only price plan over times with this split."},{"name":"price_plans","in":"query","required":false,"schema":{"type":"string"},"description":"Only price plan over times with this price plans."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/report-push-over-time/{from}&{to}":{"get":{"operationId":"get-report-push-over-time-from-to","tags":["SEO & analytics"],"x-section":"Report","summary":"Report a push over time","description":"Get report-push-over-time.","x-access":["admin"],"x-models":["PushToken"],"parameters":[{"name":"from","in":"path","required":true,"schema":{"type":"string"},"description":"The push over time's from."},{"name":"to","in":"path","required":true,"schema":{"type":"string"},"description":"The push over time's to."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/report-sales-over-time/{from}&{to}":{"get":{"operationId":"get-report-sales-over-time-from-to","tags":["SEO & analytics"],"x-section":"Report","summary":"Report sales over time","description":"Get report-sales-over-time.","x-access":["admin"],"x-models":["Order"],"parameters":[{"name":"from","in":"path","required":true,"schema":{"type":"string"},"description":"The sales over time's from."},{"name":"to","in":"path","required":true,"schema":{"type":"string"},"description":"The sales over time's to."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/report-shipping-over-time/{from}&{to}":{"get":{"operationId":"get-report-shipping-over-time-from-to","tags":["SEO & analytics"],"x-section":"Report","summary":"Report a shipping over time","description":"Get report-shipping-over-time.","x-access":["admin"],"x-models":["Order"],"parameters":[{"name":"from","in":"path","required":true,"schema":{"type":"string"},"description":"The shipping over time's from."},{"name":"to","in":"path","required":true,"schema":{"type":"string"},"description":"The shipping over time's to."},{"name":"split","in":"query","required":false,"schema":{"type":"string"},"description":"Only shipping over times with this split."},{"name":"shippings","in":"query","required":false,"schema":{"type":"string"},"description":"Only shipping over times with this shippings."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/report-traffic-over-time/{from}&{to}":{"get":{"operationId":"get-report-traffic-over-time-from-to","tags":["SEO & analytics"],"x-section":"Report","summary":"Report a traffic over time","description":"Report a traffic over time.","x-access":["admin"],"x-models":["Traffic"],"parameters":[{"name":"from","in":"path","required":true,"schema":{"type":"string"},"description":"The traffic over time's from."},{"name":"to","in":"path","required":true,"schema":{"type":"string"},"description":"The traffic over time's to."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/report-users-over-time/{from}&{to}":{"get":{"operationId":"get-report-users-over-time-from-to","tags":["SEO & analytics"],"x-section":"Report","summary":"Report users over time","description":"Get report-users-over-time.","x-access":["admin"],"x-models":["User"],"parameters":[{"name":"from","in":"path","required":true,"schema":{"type":"string"},"description":"The users over time's from."},{"name":"to","in":"path","required":true,"schema":{"type":"string"},"description":"The users over time's to."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-item-rating-over-time/{from}&{to}":{"get":{"operationId":"get-user-item-rating-over-time-from-to","tags":["SEO & analytics"],"x-section":"Report","summary":"List all user item rating over times","description":"Returns the site's user item rating over times, newest first unless a sort is given.","x-access":["admin"],"x-models":["Model","Rating"],"parameters":[{"name":"from","in":"path","required":true,"schema":{"type":"string"},"description":"The user item rating over time's from."},{"name":"to","in":"path","required":true,"schema":{"type":"string"},"description":"The user item rating over time's to."},{"name":"charAt","in":"query","required":false,"schema":{"type":"string"},"description":"Only user item rating over times with this char at."},{"name":"slice","in":"query","required":false,"schema":{"type":"string"},"description":"Only user item rating over times with this slice."},{"name":"type","in":"query","required":false,"schema":{"type":"string"},"description":"Only user item rating over times with this type."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/trackings":{"get":{"operationId":"get-trackings","tags":["SEO & analytics"],"x-section":"Tracking","summary":"List all trackings","description":"Returns the site's trackings, newest first unless a sort is given.","x-access":[],"x-models":["Tracking"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-trackings","tags":["SEO & analytics"],"x-section":"Tracking","summary":"Create a tracking","description":"Create new tracking.","x-access":["admin"],"x-models":["Tracking"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Tracking"}}}}}},"/trackings/{id}":{"get":{"operationId":"get-trackings-id","tags":["SEO & analytics"],"x-section":"Tracking","summary":"Retrieve a tracking","description":"Returns one tracking, found by its ID.","x-access":[],"x-models":["Tracking"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the tracking."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-trackings-id","tags":["SEO & analytics"],"x-section":"Tracking","summary":"Update a tracking","description":"Update Tracking by id.","x-access":["admin"],"x-models":["Tracking"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the tracking."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Tracking"}}}}},"delete":{"operationId":"delete-trackings-id","tags":["SEO & analytics"],"x-section":"Tracking","summary":"Delete a tracking","description":"Delete Tracking record by id.","x-access":["admin"],"x-models":["Tracking"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the tracking."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/create-seo-keywords":{"post":{"operationId":"post-create-seo-keywords","tags":["SEO & analytics"],"x-section":"AI builder","summary":"Create a SEO keyword with AI","description":"Create a SEO keyword from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the SEO keyword, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the SEO keyword to change."}}}}}}}},"/create-serp-meta":{"post":{"operationId":"post-create-serp-meta","tags":["SEO & analytics"],"x-section":"AI builder","summary":"Create a search result meta with AI","description":"Create a search result meta from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the search result meta, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the search result meta to change."}}}}}}}},"/generate-seo-keywords":{"post":{"operationId":"post-generate-seo-keywords","tags":["SEO & analytics"],"x-section":"AI builder","summary":"Generate a SEO keyword with AI","description":"Use it to generate, add, or suggest SEO keywords or search terms for the site.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the SEO keyword, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/generate-serp-meta":{"post":{"operationId":"post-generate-serp-meta","tags":["SEO & analytics"],"x-section":"AI builder","summary":"Generate a search result meta with AI","description":"Use it to generate or update the default meta title, meta description, or site name for SEO/SERP purposes.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the search result meta, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/ads":{"post":{"operationId":"post-ads","tags":["Marketing & notifications"],"x-section":"Advertisment","summary":"Create an ad","description":"Creates an ad from the fields sent.","x-access":["admin"],"x-models":["Advertisment"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Advertisment"}}}}}},"/ads/{id}":{"get":{"operationId":"get-ads-id","tags":["Marketing & notifications"],"x-section":"Advertisment","summary":"Retrieve an ad","description":"Returns one ad, found by its ID.","x-access":["admin"],"x-models":["Advertisment"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the ad."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-ads-id","tags":["Marketing & notifications"],"x-section":"Advertisment","summary":"Update an ad","description":"Changes the fields sent; the others stay as they are.","x-access":["admin"],"x-models":["Advertisment"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the ad."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Advertisment"}}}}},"delete":{"operationId":"delete-ads-id","tags":["Marketing & notifications"],"x-section":"Advertisment","summary":"Delete an ad","description":"Deletes the ad. This cannot be undone.","x-access":["admin"],"x-models":["Advertisment"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the ad."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/alerts":{"get":{"operationId":"get-alerts","tags":["Marketing & notifications"],"x-section":"Alert","summary":"List all alerts","description":"Returns the site's alerts, newest first unless a sort is given.","x-access":["admin"],"x-models":["Alert"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-alerts","tags":["Marketing & notifications"],"x-section":"Alert","summary":"Create an alert","description":"Create new alert.","x-access":["admin"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/alerts/{id}":{"get":{"operationId":"get-alerts-id","tags":["Marketing & notifications"],"x-section":"Alert","summary":"Retrieve an alert","description":"Returns one alert, found by its ID.","x-access":["admin"],"x-models":["Alert"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the alert."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/automations":{"get":{"operationId":"get-automations","tags":["Marketing & notifications"],"x-section":"Automation","summary":"List all automations","description":"Returns the site's automations, newest first unless a sort is given.","x-access":["admin"],"x-models":["Automation"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-automations","tags":["Marketing & notifications"],"x-section":"Automation","summary":"Create an automation","description":"Creates an automation from the fields sent.","x-access":["admin"],"x-models":["Automation"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Automation"}}}}}},"/automations/{id}":{"get":{"operationId":"get-automations-id","tags":["Marketing & notifications"],"x-section":"Automation","summary":"Retrieve an automation","description":"Returns one automation, found by its ID.","x-access":["admin"],"x-models":["Automation"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the automation."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-automations-id","tags":["Marketing & notifications"],"x-section":"Automation","summary":"Update an automation","description":"Changes the fields sent; the others stay as they are.","x-access":["admin"],"x-models":["Automation"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the automation."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Automation"}}}}},"delete":{"operationId":"delete-automations-id","tags":["Marketing & notifications"],"x-section":"Automation","summary":"Delete an automation","description":"Deletes the automation. This cannot be undone.","x-access":["admin"],"x-models":["Automation"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the automation."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/get-model/{model}":{"get":{"operationId":"get-get-model-model","tags":["Marketing & notifications"],"x-section":"Automation","summary":"List all models","description":"Returns the site's models, newest first unless a sort is given.","x-access":["admin"],"parameters":[{"name":"model","in":"path","required":true,"schema":{"type":"string"},"description":"The model's model."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/connected-accounts":{"get":{"operationId":"get-connected-accounts","tags":["Marketing & notifications"],"x-section":"Connected Account","summary":"List all connected accounts","description":"Returns the site's connected accounts, newest first unless a sort is given.","x-access":["user"],"x-models":["ConnectedAccount"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/connected-accounts-by-on-behalf-of/{id}":{"get":{"operationId":"get-connected-accounts-by-on-behalf-of-id","tags":["Marketing & notifications"],"x-section":"Connected Account","summary":"Retrieve a connected accounts on behalf of","description":"Returns one connected accounts on behalf of, found by its ID.","x-access":["user"],"x-models":["ConnectedAccount"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the connected accounts on behalf of."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/connected-accounts-on-behalf-of/{id}":{"get":{"operationId":"get-connected-accounts-on-behalf-of-id","tags":["Marketing & notifications"],"x-section":"Connected Account","summary":"Retrieve a connected accounts on behalf of","description":"Returns one connected accounts on behalf of, found by its ID.","x-access":["user"],"x-models":["ConnectedAccount"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the connected accounts on behalf of."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/connected-accounts-status/{id}":{"patch":{"operationId":"patch-connected-accounts-status-id","tags":["Marketing & notifications"],"x-section":"Connected Account","summary":"Change the status of a connected account","description":"Update ConnectedAccount by id.","x-access":["user"],"x-models":["ConnectedAccount"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the connected account."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectedAccount"}}}}}},"/connected-accounts/{id}":{"get":{"operationId":"get-connected-accounts-id","tags":["Marketing & notifications"],"x-section":"Connected Account","summary":"Retrieve a connected account","description":"Returns one connected account, found by its ID.","x-access":["user"],"x-models":["ConnectedAccount"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the connected account."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-connected-accounts-id","tags":["Marketing & notifications"],"x-section":"Connected Account","summary":"Update a connected account","description":"Update ConnectedAccount by id.","x-access":["user"],"x-models":["ConnectedAccount"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the connected account."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectedAccount"}}}}},"delete":{"operationId":"delete-connected-accounts-id","tags":["Marketing & notifications"],"x-section":"Connected Account","summary":"Delete a connected account","description":"Delete ConnectedAccount record by id.","x-access":["user"],"x-models":["ConnectedAccount"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the connected account."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/my-connected-accounts":{"get":{"operationId":"get-my-connected-accounts","tags":["Marketing & notifications"],"x-section":"Connected Account","summary":"List all connected accounts","description":"Returns the site's connected accounts, newest first unless a sort is given.","x-access":["user"],"x-models":["ConnectedAccount"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/send-account-connection-request":{"post":{"operationId":"post-send-account-connection-request","tags":["Marketing & notifications"],"x-section":"Connected Account","summary":"Send an account connection request","description":"Send an account connection request.","x-access":["user"],"x-models":["User","ConnectedAccount"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","description":"An email address."}}}}}}}},"/get-instagram":{"get":{"operationId":"get-get-instagram","tags":["Marketing & notifications"],"x-section":"Instagram","summary":"Retrieve the instagram","description":"Returns the instagram.","x-access":[],"parameters":[{"name":"profile","in":"query","required":false,"schema":{"type":"string"},"description":"Only instagrams with this profile."},{"name":"first","in":"query","required":false,"schema":{"type":"string"},"description":"Only instagrams with this first."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/push-notification":{"post":{"operationId":"post-push-notification","tags":["Marketing & notifications"],"x-section":"Push Notification","summary":"Create a push notification","description":"Create new PushNotification.","x-access":["admin"],"x-models":["PushNotification","MyContact","PushToken","UserEngagementNotification"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"412":{"description":"A rule the request must meet is not met - for example push notifications of the same type at least 48 hours apart."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"The push notification's title."},"body":{"type":"string","description":"The push notification's body."},"image":{"type":"string","description":"The push notification's image."},"sendTo":{"type":"string","description":"The push notification's send to."},"type":{"type":"string","description":"The push notification's type."},"url":{"type":"string","description":"The push notification's URL slug, as in its address on the site."}}}}}}}},"/push-notification-info":{"get":{"operationId":"get-push-notification-info","tags":["Marketing & notifications"],"x-section":"Push Notification","summary":"Retrieve the push notification info","description":"Get a summary info of push notifications.","x-access":["admin"],"x-models":["PushToken"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/push-notification/timer":{"get":{"operationId":"get-push-notification-timer","tags":["Marketing & notifications"],"x-section":"Push Notification","summary":"Retrieve the push notification","description":"Returns the push notification.","x-access":["admin"],"x-models":["PushNotification"],"parameters":[{"name":"sendTo","in":"query","required":false,"schema":{"type":"string"},"description":"Only push notifications with this send to."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/push-token":{"get":{"operationId":"get-push-token","tags":["Marketing & notifications"],"x-section":"Push Token","summary":"Retrieve the push token","description":"Returns the push token.","x-access":["admin"],"x-models":["PushToken"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/push-token/{id}":{"get":{"operationId":"get-push-token-id","tags":["Marketing & notifications"],"x-section":"Push Token","summary":"Retrieve a push token","description":"Returns one push token, found by its ID.","x-access":["admin"],"x-models":["PushToken"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the push token."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/comment-like/{id}":{"patch":{"operationId":"patch-comment-like-id","tags":["Community"],"x-section":"Comment","summary":"Like or unlike a comment","description":"Like or unlike a comment.","x-access":["user"],"x-models":["Comment","ConnectedAccount","Post","Product","Service","BlogPost","Program","UserEngagementNotification"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the comment."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"liked_by_id":{"type":"string","description":"The comment's liked by id."},"action":{"type":"string","description":"The comment's action."},"liked_by":{"type":"string","description":"The comment's liked by."}}}}}}}},"/comments":{"get":{"operationId":"get-comments","tags":["Community"],"x-section":"Comment","summary":"List all comments","description":"Returns the site's comments, newest first unless a sort is given.","x-access":["user"],"x-models":["Comment"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-comments","tags":["Community"],"x-section":"Comment","summary":"Create a comment","description":"Creates a comment from the fields sent.","x-access":["user"],"x-models":["ConnectedAccount","User","MyContact","Product","Service","BlogPost","Post","Program","Video","SocialModeSettings","UserEngagementNotification","Comment"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"user":{"type":"string","description":"The user - the ID of a user."},"comment":{"type":"string","description":"The comment's comment."},"commented_on":{"type":"string","description":"The comment's commented on."},"mentions":{"type":"array","items":{"type":"string"},"description":"The mentions - the ID of a user."},"connected_account_user":{"type":"string","description":"The connected account user - the ID of a user."}}}}}}},"patch":{"operationId":"patch-comments","tags":["Community"],"x-section":"Comment","summary":"Update the comment","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Comment","UserEngagementNotification"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"comment_id":{"type":"string","description":"The comment's comment id."},"comment":{"type":"string","description":"The comment's comment."},"mentions":{"type":"array","items":{"type":"string"},"description":"The mentions - the ID of a user."}}}}}}}},"/comments-add-reply":{"patch":{"operationId":"patch-comments-add-reply","tags":["Community"],"x-section":"Comment","summary":"Update the comments add reply","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Comment","ConnectedAccount","User","Post","Product","Service","BlogPost","Program","UserEngagementNotification"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"comment_id":{"type":"string","description":"The comments add reply's comment id."},"comment":{"type":"string","description":"The comments add reply's comment."},"user_id":{"type":"string","description":"The comments add reply's user id."},"mentions":{"type":"string","description":"The comments add reply's mentions."}}}}}}}},"/comments-of/{id}":{"get":{"operationId":"get-comments-of-id","tags":["Community"],"x-section":"Comment","summary":"Retrieve a comments of","description":"Returns one comments of, found by its ID.","x-access":["user"],"x-models":["Comment"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the comments of."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/comments-on/{id}&{skip}":{"get":{"operationId":"get-comments-on-id-skip","tags":["Community"],"x-section":"Comment","summary":"Retrieve a comments on","description":"Returns one comments on, found by its ID.","x-access":["user"],"x-models":["Comment"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the comments on."},{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/comments-reply":{"patch":{"operationId":"patch-comments-reply","tags":["Community"],"x-section":"Comment","summary":"Update the comments reply","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Comment","UserEngagementNotification"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"comment_id":{"type":"string","description":"The comments reply's comment id."},"index":{"type":"string","description":"The comments reply's index."},"comment":{"type":"string","description":"The comments reply's comment."},"mentions":{"type":"string","description":"The comments reply's mentions."}}}}}}}},"/comments-reply/{id}/{index}":{"delete":{"operationId":"delete-comments-reply-id-index","tags":["Community"],"x-section":"Comment","summary":"Delete a comments reply","description":"Deletes the comments reply. This cannot be undone.","x-access":["user"],"x-models":["Comment","ConnectedAccount"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the comments reply."},{"name":"index","in":"path","required":true,"schema":{"type":"string"},"description":"The comments reply's index."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/comments/{id}":{"get":{"operationId":"get-comments-id","tags":["Community"],"x-section":"Comment","summary":"Retrieve a comment","description":"Returns one comment, found by its ID.","x-access":["user"],"x-models":["Comment"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the comment."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"delete":{"operationId":"delete-comments-id","tags":["Community"],"x-section":"Comment","summary":"Delete a comment","description":"Deletes the comment. This cannot be undone.","x-access":["user"],"x-models":["Comment","Post","ConnectedAccount"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the comment."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/hide-comment/{id}&{reply}":{"patch":{"operationId":"patch-hide-comment-id-reply","tags":["Community"],"x-section":"Comment","summary":"Update a hide comment","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Comment","Post"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the hide comment."},{"name":"reply","in":"path","required":true,"schema":{"type":"string"},"description":"The hide comment's reply."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/reply-like/{id}&{replyId}":{"patch":{"operationId":"patch-reply-like-id-replyid","tags":["Community"],"x-section":"Comment","summary":"Like or unlike a reply","description":"Like or unlike a reply.","x-access":["user"],"x-models":["Comment","ConnectedAccount","Post","Product","Service","BlogPost","Program","UserEngagementNotification"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the reply."},{"name":"replyId","in":"path","required":true,"schema":{"type":"string"},"description":"The reply's reply id."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"liked_by_id":{"type":"string","description":"The reply's liked by id."},"action":{"type":"string","description":"The reply's action."},"liked_by":{"type":"string","description":"The reply's liked by."}}}}}}}},"/user-comments/{skip}":{"get":{"operationId":"get-user-comments-skip","tags":["Community"],"x-section":"Comment","summary":"List all user comments","description":"Returns the site's user comments, newest first unless a sort is given.","x-access":["user"],"x-models":["ConnectedAccount","User","Comment","Post","Product","Media","Service","BlogPost"],"parameters":[{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."},{"name":"on_behalf_of","in":"query","required":false,"schema":{"type":"string"},"description":"Only user comments with this on behalf of."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-liked-comments/{skip}":{"get":{"operationId":"get-user-liked-comments-skip","tags":["Community"],"x-section":"Comment","summary":"List all user liked comments","description":"Returns the site's user liked comments, newest first unless a sort is given.","x-access":["user"],"x-models":["ConnectedAccount","User","Comment","Post","Product","Service","BlogPost"],"parameters":[{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."},{"name":"on_behalf_of","in":"query","required":false,"schema":{"type":"string"},"description":"Only user liked comments with this on behalf of."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/group-remove-user":{"patch":{"operationId":"patch-group-remove-user","tags":["Community"],"x-section":"Group","summary":"Update the group remove user","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Group","GroupJoinRequest"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"group":{"type":"string","description":"The group remove user's group."},"user":{"type":"string","description":"The group remove user's user."}}}}}}}},"/group/{id}":{"get":{"operationId":"get-group-id","tags":["Community"],"x-section":"Group","summary":"Retrieve a group","description":"Returns one group, found by its ID.","x-access":["optional-user"],"x-models":["MyContact"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the group."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/groups":{"post":{"operationId":"post-groups","tags":["Community"],"x-section":"Group","summary":"Create a group","description":"Create new group.","x-access":["user"],"x-models":["SocialModeSettings","Group"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialModeSettings"}}}}}},"/groups/{id}":{"get":{"operationId":"get-groups-id","tags":["Community"],"x-section":"Group","summary":"Retrieve a group","description":"Returns one group, found by its ID.","x-access":["user"],"x-models":["SocialModeSettings","Group","GroupJoinRequest"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the group."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"402":{"description":"The content needs a subscription: the user has no price plan that unlocks it."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-groups-id","tags":["Community"],"x-section":"Group","summary":"Update a group","description":"Update Group by id.","x-access":["user"],"x-models":["Group"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the group."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}}}},"delete":{"operationId":"delete-groups-id","tags":["Community"],"x-section":"Group","summary":"Delete a group","description":"Delete Group record by id.","x-access":["user"],"x-models":["Group","Post","Comment","Media","User"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the group."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/groups/{skip}/{limit}":{"get":{"operationId":"get-groups-skip-limit","tags":["Community"],"x-section":"Group","summary":"List all groups","description":"Returns the site's groups, newest first unless a sort is given.","x-access":[],"x-models":["Group"],"parameters":[{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."},{"name":"limit","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to return."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/join-group":{"post":{"operationId":"post-join-group","tags":["Community"],"x-section":"Group","summary":"Join a join group","description":"Join a join group.","x-access":["user"],"x-models":["Group","GroupJoinRequest","UserEngagementNotification"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"group":{"type":"string","description":"The join group's group."}}}}}}}},"/my-groups":{"get":{"operationId":"get-my-groups","tags":["Community"],"x-section":"Group","summary":"List all groups","description":"Returns the site's groups, newest first unless a sort is given.","x-access":["user"],"x-models":["Group","GroupJoinRequest"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/search-groups/{args}/{skip}":{"get":{"operationId":"get-search-groups-args-skip","tags":["Community"],"x-section":"Group","summary":"List all groups","description":"Returns the site's groups, newest first unless a sort is given.","x-access":[],"x-models":["Group"],"parameters":[{"name":"args","in":"path","required":true,"schema":{"type":"string"},"description":"The group's args."},{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/update-join-request-status":{"patch":{"operationId":"patch-update-join-request-status","tags":["Community"],"x-section":"Group","summary":"Update a join request with AI","description":"Update a join request from a prompt, written by the AI builder.","x-access":["user"],"x-models":["Group","GroupJoinRequest","UserEngagementNotification"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"group":{"type":"string","description":"The group - the ID of a group join request."},"user":{"type":"string","description":"The user - the ID of a user."}}}}}}}},"/add-user/{id}":{"patch":{"operationId":"patch-add-user-id","tags":["Community"],"x-section":"Message","summary":"Add an add user","description":"Add an add user.","x-access":["user"],"x-models":["Message"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the add user."}],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"users":{"type":"string","description":"The add user's users."}}}}}}}},"/connect-to-room":{"post":{"operationId":"post-connect-to-room","tags":["Community"],"x-section":"Message","summary":"Connect a connect to room","description":"Connect a connect to room.","x-access":["user"],"x-models":["ConnectedAccount","User","Message"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"me":{"type":"string","description":"The connect to room's me."},"chatSupport":{"type":"string","description":"The connect to room's chat support."},"receiver_id":{"type":"string","description":"The connect to room's receiver id."},"user":{"type":"string","description":"The connect to room's user."},"room":{"type":"string","description":"The connect to room's room."}}}}}}}},"/delete-chat/{id}":{"patch":{"operationId":"patch-delete-chat-id","tags":["Community"],"x-section":"Message","summary":"Update a delete chat","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Message","ConnectedAccount"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the delete chat."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"user_id":{"type":"string","description":"The delete chat's user id."}}}}}}}},"/find-chat/{product_id}":{"get":{"operationId":"get-find-chat-product-id","tags":["Community"],"x-section":"Message","summary":"Find a chat","description":"Find a chat.","x-access":["user"],"x-models":["Message","MyContact"],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string"},"description":"The chat's product id."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/leave-group/{id}":{"patch":{"operationId":"patch-leave-group-id","tags":["Community"],"x-section":"Message","summary":"Leave a leave group","description":"Leave a leave group.","x-access":["user"],"x-models":["Message"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the leave group."}],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/message-event/{id}":{"get":{"operationId":"get-message-event-id","tags":["Community"],"x-section":"Message","summary":"Retrieve a message event","description":"Returns one message event, found by its ID.","x-access":["user"],"x-models":["Message","ConnectedAccount"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the message event."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/message-seen":{"patch":{"operationId":"patch-message-seen","tags":["Community"],"x-section":"Message","summary":"Update the message seen","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Message"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the message seen."},"user":{"type":"string","description":"The message seen's user."}}}}}}}},"/messages":{"get":{"operationId":"get-messages","tags":["Community"],"x-section":"Message","summary":"List all messages","description":"Returns the site's messages, newest first unless a sort is given.","x-access":["user"],"x-models":["Message"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-messages","tags":["Community"],"x-section":"Message","summary":"Create a message","description":"Create new message.","x-access":["user"],"x-models":["User","Service","Product","BlogPost","Program","Message"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"description":"The message's message."},"product_id":{"type":"string","description":"The product id - the ID of a product."},"receiver_id":{"type":"string","description":"The receiver id - the ID of a user."},"service_id":{"type":"string","description":"The service id - the ID of a service."},"blogpost_id":{"type":"string","description":"The blog post id - the ID of a blog post."},"program_id":{"type":"string","description":"The program id - the ID of a program."},"isDirectMessage":{"type":"boolean","description":"Whether the message is is direct message."},"postId":{"type":"string","description":"The message's post id."},"group_users":{"type":"array","items":{"type":"string"},"description":"The group users - the ID of a user."},"isGroup":{"type":"boolean","description":"Whether the message is is group."}}}}}}}},"/messages-medias/{id}&{skip}&{limit}":{"get":{"operationId":"get-messages-medias-id-skip-limit","tags":["Community"],"x-section":"Message","summary":"Retrieve a messages media","description":"Returns one messages media, found by its ID.","x-access":["user"],"x-models":["Message"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the messages media."},{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."},{"name":"limit","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to return."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/messages/{id}":{"patch":{"operationId":"patch-messages-id","tags":["Community"],"x-section":"Message","summary":"Update a message","description":"Update Message by id.","x-access":["user"],"x-models":["Message"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the message."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Message"}}}}},"delete":{"operationId":"delete-messages-id","tags":["Community"],"x-section":"Message","summary":"Delete a message","description":"Delete Message record by id.","x-access":["user"],"x-models":["Message"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the message."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/messages/{id}&{skip}&{limit}":{"get":{"operationId":"get-messages-id-skip-limit","tags":["Community"],"x-section":"Message","summary":"Retrieve a message","description":"Returns one message, found by its ID.","x-access":["user"],"x-models":["Message"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the message."},{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."},{"name":"limit","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to return."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/received-in-app-message/{id}":{"get":{"operationId":"get-received-in-app-message-id","tags":["Community"],"x-section":"Message","summary":"Retrieve a received in app message","description":"Returns one received in app message, found by its ID.","x-access":[],"x-models":["UserEngagementNotification","Group"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the received in app message."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/send-in-app-message":{"post":{"operationId":"post-send-in-app-message","tags":["Community"],"x-section":"Message","summary":"Send an in app message","description":"Send an in app message.","x-access":["user"],"x-models":["UserEngagementNotification"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"The in app message's type."},"comment_owner":{"type":"string","description":"The in app message's comment owner."},"item_id":{"type":"string","description":"The ID of the in app message to change."},"action_doer":{"type":"string","description":"The in app message's action doer."},"group":{"type":"string","description":"The in app message's group."},"owner_id":{"type":"string","description":"The in app message's owner id."},"from":{"type":"string","description":"The in app message's from."},"message":{"type":"string","description":"The in app message's message."},"mentioned":{"type":"string","description":"The in app message's mentioned."},"post":{"type":"string","description":"The in app message's post."}}}}}}}},"/send-message":{"post":{"operationId":"post-send-message","tags":["Community"],"x-section":"Message","summary":"Send a message","description":"Send a message.","x-access":["user"],"x-models":["ConnectedAccount","User","Message","BlogPost","Service","Product","UserEngagementNotification"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"from":{"type":"string","description":"The message's from."},"text":{"type":"string","description":"The message's text."},"chatSupport":{"type":"string","description":"The message's chat support."},"receiver_id":{"type":"string","description":"The receiver id - the ID of a user."},"to":{"type":"string","description":"The message's to."},"room":{"type":"string","description":"The message's room."},"isDirectMessage":{"type":"boolean","description":"Whether the message is is direct message."},"postId":{"type":"string","description":"The message's post id."},"userId":{"type":"string","description":"The message's user id."},"groupId":{"type":"string","description":"The message's group id."},"medias":{"type":"string","description":"The message's medias."}}}}}}}},"/sent-message/{id}&{msg}":{"delete":{"operationId":"delete-sent-message-id-msg","tags":["Community"],"x-section":"Message","summary":"Delete a sent message","description":"Deletes the sent message. This cannot be undone.","x-access":["user"],"x-models":["Message"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the sent message."},{"name":"msg","in":"path","required":true,"schema":{"type":"string"},"description":"The sent message's msg."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-added":{"patch":{"operationId":"patch-user-added","tags":["Community"],"x-section":"Message","summary":"Update the user added","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Message","ConnectedAccount","User"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"room":{"type":"string","description":"The user added's room."},"users":{"type":"string","description":"The user added's users."}}}}}}}},"/partners":{"get":{"operationId":"get-partners","tags":["Community"],"x-section":"Partner","summary":"List all partners","description":"Get partners, optionally searched, filtered, sorted and paged.","x-access":["optional-user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-partners","tags":["Community"],"x-section":"Partner","summary":"Create a partner","description":"Create new partner.","x-access":["admin"],"x-models":["Partner"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Partner"}}}}}},"/partners/{id}":{"get":{"operationId":"get-partners-id","tags":["Community"],"x-section":"Partner","summary":"Retrieve a partner","description":"Returns one partner, found by its ID.","x-access":[],"x-models":["Partner"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the partner."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-partners-id","tags":["Community"],"x-section":"Partner","summary":"Update a partner","description":"Update Partner by id.","x-access":["admin"],"x-models":["Partner"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the partner."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"The partner's address."},"city":{"type":"string","description":"The partner's city."},"country":{"type":"string","description":"The partner's country."}}}}}}},"delete":{"operationId":"delete-partners-id","tags":["Community"],"x-section":"Partner","summary":"Delete a partner","description":"Delete Partner record by id.","x-access":["admin"],"x-models":["Partner"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the partner."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/avg-cost-per-action":{"get":{"operationId":"get-avg-cost-per-action","tags":["Community"],"x-section":"Post","summary":"Retrieve the avg cost per action","description":"Returns the avg cost per action.","x-access":["user"],"x-models":["Post"],"parameters":[{"name":"interests","in":"query","required":false,"schema":{"type":"string"},"description":"Only avg cost per actions with this interests."},{"name":"app_categories","in":"query","required":false,"schema":{"type":"string"},"description":"Only avg cost per actions with this app categories."},{"name":"languages","in":"query","required":false,"schema":{"type":"string"},"description":"Only avg cost per actions with this languages."},{"name":"keywords","in":"query","required":false,"schema":{"type":"string"},"description":"Only avg cost per actions with this keywords."},{"name":"user_economics","in":"query","required":false,"schema":{"type":"string"},"description":"Only avg cost per actions with this user economics."},{"name":"user_education","in":"query","required":false,"schema":{"type":"string"},"description":"Only avg cost per actions with this user education."},{"name":"marital_status","in":"query","required":false,"schema":{"type":"string"},"description":"Only avg cost per actions with this marital status."},{"name":"ages","in":"query","required":false,"schema":{"type":"string"},"description":"Only avg cost per actions with this ages."},{"name":"sexes","in":"query","required":false,"schema":{"type":"string"},"description":"Only avg cost per actions with this sexes."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/bites/{posts}&{popular}&{ads}&{location_ads}":{"get":{"operationId":"get-bites-posts-popular-ads-location-ads","tags":["Community"],"x-section":"Post","summary":"List all bites","description":"Returns the site's bites, newest first unless a sort is given.","x-access":["user"],"x-models":["Post"],"parameters":[{"name":"posts","in":"path","required":true,"schema":{"type":"string"},"description":"The bite's posts."},{"name":"popular","in":"path","required":true,"schema":{"type":"string"},"description":"The bite's popular."},{"name":"ads","in":"path","required":true,"schema":{"type":"string"},"description":"The bite's ads."},{"name":"location_ads","in":"path","required":true,"schema":{"type":"string"},"description":"The bite's location ads."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/boost-user-post/{id}":{"patch":{"operationId":"patch-boost-user-post-id","tags":["Community"],"x-section":"Post","summary":"Update a boost user post","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Post","ConnectedAccount","User"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the boost user post."},{"name":"on_behalf_of","in":"query","required":false,"schema":{"type":"string"},"description":"Only boost user posts with this on behalf of."},{"name":"edit","in":"query","required":false,"schema":{"type":"string"},"description":"Only boost user posts with this edit."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"interests":{"type":"array","items":{"type":"string"},"description":"The boost user post's interests."},"app_categories":{"type":"string","description":"The boost user post's app categories."},"languages":{"type":"string","description":"The boost user post's languages."},"keywords":{"type":"array","items":{"type":"string"},"description":"The boost user post's keywords."},"user_economics":{"type":"string","description":"The boost user post's user economics."},"user_education":{"type":"string","description":"The boost user post's user education."},"marital_status":{"type":"string","description":"The boost user post's marital status."},"ages":{"type":"string","description":"The boost user post's ages."},"sexes":{"type":"string","description":"The boost user post's sexes."},"cost_per_click":{"type":"string","description":"The boost user post's cost per click."},"cost_per_mile":{"type":"string","description":"The boost user post's cost per mile."},"created_on":{"type":"string","description":"The boost user post's created on."},"duration":{"type":"string","description":"The boost user post's duration."},"days_left":{"type":"string","description":"The boost user post's days left."},"daily_budget":{"type":"string","description":"The boost user post's daily budget."},"outer_link":{"type":"string","description":"The boost user post's outer link."},"targeting":{"type":"string","description":"The boost user post's targeting."},"isAdvertisment":{"type":"boolean","description":"Whether the boost user post is is advertisement."}}}}}}}},"/boosted-posts":{"get":{"operationId":"get-boosted-posts","tags":["Community"],"x-section":"Post","summary":"List all boosted posts","description":"Returns the site's boosted posts, newest first unless a sort is given.","x-access":["user"],"x-models":["ConnectedAccount","User","Post","PixelData"],"parameters":[{"name":"on_behalf_of","in":"query","required":false,"schema":{"type":"string"},"description":"Only boosted posts with this on behalf of."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/cancel-boost-user-post/{id}":{"patch":{"operationId":"patch-cancel-boost-user-post-id","tags":["Community"],"x-section":"Post","summary":"Update a boost user post","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Post","ConnectedAccount","User"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the boost user post."},{"name":"on_behalf_of","in":"query","required":false,"schema":{"type":"string"},"description":"Only boost user posts with this on behalf of."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/expirable-posts/{skip}&{feed}&{users}":{"get":{"operationId":"get-expirable-posts-skip-feed-users","tags":["Community"],"x-section":"Post","summary":"List all expirable posts","description":"Returns the site's expirable posts, newest first unless a sort is given.","x-access":["user"],"parameters":[{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."},{"name":"feed","in":"path","required":true,"schema":{"type":"string"},"description":"The expirable post's feed."},{"name":"users","in":"path","required":true,"schema":{"type":"string"},"description":"The expirable post's users."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/explore/{posts}&{popular}&{ads}&{location_ads}":{"get":{"operationId":"get-explore-posts-popular-ads-location-ads","tags":["Community"],"x-section":"Post","summary":"List all explores","description":"Returns the site's explores, newest first unless a sort is given.","x-access":["user"],"x-models":["Post"],"parameters":[{"name":"posts","in":"path","required":true,"schema":{"type":"string"},"description":"The explore's posts."},{"name":"popular","in":"path","required":true,"schema":{"type":"string"},"description":"The explore's popular."},{"name":"ads","in":"path","required":true,"schema":{"type":"string"},"description":"The explore's ads."},{"name":"location_ads","in":"path","required":true,"schema":{"type":"string"},"description":"The explore's location ads."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/feed/{posts}&{popular}&{ads}&{location_ads}&{users}":{"get":{"operationId":"get-feed-posts-popular-ads-location-ads-users","tags":["Community"],"x-section":"Post","summary":"List all feeds","description":"Returns the site's feeds, newest first unless a sort is given.","x-access":["user"],"x-models":["GroupJoinRequest","Post","Comment"],"parameters":[{"name":"posts","in":"path","required":true,"schema":{"type":"string"},"description":"The feed's posts."},{"name":"popular","in":"path","required":true,"schema":{"type":"string"},"description":"The feed's popular."},{"name":"ads","in":"path","required":true,"schema":{"type":"string"},"description":"The feed's ads."},{"name":"location_ads","in":"path","required":true,"schema":{"type":"string"},"description":"The feed's location ads."},{"name":"users","in":"path","required":true,"schema":{"type":"string"},"description":"The feed's users."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/following-suggestions":{"get":{"operationId":"get-following-suggestions","tags":["Community"],"x-section":"Post","summary":"List all following suggestions","description":"Returns the site's following suggestions, newest first unless a sort is given.","x-access":["user"],"x-models":["User"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/group-feed/{group}/{skip}/{limit}":{"get":{"operationId":"get-group-feed-group-skip-limit","tags":["Community"],"x-section":"Post","summary":"List all group feeds","description":"Returns the site's group feeds, newest first unless a sort is given.","x-access":["user"],"x-models":["Group","GroupJoinRequest","Post","Comment"],"parameters":[{"name":"group","in":"path","required":true,"schema":{"type":"string"},"description":"The group feed's group."},{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."},{"name":"limit","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to return."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/long-video-avg-percentage-viewed-insights/{id}":{"get":{"operationId":"get-long-video-avg-percentage-viewed-insights-id","tags":["Community"],"x-section":"Post","summary":"Retrieve a long video avg percentage viewed insight","description":"Returns one long video avg percentage viewed insight, found by its ID.","x-access":["user"],"x-models":["Post","VideoInteraction"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the long video avg percentage viewed insight."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/long-video-engagement-insights/{id}":{"get":{"operationId":"get-long-video-engagement-insights-id","tags":["Community"],"x-section":"Post","summary":"Retrieve a long video engagement insight","description":"Returns one long video engagement insight, found by its ID.","x-access":["user"],"x-models":["VideoInteraction","Post"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the long video engagement insight."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/long-video-total-watchtime-insights/{id}":{"get":{"operationId":"get-long-video-total-watchtime-insights-id","tags":["Community"],"x-section":"Post","summary":"Retrieve a long video total watchtime insight","description":"Returns one long video total watchtime insight, found by its ID.","x-access":["user"],"x-models":["VideoInteraction"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the long video total watchtime insight."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/long-video-views-by-days-insights/{id}&{days}":{"get":{"operationId":"get-long-video-views-by-days-insights-id-days","tags":["Community"],"x-section":"Post","summary":"Record a view of a long video days insight","description":"Record a view of a long video days insight.","x-access":["user"],"x-models":["VideoInteraction"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the long video days insight."},{"name":"days","in":"path","required":true,"schema":{"type":"string"},"description":"The long video days insight's days."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/long-video-watchtime-by-days-insights/{id}&{days}":{"get":{"operationId":"get-long-video-watchtime-by-days-insights-id-days","tags":["Community"],"x-section":"Post","summary":"Retrieve a long video watchtime days insight","description":"Returns one long video watchtime days insight, found by its ID.","x-access":["user"],"x-models":["VideoInteraction"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the long video watchtime days insight."},{"name":"days","in":"path","required":true,"schema":{"type":"string"},"description":"The long video watchtime days insight's days."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/long-videos/{posts}&{popular}&{ads}":{"get":{"operationId":"get-long-videos-posts-popular-ads","tags":["Community"],"x-section":"Post","summary":"List all long videos","description":"Returns the site's long videos, newest first unless a sort is given.","x-access":["user"],"x-models":["Post"],"parameters":[{"name":"posts","in":"path","required":true,"schema":{"type":"string"},"description":"The long video's posts."},{"name":"popular","in":"path","required":true,"schema":{"type":"string"},"description":"The long video's popular."},{"name":"ads","in":"path","required":true,"schema":{"type":"string"},"description":"The long video's ads."},{"name":"current_video","in":"query","required":false,"schema":{"type":"string"},"description":"Only long videos with this current video."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/my-feed/{skip}/{limit}":{"get":{"operationId":"get-my-feed-skip-limit","tags":["Community"],"x-section":"Post","summary":"List all feeds","description":"Returns the site's feeds, newest first unless a sort is given.","x-access":["user"],"x-models":["Post","Comment"],"parameters":[{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."},{"name":"limit","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to return."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/my-videos":{"get":{"operationId":"get-my-videos","tags":["Community"],"x-section":"Post","summary":"List all videos","description":"Returns the site's videos, newest first unless a sort is given.","x-access":["user"],"x-models":["Post"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/pin-group-post/{post}/{group}":{"patch":{"operationId":"patch-pin-group-post-post-group","tags":["Community"],"x-section":"Post","summary":"Update the pin group post","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Group","Post","UserEngagementNotification"],"parameters":[{"name":"post","in":"path","required":true,"schema":{"type":"string"},"description":"The pin group post's post."},{"name":"group","in":"path","required":true,"schema":{"type":"string"},"description":"The pin group post's group."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/post-campaigns":{"get":{"operationId":"get-post-campaigns","tags":["Community"],"x-section":"Post","summary":"List all post campaigns","description":"Returns the site's post campaigns, newest first unless a sort is given.","x-access":["user"],"x-models":["ConnectedAccount","User","Post","PixelData"],"parameters":[{"name":"on_behalf_of","in":"query","required":false,"schema":{"type":"string"},"description":"Only post campaigns with this on behalf of."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/post-comments/{post}&{comment}":{"patch":{"operationId":"patch-post-comments-post-comment","tags":["Community"],"x-section":"Post","summary":"Update the post comment","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Post"],"parameters":[{"name":"post","in":"path","required":true,"schema":{"type":"string"},"description":"The post comment's post."},{"name":"comment","in":"path","required":true,"schema":{"type":"string"},"description":"The post comment's comment."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/post-cta-clicks/{id}":{"patch":{"operationId":"patch-post-cta-clicks-id","tags":["Community"],"x-section":"Post","summary":"Update a post cta click","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Post"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the post cta click."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/post-feed/{posts}&{popular}&{ads}&{original_post_id}&{location_ads}":{"get":{"operationId":"get-post-feed-posts-popular-ads-original-post-id-location-ads","tags":["Community"],"x-section":"Post","summary":"Retrieve a post feed","description":"Returns one post feed, found by its ID.","x-access":["user"],"x-models":["Post"],"parameters":[{"name":"posts","in":"path","required":true,"schema":{"type":"string"},"description":"The post feed's posts."},{"name":"popular","in":"path","required":true,"schema":{"type":"string"},"description":"The post feed's popular."},{"name":"ads","in":"path","required":true,"schema":{"type":"string"},"description":"The post feed's ads."},{"name":"original_post_id","in":"path","required":true,"schema":{"type":"string"},"description":"The post feed's original post id."},{"name":"location_ads","in":"path","required":true,"schema":{"type":"string"},"description":"The post feed's location ads."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/post-insights/{id}":{"get":{"operationId":"get-post-insights-id","tags":["Community"],"x-section":"Post","summary":"Retrieve a post insight","description":"Returns one post insight, found by its ID.","x-access":["user"],"x-models":["ConnectedAccount","Post"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the post insight."},{"name":"on_behalf_of","in":"query","required":false,"schema":{"type":"string"},"description":"Only post insights with this on behalf of."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/post-poll/{id}":{"patch":{"operationId":"patch-post-poll-id","tags":["Community"],"x-section":"Post","summary":"Update a post poll","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Post"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the post poll."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"answer":{"type":"string","description":"The post poll's answer."}}}}}}}},"/post-reach/{id}":{"patch":{"operationId":"patch-post-reach-id","tags":["Community"],"x-section":"Post","summary":"Update a post reach","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Post"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the post reach."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/post-times-showed/{id}":{"patch":{"operationId":"patch-post-times-showed-id","tags":["Community"],"x-section":"Post","summary":"Update a post times showed","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Post"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the post times showed."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/post-views/{id}":{"patch":{"operationId":"patch-post-views-id","tags":["Community"],"x-section":"Post","summary":"Record a view of a post","description":"Record a view of a post.","x-access":["user"],"x-models":["Post"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the post."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/post/{id}":{"get":{"operationId":"get-post-id","tags":["Community"],"x-section":"Post","summary":"Retrieve a post","description":"Returns one post, found by its ID.","x-access":["optional-user"],"x-models":["MyContact"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the post."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/price-plan-posts/{skip}":{"get":{"operationId":"get-price-plan-posts-skip","tags":["Community"],"x-section":"Post","summary":"List all price plan posts","description":"Returns the site's price plan posts, newest first unless a sort is given.","x-access":["user"],"x-models":["Subscription","Post"],"parameters":[{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/profile-feed/{user}&{post}&{skip}":{"get":{"operationId":"get-profile-feed-user-post-skip","tags":["Community"],"x-section":"Post","summary":"List all profile feeds","description":"Returns the site's profile feeds, newest first unless a sort is given.","x-access":["user"],"x-models":["Post"],"parameters":[{"name":"user","in":"path","required":true,"schema":{"type":"string"},"description":"The profile feed's user."},{"name":"post","in":"path","required":true,"schema":{"type":"string"},"description":"The profile feed's post."},{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/recent-feed/{skip}&{users}":{"get":{"operationId":"get-recent-feed-skip-users","tags":["Community"],"x-section":"Post","summary":"List all feeds","description":"Returns the site's feeds, newest first unless a sort is given.","x-access":["user"],"x-models":["Post"],"parameters":[{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."},{"name":"users","in":"path","required":true,"schema":{"type":"string"},"description":"The feed's users."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/remove-thread-post/{post}":{"patch":{"operationId":"patch-remove-thread-post-post","tags":["Community"],"x-section":"Post","summary":"Remove a remove thread post","description":"Remove a remove thread post.","x-access":["user"],"x-models":["Post"],"parameters":[{"name":"post","in":"path","required":true,"schema":{"type":"string"},"description":"The remove thread post's post."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/saved-posts":{"get":{"operationId":"get-saved-posts","tags":["Community"],"x-section":"Post","summary":"List all saved posts","description":"Returns the site's saved posts, newest first unless a sort is given.","x-access":["user"],"x-models":["Post","Comment"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/sponsored-post-attributions":{"post":{"operationId":"post-sponsored-post-attributions","tags":["Community"],"x-section":"Post","summary":"Create a sponsored post attribution","description":"Creates a sponsored post attribution from the fields sent.","x-access":["user"],"x-models":["Post"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"post_id":{"type":"string","description":"The sponsored post attribution's post id."},"attributed_user_id":{"type":"string","description":"The sponsored post attribution's attributed user id."}}}}}}}},"/static-post/{id}":{"get":{"operationId":"get-static-post-id","tags":["Community"],"x-section":"Post","summary":"Retrieve a static post","description":"Returns one static post, found by its ID.","x-access":[],"x-models":["Post","Comment"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the static post."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/static-profile/{handle}":{"get":{"operationId":"get-static-profile-handle","tags":["Community"],"x-section":"Post","summary":"Retrieve a static profile","description":"Returns one static profile, found by its ID.","x-access":[],"x-models":["User","Post","Comment","Product","Service","BlogPost","PricePlan","Program","Subscription","Media"],"parameters":[{"name":"handle","in":"path","required":true,"schema":{"type":"string"},"description":"The static profile's handle."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/threads/{skip}&{users}":{"get":{"operationId":"get-threads-skip-users","tags":["Community"],"x-section":"Post","summary":"List all threads","description":"Returns the site's threads, newest first unless a sort is given.","x-access":["user"],"x-models":["Post"],"parameters":[{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."},{"name":"users","in":"path","required":true,"schema":{"type":"string"},"description":"The thread's users."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/trending-videos/{category}&{skip}":{"get":{"operationId":"get-trending-videos-category-skip","tags":["Community"],"x-section":"Post","summary":"List all trending videos","description":"Returns the site's trending videos, newest first unless a sort is given.","x-access":["user"],"x-models":["Post"],"parameters":[{"name":"category","in":"path","required":true,"schema":{"type":"string"},"description":"The trending video's category."},{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/update-repost/{post}&{repost}":{"patch":{"operationId":"patch-update-repost-post-repost","tags":["Community"],"x-section":"Post","summary":"Update the repost","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Post"],"parameters":[{"name":"post","in":"path","required":true,"schema":{"type":"string"},"description":"The repost's post."},{"name":"repost","in":"path","required":true,"schema":{"type":"string"},"description":"The repost's repost."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-exclusive-feed/{user}/{skip}/{limit}":{"get":{"operationId":"get-user-exclusive-feed-user-skip-limit","tags":["Community"],"x-section":"Post","summary":"List all user exclusive feeds","description":"Returns the site's user exclusive feeds, newest first unless a sort is given.","x-access":["optional-user"],"x-models":["Subscription","Post"],"parameters":[{"name":"user","in":"path","required":true,"schema":{"type":"string"},"description":"The user exclusive feed's user."},{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."},{"name":"limit","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to return."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/user-expirable-posts/{user}":{"get":{"operationId":"get-user-expirable-posts-user","tags":["Community"],"x-section":"Post","summary":"List all user expirable posts","description":"Returns the site's user expirable posts, newest first unless a sort is given.","x-access":["user"],"x-models":["Post","Program","Service","BlogPost","Product","Group"],"parameters":[{"name":"user","in":"path","required":true,"schema":{"type":"string"},"description":"The user expirable post's user."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-feed/{user}/{skip}/{limit}":{"get":{"operationId":"get-user-feed-user-skip-limit","tags":["Community"],"x-section":"Post","summary":"List all user feeds","description":"Returns the site's user feeds, newest first unless a sort is given.","x-access":["optional-user"],"x-models":["Post","Comment"],"parameters":[{"name":"user","in":"path","required":true,"schema":{"type":"string"},"description":"The user feed's user."},{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."},{"name":"limit","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to return."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/user-group-feed/{posts}&{public_groups}&{users}":{"get":{"operationId":"get-user-group-feed-posts-public-groups-users","tags":["Community"],"x-section":"Post","summary":"List all user group feeds","description":"Returns the site's user group feeds, newest first unless a sort is given.","x-access":["user"],"x-models":["Group","GroupJoinRequest","Post"],"parameters":[{"name":"posts","in":"path","required":true,"schema":{"type":"string"},"description":"The user group feed's posts."},{"name":"public_groups","in":"path","required":true,"schema":{"type":"string"},"description":"The user group feed's public groups."},{"name":"users","in":"path","required":true,"schema":{"type":"string"},"description":"The user group feed's users."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-liked-posts/{skip}":{"get":{"operationId":"get-user-liked-posts-skip","tags":["Community"],"x-section":"Post","summary":"List all user liked posts","description":"Returns the site's user liked posts, newest first unless a sort is given.","x-access":["user"],"x-models":["ConnectedAccount","User","Post"],"parameters":[{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."},{"name":"on_behalf_of","in":"query","required":false,"schema":{"type":"string"},"description":"Only user liked posts with this on behalf of."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-long-video-ads/{id}":{"get":{"operationId":"get-user-long-video-ads-id","tags":["Community"],"x-section":"Post","summary":"Retrieve a user long video ad","description":"Returns one user long video ad, found by its ID.","x-access":["optional-user"],"x-models":["Post"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user long video ad."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/user-post":{"post":{"operationId":"post-user-post","tags":["Community"],"x-section":"Post","summary":"Create a user post","description":"Creates a user post from the fields sent.","x-access":["user"],"x-models":["Group","GroupJoinRequest","ConnectedAccount","MyContact","Media","Message","UserEngagementNotification","Post"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","description":"The user post's text."},"title":{"type":"string","description":"The user post's title."},"posted_in":{"type":"string","description":"The posted in - the ID of a group."},"selected_account_id":{"type":"string","description":"The user post's selected account id."},"medias":{"description":"The user post's medias."},"exclusive":{"type":"boolean","description":"Whether the user post is exclusive."},"mentions":{"type":"array","items":{"type":"string"},"description":"The mentions - the ID of a user."},"transcode":{"type":"string","description":"The user post's transcode."},"link":{"type":"string","description":"The user post's link."}}}}}}}},"/user-post-like/{id}":{"patch":{"operationId":"patch-user-post-like-id","tags":["Community"],"x-section":"Post","summary":"Like or unlike a user post","description":"Like or unlike a user post.","x-access":["user"],"x-models":["Post","UserEngagementNotification"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user post."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"likes":{"type":"array","items":{"type":"string"},"description":"The likes - the ID of a user."},"dislikes":{"type":"array","items":{"type":"string"},"description":"The dislikes - the ID of a user."}}}}}}}},"/user-post-link-preview":{"post":{"operationId":"post-user-post-link-preview","tags":["Community"],"x-section":"Post","summary":"Create a user post link","description":"Creates a user post link from the fields sent.","x-access":["optional-user","user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"link":{"type":"string","description":"The user post link's link."}}}}}}}},"/user-post-object/{id}":{"get":{"operationId":"get-user-post-object-id","tags":["Community"],"x-section":"Post","summary":"Retrieve a user post object","description":"Returns one user post object, found by its ID.","x-access":["optional-user"],"x-models":["Post","Program","Service","BlogPost","Product"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user post object."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/user-post-save/{id}":{"patch":{"operationId":"patch-user-post-save-id","tags":["Community"],"x-section":"Post","summary":"Save or unsave a user post","description":"Save or unsave a user post.","x-access":["user"],"x-models":["Post"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user post."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-post-share/{id}":{"patch":{"operationId":"patch-user-post-share-id","tags":["Community"],"x-section":"Post","summary":"Update a user post share","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Post"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user post share."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"share":{"type":"string","description":"The user post share's share."}}}}}}}},"/user-post/{id}":{"get":{"operationId":"get-user-post-id","tags":["Community"],"x-section":"Post","summary":"Retrieve a user post","description":"Returns one user post, found by its ID.","x-access":["optional-user"],"x-models":["Post","VideoInteraction"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user post."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-user-post-id","tags":["Community"],"x-section":"Post","summary":"Update a user post","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Post","ConnectedAccount","UserEngagementNotification"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user post."},{"name":"on_behalf_of","in":"query","required":false,"schema":{"type":"string"},"description":"Only user posts with this on behalf of."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"mentions":{"type":"array","items":{"type":"string"},"description":"The mentions - the ID of a user."}}}}}}},"delete":{"operationId":"delete-user-post-id","tags":["Community"],"x-section":"Post","summary":"Delete a user post","description":"Deletes the user post. This cannot be undone.","x-access":["user"],"x-models":["Post","Group","Comment","Media","User"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user post."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/video-feed/{video_id}&{posts}&{popular}&{ads}":{"get":{"operationId":"get-video-feed-video-id-posts-popular-ads","tags":["Community"],"x-section":"Post","summary":"Retrieve a video feed","description":"Returns one video feed, found by its ID.","x-access":["user"],"x-models":["Post"],"parameters":[{"name":"video_id","in":"path","required":true,"schema":{"type":"string"},"description":"The video feed's video id."},{"name":"posts","in":"path","required":true,"schema":{"type":"string"},"description":"The video feed's posts."},{"name":"popular","in":"path","required":true,"schema":{"type":"string"},"description":"The video feed's popular."},{"name":"ads","in":"path","required":true,"schema":{"type":"string"},"description":"The video feed's ads."},{"name":"current_video","in":"query","required":false,"schema":{"type":"string"},"description":"Only video feeds with this current video."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/viewed-expirable-posts/{skip}":{"get":{"operationId":"get-viewed-expirable-posts-skip","tags":["Community"],"x-section":"Post","summary":"List all viewed expirable posts","description":"Returns the site's viewed expirable posts, newest first unless a sort is given.","x-access":["user"],"parameters":[{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/all-ratings/{id}&{item}&{skip}&{limit}":{"get":{"operationId":"get-all-ratings-id-item-skip-limit","tags":["Community"],"x-section":"Rating","summary":"Retrieve a rating","description":"Returns one rating, found by its ID.","x-access":[],"x-models":["ProfessionalAccount","Service","Rating","Model","MyContact"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the rating."},{"name":"item","in":"path","required":true,"schema":{"type":"string"},"description":"The rating's item."},{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."},{"name":"limit","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to return."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/rating":{"post":{"operationId":"post-rating","tags":["Community"],"x-section":"Rating","summary":"Create a rating","description":"Creates a rating from the fields sent.","x-access":[],"x-models":["Media","Rating"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","description":"The rating's body."}}}}}}}},"/rating/{id}":{"get":{"operationId":"get-rating-id","tags":["Community"],"x-section":"Rating","summary":"Retrieve a rating","description":"Returns one rating, found by its ID.","x-access":["user"],"x-models":["Rating"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the rating."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/ratings-table":{"get":{"operationId":"get-ratings-table","tags":["Community"],"x-section":"Rating","summary":"Retrieve the ratings table","description":"Returns the ratings table.","x-access":["user"],"x-models":["Model","Rating"],"parameters":[{"name":"charAt","in":"query","required":false,"schema":{"type":"string"},"description":"Only ratings tables with this char at."},{"name":"slice","in":"query","required":false,"schema":{"type":"string"},"description":"Only ratings tables with this slice."},{"name":"type","in":"query","required":false,"schema":{"type":"string"},"description":"Only ratings tables with this type."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/user-rating/{email}&{validation_code}&{type}&{id}":{"get":{"operationId":"get-user-rating-email-validation-code-type-id","tags":["Community"],"x-section":"Rating","summary":"Retrieve a user rating","description":"Returns one user rating, found by its ID.","x-access":[],"x-models":["Order","Booking","Service","Subscription","PricePlan","MyContact"],"parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string"},"description":"An email address."},{"name":"validation_code","in":"path","required":true,"schema":{"type":"string"},"description":"The user rating's validation code."},{"name":"type","in":"path","required":true,"schema":{"type":"string"},"description":"The user rating's type."},{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the user rating."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/brands":{"get":{"operationId":"get-brands","tags":["Custom content"],"x-section":"Brand","summary":"List all brands","description":"Returns the site's brands, newest first unless a sort is given.","x-access":[],"x-models":["Brand"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/brands/{id}":{"get":{"operationId":"get-brands-id","tags":["Custom content"],"x-section":"Brand","summary":"Retrieve a brand","description":"Returns one brand, found by its ID.","x-access":[],"x-models":["Brand"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the brand."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/brands/{id}/logo":{"get":{"operationId":"get-brands-id-logo","tags":["Custom content"],"x-section":"Brand","summary":"Retrieve a brand","description":"Returns one brand, found by its ID.","x-access":[],"x-models":["Brand","Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the brand."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-brands-id-logo","tags":["Custom content"],"x-section":"Brand","summary":"Create a brand","description":"Creates a brand from the fields sent.","x-access":["user"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the brand."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]},"delete":{"operationId":"delete-brands-id-logo","tags":["Custom content"],"x-section":"Brand","summary":"Delete a brand","description":"Deletes the brand. This cannot be undone.","x-access":["user"],"x-models":["Brand","Media"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the brand."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."}},"security":[{"bearer":[]}]}},"/dynamic-page":{"get":{"operationId":"get-dynamic-page","tags":["Custom content"],"x-section":"Dynamic Page","summary":"Retrieve the dynamic page","description":"Get all DynamicdynamicPages.","x-access":["admin"],"x-models":["DynamicPage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-dynamic-page","tags":["Custom content"],"x-section":"Dynamic Page","summary":"Create a dynamic page","description":"Create new DynamicPage.","x-access":["admin"],"x-models":["DynamicPage"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"The dynamic page's name."}}}}}}}},"/dynamic-page-statistics/{url}":{"get":{"operationId":"get-dynamic-page-statistics-url","tags":["Custom content"],"x-section":"Dynamic Page","summary":"Get dynamic page statistics","description":"Get dynamic page statistics.","x-access":["optional-user"],"x-models":["DynamicPage"],"parameters":[{"name":"url","in":"path","required":true,"schema":{"type":"string"},"description":"The dynamic page's URL slug, as in its address on the site."},{"name":"from","in":"query","required":false,"schema":{"type":"string"},"description":"Only dynamic pages with this from."},{"name":"to","in":"query","required":false,"schema":{"type":"string"},"description":"Only dynamic pages with this to."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/dynamic-page/{id}":{"patch":{"operationId":"patch-dynamic-page-id","tags":["Custom content"],"x-section":"Dynamic Page","summary":"Update a dynamic page","description":"Update DynamicPage by ID.","x-access":["admin"],"x-models":["DynamicPage"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the dynamic page."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"The dynamic page's name."}}}}}}},"delete":{"operationId":"delete-dynamic-page-id","tags":["Custom content"],"x-section":"Dynamic Page","summary":"Delete a dynamic page","description":"Delete DynamicPage by ID.","x-access":["admin"],"x-models":["DynamicPage"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the dynamic page."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/dynamic-page/{url}":{"get":{"operationId":"get-dynamic-page-url","tags":["Custom content"],"x-section":"Dynamic Page","summary":"Retrieve a dynamic page","description":"Get a particular DynamicPage by ID.","x-access":["optional-user"],"x-models":["DynamicPage","DynamicModel","Model"],"parameters":[{"name":"url","in":"path","required":true,"schema":{"type":"string"},"description":"The dynamic page's URL slug, as in its address on the site."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/all-used-schemas":{"get":{"operationId":"get-all-used-schemas","tags":["Custom content"],"x-section":"Dynamic Trigger","summary":"List all used schemas","description":"Returns the site's used schemas, newest first unless a sort is given.","x-access":["admin"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/dynamic-trigger":{"get":{"operationId":"get-dynamic-trigger","tags":["Custom content"],"x-section":"Dynamic Trigger","summary":"Retrieve the dynamic trigger","description":"Get all DynamicTriggers.","x-access":["admin"],"x-models":["DynamicTrigger"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-dynamic-trigger","tags":["Custom content"],"x-section":"Dynamic Trigger","summary":"Create a dynamic trigger","description":"Create new DynamicTrigger.","x-access":["admin"],"x-models":["DynamicTrigger"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DynamicTrigger"}}}}}},"/dynamic-trigger/{id}":{"get":{"operationId":"get-dynamic-trigger-id","tags":["Custom content"],"x-section":"Dynamic Trigger","summary":"Retrieve a dynamic trigger","description":"Get a particular DynamicTrigger by ID.","x-access":["admin"],"x-models":["DynamicTrigger"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the dynamic trigger."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-dynamic-trigger-id","tags":["Custom content"],"x-section":"Dynamic Trigger","summary":"Update a dynamic trigger","description":"Update DynamicTrigger by ID.","x-access":["admin"],"x-models":["DynamicTrigger"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the dynamic trigger."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"last_error":{"type":"string","description":"The dynamic trigger's last error."},"last_run_at":{"type":"string","description":"The dynamic trigger's last run at."},"last_run_status":{"type":"string","description":"The last run status: one of , success, failed."}}}}}}},"delete":{"operationId":"delete-dynamic-trigger-id","tags":["Custom content"],"x-section":"Dynamic Trigger","summary":"Delete a dynamic trigger","description":"Delete DynamicTrigger by ID.","x-access":["admin"],"x-models":["DynamicTrigger"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the dynamic trigger."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/dynamicmodel":{"get":{"operationId":"get-dynamicmodel","tags":["Custom content"],"x-section":"Dynamicmodel","summary":"Retrieve the content type","description":"Get all DynamicModels.","x-access":["admin"],"x-models":["DynamicModel"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-dynamicmodel","tags":["Custom content"],"x-section":"Dynamicmodel","summary":"Create a content type","description":"Create new DynamicModel.","x-access":["admin"],"x-models":["DynamicModel"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"The content type's name."},"fields":{"type":"string","description":"The content type's fields."}}}}}}}},"/dynamicmodel-input-fields":{"get":{"operationId":"get-dynamicmodel-input-fields","tags":["Custom content"],"x-section":"Dynamicmodel","summary":"List all content type input fields","description":"Get dynamic models with user_input=true for a given ref type.","x-access":[],"x-models":["DynamicModel"],"parameters":[{"name":"ref","in":"query","required":false,"schema":{"type":"string"},"description":"Only content type input fields with this ref."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/dynamicmodel-select-fields":{"get":{"operationId":"get-dynamicmodel-select-fields","tags":["Custom content"],"x-section":"Dynamicmodel","summary":"List all content type select fields","description":"Get dynamic models with user_input=false for a given ref type, including their docs.","x-access":[],"x-models":["DynamicModel","Model"],"parameters":[{"name":"ref","in":"query","required":false,"schema":{"type":"string"},"description":"Only content type select fields with this ref."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/dynamicmodel/{id}":{"get":{"operationId":"get-dynamicmodel-id","tags":["Custom content"],"x-section":"Dynamicmodel","summary":"Retrieve a content type","description":"Get a particular DynamicModel by ID.","x-access":["admin"],"x-models":["DynamicModel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the content type."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-dynamicmodel-id","tags":["Custom content"],"x-section":"Dynamicmodel","summary":"Update a content type","description":"Update DynamicModel by ID.","x-access":["admin"],"x-models":["DynamicModel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the content type."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"fields":{"type":"string","description":"The content type's fields."}}}}}}},"delete":{"operationId":"delete-dynamicmodel-id","tags":["Custom content"],"x-section":"Dynamicmodel","summary":"Delete a content type","description":"Delete DynamicModel by ID.","x-access":["admin"],"x-models":["DynamicModel"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the content type."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/all-miniapps/{skip}":{"get":{"operationId":"get-all-miniapps-skip","tags":["Custom content"],"x-section":"Miniapp","summary":"List all mini apps","description":"Returns the site's mini apps, newest first unless a sort is given.","x-access":["user"],"x-models":["MiniApp"],"parameters":[{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/mini-app-insights/{id}":{"get":{"operationId":"get-mini-app-insights-id","tags":["Custom content"],"x-section":"Miniapp","summary":"Retrieve a mini app insight","description":"Returns one mini app insight, found by its ID.","x-access":["user"],"x-models":["MiniApp"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the mini app insight."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/mini-app-open/{id}":{"patch":{"operationId":"patch-mini-app-open-id","tags":["Custom content"],"x-section":"Miniapp","summary":"Update a mini app open","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["MiniApp"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the mini app open."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/mini-app-view/{id}":{"patch":{"operationId":"patch-mini-app-view-id","tags":["Custom content"],"x-section":"Miniapp","summary":"Record a view of a mini app","description":"Record a view of a mini app.","x-access":["user"],"x-models":["MiniApp"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the mini app."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/miniapps":{"post":{"operationId":"post-miniapps","tags":["Custom content"],"x-section":"Miniapp","summary":"Create a mini app","description":"Creates a mini app from the fields sent.","x-access":["user"],"x-models":["MiniApp"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MiniApp"}}}}}},"/miniapps-get-user-data":{"get":{"operationId":"get-miniapps-get-user-data","tags":["Custom content"],"x-section":"Miniapp","summary":"Retrieve the mini apps user data","description":"Returns the mini apps user data.","x-access":[],"x-models":["User","MiniApp","MyContact"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/miniapps-receiver-validate-authorization-code":{"get":{"operationId":"get-miniapps-receiver-validate-authorization-code","tags":["Custom content"],"x-section":"Miniapp","summary":"Retrieve the mini apps receiver authorization code","description":"Returns the mini apps receiver authorization code.","x-access":[],"x-models":["MyContact"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/miniapps-temp-authorization-code":{"get":{"operationId":"get-miniapps-temp-authorization-code","tags":["Custom content"],"x-section":"Miniapp","summary":"Retrieve the mini apps temp authorization code","description":"Returns the mini apps temp authorization code.","x-access":[],"x-models":["User","MiniApp"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/miniapps-validate-authorization-code":{"get":{"operationId":"get-miniapps-validate-authorization-code","tags":["Custom content"],"x-section":"Miniapp","summary":"Retrieve the mini apps authorization code","description":"Returns the mini apps authorization code.","x-access":[],"x-models":["User","MiniApp"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/miniapps/{id}":{"get":{"operationId":"get-miniapps-id","tags":["Custom content"],"x-section":"Miniapp","summary":"Retrieve a mini app","description":"Returns one mini app, found by its ID.","x-access":["user"],"x-models":["MiniApp","Collection","Rating"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the mini app."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-miniapps-id","tags":["Custom content"],"x-section":"Miniapp","summary":"Update a mini app","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["MiniApp"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the mini app."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"previews":{"description":"The mini app's previews."}}}}}}},"delete":{"operationId":"delete-miniapps-id","tags":["Custom content"],"x-section":"Miniapp","summary":"Delete a mini app","description":"Deletes the mini app. This cannot be undone.","x-access":["user"],"x-models":["MiniApp"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the mini app."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/my-mini-apps":{"get":{"operationId":"get-my-mini-apps","tags":["Custom content"],"x-section":"Miniapp","summary":"List all mini apps","description":"Returns the site's mini apps, newest first unless a sort is given.","x-access":["user"],"x-models":["MiniApp"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/referer":{"get":{"operationId":"get-referer","tags":["Custom content"],"x-section":"Miniapp","summary":"Retrieve the referer","description":"Returns the referer.","x-access":[],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/user-mini-apps/{owner_id}":{"get":{"operationId":"get-user-mini-apps-owner-id","tags":["Custom content"],"x-section":"Miniapp","summary":"Retrieve a user mini app","description":"Returns one user mini app, found by its ID.","x-access":["user"],"x-models":["MiniApp"],"parameters":[{"name":"owner_id","in":"path","required":true,"schema":{"type":"string"},"description":"The owner id - the ID of a user."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/create-new-dynamic-model":{"post":{"operationId":"post-create-new-dynamic-model","tags":["Custom content"],"x-section":"AI builder","summary":"Create a dynamic model with AI","description":"Create a dynamic model from a prompt, written by the AI builder.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the dynamic model, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."}}}}}}}},"/create-new-dynamic-page":{"post":{"operationId":"post-create-new-dynamic-page","tags":["Custom content"],"x-section":"AI builder","summary":"Create a dynamic page with AI","description":"Create a dynamic page from a prompt, written by the AI builder.","x-access":["user"],"x-models":["DynamicModel"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the dynamic page, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"model_id":{"type":"string","description":"The dynamic page's model id."}}}}}}}},"/create-new-dynamic-trigger":{"post":{"operationId":"post-create-new-dynamic-trigger","tags":["Custom content"],"x-section":"AI builder","summary":"Create a dynamic trigger with AI","description":"Create a dynamic trigger from a prompt, written by the AI builder.","x-access":["user"],"x-models":["DynamicModel"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the dynamic trigger, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"model_id":{"type":"string","description":"The dynamic trigger's model id."}}}}}}}},"/delete-dynamic-model":{"post":{"operationId":"post-delete-dynamic-model","tags":["Custom content"],"x-section":"AI builder","summary":"Create a delete dynamic model","description":"Use it to delete one or more existing custom data models by name.","x-access":["user"],"x-models":["DynamicModel","ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"item_ids":{"type":"string","description":"The delete dynamic model's item ids."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/delete-dynamic-page":{"post":{"operationId":"post-delete-dynamic-page","tags":["Custom content"],"x-section":"AI builder","summary":"Create a delete dynamic page","description":"Use it to delete one or more existing custom dynamic pages by name.","x-access":["user"],"x-models":["DynamicPage","ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"item_ids":{"type":"string","description":"The delete dynamic page's item ids."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/delete-dynamic-trigger":{"post":{"operationId":"post-delete-dynamic-trigger","tags":["Custom content"],"x-section":"AI builder","summary":"Create a delete dynamic trigger","description":"Use it to delete one or more existing automation triggers by name.","x-access":["user"],"x-models":["DynamicTrigger","ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"item_ids":{"type":"string","description":"The delete dynamic trigger's item ids."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/generate-dynamic-model":{"post":{"operationId":"post-generate-dynamic-model","tags":["Custom content"],"x-section":"AI builder","summary":"Generate a dynamic model with AI","description":"Use it to create a custom data model, CMS content type, custom form schema, or internal record structure.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the dynamic model, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/generate-dynamic-page":{"post":{"operationId":"post-generate-dynamic-page","tags":["Custom content"],"x-section":"AI builder","summary":"Generate a dynamic page with AI","description":"Use it to create a brand new CMS admin table, data display page, or statistics dashboard for custom model data that does not yet exist.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the dynamic page, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/generate-dynamic-trigger":{"post":{"operationId":"post-generate-dynamic-trigger","tags":["Custom content"],"x-section":"AI builder","summary":"Generate a dynamic trigger with AI","description":"Use it to create a side-effect automation that fires after a record is created, updated, or deleted.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the dynamic trigger, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/modify-dynamic-model":{"post":{"operationId":"post-modify-dynamic-model","tags":["Custom content"],"x-section":"AI builder","summary":"Modify a dynamic model with AI","description":"Use it to edit or update an existing custom data model.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the dynamic model, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"item_id":{"type":"string","description":"The ID of the dynamic model to change."},"item_data":{"type":"string","description":"The current dynamic model, as JSON - the AI changes it and returns the result."}}}}}}}},"/modify-dynamic-page":{"post":{"operationId":"post-modify-dynamic-page","tags":["Custom content"],"x-section":"AI builder","summary":"Modify a dynamic page with AI","description":"Use it to edit or update an existing custom display page.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the dynamic page, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"item_id":{"type":"string","description":"The ID of the dynamic page to change."},"item_ids":{"type":"string","description":"The dynamic page's item ids."},"item_data":{"type":"string","description":"The current dynamic page, as JSON - the AI changes it and returns the result."}}}}}}}},"/modify-dynamic-trigger":{"post":{"operationId":"post-modify-dynamic-trigger","tags":["Custom content"],"x-section":"AI builder","summary":"Modify a dynamic trigger with AI","description":"Use it to edit or update an existing or just-generated automation trigger.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the dynamic trigger, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"item_id":{"type":"string","description":"The ID of the dynamic trigger to change."},"item_ids":{"type":"string","description":"The dynamic trigger's item ids."},"item_data":{"type":"string","description":"The current dynamic trigger, as JSON - the AI changes it and returns the result."}}}}}}}},"/run-dynamic-trigger":{"post":{"operationId":"post-run-dynamic-trigger","tags":["Custom content"],"x-section":"AI builder","summary":"Create a run dynamic trigger","description":"Use it to run or test an automation trigger immediately, on demand.","x-access":["user"],"x-models":["DynamicTrigger","ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"item_ids":{"type":"string","description":"The run dynamic trigger's item ids."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/toggle-dynamic-trigger":{"post":{"operationId":"post-toggle-dynamic-trigger","tags":["Custom content"],"x-section":"AI builder","summary":"Toggle a dynamic trigger","description":"Use it to enable or disable (pause/resume/activate/deactivate) one or more existing automation triggers without running them.","x-access":["user"],"x-models":["DynamicTrigger","ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"item_ids":{"type":"string","description":"The dynamic trigger's item ids."},"enabled":{"type":"boolean","description":"Whether the dynamic trigger is enabled."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}}}}}}}},"/update-dynamic-model":{"post":{"operationId":"post-update-dynamic-model","tags":["Custom content"],"x-section":"AI builder","summary":"Update a dynamic model with AI","description":"Update a dynamic model from a prompt, written by the AI builder.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the dynamic model, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the dynamic model to change."}}}}}}}},"/update-dynamic-page":{"post":{"operationId":"post-update-dynamic-page","tags":["Custom content"],"x-section":"AI builder","summary":"Update a dynamic page with AI","description":"Update a dynamic page from a prompt, written by the AI builder.","x-access":["user"],"x-models":["DynamicModel"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the dynamic page, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the dynamic page to change."},"model_id":{"type":"string","description":"The dynamic page's model id."}}}}}}}},"/update-dynamic-trigger":{"post":{"operationId":"post-update-dynamic-trigger","tags":["Custom content"],"x-section":"AI builder","summary":"Update a dynamic trigger with AI","description":"Update a dynamic trigger from a prompt, written by the AI builder.","x-access":["user"],"x-models":["DynamicModel"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the dynamic trigger, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_id":{"type":"string","description":"The ID of the dynamic trigger to change."},"model_id":{"type":"string","description":"The dynamic trigger's model id."}}}}}}}},"/ai-chat-orchestrator":{"post":{"operationId":"post-ai-chat-orchestrator","tags":["AI builder"],"x-section":"Ai Orchestrator","summary":"Create an AI chat orchestrator","description":"Creates an AI chat orchestrator from the fields sent.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"429":{"description":"Slow down: the site's request limit was reached, an AI chat already has a request running, or the hourly limit of AI search answers is used up. Wait and retry."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reference_extract":{"type":"string","description":"The AI chat orchestrator's reference extract."},"prompt":{"type":"string","description":"What the AI should do with the AI chat orchestrator, in plain words - any language."},"originalPrompt":{"type":"string","description":"The AI chat orchestrator's original prompt."},"current_page_url":{"type":"string","description":"The AI chat orchestrator's current page url."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"attachments":{"type":"string","description":"The AI chat orchestrator's attachments."}}}}}}}},"/ai-clone/analyze":{"post":{"operationId":"post-ai-clone-analyze","tags":["AI builder"],"x-section":"Ai Orchestrator","summary":"Duplicate a AI","description":"Duplicate a AI.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"422":{"description":"The request was understood but could not be done - for example the AI could not read the website it was asked to clone. The message says what to try instead."},"429":{"description":"Slow down: the site's request limit was reached, an AI chat already has a request running, or the hourly limit of AI search answers is used up. Wait and retry."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"url":{"type":"string","description":"The AI's URL slug, as in its address on the site."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."}}}}}}}},"/ai-clone/refine":{"post":{"operationId":"post-ai-clone-refine","tags":["AI builder"],"x-section":"Ai Orchestrator","summary":"Duplicate a AI","description":"Duplicate a AI.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"429":{"description":"Slow down: the site's request limit was reached, an AI chat already has a request running, or the hourly limit of AI search answers is used up. Wait and retry."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"text":{"type":"string","description":"The AI's text."}}}}}}}},"/async-jobs/{id}":{"get":{"operationId":"get-async-jobs-id","tags":["AI builder"],"x-section":"Async Job","summary":"Retrieve an async job","description":"Returns one async job, found by its ID.","x-access":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the async job."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/all-chat-history":{"get":{"operationId":"get-all-chat-history","tags":["AI builder"],"x-section":"Chat History","summary":"Retrieve the chat history","description":"Returns the chat history.","x-access":["admin"],"x-models":["ChatHistory","ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/chat-history":{"get":{"operationId":"get-chat-history","tags":["AI builder"],"x-section":"Chat History","summary":"Retrieve the chat history","description":"Returns the chat history.","x-access":["admin"],"x-models":["ChatHistory","ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-chat-history","tags":["AI builder"],"x-section":"Chat History","summary":"Create a chat history","description":"Creates a chat history from the fields sent.","x-access":["admin"],"x-models":["ChatHistory"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/chat-history/{id}":{"get":{"operationId":"get-chat-history-id","tags":["AI builder"],"x-section":"Chat History","summary":"Retrieve a chat history","description":"Returns one chat history, found by its ID.","x-access":["admin"],"x-models":["ChatHistory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the chat history."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-chat-history-id","tags":["AI builder"],"x-section":"Chat History","summary":"Update a chat history","description":"Changes the fields sent; the others stay as they are.","x-access":["admin"],"x-models":["ChatHistory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the chat history."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"The chat history's title."}}}}}}},"delete":{"operationId":"delete-chat-history-id","tags":["AI builder"],"x-section":"Chat History","summary":"Delete a chat history","description":"Deletes the chat history. This cannot be undone.","x-access":["admin"],"x-models":["ChatHistory","ChatMessage"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the chat history."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/chat-message/{chatId}":{"post":{"operationId":"post-chat-message-chatid","tags":["AI builder"],"x-section":"Chat Message","summary":"Create a chat message","description":"Creates a chat message from the fields sent.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[{"name":"chatId","in":"path","required":true,"schema":{"type":"string"},"description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatMessage"}}}}}},"/chat-message/{chatId}/{messageId}":{"patch":{"operationId":"patch-chat-message-chatid-messageid","tags":["AI builder"],"x-section":"Chat Message","summary":"Update a chat message","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[{"name":"chatId","in":"path","required":true,"schema":{"type":"string"},"description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},{"name":"messageId","in":"path","required":true,"schema":{"type":"string"},"description":"The chat message's message id."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","description":"The chat message's text."},"data":{"type":"string","description":"The chat message's data."},"options":{"type":"array","items":{"type":"string"},"description":"The chat message's options."}}}}}}}},"/chat-message/{chatId}/{skip}/{limit}":{"get":{"operationId":"get-chat-message-chatid-skip-limit","tags":["AI builder"],"x-section":"Chat Message","summary":"Retrieve a chat message","description":"Returns one chat message, found by its ID.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[{"name":"chatId","in":"path","required":true,"schema":{"type":"string"},"description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},{"name":"skip","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to skip - for paging."},{"name":"limit","in":"path","required":true,"schema":{"type":"string"},"description":"How many results to return."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/chat-message/{chatId}/last-error":{"delete":{"operationId":"delete-chat-message-chatid-last-error","tags":["AI builder"],"x-section":"Chat Message","summary":"Delete a chat message","description":"Deletes the chat message. This cannot be undone.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[{"name":"chatId","in":"path","required":true,"schema":{"type":"string"},"description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/ai-builder/hero-animation/{pageId}":{"get":{"operationId":"get-ai-builder-hero-animation-pageid","tags":["AI builder"],"x-section":"Hero Animation","summary":"Retrieve an AI builder","description":"Returns one AI builder, found by its ID.","x-access":["user"],"x-models":["AboutPage"],"parameters":[{"name":"pageId","in":"path","required":true,"schema":{"type":"string"},"description":"The AI builder's page id."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/ai-builder/hero-animation/{pageId}/apply":{"post":{"operationId":"post-ai-builder-hero-animation-pageid-apply","tags":["AI builder"],"x-section":"Hero Animation","summary":"Apply the AI builder","description":"Apply the AI builder.","x-access":["user"],"x-models":["Media","AboutPage"],"parameters":[{"name":"pageId","in":"path","required":true,"schema":{"type":"string"},"description":"The AI builder's page id."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"409":{"description":"It clashes with the current state: the item is already being processed, a version is already applied, or an AI plan or preview is no longer available."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"media":{"type":"string","description":"The AI builder's media."}}}}}}}},"/ai-builder/hero-animation/{pageId}/dismiss":{"post":{"operationId":"post-ai-builder-hero-animation-pageid-dismiss","tags":["AI builder"],"x-section":"Hero Animation","summary":"Dismiss the AI builder","description":"Dismiss the AI builder.","x-access":["user"],"x-models":["AboutPage"],"parameters":[{"name":"pageId","in":"path","required":true,"schema":{"type":"string"},"description":"The AI builder's page id."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/ai-builder/hero-animation/{pageId}/revert":{"post":{"operationId":"post-ai-builder-hero-animation-pageid-revert","tags":["AI builder"],"x-section":"Hero Animation","summary":"Revert the AI builder","description":"Revert the AI builder.","x-access":["user"],"x-models":["AboutPage"],"parameters":[{"name":"pageId","in":"path","required":true,"schema":{"type":"string"},"description":"The AI builder's page id."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/ai-builder/hero-animation/{pageId}/start":{"post":{"operationId":"post-ai-builder-hero-animation-pageid-start","tags":["AI builder"],"x-section":"Hero Animation","summary":"Start the AI builder","description":"Start the AI builder.","x-access":["user"],"x-models":["AboutPage"],"parameters":[{"name":"pageId","in":"path","required":true,"schema":{"type":"string"},"description":"The AI builder's page id."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"403":{"description":"The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"409":{"description":"It clashes with the current state: the item is already being processed, a version is already applied, or an AI plan or preview is no longer available."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"idea":{"type":"string","description":"The AI builder's idea."},"mediaIds":{"type":"string","description":"The AI builder's media ids."}}}}}}}},"/create-dynamic-features-plan":{"post":{"operationId":"post-create-dynamic-features-plan","tags":["AI builder"],"x-section":"Planners","summary":"Create a dynamic features plan with AI","description":"Use it when you have just confirmed you want to proceed with the dynamic feature plan described in the immediately preceding message.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the dynamic features plan, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."}}}}}}}},"/create-dynamic-modification-plan":{"post":{"operationId":"post-create-dynamic-modification-plan","tags":["AI builder"],"x-section":"Planners","summary":"Create a dynamic modification plan with AI","description":"Use it when you have just confirmed you want to proceed with the dynamic modification plan described in the immediately preceding message.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the dynamic modification plan, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."}}}}}}}},"/create-plan":{"post":{"operationId":"post-create-plan","tags":["AI builder"],"x-section":"Planners","summary":"Create a plan with AI","description":"Use it when you make a complex or multi-step request that requires building multiple things.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the plan, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"reference_extract":{"type":"string","description":"The plan's reference extract."},"notice":{"type":"string","description":"The plan's notice."},"reference_request":{"type":"string","description":"The plan's reference request."},"selection_request":{"type":"string","description":"The plan's selection request."}}}}}}}},"/generate-companion-app-plan":{"post":{"operationId":"post-generate-companion-app-plan","tags":["AI builder"],"x-section":"Planners","summary":"Generate a companion app plan with AI","description":"Use it to configure, set up, or learn about the Companion App.","x-access":["user"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the companion app plan, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."}}}}}}}},"/generate-dynamic-features-plan":{"post":{"operationId":"post-generate-dynamic-features-plan","tags":["AI builder"],"x-section":"Planners","summary":"Generate a dynamic features plan with AI","description":"Use it to build a brand new custom feature that requires creating a custom database model and/or custom pages.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the dynamic features plan, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."}}}}}}}},"/generate-dynamic-modification-plan":{"post":{"operationId":"post-generate-dynamic-modification-plan","tags":["AI builder"],"x-section":"Planners","summary":"Generate a dynamic modification plan with AI","description":"Use it to modify, extend, or fix existing custom data features.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the dynamic modification plan, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."}}}}}}}},"/generate-page-link-plan":{"post":{"operationId":"post-generate-page-link-plan","tags":["AI builder"],"x-section":"Planners","summary":"Generate a page link plan with AI","description":"Use it to create or attach a custom page TO something.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the page link plan, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."},"item_ids":{"type":"string","description":"The page link plan's item ids."}}}}}}}},"/generate-project-plan":{"post":{"operationId":"post-generate-project-plan","tags":["AI builder"],"x-section":"Planners","summary":"Generate a project plan with AI","description":"Generate a project plan from a prompt, written by the AI builder.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the project plan, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."}}}}}}}},"/generate-social-mode-plan":{"post":{"operationId":"post-generate-social-mode-plan","tags":["AI builder"],"x-section":"Planners","summary":"Generate a social mode plan with AI","description":"Use it to enable, disable, or configure any built-in platform feature.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the social mode plan, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."}}}}}}}},"/unfinished-plans":{"get":{"operationId":"get-unfinished-plans","tags":["AI builder"],"x-section":"Planners","summary":"List all unfinished plans","description":"Returns the site's unfinished plans, newest first unless a sort is given.","x-access":["user"],"x-models":["ChatHistory"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/site-wide-edit":{"post":{"operationId":"post-site-wide-edit","tags":["AI builder"],"x-section":"Site Wide Edit","summary":"Create a site wide edit","description":"Finds every place a requested text change applies to and proposes it,. as a chat card, for confirmation. Background job; the card is the result.","x-access":["user"],"x-models":["MyContact","ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","description":"What the AI should do with the site wide edit, in plain words - any language."},"chatId":{"type":"string","description":"The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat."},"aiVersion":{"type":"string","description":"Which version of the AI builder to use; leave it out for the current one."}}}}}}}},"/site-wide-edit/apply":{"post":{"operationId":"post-site-wide-edit-apply","tags":["AI builder"],"x-section":"Site Wide Edit","summary":"Apply the site wide edit","description":"Apply the site wide edit.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"messageId":{"type":"string","description":"The site wide edit's message id."}}}}}}}},"/site-wide-edit/undo":{"post":{"operationId":"post-site-wide-edit-undo","tags":["AI builder"],"x-section":"Site Wide Edit","summary":"Undo the site wide edit","description":"Puts back what an applied change replaced - where nothing has changed it since.","x-access":["user"],"x-models":["ChatMessage"],"parameters":[],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"messageId":{"type":"string","description":"The site wide edit's message id."}}}}}}}},"/client":{"get":{"operationId":"get-client","tags":["Client"],"x-section":"Client","summary":"Retrieve the client","description":"Returns the client.","x-access":[],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only clients with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only clients with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/client/{id}":{"get":{"operationId":"get-client-id","tags":["Client"],"x-section":"Client","summary":"Retrieve a client","description":"Returns one client, found by its ID.","x-access":[],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the client."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only clients with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/daniellsapunkov-streetlightcontrol":{"get":{"operationId":"get-daniellsapunkov-streetlightcontrol","tags":["Daniellsapunkov Streetlightcontrol"],"x-section":"Daniellsapunkov Streetlightcontrol","summary":"Retrieve the daniellsapunkov streetlightcontrol","description":"Returns the daniellsapunkov streetlightcontrol.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only daniellsapunkov streetlightcontrols with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only daniellsapunkov streetlightcontrols with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-daniellsapunkov-streetlightcontrol","tags":["Daniellsapunkov Streetlightcontrol"],"x-section":"Daniellsapunkov Streetlightcontrol","summary":"Create a daniellsapunkov streetlightcontrol","description":"Creates a daniellsapunkov streetlightcontrol from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/daniellsapunkov-streetlightcontrol/{id}":{"get":{"operationId":"get-daniellsapunkov-streetlightcontrol-id","tags":["Daniellsapunkov Streetlightcontrol"],"x-section":"Daniellsapunkov Streetlightcontrol","summary":"Retrieve a daniellsapunkov streetlightcontrol","description":"Returns one daniellsapunkov streetlightcontrol, found by its ID.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the daniellsapunkov streetlightcontrol."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only daniellsapunkov streetlightcontrols with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-daniellsapunkov-streetlightcontrol-id","tags":["Daniellsapunkov Streetlightcontrol"],"x-section":"Daniellsapunkov Streetlightcontrol","summary":"Update a daniellsapunkov streetlightcontrol","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the daniellsapunkov streetlightcontrol."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-daniellsapunkov-streetlightcontrol-id","tags":["Daniellsapunkov Streetlightcontrol"],"x-section":"Daniellsapunkov Streetlightcontrol","summary":"Delete a daniellsapunkov streetlightcontrol","description":"Deletes the daniellsapunkov streetlightcontrol. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the daniellsapunkov streetlightcontrol."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/dataroom":{"get":{"operationId":"get-dataroom","tags":["Dataroom"],"x-section":"Dataroom","summary":"Retrieve the dataroom","description":"Returns the dataroom.","x-access":[],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only datarooms with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only datarooms with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-dataroom","tags":["Dataroom"],"x-section":"Dataroom","summary":"Create a dataroom","description":"Creates a dataroom from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/dataroom/{id}":{"get":{"operationId":"get-dataroom-id","tags":["Dataroom"],"x-section":"Dataroom","summary":"Retrieve a dataroom","description":"Returns one dataroom, found by its ID.","x-access":[],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the dataroom."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only datarooms with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-dataroom-id","tags":["Dataroom"],"x-section":"Dataroom","summary":"Update a dataroom","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the dataroom."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-dataroom-id","tags":["Dataroom"],"x-section":"Dataroom","summary":"Delete a dataroom","description":"Deletes the dataroom. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the dataroom."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/discountvouchers":{"get":{"operationId":"get-discountvouchers","tags":["Discountvouchers"],"x-section":"Discountvouchers","summary":"List all discountvouchers","description":"Returns the site's discountvouchers, newest first unless a sort is given.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only discountvouchers with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only discountvouchers with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-discountvouchers","tags":["Discountvouchers"],"x-section":"Discountvouchers","summary":"Create a discountvoucher","description":"Creates a discountvoucher from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/discountvouchers/{id}":{"get":{"operationId":"get-discountvouchers-id","tags":["Discountvouchers"],"x-section":"Discountvouchers","summary":"Retrieve a discountvoucher","description":"Returns one discountvoucher, found by its ID.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the discountvoucher."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only discountvouchers with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-discountvouchers-id","tags":["Discountvouchers"],"x-section":"Discountvouchers","summary":"Update a discountvoucher","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the discountvoucher."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-discountvouchers-id","tags":["Discountvouchers"],"x-section":"Discountvouchers","summary":"Delete a discountvoucher","description":"Deletes the discountvoucher. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the discountvoucher."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/doc-feature":{"get":{"operationId":"get-doc-feature","tags":["Doc Feature"],"x-section":"Doc Feature","summary":"Retrieve the doc feature","description":"Returns the doc feature.","x-access":[],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only doc features with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only doc features with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-doc-feature","tags":["Doc Feature"],"x-section":"Doc Feature","summary":"Create a doc feature","description":"Creates a doc feature from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/doc-feature/{id}":{"get":{"operationId":"get-doc-feature-id","tags":["Doc Feature"],"x-section":"Doc Feature","summary":"Retrieve a doc feature","description":"Returns one doc feature, found by its ID.","x-access":[],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the doc feature."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only doc features with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-doc-feature-id","tags":["Doc Feature"],"x-section":"Doc Feature","summary":"Update a doc feature","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the doc feature."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-doc-feature-id","tags":["Doc Feature"],"x-section":"Doc Feature","summary":"Delete a doc feature","description":"Deletes the doc feature. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the doc feature."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/extbookingsexport":{"get":{"operationId":"get-extbookingsexport","tags":["Extbookingsexport"],"x-section":"Extbookingsexport","summary":"Retrieve the extbookingsexport","description":"Returns the extbookingsexport.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only extbookingsexports with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only extbookingsexports with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-extbookingsexport","tags":["Extbookingsexport"],"x-section":"Extbookingsexport","summary":"Create an extbookingsexport","description":"Creates an extbookingsexport from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/extbookingsexport/{id}":{"get":{"operationId":"get-extbookingsexport-id","tags":["Extbookingsexport"],"x-section":"Extbookingsexport","summary":"Retrieve an extbookingsexport","description":"Returns one extbookingsexport, found by its ID.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the extbookingsexport."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only extbookingsexports with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-extbookingsexport-id","tags":["Extbookingsexport"],"x-section":"Extbookingsexport","summary":"Update an extbookingsexport","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the extbookingsexport."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-extbookingsexport-id","tags":["Extbookingsexport"],"x-section":"Extbookingsexport","summary":"Delete an extbookingsexport","description":"Deletes the extbookingsexport. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the extbookingsexport."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/fuelbrand":{"get":{"operationId":"get-fuelbrand","tags":["Fuelbrand"],"x-section":"Fuelbrand","summary":"Retrieve the fuelbrand","description":"Returns the fuelbrand.","x-access":[],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only fuelbrands with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only fuelbrands with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-fuelbrand","tags":["Fuelbrand"],"x-section":"Fuelbrand","summary":"Create a fuelbrand","description":"Creates a fuelbrand from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/fuelbrand/{id}":{"get":{"operationId":"get-fuelbrand-id","tags":["Fuelbrand"],"x-section":"Fuelbrand","summary":"Retrieve a fuelbrand","description":"Returns one fuelbrand, found by its ID.","x-access":[],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the fuelbrand."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only fuelbrands with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-fuelbrand-id","tags":["Fuelbrand"],"x-section":"Fuelbrand","summary":"Update a fuelbrand","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the fuelbrand."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-fuelbrand-id","tags":["Fuelbrand"],"x-section":"Fuelbrand","summary":"Delete a fuelbrand","description":"Deletes the fuelbrand. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the fuelbrand."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/horoscope":{"get":{"operationId":"get-horoscope","tags":["Horoscope"],"x-section":"Horoscope","summary":"Retrieve the horoscope","description":"Returns the horoscope.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only horoscopes with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only horoscopes with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-horoscope","tags":["Horoscope"],"x-section":"Horoscope","summary":"Create a horoscope","description":"Creates a horoscope from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/horoscope/{id}":{"get":{"operationId":"get-horoscope-id","tags":["Horoscope"],"x-section":"Horoscope","summary":"Retrieve a horoscope","description":"Returns one horoscope, found by its ID.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the horoscope."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only horoscopes with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-horoscope-id","tags":["Horoscope"],"x-section":"Horoscope","summary":"Update a horoscope","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the horoscope."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-horoscope-id","tags":["Horoscope"],"x-section":"Horoscope","summary":"Delete a horoscope","description":"Deletes the horoscope. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the horoscope."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/insurance":{"get":{"operationId":"get-insurance","tags":["Insurance"],"x-section":"Insurance","summary":"Retrieve the insurance","description":"Returns the insurance.","x-access":[],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only insurances with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only insurances with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-insurance","tags":["Insurance"],"x-section":"Insurance","summary":"Create an insurance","description":"Creates an insurance from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/insurance/{id}":{"get":{"operationId":"get-insurance-id","tags":["Insurance"],"x-section":"Insurance","summary":"Retrieve an insurance","description":"Returns one insurance, found by its ID.","x-access":[],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the insurance."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only insurances with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-insurance-id","tags":["Insurance"],"x-section":"Insurance","summary":"Update an insurance","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the insurance."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-insurance-id","tags":["Insurance"],"x-section":"Insurance","summary":"Delete an insurance","description":"Deletes the insurance. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the insurance."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/kitchensink-locales":{"get":{"operationId":"get-kitchensink-locales","tags":["Kitchensink Locales"],"x-section":"Kitchensink Locales","summary":"List all kitchensink locales","description":"Returns the site's kitchensink locales, newest first unless a sort is given.","x-access":[],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only kitchensink locales with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only kitchensink locales with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/kitchensink-locales/{id}":{"get":{"operationId":"get-kitchensink-locales-id","tags":["Kitchensink Locales"],"x-section":"Kitchensink Locales","summary":"Retrieve a kitchensink locale","description":"Returns one kitchensink locale, found by its ID.","x-access":[],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the kitchensink locale."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only kitchensink locales with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}}},"/make":{"get":{"operationId":"get-make","tags":["Make"],"x-section":"Make","summary":"Retrieve the make","description":"Returns the make.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only makes with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only makes with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-make","tags":["Make"],"x-section":"Make","summary":"Create a make","description":"Creates a make from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/make/{id}":{"get":{"operationId":"get-make-id","tags":["Make"],"x-section":"Make","summary":"Retrieve a make","description":"Returns one make, found by its ID.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the make."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only makes with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-make-id","tags":["Make"],"x-section":"Make","summary":"Update a make","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the make."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-make-id","tags":["Make"],"x-section":"Make","summary":"Delete a make","description":"Deletes the make. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the make."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/medproduct":{"get":{"operationId":"get-medproduct","tags":["Medproduct"],"x-section":"Medproduct","summary":"Retrieve the medproduct","description":"Returns the medproduct.","x-access":[],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only medproducts with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only medproducts with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-medproduct","tags":["Medproduct"],"x-section":"Medproduct","summary":"Create a medproduct","description":"Creates a medproduct from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/medproduct/{id}":{"get":{"operationId":"get-medproduct-id","tags":["Medproduct"],"x-section":"Medproduct","summary":"Retrieve a medproduct","description":"Returns one medproduct, found by its ID.","x-access":[],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the medproduct."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only medproducts with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-medproduct-id","tags":["Medproduct"],"x-section":"Medproduct","summary":"Update a medproduct","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the medproduct."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-medproduct-id","tags":["Medproduct"],"x-section":"Medproduct","summary":"Delete a medproduct","description":"Deletes the medproduct. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the medproduct."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/medproductprogress":{"get":{"operationId":"get-medproductprogress","tags":["Medproductprogress"],"x-section":"Medproductprogress","summary":"Retrieve the medproductprogress","description":"Returns the medproductprogress.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only medproductprogresses with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only medproductprogresses with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/medproductprogress/{id}":{"get":{"operationId":"get-medproductprogress-id","tags":["Medproductprogress"],"x-section":"Medproductprogress","summary":"Retrieve a medproductprogress","description":"Returns one medproductprogress, found by its ID.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the medproductprogress."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only medproductprogresses with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/model":{"get":{"operationId":"get-model","tags":["Model"],"x-section":"Model","summary":"Retrieve the model","description":"Returns the model.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only models with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only models with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-model","tags":["Model"],"x-section":"Model","summary":"Create a model","description":"Creates a model from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/model/{id}":{"get":{"operationId":"get-model-id","tags":["Model"],"x-section":"Model","summary":"Retrieve a model","description":"Returns one model, found by its ID.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the model."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only models with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-model-id","tags":["Model"],"x-section":"Model","summary":"Update a model","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the model."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-model-id","tags":["Model"],"x-section":"Model","summary":"Delete a model","description":"Deletes the model. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the model."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/mypetcare-pets":{"get":{"operationId":"get-mypetcare-pets","tags":["Mypetcare Pets"],"x-section":"Mypetcare Pets","summary":"List all mypetcare pets","description":"Returns the site's mypetcare pets, newest first unless a sort is given.","x-access":[],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only mypetcare pets with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only mypetcare pets with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-mypetcare-pets","tags":["Mypetcare Pets"],"x-section":"Mypetcare Pets","summary":"Create a mypetcare pet","description":"Creates a mypetcare pet from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/mypetcare-pets/{id}":{"get":{"operationId":"get-mypetcare-pets-id","tags":["Mypetcare Pets"],"x-section":"Mypetcare Pets","summary":"Retrieve a mypetcare pet","description":"Returns one mypetcare pet, found by its ID.","x-access":[],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the mypetcare pet."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only mypetcare pets with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-mypetcare-pets-id","tags":["Mypetcare Pets"],"x-section":"Mypetcare Pets","summary":"Update a mypetcare pet","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the mypetcare pet."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-mypetcare-pets-id","tags":["Mypetcare Pets"],"x-section":"Mypetcare Pets","summary":"Delete a mypetcare pet","description":"Deletes the mypetcare pet. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the mypetcare pet."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/panam-donator":{"get":{"operationId":"get-panam-donator","tags":["Panam Donator"],"x-section":"Panam Donator","summary":"Retrieve the panam donator","description":"Returns the panam donator.","x-access":[],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only panam donators with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only panam donators with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-panam-donator","tags":["Panam Donator"],"x-section":"Panam Donator","summary":"Create a panam donator","description":"Creates a panam donator from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/panam-donator/{id}":{"get":{"operationId":"get-panam-donator-id","tags":["Panam Donator"],"x-section":"Panam Donator","summary":"Retrieve a panam donator","description":"Returns one panam donator, found by its ID.","x-access":[],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the panam donator."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only panam donators with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-panam-donator-id","tags":["Panam Donator"],"x-section":"Panam Donator","summary":"Update a panam donator","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the panam donator."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-panam-donator-id","tags":["Panam Donator"],"x-section":"Panam Donator","summary":"Delete a panam donator","description":"Deletes the panam donator. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the panam donator."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/panam-sequencenumbers":{"get":{"operationId":"get-panam-sequencenumbers","tags":["Panam Sequencenumbers"],"x-section":"Panam Sequencenumbers","summary":"List all panam sequencenumbers","description":"Returns the site's panam sequencenumbers, newest first unless a sort is given.","x-access":[],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only panam sequencenumbers with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only panam sequencenumbers with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-panam-sequencenumbers","tags":["Panam Sequencenumbers"],"x-section":"Panam Sequencenumbers","summary":"Create a panam sequencenumber","description":"Creates a panam sequencenumber from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/panam-sequencenumbers/{id}":{"get":{"operationId":"get-panam-sequencenumbers-id","tags":["Panam Sequencenumbers"],"x-section":"Panam Sequencenumbers","summary":"Retrieve a panam sequencenumber","description":"Returns one panam sequencenumber, found by its ID.","x-access":[],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the panam sequencenumber."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only panam sequencenumbers with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-panam-sequencenumbers-id","tags":["Panam Sequencenumbers"],"x-section":"Panam Sequencenumbers","summary":"Update a panam sequencenumber","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the panam sequencenumber."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-panam-sequencenumbers-id","tags":["Panam Sequencenumbers"],"x-section":"Panam Sequencenumbers","summary":"Delete a panam sequencenumber","description":"Deletes the panam sequencenumber. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the panam sequencenumber."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/panam-totaldonation":{"get":{"operationId":"get-panam-totaldonation","tags":["Panam Totaldonation"],"x-section":"Panam Totaldonation","summary":"Retrieve the panam totaldonation","description":"Returns the panam totaldonation.","x-access":[],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only panam totaldonations with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only panam totaldonations with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-panam-totaldonation","tags":["Panam Totaldonation"],"x-section":"Panam Totaldonation","summary":"Create a panam totaldonation","description":"Creates a panam totaldonation from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/panam-totaldonation/{id}":{"get":{"operationId":"get-panam-totaldonation-id","tags":["Panam Totaldonation"],"x-section":"Panam Totaldonation","summary":"Retrieve a panam totaldonation","description":"Returns one panam totaldonation, found by its ID.","x-access":[],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the panam totaldonation."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only panam totaldonations with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-panam-totaldonation-id","tags":["Panam Totaldonation"],"x-section":"Panam Totaldonation","summary":"Update a panam totaldonation","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the panam totaldonation."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-panam-totaldonation-id","tags":["Panam Totaldonation"],"x-section":"Panam Totaldonation","summary":"Delete a panam totaldonation","description":"Deletes the panam totaldonation. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the panam totaldonation."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/price":{"get":{"operationId":"get-price","tags":["Price"],"x-section":"Price","summary":"Retrieve the price","description":"Returns the price.","x-access":[],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only prices with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only prices with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-price","tags":["Price"],"x-section":"Price","summary":"Create a price","description":"Creates a price from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/price/{id}":{"get":{"operationId":"get-price-id","tags":["Price"],"x-section":"Price","summary":"Retrieve a price","description":"Returns one price, found by its ID.","x-access":[],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the price."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only prices with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-price-id","tags":["Price"],"x-section":"Price","summary":"Update a price","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the price."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-price-id","tags":["Price"],"x-section":"Price","summary":"Delete a price","description":"Deletes the price. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the price."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/reminder":{"get":{"operationId":"get-reminder","tags":["Reminder"],"x-section":"Reminder","summary":"Retrieve the reminder","description":"Returns the reminder.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only reminders with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only reminders with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-reminder","tags":["Reminder"],"x-section":"Reminder","summary":"Create a reminder","description":"Creates a reminder from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/reminder/{id}":{"get":{"operationId":"get-reminder-id","tags":["Reminder"],"x-section":"Reminder","summary":"Retrieve a reminder","description":"Returns one reminder, found by its ID.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the reminder."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only reminders with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-reminder-id","tags":["Reminder"],"x-section":"Reminder","summary":"Update a reminder","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the reminder."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-reminder-id","tags":["Reminder"],"x-section":"Reminder","summary":"Delete a reminder","description":"Deletes the reminder. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the reminder."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/repair":{"get":{"operationId":"get-repair","tags":["Repair"],"x-section":"Repair","summary":"Retrieve the repair","description":"Returns the repair.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only repairs with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only repairs with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-repair","tags":["Repair"],"x-section":"Repair","summary":"Create a repair","description":"Creates a repair from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/repair/{id}":{"get":{"operationId":"get-repair-id","tags":["Repair"],"x-section":"Repair","summary":"Retrieve a repair","description":"Returns one repair, found by its ID.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the repair."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only repairs with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-repair-id","tags":["Repair"],"x-section":"Repair","summary":"Update a repair","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the repair."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-repair-id","tags":["Repair"],"x-section":"Repair","summary":"Delete a repair","description":"Deletes the repair. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the repair."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/revenues":{"get":{"operationId":"get-revenues","tags":["Revenues"],"x-section":"Revenues","summary":"List all revenues","description":"Returns the site's revenues, newest first unless a sort is given.","x-access":[],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only revenues with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only revenues with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-revenues","tags":["Revenues"],"x-section":"Revenues","summary":"Create a revenue","description":"Creates a revenue from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/revenues/{id}":{"get":{"operationId":"get-revenues-id","tags":["Revenues"],"x-section":"Revenues","summary":"Retrieve a revenue","description":"Returns one revenue, found by its ID.","x-access":[],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the revenue."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only revenues with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-revenues-id","tags":["Revenues"],"x-section":"Revenues","summary":"Update a revenue","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the revenue."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-revenues-id","tags":["Revenues"],"x-section":"Revenues","summary":"Delete a revenue","description":"Deletes the revenue. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the revenue."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/sad-bot-agency-campaign":{"get":{"operationId":"get-sad-bot-agency-campaign","tags":["Sad Bot Agency Campaign"],"x-section":"Sad Bot Agency Campaign","summary":"Retrieve the sad bot agency campaign","description":"Returns the sad bot agency campaign.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only sad bot agency campaigns with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only sad bot agency campaigns with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-sad-bot-agency-campaign","tags":["Sad Bot Agency Campaign"],"x-section":"Sad Bot Agency Campaign","summary":"Create a sad bot agency campaign","description":"Creates a sad bot agency campaign from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/sad-bot-agency-campaign/{id}":{"get":{"operationId":"get-sad-bot-agency-campaign-id","tags":["Sad Bot Agency Campaign"],"x-section":"Sad Bot Agency Campaign","summary":"Retrieve a sad bot agency campaign","description":"Returns one sad bot agency campaign, found by its ID.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the sad bot agency campaign."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only sad bot agency campaigns with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-sad-bot-agency-campaign-id","tags":["Sad Bot Agency Campaign"],"x-section":"Sad Bot Agency Campaign","summary":"Update a sad bot agency campaign","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the sad bot agency campaign."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-sad-bot-agency-campaign-id","tags":["Sad Bot Agency Campaign"],"x-section":"Sad Bot Agency Campaign","summary":"Delete a sad bot agency campaign","description":"Deletes the sad bot agency campaign. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the sad bot agency campaign."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/sad-bot-agency-creator":{"get":{"operationId":"get-sad-bot-agency-creator","tags":["Sad Bot Agency Creator"],"x-section":"Sad Bot Agency Creator","summary":"Retrieve the sad bot agency creator","description":"Returns the sad bot agency creator.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only sad bot agency creators with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only sad bot agency creators with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-sad-bot-agency-creator","tags":["Sad Bot Agency Creator"],"x-section":"Sad Bot Agency Creator","summary":"Create a sad bot agency creator","description":"Creates a sad bot agency creator from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/sad-bot-agency-creator/{id}":{"get":{"operationId":"get-sad-bot-agency-creator-id","tags":["Sad Bot Agency Creator"],"x-section":"Sad Bot Agency Creator","summary":"Retrieve a sad bot agency creator","description":"Returns one sad bot agency creator, found by its ID.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the sad bot agency creator."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only sad bot agency creators with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-sad-bot-agency-creator-id","tags":["Sad Bot Agency Creator"],"x-section":"Sad Bot Agency Creator","summary":"Update a sad bot agency creator","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the sad bot agency creator."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-sad-bot-agency-creator-id","tags":["Sad Bot Agency Creator"],"x-section":"Sad Bot Agency Creator","summary":"Delete a sad bot agency creator","description":"Deletes the sad bot agency creator. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the sad bot agency creator."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/sad-bot-agency-followuptask":{"get":{"operationId":"get-sad-bot-agency-followuptask","tags":["Sad Bot Agency Followuptask"],"x-section":"Sad Bot Agency Followuptask","summary":"Retrieve the sad bot agency followuptask","description":"Returns the sad bot agency followuptask.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only sad bot agency followuptasks with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only sad bot agency followuptasks with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-sad-bot-agency-followuptask","tags":["Sad Bot Agency Followuptask"],"x-section":"Sad Bot Agency Followuptask","summary":"Create a sad bot agency followuptask","description":"Creates a sad bot agency followuptask from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/sad-bot-agency-followuptask/{id}":{"get":{"operationId":"get-sad-bot-agency-followuptask-id","tags":["Sad Bot Agency Followuptask"],"x-section":"Sad Bot Agency Followuptask","summary":"Retrieve a sad bot agency followuptask","description":"Returns one sad bot agency followuptask, found by its ID.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the sad bot agency followuptask."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only sad bot agency followuptasks with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-sad-bot-agency-followuptask-id","tags":["Sad Bot Agency Followuptask"],"x-section":"Sad Bot Agency Followuptask","summary":"Update a sad bot agency followuptask","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the sad bot agency followuptask."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-sad-bot-agency-followuptask-id","tags":["Sad Bot Agency Followuptask"],"x-section":"Sad Bot Agency Followuptask","summary":"Delete a sad bot agency followuptask","description":"Deletes the sad bot agency followuptask. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the sad bot agency followuptask."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/sad-bot-agency-outreachtemplate":{"get":{"operationId":"get-sad-bot-agency-outreachtemplate","tags":["Sad Bot Agency Outreachtemplate"],"x-section":"Sad Bot Agency Outreachtemplate","summary":"Retrieve the sad bot agency outreachtemplate","description":"Returns the sad bot agency outreachtemplate.","x-access":[],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only sad bot agency outreachtemplates with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only sad bot agency outreachtemplates with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-sad-bot-agency-outreachtemplate","tags":["Sad Bot Agency Outreachtemplate"],"x-section":"Sad Bot Agency Outreachtemplate","summary":"Create a sad bot agency outreachtemplate","description":"Creates a sad bot agency outreachtemplate from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/sad-bot-agency-outreachtemplate/{id}":{"get":{"operationId":"get-sad-bot-agency-outreachtemplate-id","tags":["Sad Bot Agency Outreachtemplate"],"x-section":"Sad Bot Agency Outreachtemplate","summary":"Retrieve a sad bot agency outreachtemplate","description":"Returns one sad bot agency outreachtemplate, found by its ID.","x-access":[],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the sad bot agency outreachtemplate."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only sad bot agency outreachtemplates with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-sad-bot-agency-outreachtemplate-id","tags":["Sad Bot Agency Outreachtemplate"],"x-section":"Sad Bot Agency Outreachtemplate","summary":"Update a sad bot agency outreachtemplate","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the sad bot agency outreachtemplate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-sad-bot-agency-outreachtemplate-id","tags":["Sad Bot Agency Outreachtemplate"],"x-section":"Sad Bot Agency Outreachtemplate","summary":"Delete a sad bot agency outreachtemplate","description":"Deletes the sad bot agency outreachtemplate. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the sad bot agency outreachtemplate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/sad-bot-agency-supportticket":{"get":{"operationId":"get-sad-bot-agency-supportticket","tags":["Sad Bot Agency Supportticket"],"x-section":"Sad Bot Agency Supportticket","summary":"Retrieve the sad bot agency supportticket","description":"Returns the sad bot agency supportticket.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only sad bot agency supporttickets with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only sad bot agency supporttickets with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-sad-bot-agency-supportticket","tags":["Sad Bot Agency Supportticket"],"x-section":"Sad Bot Agency Supportticket","summary":"Create a sad bot agency supportticket","description":"Creates a sad bot agency supportticket from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/sad-bot-agency-supportticket/{id}":{"get":{"operationId":"get-sad-bot-agency-supportticket-id","tags":["Sad Bot Agency Supportticket"],"x-section":"Sad Bot Agency Supportticket","summary":"Retrieve a sad bot agency supportticket","description":"Returns one sad bot agency supportticket, found by its ID.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the sad bot agency supportticket."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only sad bot agency supporttickets with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-sad-bot-agency-supportticket-id","tags":["Sad Bot Agency Supportticket"],"x-section":"Sad Bot Agency Supportticket","summary":"Update a sad bot agency supportticket","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the sad bot agency supportticket."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-sad-bot-agency-supportticket-id","tags":["Sad Bot Agency Supportticket"],"x-section":"Sad Bot Agency Supportticket","summary":"Delete a sad bot agency supportticket","description":"Deletes the sad bot agency supportticket. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the sad bot agency supportticket."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/smartman-inquiry":{"get":{"operationId":"get-smartman-inquiry","tags":["Smartman Inquiry"],"x-section":"Smartman Inquiry","summary":"Retrieve the smartman inquiry","description":"Returns the smartman inquiry.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only smartman inquiries with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only smartman inquiries with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/smartman-inquiry/{id}":{"get":{"operationId":"get-smartman-inquiry-id","tags":["Smartman Inquiry"],"x-section":"Smartman Inquiry","summary":"Retrieve a smartman inquiry","description":"Returns one smartman inquiry, found by its ID.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the smartman inquiry."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only smartman inquiries with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"delete":{"operationId":"delete-smartman-inquiry-id","tags":["Smartman Inquiry"],"x-section":"Smartman Inquiry","summary":"Delete a smartman inquiry","description":"Deletes the smartman inquiry. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the smartman inquiry."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/startup-fair-lectors":{"get":{"operationId":"get-startup-fair-lectors","tags":["Startup Fair Lectors"],"x-section":"Startup Fair Lectors","summary":"List all startup fair lectors","description":"Returns the site's startup fair lectors, newest first unless a sort is given.","x-access":[],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only startup fair lectors with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only startup fair lectors with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-startup-fair-lectors","tags":["Startup Fair Lectors"],"x-section":"Startup Fair Lectors","summary":"Create a startup fair lector","description":"Creates a startup fair lector from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/startup-fair-lectors/{id}":{"get":{"operationId":"get-startup-fair-lectors-id","tags":["Startup Fair Lectors"],"x-section":"Startup Fair Lectors","summary":"Retrieve a startup fair lector","description":"Returns one startup fair lector, found by its ID.","x-access":[],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the startup fair lector."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only startup fair lectors with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-startup-fair-lectors-id","tags":["Startup Fair Lectors"],"x-section":"Startup Fair Lectors","summary":"Update a startup fair lector","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the startup fair lector."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-startup-fair-lectors-id","tags":["Startup Fair Lectors"],"x-section":"Startup Fair Lectors","summary":"Delete a startup fair lector","description":"Deletes the startup fair lector. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the startup fair lector."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/supplier":{"get":{"operationId":"get-supplier","tags":["Supplier"],"x-section":"Supplier","summary":"Retrieve the supplier","description":"Returns the supplier.","x-access":[],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only suppliers with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only suppliers with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-supplier","tags":["Supplier"],"x-section":"Supplier","summary":"Create a supplier","description":"Creates a supplier from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/supplier/{id}":{"get":{"operationId":"get-supplier-id","tags":["Supplier"],"x-section":"Supplier","summary":"Retrieve a supplier","description":"Returns one supplier, found by its ID.","x-access":[],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the supplier."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only suppliers with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-supplier-id","tags":["Supplier"],"x-section":"Supplier","summary":"Update a supplier","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the supplier."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-supplier-id","tags":["Supplier"],"x-section":"Supplier","summary":"Delete a supplier","description":"Deletes the supplier. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the supplier."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/test123-quoterequest":{"get":{"operationId":"get-test123-quoterequest","tags":["Test123 Quoterequest"],"x-section":"Test123 Quoterequest","summary":"Retrieve the test123 quoterequest","description":"Returns the test123 quoterequest.","x-access":[],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only test123 quoterequests with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only test123 quoterequests with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"post":{"operationId":"post-test123-quoterequest","tags":["Test123 Quoterequest"],"x-section":"Test123 Quoterequest","summary":"Create a test123 quoterequest","description":"Creates a test123 quoterequest from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/test123-quoterequest/{id}":{"get":{"operationId":"get-test123-quoterequest-id","tags":["Test123 Quoterequest"],"x-section":"Test123 Quoterequest","summary":"Retrieve a test123 quoterequest","description":"Returns one test123 quoterequest, found by its ID.","x-access":[],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the test123 quoterequest."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only test123 quoterequests with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}}},"patch":{"operationId":"patch-test123-quoterequest-id","tags":["Test123 Quoterequest"],"x-section":"Test123 Quoterequest","summary":"Update a test123 quoterequest","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the test123 quoterequest."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-test123-quoterequest-id","tags":["Test123 Quoterequest"],"x-section":"Test123 Quoterequest","summary":"Delete a test123 quoterequest","description":"Deletes the test123 quoterequest. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the test123 quoterequest."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/test123-transportroute":{"get":{"operationId":"get-test123-transportroute","tags":["Test123 Transportroute"],"x-section":"Test123 Transportroute","summary":"Retrieve the test123 transportroute","description":"Returns the test123 transportroute.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only test123 transportroutes with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only test123 transportroutes with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-test123-transportroute","tags":["Test123 Transportroute"],"x-section":"Test123 Transportroute","summary":"Create a test123 transportroute","description":"Creates a test123 transportroute from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/test123-transportroute/{id}":{"get":{"operationId":"get-test123-transportroute-id","tags":["Test123 Transportroute"],"x-section":"Test123 Transportroute","summary":"Retrieve a test123 transportroute","description":"Returns one test123 transportroute, found by its ID.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the test123 transportroute."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only test123 transportroutes with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-test123-transportroute-id","tags":["Test123 Transportroute"],"x-section":"Test123 Transportroute","summary":"Update a test123 transportroute","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the test123 transportroute."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-test123-transportroute-id","tags":["Test123 Transportroute"],"x-section":"Test123 Transportroute","summary":"Delete a test123 transportroute","description":"Deletes the test123 transportroute. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the test123 transportroute."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/vehicle":{"get":{"operationId":"get-vehicle","tags":["Vehicle"],"x-section":"Vehicle","summary":"Retrieve the vehicle","description":"Returns the vehicle.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only vehicles with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only vehicles with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-vehicle","tags":["Vehicle"],"x-section":"Vehicle","summary":"Create a vehicle","description":"Creates a vehicle from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/vehicle/{id}":{"get":{"operationId":"get-vehicle-id","tags":["Vehicle"],"x-section":"Vehicle","summary":"Retrieve a vehicle","description":"Returns one vehicle, found by its ID.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the vehicle."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only vehicles with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-vehicle-id","tags":["Vehicle"],"x-section":"Vehicle","summary":"Update a vehicle","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the vehicle."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-vehicle-id","tags":["Vehicle"],"x-section":"Vehicle","summary":"Delete a vehicle","description":"Deletes the vehicle. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the vehicle."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}},"/verthora-productconfiguratorrule":{"get":{"operationId":"get-verthora-productconfiguratorrule","tags":["Verthora Productconfiguratorrule"],"x-section":"Verthora Productconfiguratorrule","summary":"Retrieve the verthora productconfiguratorrule","description":"Returns the verthora productconfiguratorrule.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"dependability_filter","in":"query","required":false,"schema":{"type":"string"},"description":"Only verthora productconfiguratorrules with this dependability filter."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only verthora productconfiguratorrules with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"post":{"operationId":"post-verthora-productconfiguratorrule","tags":["Verthora Productconfiguratorrule"],"x-section":"Verthora Productconfiguratorrule","summary":"Create a verthora productconfiguratorrule","description":"Creates a verthora productconfiguratorrule from the fields sent.","x-access":["user"],"x-models":["Model"],"parameters":[],"responses":{"201":{"description":"The object was created. Some endpoints send it back; others send an empty body."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}}},"/verthora-productconfiguratorrule/{id}":{"get":{"operationId":"get-verthora-productconfiguratorrule-id","tags":["Verthora Productconfiguratorrule"],"x-section":"Verthora Productconfiguratorrule","summary":"Retrieve a verthora productconfiguratorrule","description":"Returns one verthora productconfiguratorrule, found by its ID.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the verthora productconfiguratorrule."},{"name":"no_populate","in":"query","required":false,"schema":{"type":"string"},"description":"Only verthora productconfiguratorrules with this no populate."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]},"patch":{"operationId":"patch-verthora-productconfiguratorrule-id","tags":["Verthora Productconfiguratorrule"],"x-section":"Verthora Productconfiguratorrule","summary":"Update a verthora productconfiguratorrule","description":"Changes the fields sent; the others stay as they are.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the verthora productconfiguratorrule."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"400":{"description":"The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}}},"delete":{"operationId":"delete-verthora-productconfiguratorrule-id","tags":["Verthora Productconfiguratorrule"],"x-section":"Verthora Productconfiguratorrule","summary":"Delete a verthora productconfiguratorrule","description":"Deletes the verthora productconfiguratorrule. This cannot be undone.","x-access":["user"],"x-models":["Model"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the verthora productconfiguratorrule."}],"responses":{"200":{"description":"It worked. The answer is the object or list asked for."},"401":{"description":"No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON."},"404":{"description":"No object with that ID or URL slug, or no such endpoint."},"500":{"description":"Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle."}},"security":[{"bearer":[]}]}}}}