1. Project API
YGO Client API
v2
  • v2
  • v1
  • Project API
    • Overview
    • Core Concepts
    • Authentication
    • Error Handling & Limits
    • Content Enrichment API
      • Text Generation
        • Generate text
        • Get text generation status
        • Preview text
      • Enrichment
        • Get enriched hotel
        • List enriched hotels
        • List enriched hotel summaries
      • Templates
        • Save text template
        • List text templates
      • Tags
        • Save tag
        • List tags
        • Delete tag
        • Add tag to hotels (bulk)
        • Remove tag from hotels (bulk)
      • Settings
        • Get content settings
        • List the selectable image-provider catalog
    • Schemas
      • GetEnrichedHotelRequest
      • GenerateTextRequest
      • GetTextGenerationStatusRequest
      • PreviewTextRequest
      • GetEnrichedHotelsByTagRequest
      • ListEnrichedHotelsRequest
      • GetContentSettingsRequest
      • ListTextTemplatesRequest
      • SaveTextTemplateRequest
      • generateText_GenerateTextRequest
      • GetEnrichedHotelResponse
      • GenerateTextResponse
      • GetTextGenerationStatusResponse
      • PreviewTextResponse
      • GetEnrichedHotelsByTagResponse
      • ListEnrichedHotelsResponse
      • GetContentSettingsResponse
      • ListTextTemplatesResponse
      • SaveTextTemplateResponse
      • generateText_GenerateTextResponse
      • TextGenerationRun
      • TextGenerationStatus
      • PreviewResult
      • EnrichedHotelsByTag
      • Pagination
      • ContentSettings
      • TextTemplate
      • generateText_TextGenerationRun
      • ErrorResponse
      • RunProgress
      • PreviewHotel
      • TagSummary
      • EnrichedHotelListItem
      • generateText_RunProgress
      • EnrichedHotel
      • ErrorDetail
      • PreviewCell
      • TemplateUsageStats
      • generateText_ErrorResponse
      • Location
      • FieldError
      • PreviewChange
      • generateText_ErrorDetail
      • Address
      • generateText_FieldError
      • FactualAttribute
      • getTextGenerationStatus_GetTextGenerationStatusRequest
      • FactualInstance
      • getTextGenerationStatus_GetTextGenerationStatusResponse
      • POI
      • getTextGenerationStatus_TextGenerationStatus
      • CheckIn
      • getTextGenerationStatus_RunProgress
      • CheckOut
      • getTextGenerationStatus_ErrorResponse
      • GeneratedTexts
      • getTextGenerationStatus_ErrorDetail
      • GeneratedTextDetail
      • getTextGenerationStatus_FieldError
      • Image
      • previewText_PreviewTextRequest
      • EnrichedRoom
      • previewText_PreviewTextResponse
      • Bedding
      • previewText_PreviewResult
      • previewText_PreviewHotel
      • previewText_PreviewText
      • previewText_PreviewChange
      • previewText_ErrorResponse
      • previewText_ErrorDetail
      • previewText_FieldError
      • getEnrichedHotel_GetEnrichedHotelRequest
      • getEnrichedHotel_GetEnrichedHotelResponse
      • getEnrichedHotel_EnrichedHotel
      • getEnrichedHotel_ProjectTagSummary
      • getEnrichedHotel_Location
      • getEnrichedHotel_Address
      • getEnrichedHotel_FactualAttribute
      • getEnrichedHotel_FactualInstance
      • getEnrichedHotel_POI
      • getEnrichedHotel_CheckIn
      • getEnrichedHotel_CheckOut
      • getEnrichedHotel_GeneratedTexts
      • getEnrichedHotel_GeneratedTextDetail
      • getEnrichedHotel_Image
      • getEnrichedHotel_EnrichedRoom
      • getEnrichedHotel_Bedding
      • getEnrichedHotel_ErrorResponse
      • getEnrichedHotel_ErrorDetail
      • getEnrichedHotel_FieldError
      • listEnrichedHotelSummaries_ListEnrichedHotelSummariesRequest
      • listEnrichedHotelSummaries_ListEnrichedHotelSummariesResponse
      • listEnrichedHotels_EnrichedHotelListItem
      • listEnrichedHotelSummaries_Pagination
      • listEnrichedHotelSummaries_EnrichedHotelSummary
      • listEnrichedHotelSummaries_ErrorResponse
      • listEnrichedHotelSummaries_ErrorDetail
      • listEnrichedHotelSummaries_FieldError
      • listEnrichedHotels_ListEnrichedHotelsRequest
      • listEnrichedHotels_ListEnrichedHotelsResponse
      • listEnrichedHotels_Pagination
      • listEnrichedHotels_EnrichedHotel
      • listEnrichedHotels_ProjectTagSummary
      • listEnrichedHotels_Location
      • listEnrichedHotels_Address
      • listEnrichedHotels_FactualAttribute
      • listEnrichedHotels_FactualInstance
      • listEnrichedHotels_POI
      • listEnrichedHotels_CheckIn
      • listEnrichedHotels_CheckOut
      • listEnrichedHotels_GeneratedTexts
      • listEnrichedHotels_GeneratedTextDetail
      • listEnrichedHotels_Image
      • listEnrichedHotels_EnrichedRoom
      • listEnrichedHotels_Bedding
      • listEnrichedHotels_ErrorResponse
      • listEnrichedHotels_ErrorDetail
      • listEnrichedHotels_FieldError
      • getContentSettings_GetContentSettingsRequest
      • getContentSettings_GetContentSettingsResponse
      • getContentSettings_ContentSettings
      • getContentSettings_ErrorResponse
      • getContentSettings_ErrorDetail
      • getContentSettings_FieldError
      • listImageProvidersProject_ListImageProvidersRequest
      • listImageProvidersProject_ListImageProvidersResponse
      • listImageProvidersProject_ImageProviderCatalog
      • listImageProvidersProject_ImageProviderCatalogEntry
      • listImageProvidersProject_ErrorResponse
      • listImageProvidersProject_ErrorDetail
      • listImageProvidersProject_FieldError
      • addTagToHotels_AddTagToHotelsRequest
      • addTagToHotels_AddTagToHotelsResponse
      • addTagToHotels_BulkTagResult
      • addTagToHotels_BulkTagHotelResult
      • addTagToHotels_ErrorResponse
      • addTagToHotels_ErrorDetail
      • addTagToHotels_FieldError
      • deleteTag_DeleteTagRequest
      • deleteTag_DeleteTagResponse
      • deleteTag_DeletedProjectTag
      • deleteTag_ErrorResponse
      • deleteTag_ErrorDetail
      • deleteTag_FieldError
      • listTags_ListTagsRequest
      • listTags_ListTagsResponse
      • listTags_ProjectTag
      • listTags_ErrorResponse
      • listTags_ErrorDetail
      • listTags_FieldError
      • removeTagFromHotels_RemoveTagFromHotelsRequest
      • removeTagFromHotels_RemoveTagFromHotelsResponse
      • removeTagFromHotels_BulkTagResult
      • removeTagFromHotels_BulkTagHotelResult
      • removeTagFromHotels_ErrorResponse
      • removeTagFromHotels_ErrorDetail
      • removeTagFromHotels_FieldError
      • saveTag_SaveTagRequest
      • saveTag_SaveTagResponse
      • saveTag_ProjectTag
      • saveTag_ErrorResponse
      • saveTag_ErrorDetail
      • saveTag_FieldError
      • listTextTemplates_ListTextTemplatesRequest
      • listTextTemplates_ListTextTemplatesResponse
      • listTextTemplates_Pagination
      • listTextTemplates_TextTemplate
      • listTextTemplates_TemplateUsageStats
      • listTextTemplates_ErrorResponse
      • listTextTemplates_ErrorDetail
      • listTextTemplates_FieldError
      • saveTextTemplate_SaveTextTemplateRequest
      • saveTextTemplate_SaveTextTemplateResponse
      • saveTextTemplate_TextTemplate
      • saveTextTemplate_ErrorResponse
      • saveTextTemplate_ErrorDetail
      • saveTextTemplate_FieldError
  1. Project API

Overview

The v2 API is our project-scoped API: a single, consistent interface for working with YGO's products on behalf of a project. You authenticate as a project, call the products enabled for it, and get back predictable, ready-to-use results.

Products#

The API is organized into products, each served under its own path. You use the ones enabled for your project.
Content Enrichment -- available now. Retrieve enriched hotels, manage the templates that drive your marketing texts, and generate localized descriptions on demand.
NOTE
Semantic Search is coming to v2
Semantic Search is currently available on our v1 API and will be available on v2 soon.

A Single, Consistent API#

Every v2 endpoint follows the same conventions, so once you have integrated one call you understand them all.
One base URL -- All requests go to https://api.ygo.ai.
RPC-style paths -- Each operation has its own path under /v2/project/{product}/{operation}, for example /v2/project/content/getEnrichedHotel. The path names the product and the action you want to perform.
POST for everything -- All endpoints use POST. Parameters travel in a JSON request body rather than in the URL or query string, which keeps requests uniform and easy to construct.
JSON in, JSON out -- Send and receive application/json.

The Response Envelope#

Every successful response wraps its payload in a single top-level Data field. This is consistent across all endpoints, whether you are fetching one hotel or a list of many.
{
  "Data": { }
}
List endpoints return an array in Data alongside a Pagination object describing the result set:
{
  "Data": [],
  "Pagination": { "Total": 1234, "Limit": 50, "Offset": 0 }
}
Errors replace Data with an Error object. See Errors and Rate Limits for the full structure.
INFO
Check for field presence
Empty fields are omitted to keep payloads compact. Read responses by checking whether a field is present rather than assuming every field is always returned.

Data Conventions#

A few conventions hold across the whole API. Knowing them up front makes every response easy to parse.
PascalCase keys -- Every JSON field uses PascalCase, for example GlobalHotelID, Name, and Pagination.
UUIDv7 identifiers -- System-generated identifiers are UUIDv7 values such as 0192fb17-5dc6-7abc-8def-123456789abc. They are time-ordered, so newer ids sort after older ones.
RFC 3339 dates -- All timestamps use RFC 3339, for example 2026-02-02T10:30:00Z.
Need help? Reach our integration team at integrations@ygo.ai.
Modified at 2026-06-26 12:21:41
Next
Core Concepts
Built with