@gojinko/api-client 2.19.1 → 2.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/public-api.yaml CHANGED
@@ -1570,9 +1570,6 @@ components:
1570
1570
  type: string
1571
1571
  last_name:
1572
1572
  type: string
1573
- AnalysisType:
1574
- type: string
1575
- enum: [snapshot, trend]
1576
1573
  TravelPeriod:
1577
1574
  type: string
1578
1575
  enum: [Summer, Winter, Christmas, Easter, Next30Days, Next90Days, Custom]
@@ -1593,10 +1590,6 @@ components:
1593
1590
  share:
1594
1591
  type: number
1595
1592
  format: double
1596
- growth:
1597
- type: number
1598
- format: double
1599
- description: "Growth % in trend mode (analysis=trend); omitted in snapshot."
1600
1593
  MarketRow:
1601
1594
  type: object
1602
1595
  required: [market]
@@ -1608,10 +1601,6 @@ components:
1608
1601
  share:
1609
1602
  type: number
1610
1603
  format: double
1611
- growth:
1612
- type: number
1613
- format: double
1614
- description: "Growth % in trend mode (analysis=trend); omitted in snapshot."
1615
1604
  AudienceRow:
1616
1605
  type: object
1617
1606
  required: [audience]
@@ -1623,48 +1612,117 @@ components:
1623
1612
  share:
1624
1613
  type: number
1625
1614
  format: double
1626
- growth:
1627
- type: number
1628
- format: double
1629
- description: "Growth % in trend mode (analysis=trend); omitted in snapshot."
1630
1615
  DestinationResponse:
1631
1616
  type: object
1632
- required: [analysis_type, rows]
1617
+ required: [rows]
1633
1618
  properties:
1634
- analysis_type:
1635
- $ref: "#/components/schemas/AnalysisType"
1636
1619
  rows:
1637
1620
  type: array
1638
1621
  items:
1639
1622
  $ref: "#/components/schemas/DestinationRow"
1640
1623
  MarketResponse:
1641
1624
  type: object
1642
- required: [analysis_type, rows]
1625
+ required: [rows]
1643
1626
  properties:
1644
- analysis_type:
1645
- $ref: "#/components/schemas/AnalysisType"
1646
1627
  rows:
1647
1628
  type: array
1648
1629
  items:
1649
1630
  $ref: "#/components/schemas/MarketRow"
1650
1631
  AudienceResponse:
1651
1632
  type: object
1652
- required: [analysis_type, rows]
1633
+ required: [rows]
1653
1634
  properties:
1654
- analysis_type:
1655
- $ref: "#/components/schemas/AnalysisType"
1656
1635
  rows:
1657
1636
  type: array
1658
1637
  items:
1659
1638
  $ref: "#/components/schemas/AudienceRow"
