{"openapi":"3.0.0","info":{"title":"Showflo Public API","description":"Showflo's public, unauthenticated API. These endpoints back the buyer-facing Digital Sales Room experience — property listings, services and enquiry submission — and need no session or API key. They are rate-limited: responses carry RateLimit-Limit/Remaining/Reset headers, plus Retry-After on a 429.","version":"0.0.1","contact":{}},"tags":[],"paths":{"/public/sales-rooms/{salesRoomId}":{"get":{"operationId":"publicGetSalesRoomHomepage","parameters":[{"name":"salesRoomId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicLinkResolutionResponseDto"}}}},"404":{"description":"Sales room not found or archived"}},"summary":"Sales room homepage: featured property + other available properties. Resolves straight to the single property (kind: \"property\") when the room has exactly one public property, instead of a redundant one-item homepage.","tags":["public"]}},"/public/sales-rooms/{salesRoomId}/properties":{"get":{"operationId":"publicListSalesRoomProperties","parameters":[{"name":"salesRoomId","required":true,"in":"path","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"minimum":1,"maximum":100,"default":20,"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedPropertiesResponseDto"}}}},"404":{"description":"Sales room not found or archived"}},"summary":"Browse every public property in a sales room, paginated","tags":["public"]}},"/public/properties/{id}":{"get":{"operationId":"publicGetProperty","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"x-showflo-session-id","required":false,"in":"header","description":"Anonymous visitor session id, for view-analytics deduplication","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PropertyResponseDto"}}}},"404":{"description":"Not found, hidden, or archived"}},"summary":"Get a public property listing","tags":["public"]}},"/public/properties/{id}/cover-image":{"get":{"operationId":"publicGetPropertyCoverImage","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"302":{"description":"Redirects to the current signed image URL"},"404":{"description":"Not found, hidden, archived, or no photo"}},"summary":"Stable redirect to a property's cover photo — safe to use as a social-share og:image URL since it never changes, even though the underlying signed URL rotates.","tags":["public"]}},"/public/sales-rooms/{salesRoomId}/cover-image":{"get":{"operationId":"publicGetSalesRoomCoverImage","parameters":[{"name":"salesRoomId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"302":{"description":"Redirects to the current signed image URL"},"404":{"description":"Not found, archived, or no public property with a photo"}},"summary":"Stable redirect to a sales room's cover photo (the first public property's).","tags":["public"]}},"/public/p/{shortCode}/cover-image":{"get":{"operationId":"publicGetCoverImageByShortCode","parameters":[{"name":"shortCode","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"302":{"description":"Redirects to the current signed image URL"},"404":{"description":"Not found, disabled, or no photo available"}},"summary":"Stable redirect to the cover photo for whatever a short link resolves to.","tags":["public"]}},"/public/properties/{id}/suggested":{"get":{"operationId":"publicGetSuggestedProperties","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PropertyResponseDto"}}}}},"404":{"description":"Not found, hidden, or archived"}},"summary":"\"More Properties\" — other public properties from the same sales room","tags":["public"]}},"/public/p/{shortCode}":{"get":{"operationId":"publicResolveShortCode","parameters":[{"name":"shortCode","required":true,"in":"path","schema":{"type":"string"}},{"name":"x-showflo-session-id","required":false,"in":"header","description":"Anonymous visitor session id, for view-analytics deduplication","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicLinkResolutionResponseDto"}}}},"404":{"description":"Link not found/disabled, organization suspended, or target hidden/archived"}},"summary":"Resolve a short link (/p/:shortCode) to either a single property or a sales room homepage","tags":["public"]}},"/public/p/{shortCode}/suggested":{"get":{"operationId":"publicGetSuggestedPropertiesByShortCode","parameters":[{"name":"shortCode","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PropertyResponseDto"}}}}},"404":{"description":"Not found, hidden/archived, or the link is sales-room-scoped"}},"summary":"\"More Properties\" for a property-scoped short link — other public properties from the same sales room","tags":["public"]}},"/public/properties/{id}/inquiries":{"post":{"operationId":"publicCreateInquiry","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"x-showflo-session-id","required":true,"in":"header","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInquiryDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicInquiryResponseDto"}}}},"404":{"description":"Property not found, hidden, or archived"}},"summary":"Submit an inquiry on a public property listing","tags":["public"]}},"/public/properties/{id}/leads":{"post":{"operationId":"publicCreatePassiveLead","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"x-showflo-session-id","required":true,"in":"header","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePassiveLeadDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicInquiryResponseDto"}}}},"400":{"description":"Neither email nor phone was provided"},"404":{"description":"Property not found, hidden, or archived"}},"summary":"Submit the soft engagement-triggered contact prompt on a public property listing","tags":["public"]}},"/public/sales-rooms/{salesRoomId}/services-home":{"get":{"operationId":"publicGetSalesRoomServiceHomepage","parameters":[{"name":"salesRoomId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalesRoomServiceHomepageResponseDto"}}}},"404":{"description":"Sales room not found or archived"}},"summary":"Sales room service homepage: featured service + other available services","tags":["public"]}},"/public/sales-rooms/{salesRoomId}/services":{"get":{"operationId":"publicListSalesRoomServices","parameters":[{"name":"salesRoomId","required":true,"in":"path","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"minimum":1,"maximum":100,"default":20,"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedServicesResponseDto"}}}},"404":{"description":"Sales room not found or archived"}},"summary":"Browse every public service in a sales room, paginated","tags":["public"]}},"/public/services/{id}":{"get":{"operationId":"publicGetService","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceResponseDto"}}}},"404":{"description":"Not found, hidden, or archived"}},"summary":"Get a public service","tags":["public"]}},"/public/services/{id}/suggested":{"get":{"operationId":"publicGetSuggestedServices","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ServiceResponseDto"}}}}},"404":{"description":"Not found, hidden, or archived"}},"summary":"\"More Services\" — other public services from the same sales room","tags":["public"]}}},"components":{"schemas":{"NearbyPlaceResponseDto":{"type":"object","properties":{"id":{"type":"string"},"category":{"type":"string","enum":["SCHOOL","TRANSIT","GROCERY","HOSPITAL","PARK","RESTAURANT","SHOPPING","PHARMACY","BANK","GYM","WORSHIP","FUEL"]},"name":{"type":"string"},"address":{"type":"string","nullable":true},"latitude":{"type":"number"},"longitude":{"type":"number"},"distanceMeters":{"type":"number","description":"Straight-line distance from the property, in meters"},"driveTimeMinutes":{"type":"number","nullable":true},"isEnabled":{"type":"boolean","description":"Shown on the buyer page when true"},"displayOrder":{"type":"number"}},"required":["id","category","name","address","latitude","longitude","distanceMeters","driveTimeMinutes","isEnabled","displayOrder"]},"PropertyMediaResponseDto":{"type":"object","properties":{"id":{"type":"string","example":"a1b2c3d4-e5f6-4789-90ab-cdef01234567"},"type":{"type":"string","enum":["PHOTO","FLOOR_PLAN","VIDEO","VIRTUAL_TOUR"],"example":"PHOTO"},"url":{"type":"string","example":"https://cdn.showflo.app/media/hero.jpg"},"caption":{"type":"object","example":"Living room","nullable":true},"roomType":{"type":"string","enum":["BEDROOM","BATHROOM","KITCHEN","LIVING_ROOM","DINING_ROOM","BALCONY","GARDEN_YARD","EXTERIOR","POOL","GARAGE_PARKING","FLOOR_PLAN","OTHER"],"nullable":true},"sortOrder":{"type":"number","example":0}},"required":["id","type","url","caption","roomType","sortOrder"]},"PropertyResponseDto":{"type":"object","properties":{"id":{"type":"string","example":"a1b2c3d4-e5f6-4789-90ab-cdef01234567"},"salesRoomId":{"type":"string","example":"f0e1d2c3-b4a5-4678-89ab-cdef01234567"},"organizationId":{"type":"string","example":"f0e1d2c3-b4a5-4678-89ab-cdef01234567"},"createdById":{"type":"string","example":"f0e1d2c3-b4a5-4678-89ab-cdef01234567"},"externalReferenceId":{"type":"object","nullable":true},"propertyTitle":{"type":"object","nullable":true},"propertySubtype":{"type":"string"},"propertyCategory":{"type":"string","enum":["RESIDENTIAL","COMMERCIAL","LAND"]},"transactionType":{"type":"string","enum":["SALE","RENT","LEASE"]},"listingStatus":{"type":"string","enum":["COMING_SOON","ACTIVE","ACTIVE_UNDER_CONTRACT","PENDING","HOLD","INCOMPLETE","CLOSED","WITHDRAWN","CANCELED","EXPIRED"]},"template":{"type":"string","enum":["CLASSIC","PREMIUM","NOIR","LEDGER","JOURNAL","SHEET","SWISS","BROCHURE","ESTATE","TOWER","MONO","TERRA","ATLAS","BROAD","VITRINE","CONCRETE","LINEN","INDEX","MARQUEE","ART"]},"listingLanguage":{"type":"object","nullable":true},"currency":{"type":"string"},"isPublic":{"type":"boolean"},"displayOrder":{"type":"number"},"isFeatured":{"type":"boolean"},"isArchived":{"type":"boolean"},"publishedAt":{"type":"object","nullable":true},"bedrooms":{"type":"object","nullable":true},"isStudio":{"type":"boolean"},"bathroomsFull":{"type":"object","nullable":true},"bathroomsHalf":{"type":"object","nullable":true},"carpetArea":{"type":"object","nullable":true},"carpetAreaUnit":{"type":"object","nullable":true},"builtUpArea":{"type":"object","nullable":true},"builtUpAreaUnit":{"type":"object","nullable":true},"superBuiltUpArea":{"type":"object","nullable":true},"superBuiltUpAreaUnit":{"type":"object","nullable":true},"floorSize":{"type":"object","nullable":true},"floorSizeUnit":{"type":"object","nullable":true},"landArea":{"type":"object","nullable":true},"landAreaUnit":{"type":"object","nullable":true},"landAreaRegionQualifier":{"type":"object","nullable":true},"priceBasis":{"type":"string","enum":["CARPET","BUILT_UP","SUPER_BUILT_UP"],"nullable":true},"floorLevel":{"type":"object","nullable":true},"totalFloorsInBuilding":{"type":"object","nullable":true},"yearBuilt":{"type":"object","nullable":true},"yearBuiltUnknown":{"type":"boolean"},"isNewConstruction":{"type":"boolean"},"furnishingStatus":{"type":"string","enum":["FURNISHED","SEMI_FURNISHED","UNFURNISHED"],"nullable":true},"facingOrientation":{"type":"string","enum":["NORTH","SOUTH","EAST","WEST","NORTH_EAST","NORTH_WEST","SOUTH_EAST","SOUTH_WEST"],"nullable":true},"parkingSpaces":{"type":"object","nullable":true},"tenure":{"type":"string","enum":["FREEHOLD","LEASEHOLD","CO_OPERATIVE","STRATA"],"nullable":true},"leaseTermRemainingYears":{"type":"object","nullable":true},"propertyCondition":{"type":"string","enum":["PRE_LAUNCH","UNDER_CONSTRUCTION","NEW","RESALE","NEEDS_RENOVATION"],"nullable":true},"addressLine1":{"type":"string"},"addressLine2":{"type":"object","nullable":true},"addressLine3":{"type":"object","nullable":true},"displayAddress":{"type":"string"},"localityOrProject":{"type":"object","nullable":true},"city":{"type":"string"},"stateOrProvince":{"type":"string"},"postalCode":{"type":"object","nullable":true},"country":{"type":"string"},"latitude":{"type":"object","nullable":true},"longitude":{"type":"object","nullable":true},"neighborhoodOrCommunity":{"type":"object","nullable":true},"nearbyPointsOfInterest":{"type":"object","nullable":true},"nearbyPlacesCategories":{"type":"array","items":{"type":"string","enum":["SCHOOL","TRANSIT","GROCERY","HOSPITAL","PARK","RESTAURANT","SHOPPING","PHARMACY","BANK","GYM","WORSHIP","FUEL"]}},"nearbyPlacesRadiusKm":{"type":"object","nullable":true},"nearbyPlacesDriveTimeMin":{"type":"object","nullable":true},"nearbyPlacesCalculatedAt":{"type":"object","nullable":true},"nearbyPlaces":{"description":"Calculated results. Full list on agent-authed responses; filtered to isEnabled = true on public responses — see PropertiesPublicService.","type":"array","items":{"$ref":"#/components/schemas/NearbyPlaceResponseDto"}},"listPrice":{"type":"object","nullable":true},"priceQualifier":{"type":"string","enum":["GUIDE_PRICE","OFFERS_OVER","POA","FIXED"],"nullable":true},"rentAmount":{"type":"object","nullable":true},"rentFrequency":{"type":"string","enum":["WEEKLY","MONTHLY","ANNUAL"],"nullable":true},"securityDeposit":{"type":"object","nullable":true},"applicationFee":{"type":"object","nullable":true},"hoaOrServiceCharge":{"type":"object","nullable":true},"commercialPricePerUnitPerAnnum":{"type":"object","nullable":true},"camCharges":{"type":"object","nullable":true},"isAuction":{"type":"boolean"},"unitAmenities":{"type":"array","items":{"type":"string"}},"buildingAmenities":{"type":"array","items":{"type":"string"}},"appliancesIncluded":{"type":"array","items":{"type":"string"}},"utilitiesIncluded":{"type":"object","nullable":true},"petPolicy":{"type":"object","nullable":true},"securityFeatures":{"type":"array","items":{"type":"string"}},"floorPlanUrl":{"type":"object","nullable":true},"virtualTourUrl":{"type":"object","nullable":true},"videoUrl":{"type":"object","nullable":true},"mediaUpdatedAt":{"type":"object","nullable":true},"media":{"type":"array","items":{"$ref":"#/components/schemas/PropertyMediaResponseDto"}},"legalCompliance":{"type":"object","nullable":true},"agentLicenseNumber":{"type":"object","nullable":true},"agentName":{"type":"object","nullable":true,"description":"Nulled on public responses when contactVisibility = AGENT_ONLY"},"agentPhone":{"type":"object","nullable":true},"agentEmail":{"type":"object","nullable":true},"agencyName":{"type":"object","nullable":true},"agencyLicenseNumber":{"type":"object","nullable":true},"contactVisibility":{"type":"string","enum":["PUBLIC","AGENT_ONLY"]},"shortSummary":{"type":"object","nullable":true},"fullDescription":{"type":"object","nullable":true},"metaTitle":{"type":"object","nullable":true},"metaDescription":{"type":"object","nullable":true},"urlSlug":{"type":"object","nullable":true},"tagsKeywords":{"type":"array","items":{"type":"string"}},"availabilityDate":{"type":"object","nullable":true},"availabilityText":{"type":"object","nullable":true},"leaseTerm":{"type":"string","enum":["MONTHLY","SIX_MONTHS","ONE_YEAR","RENT_TO_OWN"],"nullable":true},"minimumLeaseMonths":{"type":"object","nullable":true},"maximumLeaseMonths":{"type":"object","nullable":true},"openHouseSchedule":{"type":"object","nullable":true},"rooms":{"type":"object","nullable":true},"accessibilityFeatures":{"type":"array","items":{"type":"string"}},"buildingSafetyFlags":{"type":"object","nullable":true},"greenCertification":{"type":"array","items":{"type":"string"}},"customFields":{"type":"object","nullable":true},"aiGeneratedContent":{"type":"object","nullable":true,"description":"Reserved cache for future AI-generated content (hero, description, highlights, FAQs, CTA, SEO metadata) derived from this property alone. Not populated yet."},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"shortCode":{"type":"object","nullable":true,"description":"Short public-link code (/p/:shortCode). Populated on public responses only."}},"required":["id","salesRoomId","organizationId","createdById","externalReferenceId","propertyTitle","propertySubtype","propertyCategory","transactionType","listingStatus","template","listingLanguage","currency","isPublic","displayOrder","isFeatured","isArchived","publishedAt","bedrooms","isStudio","bathroomsFull","bathroomsHalf","carpetArea","carpetAreaUnit","builtUpArea","builtUpAreaUnit","superBuiltUpArea","superBuiltUpAreaUnit","floorSize","floorSizeUnit","landArea","landAreaUnit","landAreaRegionQualifier","priceBasis","floorLevel","totalFloorsInBuilding","yearBuilt","yearBuiltUnknown","isNewConstruction","furnishingStatus","facingOrientation","parkingSpaces","tenure","leaseTermRemainingYears","propertyCondition","addressLine1","addressLine2","addressLine3","displayAddress","localityOrProject","city","stateOrProvince","postalCode","country","latitude","longitude","neighborhoodOrCommunity","nearbyPointsOfInterest","nearbyPlacesCategories","nearbyPlacesRadiusKm","nearbyPlacesDriveTimeMin","nearbyPlacesCalculatedAt","nearbyPlaces","listPrice","priceQualifier","rentAmount","rentFrequency","securityDeposit","applicationFee","hoaOrServiceCharge","commercialPricePerUnitPerAnnum","camCharges","isAuction","unitAmenities","buildingAmenities","appliancesIncluded","utilitiesIncluded","petPolicy","securityFeatures","floorPlanUrl","virtualTourUrl","videoUrl","mediaUpdatedAt","media","legalCompliance","agentLicenseNumber","agentName","agentPhone","agentEmail","agencyName","agencyLicenseNumber","contactVisibility","shortSummary","fullDescription","metaTitle","metaDescription","urlSlug","tagsKeywords","availabilityDate","availabilityText","leaseTerm","minimumLeaseMonths","maximumLeaseMonths","openHouseSchedule","rooms","accessibilityFeatures","buildingSafetyFlags","greenCertification","customFields","aiGeneratedContent","createdAt","updatedAt","shortCode"]},"PaginatedPropertiesResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PropertyResponseDto"}},"total":{"type":"number","example":42},"page":{"type":"number","example":1},"limit":{"type":"number","example":20},"totalPages":{"type":"number","example":3}},"required":["data","total","page","limit","totalPages"]},"PublicSalesRoomSummaryDto":{"type":"object","properties":{"id":{"type":"string","example":"f0e1d2c3-b4a5-4678-89ab-cdef01234567"},"title":{"type":"string","example":"Downtown Dubai Portfolio"},"description":{"type":"object","nullable":true},"logoUrl":{"type":"object","example":"https://storage.example.com/signed/logo.png","nullable":true,"description":"Signed URL for the room's uploaded business logo, or null."}},"required":["id","title","description","logoUrl"]},"SalesRoomHomepageResponseDto":{"type":"object","properties":{"salesRoom":{"$ref":"#/components/schemas/PublicSalesRoomSummaryDto"},"featured":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/PropertyResponseDto"}]},"others":{"type":"array","items":{"$ref":"#/components/schemas/PropertyResponseDto"}}},"required":["salesRoom","featured","others"]},"PublicLinkResolutionResponseDto":{"type":"object","properties":{"kind":{"type":"string","enum":["property","salesRoom"]},"property":{"$ref":"#/components/schemas/PropertyResponseDto"},"salesRoom":{"$ref":"#/components/schemas/SalesRoomHomepageResponseDto"},"room":{"description":"The sales room the resolved property belongs to — present on kind: 'property', where there is no homepage payload to carry it. The buyer page prints the room name and logo in its masthead and footer on every layout, so a single-property room would otherwise lose its branding entirely. On kind: \"salesRoom\" the same summary is already inside salesRoom.salesRoom.","allOf":[{"$ref":"#/components/schemas/PublicSalesRoomSummaryDto"}]}},"required":["kind"]},"CreateInquiryDto":{"type":"object","properties":{"name":{"type":"string","example":"Jordan Lee"},"email":{"type":"string","example":"jordan@example.com"},"phone":{"type":"string","example":"+971501234567"},"message":{"type":"string","example":"I'd like to schedule a viewing this weekend."}},"required":["name","email","message"]},"PublicInquiryResponseDto":{"type":"object","properties":{"id":{"type":"string","example":"a1b2c3d4-e5f6-4789-90ab-cdef01234567"},"createdAt":{"format":"date-time","type":"string"}},"required":["id","createdAt"]},"CreatePassiveLeadDto":{"type":"object","properties":{"email":{"type":"string","example":"jordan@example.com"},"phone":{"type":"string","example":"+971501234567"}}},"ServiceMediaResponseDto":{"type":"object","properties":{"id":{"type":"string","example":"a1b2c3d4-e5f6-4789-90ab-cdef01234567"},"type":{"type":"string","enum":["PHOTO","VIDEO","DOCUMENT","EMBED"],"example":"PHOTO"},"url":{"type":"string","example":"https://cdn.showflo.app/media/hero.jpg"},"caption":{"type":"object","example":"Case study cover","nullable":true},"sortOrder":{"type":"number","example":0}},"required":["id","type","url","caption","sortOrder"]},"ServiceResponseDto":{"type":"object","properties":{"id":{"type":"string","example":"a1b2c3d4-e5f6-4789-90ab-cdef01234567"},"salesRoomId":{"type":"string","example":"f0e1d2c3-b4a5-4678-89ab-cdef01234567"},"organizationId":{"type":"string","example":"f0e1d2c3-b4a5-4678-89ab-cdef01234567"},"createdById":{"type":"string","example":"f0e1d2c3-b4a5-4678-89ab-cdef01234567"},"isPublic":{"type":"boolean"},"displayOrder":{"type":"number"},"isFeatured":{"type":"boolean"},"isArchived":{"type":"boolean"},"publishedAt":{"type":"object","nullable":true},"urlSlug":{"type":"object","nullable":true},"serviceName":{"type":"string"},"legalName":{"type":"object","nullable":true},"entityType":{"type":"object","nullable":true},"foundingDate":{"type":"object","nullable":true},"employeeCountRange":{"type":"object","nullable":true},"taxId":{"type":"object","nullable":true},"vatId":{"type":"object","nullable":true},"leiCode":{"type":"object","nullable":true},"iso6523Code":{"type":"object","nullable":true},"industryTags":{"type":"array","items":{"type":"string"}},"industryCode":{"type":"object","nullable":true},"descriptionShort":{"type":"object","nullable":true},"descriptionLong":{"type":"object","nullable":true},"logoPrimaryUrl":{"type":"object","nullable":true},"logoVariants":{"type":"object","nullable":true},"colorPalette":{"type":"object","nullable":true},"typography":{"type":"object","nullable":true},"brandVoice":{"type":"object","nullable":true},"customDomain":{"type":"object","nullable":true},"phonePrimary":{"type":"object","nullable":true},"emailPrimary":{"type":"object","nullable":true},"websiteUrl":{"type":"object","nullable":true},"timezone":{"type":"object","nullable":true},"businessHours":{"type":"object","nullable":true},"specialHours":{"type":"object","nullable":true},"languagesSpoken":{"type":"array","items":{"type":"string"}},"streetAddress":{"type":"object","nullable":true},"locality":{"type":"object","nullable":true},"region":{"type":"object","nullable":true},"postalCode":{"type":"object","nullable":true},"country":{"type":"object","nullable":true},"officeLocations":{"type":"object","nullable":true},"contactVisibility":{"type":"string","enum":["PUBLIC","TEAM_ONLY"]},"serviceCategoryTags":{"type":"array","items":{"type":"string"}},"serviceToolTags":{"type":"array","items":{"type":"string"}},"serviceIndustryTags":{"type":"array","items":{"type":"string"}},"serviceLineAllocation":{"type":"object","nullable":true},"coverImageUrl":{"type":"object","nullable":true},"pricingMode":{"type":"object","nullable":true},"currency":{"type":"object","nullable":true},"startingPriceAmount":{"type":"object","nullable":true},"packages":{"type":"object","nullable":true},"deliverables":{"type":"object","nullable":true},"processSteps":{"type":"object","nullable":true},"milestones":{"type":"object","nullable":true},"timelineEstimate":{"type":"object","nullable":true},"team":{"type":"object","nullable":true},"portfolioProjects":{"type":"object","nullable":true},"testimonials":{"type":"object","nullable":true},"aggregateRating":{"type":"object","nullable":true},"ratingCount":{"type":"object","nullable":true},"awards":{"type":"object","nullable":true},"certifications":{"type":"object","nullable":true},"clients":{"type":"object","nullable":true},"verificationStatus":{"type":"string","enum":["UNVERIFIED","SELF_ATTESTED","PLATFORM_VERIFIED","THIRD_PARTY_VERIFIED"]},"documents":{"type":"object","nullable":true},"videoUrl":{"type":"object","nullable":true},"contentBlocks":{"type":"object","nullable":true},"faqs":{"type":"object","nullable":true},"bookingEnabled":{"type":"boolean"},"bookingEventName":{"type":"object","nullable":true},"bookingDurationMinutes":{"type":"object","nullable":true},"bookingLocation":{"type":"object","nullable":true},"bookingHosts":{"type":"object","nullable":true},"availabilityWindows":{"type":"object","nullable":true},"bufferBeforeMinutes":{"type":"object","nullable":true},"bufferAfterMinutes":{"type":"object","nullable":true},"bookingPriceAmount":{"type":"object","nullable":true},"bookingPriceCurrency":{"type":"object","nullable":true},"invoiceeFormFields":{"type":"object","nullable":true},"ogTitle":{"type":"object","nullable":true},"ogDescription":{"type":"object","nullable":true},"ogImageUrl":{"type":"object","nullable":true},"ogUrl":{"type":"object","nullable":true},"ogSiteName":{"type":"object","nullable":true},"ogLocale":{"type":"object","nullable":true},"twitterCardType":{"type":"object","nullable":true},"canonicalUrl":{"type":"object","nullable":true},"metaTitle":{"type":"object","nullable":true},"metaDescription":{"type":"object","nullable":true},"ctaLabel":{"type":"object","nullable":true},"ctaTarget":{"type":"object","nullable":true},"ctaPlacement":{"type":"object","nullable":true},"currentlyAvailable":{"type":"boolean"},"capacityNote":{"type":"object","nullable":true},"nextAvailableDate":{"type":"object","nullable":true},"acceptedPaymentMethods":{"type":"array","items":{"type":"string"}},"currenciesAccepted":{"type":"array","items":{"type":"string"}},"socialProfileUrls":{"type":"object","nullable":true},"viewCount":{"type":"number"},"analyticsMetadata":{"type":"object","nullable":true},"customFields":{"type":"object","nullable":true},"aiGeneratedContent":{"type":"object","nullable":true,"description":"Reserved cache for future AI-generated content (hero, description, why-choose-us, process, deliverables, case-study highlights, FAQs, CTA, SEO metadata, proposal content) derived from this service alone. Not populated yet."},"media":{"type":"array","items":{"$ref":"#/components/schemas/ServiceMediaResponseDto"}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","salesRoomId","organizationId","createdById","isPublic","displayOrder","isFeatured","isArchived","publishedAt","urlSlug","serviceName","legalName","entityType","foundingDate","employeeCountRange","taxId","vatId","leiCode","iso6523Code","industryTags","industryCode","descriptionShort","descriptionLong","logoPrimaryUrl","logoVariants","colorPalette","typography","brandVoice","customDomain","phonePrimary","emailPrimary","websiteUrl","timezone","businessHours","specialHours","languagesSpoken","streetAddress","locality","region","postalCode","country","officeLocations","contactVisibility","serviceCategoryTags","serviceToolTags","serviceIndustryTags","serviceLineAllocation","coverImageUrl","pricingMode","currency","startingPriceAmount","packages","deliverables","processSteps","milestones","timelineEstimate","team","portfolioProjects","testimonials","aggregateRating","ratingCount","awards","certifications","clients","verificationStatus","documents","videoUrl","contentBlocks","faqs","bookingEnabled","bookingEventName","bookingDurationMinutes","bookingLocation","bookingHosts","availabilityWindows","bufferBeforeMinutes","bufferAfterMinutes","bookingPriceAmount","bookingPriceCurrency","invoiceeFormFields","ogTitle","ogDescription","ogImageUrl","ogUrl","ogSiteName","ogLocale","twitterCardType","canonicalUrl","metaTitle","metaDescription","ctaLabel","ctaTarget","ctaPlacement","currentlyAvailable","capacityNote","nextAvailableDate","acceptedPaymentMethods","currenciesAccepted","socialProfileUrls","viewCount","analyticsMetadata","customFields","aiGeneratedContent","media","createdAt","updatedAt"]},"PaginatedServicesResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ServiceResponseDto"}},"total":{"type":"number","example":42},"page":{"type":"number","example":1},"limit":{"type":"number","example":20},"totalPages":{"type":"number","example":3}},"required":["data","total","page","limit","totalPages"]},"SalesRoomServiceHomepageResponseDto":{"type":"object","properties":{"featured":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/ServiceResponseDto"}]},"others":{"type":"array","items":{"$ref":"#/components/schemas/ServiceResponseDto"}}},"required":["featured","others"]}}},"servers":[{"url":"http://api.showflo.in"}]}