1639
+ Granularity:
1640
+ type: string
1641
+ enum: [day, week, month]
1642
+ description: "Bucket size for a trend series: week (default), day, or month."
1643
+ TrendPoint:
1644
+ type: object
1645
+ required: [date, value]
1646
+ properties:
1647
+ date:
1648
+ type: string
1649
+ format: date
1650
+ description: "Bucket start date (YYYY-MM-DD)."
1651
+ example: "2026-06-20"
1652
+ value:
1653
+ type: number
1654
+ format: double
1655
+ description: De-sampled search volume for the bucket.
1656
+ example: 1234
1657
+ SeriesSummary:
1658
+ type: object
1659
+ description: Per-series rollup over the returned window.
1660
+ properties:
1661
+ total:
1662
+ type: number
1663
+ format: double
1664
+ example: 34567
1665
+ avg_per_day:
1666
+ type: number
1667
+ format: double
1668
+ example: 1191
1669
+ growth_pct:
1670
+ type: number
1671
+ format: double
1672
+ nullable: true
1673
+ description: "Within-window growth %: recent half vs. prior half. Null when the prior half is empty."
1674
+ example: 12.3
1675
+ peak_date:
1676
+ type: string
1677
+ format: date
1678
+ example: "2026-06-14"
1679
+ peak_value:
1680
+ type: number
1681
+ format: double
1682
+ example: 1890
1683
+ TrendSeries:
1684
+ type: object
1685
+ required: [series]
1686
+ properties:
1687
+ label:
1688
+ type: string
1689
+ description: "Ranked dimension value (destination/market/audience endpoints); omitted for the pairs endpoint."
1690
+ example: "Country:FR"
1691
+ origin:
1692
+ type: string
1693
+ description: "Pairs endpoint only: the origin selector for this series."
1694
+ example: "Country:US"
1695
+ destination:
1696
+ type: string
1697
+ description: "Pairs endpoint only: the destination selector for this series."
1698
+ example: "Country:FR"
1699
+ series:
1700
+ type: array
1701
+ items:
1702
+ $ref: "#/components/schemas/TrendPoint"
1703
+ summary:
1704
+ $ref: "#/components/schemas/SeriesSummary"
1705
+ TrendResponse:
1706
+ type: object
1707
+ required: [granularity, from, to, series]
1708
+ properties:
1709
+ granularity:
1710
+ $ref: "#/components/schemas/Granularity"
1711
+ from:
1712
+ type: string
1713
+ format: date
1714
+ description: First (inclusive) bucket date of the window.
1715
+ example: "2026-06-19"
1716
+ to:
1717
+ type: string
1718
+ format: date
1719
+ description: Last (inclusive) bucket date of the window.
1720
+ example: "2026-06-25"
1721
+ series:
1722
+ type: array
1723
+ items:
1724
+ $ref: "#/components/schemas/TrendSeries"
1660
1725
  parameters:
1661
- analysis:
1662
- name: analysis
1663
- in: query
1664
- required: true
1665
- description: Analysis mode. `trend` is accepted but currently returns snapshot-shaped data.
1666
- schema:
1667
- $ref: "#/components/schemas/AnalysisType"
1668
1726
  originMarket:
1669
1727
  name: origin_market
1670
1728
  in: query
@@ -1759,30 +1817,62 @@ components:
1759
1817
  name: snapshot_window_days
1760
1818
  in: query
1761
1819
  required: false
1762
- description: "Snapshot mode only: number of most-recent days of search activity aggregated into the demand level (min 2, default 7, max 90 — a 1-day window is the current day, whose data is incomplete; the cube retains 90 days). Rejected when analysis=trend."
1820
+ description: "Number of most-recent days of search activity aggregated into the demand level (min 2, default 7, max 90 — a 1-day window is the current day, whose data is incomplete; the cube retains 90 days)."
1763
1821
  schema:
1764
1822
  type: integer
1765
1823
  minimum: 2
1766
1824
  maximum: 90
1767
- trendWindowDays:
1768
- name: trend_window_days
1825
+ limit:
1826
+ name: limit
1769
1827
  in: query
1770
1828
  required: false
1771
- description: "Trend mode only: size in days of each of the two adjacent windows compared for growth (min 2, default 7, max 45 — a 1-day window's recent period is the current day, whose data is incomplete; a trend spans 2x the window within the cube's 90-day retention). Rejected when analysis=snapshot."
1829
+ description: Max rows (1-200, default 20).
1830
+ schema:
1831
+ type: integer
1832
+ minimum: 1
1833
+ maximum: 200
1834
+ default: 20
1835
+ origins:
1836
+ name: origins
1837
+ in: query
1838
+ required: true
1839
+ description: "Pairs endpoint: comma-separated origin selectors `<Level>:<Code>` (e.g. `Country:US,Country:CA`). v1: at most one of origins/destinations may have more than one entry."
1840
+ schema:
1841
+ type: string
1842
+ minLength: 1
1843
+ destinations:
1844
+ name: destinations
1845
+ in: query
1846
+ required: true
1847
+ description: "Pairs endpoint: comma-separated destination selectors `<Level>:<Code>` (e.g. `Country:FR,Country:DE`)."
1848
+ schema:
1849
+ type: string
1850
+ minLength: 1
1851
+ trendWindow:
1852
+ name: trend_window
1853
+ in: query
1854
+ required: false
1855
+ description: "Number of buckets N in the chosen granularity's own unit (min 2; max depends on granularity: day <= 60, week <= 52, month <= 12; default 12 applied server-side). The series spans the last N complete buckets, excluding the in-progress one."
1772
1856
  schema:
1773
1857
  type: integer
1774
1858
  minimum: 2
1775
- maximum: 45
1776
- limit:
1859
+ granularity:
1860
+ name: granularity
1861
+ in: query
1862
+ required: false
1863
+ description: "Bucket size for the returned series: week (default), day, or month."
1864
+ schema:
1865
+ $ref: "#/components/schemas/Granularity"
1866
+ trendLimit:
1777
1867
  name: limit
1778
1868
  in: query
1779
1869
  required: false
1780
- description: Max rows (1-200, default 20).
1870
+ description: "Trend endpoints: maximum number of series (top-N keys). Default 10, max 50."
1781
1871
  schema:
1782
1872
  type: integer
1783
1873
  minimum: 1
1784
- maximum: 200
1785
- default: 20
1874
+ maximum: 50
1875
+ default: 10
1786
1876
  paths:
1787
1877
  /v1/destination:
1788
1878
  get:
@@ -1796,7 +1886,6 @@ paths:
1796
1886
  - ApiKeyAuth: []
1797
1887
  - BearerAuth: []
1798
1888
  parameters:
1799
- - $ref: "#/components/parameters/analysis"
1800
1889
  - $ref: "#/components/parameters/originMarket"
1801
1890
  - $ref: "#/components/parameters/destinationFilter"
1802
1891
  - $ref: "#/components/parameters/travelPeriod"
@@ -1809,7 +1898,6 @@ paths:
1809
1898
  - $ref: "#/components/parameters/searchWindowMin"
1810
1899
  - $ref: "#/components/parameters/searchWindowMax"
1811
1900
  - $ref: "#/components/parameters/snapshotWindowDays"
1812
- - $ref: "#/components/parameters/trendWindowDays"
1813
1901
  - $ref: "#/components/parameters/limit"
1814
1902
  responses:
1815
1903
  "200":
@@ -1840,7 +1928,6 @@ paths:
1840
1928
  - ApiKeyAuth: []
1841
1929
  - BearerAuth: []
1842
1930
  parameters:
1843
- - $ref: "#/components/parameters/analysis"
1844
1931
  - $ref: "#/components/parameters/destinationRequired"
1845
1932
  - $ref: "#/components/parameters/originMarket"
1846
1933
  - $ref: "#/components/parameters/travelPeriod"
@@ -1853,7 +1940,6 @@ paths:
1853
1940
  - $ref: "#/components/parameters/searchWindowMin"
1854
1941
  - $ref: "#/components/parameters/searchWindowMax"
1855
1942
  - $ref: "#/components/parameters/snapshotWindowDays"
1856
- - $ref: "#/components/parameters/trendWindowDays"
1857
1943
  - $ref: "#/components/parameters/limit"
1858
1944
  responses:
1859
1945
  "200":
@@ -1886,7 +1972,6 @@ paths:
1886
1972
  - ApiKeyAuth: []
1887
1973
  - BearerAuth: []
1888
1974
  parameters:
1889
- - $ref: "#/components/parameters/analysis"
1890
1975
  - $ref: "#/components/parameters/destinationRequired"
1891
1976
  - $ref: "#/components/parameters/originMarket"
1892
1977
  - $ref: "#/components/parameters/travelPeriod"
@@ -1898,7 +1983,6 @@ paths:
1898
1983
  - $ref: "#/components/parameters/searchWindowMin"
1899
1984
  - $ref: "#/components/parameters/searchWindowMax"
1900
1985
  - $ref: "#/components/parameters/snapshotWindowDays"
1901
- - $ref: "#/components/parameters/trendWindowDays"
1902
1986
  - $ref: "#/components/parameters/limit"
1903
1987
  responses:
1904
1988
  "200":
@@ -1919,6 +2003,186 @@ paths:
1919
2003
  application/json:
1920
2004
  schema:
1921
2005
  $ref: "#/components/schemas/ErrorResponse"
2006
+ /v1/trend:
2007
+ get:
2008
+ tags:
2009
+ - demand
2010
+ summary: Demand time series for explicit origin/destination pairs
2011
+ description: >-
2012
+ Deep dive: returns one de-sampled search-volume series per
2013
+ (origin, destination) pair. v1 allows a list on only one side — a single
2014
+ origin with many destinations, or many origins with a single destination.
2015
+ security:
2016
+ - ApiKeyAuth: []
2017
+ - BearerAuth: []
2018
+ parameters:
2019
+ - $ref: "#/components/parameters/origins"
2020
+ - $ref: "#/components/parameters/destinations"
2021
+ - $ref: "#/components/parameters/travelPeriod"
2022
+ - $ref: "#/components/parameters/departureDateFrom"
2023
+ - $ref: "#/components/parameters/departureDateTo"
2024
+ - $ref: "#/components/parameters/travelerType"
2025
+ - $ref: "#/components/parameters/tripType"
2026
+ - $ref: "#/components/parameters/tripDurationMin"
2027
+ - $ref: "#/components/parameters/tripDurationMax"
2028
+ - $ref: "#/components/parameters/searchWindowMin"
2029
+ - $ref: "#/components/parameters/searchWindowMax"
2030
+ - $ref: "#/components/parameters/trendWindow"
2031
+ - $ref: "#/components/parameters/granularity"
2032
+ responses:
2033
+ "200":
2034
+ description: Per-pair demand time series
2035
+ content:
2036
+ application/json:
2037
+ schema:
2038
+ $ref: "#/components/schemas/TrendResponse"
2039
+ "401":
2040
+ description: Authentication required
2041
+ content:
2042
+ application/json:
2043
+ schema:
2044
+ $ref: "#/components/schemas/ErrorResponse"
2045
+ "422":
2046
+ description: Validation error
2047
+ content:
2048
+ application/json:
2049
+ schema:
2050
+ $ref: "#/components/schemas/ErrorResponse"
2051
+ /v1/destination/trend:
2052
+ get:
2053
+ tags:
2054
+ - demand
2055
+ summary: Demand time series for the top-N destinations
2056
+ description: >-
2057
+ Ranks destinations (optionally reachable from origin_market) by
2058
+ within-window growth, then returns each top-N destination's series.
2059
+ security:
2060
+ - ApiKeyAuth: []
2061
+ - BearerAuth: []
2062
+ parameters:
2063
+ - $ref: "#/components/parameters/originMarket"
2064
+ - $ref: "#/components/parameters/destinationFilter"
2065
+ - $ref: "#/components/parameters/travelPeriod"
2066
+ - $ref: "#/components/parameters/departureDateFrom"
2067
+ - $ref: "#/components/parameters/departureDateTo"
2068
+ - $ref: "#/components/parameters/travelerType"
2069
+ - $ref: "#/components/parameters/tripType"
2070
+ - $ref: "#/components/parameters/tripDurationMin"
2071
+ - $ref: "#/components/parameters/tripDurationMax"
2072
+ - $ref: "#/components/parameters/searchWindowMin"
2073
+ - $ref: "#/components/parameters/searchWindowMax"
2074
+ - $ref: "#/components/parameters/trendWindow"
2075
+ - $ref: "#/components/parameters/granularity"
2076
+ - $ref: "#/components/parameters/trendLimit"
2077
+ responses:
2078
+ "200":
2079
+ description: Top-N destination time series
2080
+ content:
2081
+ application/json:
2082
+ schema:
2083
+ $ref: "#/components/schemas/TrendResponse"
2084
+ "401":
2085
+ description: Authentication required
2086
+ content:
2087
+ application/json:
2088
+ schema:
2089
+ $ref: "#/components/schemas/ErrorResponse"
2090
+ "422":
2091
+ description: Validation error
2092
+ content:
2093
+ application/json:
2094
+ schema:
2095
+ $ref: "#/components/schemas/ErrorResponse"
2096
+ /v1/market/trend:
2097
+ get:
2098
+ tags:
2099
+ - demand
2100
+ summary: Demand time series for the top-N source markets
2101
+ description: >-
2102
+ Ranks source markets for a destination by within-window growth, then
2103
+ returns each top-N market's series. `destination` is required.
2104
+ security:
2105
+ - ApiKeyAuth: []
2106
+ - BearerAuth: []
2107
+ parameters:
2108
+ - $ref: "#/components/parameters/destinationRequired"
2109
+ - $ref: "#/components/parameters/originMarket"
2110
+ - $ref: "#/components/parameters/travelPeriod"
2111
+ - $ref: "#/components/parameters/departureDateFrom"
2112
+ - $ref: "#/components/parameters/departureDateTo"
2113
+ - $ref: "#/components/parameters/travelerType"
2114
+ - $ref: "#/components/parameters/tripType"
2115
+ - $ref: "#/components/parameters/tripDurationMin"
2116
+ - $ref: "#/components/parameters/tripDurationMax"
2117
+ - $ref: "#/components/parameters/searchWindowMin"
2118
+ - $ref: "#/components/parameters/searchWindowMax"
2119
+ - $ref: "#/components/parameters/trendWindow"
2120
+ - $ref: "#/components/parameters/granularity"
2121
+ - $ref: "#/components/parameters/trendLimit"
2122
+ responses:
2123
+ "200":
2124
+ description: Top-N market time series
2125
+ content:
2126
+ application/json:
2127
+ schema:
2128
+ $ref: "#/components/schemas/TrendResponse"
2129
+ "401":
2130
+ description: Authentication required
2131
+ content:
2132
+ application/json:
2133
+ schema:
2134
+ $ref: "#/components/schemas/ErrorResponse"
2135
+ "422":
2136
+ description: Validation error
2137
+ content:
2138
+ application/json:
2139
+ schema:
2140
+ $ref: "#/components/schemas/ErrorResponse"
2141
+ /v1/audience/trend:
2142
+ get:
2143
+ tags:
2144
+ - demand
2145
+ summary: Demand time series for the traveler-type mix
2146
+ description: >-
2147
+ Returns a series per traveler-type segment (Solo / Couple / Family /
2148
+ Group) of demand for a destination. `destination` is required;
2149
+ `traveler_type` is not a filter here — this endpoint buckets by it.
2150
+ security:
2151
+ - ApiKeyAuth: []
2152
+ - BearerAuth: []
2153
+ parameters:
2154
+ - $ref: "#/components/parameters/destinationRequired"
2155
+ - $ref: "#/components/parameters/originMarket"
2156
+ - $ref: "#/components/parameters/travelPeriod"
2157
+ - $ref: "#/components/parameters/departureDateFrom"
2158
+ - $ref: "#/components/parameters/departureDateTo"
2159
+ - $ref: "#/components/parameters/tripType"
2160
+ - $ref: "#/components/parameters/tripDurationMin"
2161
+ - $ref: "#/components/parameters/tripDurationMax"
2162
+ - $ref: "#/components/parameters/searchWindowMin"
2163
+ - $ref: "#/components/parameters/searchWindowMax"
2164
+ - $ref: "#/components/parameters/trendWindow"
2165
+ - $ref: "#/components/parameters/granularity"
2166
+ - $ref: "#/components/parameters/trendLimit"
2167
+ responses:
2168
+ "200":
2169
+ description: Per-segment time series
2170
+ content:
2171
+ application/json:
2172
+ schema:
2173
+ $ref: "#/components/schemas/TrendResponse"
2174
+ "401":
2175
+ description: Authentication required
2176
+ content:
2177
+ application/json:
2178
+ schema:
2179
+ $ref: "#/components/schemas/ErrorResponse"
2180
+ "422":
2181
+ description: Validation error
2182
+ content:
2183
+ application/json:
2184
+ schema:
2185
+ $ref: "#/components/schemas/ErrorResponse"
1922
2186
  /health:
1923
2187
  get:
1924
2188
  tags: