@crawlora-org/sdk 1.5.0-sdk.2 → 1.6.0-sdk.1

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.
@@ -3045,6 +3045,276 @@
3045
3045
  },
3046
3046
  "type": "object"
3047
3047
  },
3048
+ "brand.Address": {
3049
+ "properties": {
3050
+ "city": {
3051
+ "type": "string"
3052
+ },
3053
+ "country": {
3054
+ "type": "string"
3055
+ },
3056
+ "country_code": {
3057
+ "type": "string"
3058
+ },
3059
+ "postal_code": {
3060
+ "type": "string"
3061
+ },
3062
+ "state_code": {
3063
+ "type": "string"
3064
+ },
3065
+ "state_province": {
3066
+ "type": "string"
3067
+ },
3068
+ "street": {
3069
+ "type": "string"
3070
+ }
3071
+ },
3072
+ "type": "object"
3073
+ },
3074
+ "brand.Backdrop": {
3075
+ "properties": {
3076
+ "colors": {
3077
+ "items": {
3078
+ "$ref": "#/definitions/brand.Color"
3079
+ },
3080
+ "type": "array"
3081
+ },
3082
+ "resolution": {
3083
+ "$ref": "#/definitions/brand.Resolution"
3084
+ },
3085
+ "url": {
3086
+ "type": "string"
3087
+ }
3088
+ },
3089
+ "type": "object"
3090
+ },
3091
+ "brand.BrandResponse": {
3092
+ "properties": {
3093
+ "address": {
3094
+ "$ref": "#/definitions/brand.Address"
3095
+ },
3096
+ "backdrops": {
3097
+ "items": {
3098
+ "$ref": "#/definitions/brand.Backdrop"
3099
+ },
3100
+ "type": "array"
3101
+ },
3102
+ "colors": {
3103
+ "items": {
3104
+ "$ref": "#/definitions/brand.Color"
3105
+ },
3106
+ "type": "array"
3107
+ },
3108
+ "description": {
3109
+ "example": "Brand intelligence for the modern web.",
3110
+ "type": "string"
3111
+ },
3112
+ "domain": {
3113
+ "example": "context.dev",
3114
+ "type": "string"
3115
+ },
3116
+ "email": {
3117
+ "type": "string"
3118
+ },
3119
+ "industries": {
3120
+ "$ref": "#/definitions/brand.Industries"
3121
+ },
3122
+ "is_nsfw": {
3123
+ "example": false,
3124
+ "type": "boolean"
3125
+ },
3126
+ "links": {
3127
+ "$ref": "#/definitions/brand.Links"
3128
+ },
3129
+ "logos": {
3130
+ "items": {
3131
+ "$ref": "#/definitions/brand.Logo"
3132
+ },
3133
+ "type": "array"
3134
+ },
3135
+ "phone": {
3136
+ "type": "string"
3137
+ },
3138
+ "primary_language": {
3139
+ "example": "en",
3140
+ "type": "string"
3141
+ },
3142
+ "slogan": {
3143
+ "type": "string"
3144
+ },
3145
+ "socials": {
3146
+ "items": {
3147
+ "$ref": "#/definitions/brand.Social"
3148
+ },
3149
+ "type": "array"
3150
+ },
3151
+ "source": {
3152
+ "$ref": "#/definitions/brand.SourceDetail"
3153
+ },
3154
+ "stock": {
3155
+ "$ref": "#/definitions/brand.Stock"
3156
+ },
3157
+ "title": {
3158
+ "example": "Context",
3159
+ "type": "string"
3160
+ }
3161
+ },
3162
+ "type": "object"
3163
+ },
3164
+ "brand.Color": {
3165
+ "properties": {
3166
+ "hex": {
3167
+ "example": "#0b0b0b",
3168
+ "type": "string"
3169
+ },
3170
+ "name": {
3171
+ "type": "string"
3172
+ }
3173
+ },
3174
+ "type": "object"
3175
+ },
3176
+ "brand.EIC": {
3177
+ "properties": {
3178
+ "industry": {
3179
+ "type": "string"
3180
+ },
3181
+ "subindustry": {
3182
+ "type": "string"
3183
+ }
3184
+ },
3185
+ "type": "object"
3186
+ },
3187
+ "brand.Industries": {
3188
+ "properties": {
3189
+ "eic": {
3190
+ "items": {
3191
+ "$ref": "#/definitions/brand.EIC"
3192
+ },
3193
+ "type": "array"
3194
+ }
3195
+ },
3196
+ "type": "object"
3197
+ },
3198
+ "brand.Links": {
3199
+ "properties": {
3200
+ "blog": {
3201
+ "type": "string"
3202
+ },
3203
+ "careers": {
3204
+ "type": "string"
3205
+ },
3206
+ "contact": {
3207
+ "type": "string"
3208
+ },
3209
+ "pricing": {
3210
+ "type": "string"
3211
+ },
3212
+ "privacy": {
3213
+ "type": "string"
3214
+ },
3215
+ "terms": {
3216
+ "type": "string"
3217
+ }
3218
+ },
3219
+ "type": "object"
3220
+ },
3221
+ "brand.Logo": {
3222
+ "properties": {
3223
+ "colors": {
3224
+ "items": {
3225
+ "$ref": "#/definitions/brand.Color"
3226
+ },
3227
+ "type": "array"
3228
+ },
3229
+ "mode": {
3230
+ "type": "string"
3231
+ },
3232
+ "resolution": {
3233
+ "$ref": "#/definitions/brand.Resolution"
3234
+ },
3235
+ "type": {
3236
+ "example": "icon",
3237
+ "type": "string"
3238
+ },
3239
+ "url": {
3240
+ "example": "https://context.dev/favicon.ico",
3241
+ "type": "string"
3242
+ }
3243
+ },
3244
+ "type": "object"
3245
+ },
3246
+ "brand.Resolution": {
3247
+ "properties": {
3248
+ "aspect_ratio": {
3249
+ "example": 1,
3250
+ "type": "number"
3251
+ },
3252
+ "height": {
3253
+ "example": 512,
3254
+ "type": "integer"
3255
+ },
3256
+ "width": {
3257
+ "example": 512,
3258
+ "type": "integer"
3259
+ }
3260
+ },
3261
+ "type": "object"
3262
+ },
3263
+ "brand.Social": {
3264
+ "properties": {
3265
+ "type": {
3266
+ "example": "x",
3267
+ "type": "string"
3268
+ },
3269
+ "url": {
3270
+ "example": "https://x.com/context",
3271
+ "type": "string"
3272
+ }
3273
+ },
3274
+ "type": "object"
3275
+ },
3276
+ "brand.SourceDetail": {
3277
+ "properties": {
3278
+ "type": {
3279
+ "example": "html",
3280
+ "type": "string"
3281
+ },
3282
+ "url": {
3283
+ "example": "https://context.dev",
3284
+ "type": "string"
3285
+ }
3286
+ },
3287
+ "type": "object"
3288
+ },
3289
+ "brand.Stock": {
3290
+ "properties": {
3291
+ "exchange": {
3292
+ "example": "NASDAQ",
3293
+ "type": "string"
3294
+ },
3295
+ "ticker": {
3296
+ "example": "NVDA",
3297
+ "type": "string"
3298
+ }
3299
+ },
3300
+ "type": "object"
3301
+ },
3302
+ "brand.retrieveResponseDoc": {
3303
+ "properties": {
3304
+ "code": {
3305
+ "example": 200,
3306
+ "type": "integer"
3307
+ },
3308
+ "data": {
3309
+ "$ref": "#/definitions/brand.BrandResponse"
3310
+ },
3311
+ "msg": {
3312
+ "example": "OK",
3313
+ "type": "string"
3314
+ }
3315
+ },
3316
+ "type": "object"
3317
+ },
3048
3318
  "brave.Discussion": {
3049
3319
  "properties": {
3050
3320
  "age": {
@@ -15540,6 +15810,336 @@
15540
15810
  },
15541
15811
  "type": "object"
15542
15812
  },
15813
+ "reddit.Author": {
15814
+ "properties": {
15815
+ "name": {
15816
+ "example": "reddit_user",
15817
+ "type": "string"
15818
+ },
15819
+ "profile_url": {
15820
+ "example": "https://www.reddit.com/user/reddit_user/",
15821
+ "type": "string"
15822
+ }
15823
+ },
15824
+ "type": "object"
15825
+ },
15826
+ "reddit.Comment": {
15827
+ "properties": {
15828
+ "author": {
15829
+ "$ref": "#/definitions/reddit.Author"
15830
+ },
15831
+ "body": {
15832
+ "example": "I agree with this post.",
15833
+ "type": "string"
15834
+ },
15835
+ "created": {
15836
+ "example": "2024-04-19T00:00:00Z",
15837
+ "type": "string"
15838
+ },
15839
+ "created_utc": {
15840
+ "example": 1713484800,
15841
+ "type": "integer"
15842
+ },
15843
+ "depth": {
15844
+ "example": 1,
15845
+ "type": "integer"
15846
+ },
15847
+ "id": {
15848
+ "example": "kabc123",
15849
+ "type": "string"
15850
+ },
15851
+ "name": {
15852
+ "example": "t1_kabc123",
15853
+ "type": "string"
15854
+ },
15855
+ "parent_id": {
15856
+ "example": "t3_1abcxyz",
15857
+ "type": "string"
15858
+ },
15859
+ "permalink": {
15860
+ "example": "https://www.reddit.com/r/OpenAI/comments/1abcxyz/openai_discussion_thread/kabc123/",
15861
+ "type": "string"
15862
+ },
15863
+ "replies": {
15864
+ "items": {
15865
+ "$ref": "#/definitions/reddit.Comment"
15866
+ },
15867
+ "type": "array"
15868
+ },
15869
+ "score": {
15870
+ "example": 12,
15871
+ "type": "integer"
15872
+ }
15873
+ },
15874
+ "type": "object"
15875
+ },
15876
+ "reddit.CommentsResponse": {
15877
+ "properties": {
15878
+ "comments": {
15879
+ "items": {
15880
+ "$ref": "#/definitions/reddit.Comment"
15881
+ },
15882
+ "type": "array"
15883
+ },
15884
+ "post": {
15885
+ "$ref": "#/definitions/reddit.Post"
15886
+ },
15887
+ "source": {
15888
+ "$ref": "#/definitions/reddit.SourceDetail"
15889
+ }
15890
+ },
15891
+ "type": "object"
15892
+ },
15893
+ "reddit.Pagination": {
15894
+ "properties": {
15895
+ "after": {
15896
+ "example": "t3_1abcxyz",
15897
+ "type": "string"
15898
+ },
15899
+ "limit": {
15900
+ "example": 25,
15901
+ "type": "integer"
15902
+ }
15903
+ },
15904
+ "type": "object"
15905
+ },
15906
+ "reddit.Post": {
15907
+ "properties": {
15908
+ "author": {
15909
+ "$ref": "#/definitions/reddit.Author"
15910
+ },
15911
+ "comment_count": {
15912
+ "example": 45,
15913
+ "type": "integer"
15914
+ },
15915
+ "created": {
15916
+ "example": "2024-04-19T00:00:00Z",
15917
+ "type": "string"
15918
+ },
15919
+ "created_utc": {
15920
+ "example": 1713484800,
15921
+ "type": "integer"
15922
+ },
15923
+ "domain": {
15924
+ "example": "self.OpenAI",
15925
+ "type": "string"
15926
+ },
15927
+ "flair": {
15928
+ "example": "Discussion",
15929
+ "type": "string"
15930
+ },
15931
+ "id": {
15932
+ "example": "1abcxyz",
15933
+ "type": "string"
15934
+ },
15935
+ "is_self": {
15936
+ "type": "boolean"
15937
+ },
15938
+ "is_video": {
15939
+ "type": "boolean"
15940
+ },
15941
+ "locked": {
15942
+ "type": "boolean"
15943
+ },
15944
+ "name": {
15945
+ "example": "t3_1abcxyz",
15946
+ "type": "string"
15947
+ },
15948
+ "over_18": {
15949
+ "type": "boolean"
15950
+ },
15951
+ "permalink": {
15952
+ "example": "https://www.reddit.com/r/OpenAI/comments/1abcxyz/openai_discussion_thread/",
15953
+ "type": "string"
15954
+ },
15955
+ "score": {
15956
+ "example": 123,
15957
+ "type": "integer"
15958
+ },
15959
+ "selftext": {
15960
+ "example": "Discussion body",
15961
+ "type": "string"
15962
+ },
15963
+ "source_feed_url": {
15964
+ "example": "https://www.reddit.com/r/OpenAI/.rss",
15965
+ "type": "string"
15966
+ },
15967
+ "stickied": {
15968
+ "type": "boolean"
15969
+ },
15970
+ "subreddit": {
15971
+ "example": "OpenAI",
15972
+ "type": "string"
15973
+ },
15974
+ "thumbnail": {
15975
+ "example": "https://b.thumbs.redditmedia.com/example.jpg",
15976
+ "type": "string"
15977
+ },
15978
+ "title": {
15979
+ "example": "OpenAI discussion thread",
15980
+ "type": "string"
15981
+ },
15982
+ "upvote_ratio": {
15983
+ "example": 0.95,
15984
+ "type": "number"
15985
+ },
15986
+ "url": {
15987
+ "example": "https://www.reddit.com/r/OpenAI/comments/1abcxyz/openai_discussion_thread/",
15988
+ "type": "string"
15989
+ }
15990
+ },
15991
+ "type": "object"
15992
+ },
15993
+ "reddit.PostResponse": {
15994
+ "properties": {
15995
+ "post": {
15996
+ "$ref": "#/definitions/reddit.Post"
15997
+ },
15998
+ "source": {
15999
+ "$ref": "#/definitions/reddit.SourceDetail"
16000
+ }
16001
+ },
16002
+ "type": "object"
16003
+ },
16004
+ "reddit.SearchResponse": {
16005
+ "properties": {
16006
+ "pagination": {
16007
+ "$ref": "#/definitions/reddit.Pagination"
16008
+ },
16009
+ "posts": {
16010
+ "items": {
16011
+ "$ref": "#/definitions/reddit.Post"
16012
+ },
16013
+ "type": "array"
16014
+ },
16015
+ "query": {
16016
+ "example": "openai",
16017
+ "type": "string"
16018
+ },
16019
+ "sort": {
16020
+ "example": "relevance",
16021
+ "type": "string"
16022
+ },
16023
+ "source": {
16024
+ "$ref": "#/definitions/reddit.SourceDetail"
16025
+ },
16026
+ "subreddit": {
16027
+ "example": "OpenAI",
16028
+ "type": "string"
16029
+ },
16030
+ "time": {
16031
+ "example": "week",
16032
+ "type": "string"
16033
+ }
16034
+ },
16035
+ "type": "object"
16036
+ },
16037
+ "reddit.SourceDetail": {
16038
+ "properties": {
16039
+ "type": {
16040
+ "example": "rss",
16041
+ "type": "string"
16042
+ },
16043
+ "url": {
16044
+ "example": "https://www.reddit.com/r/OpenAI/.rss",
16045
+ "type": "string"
16046
+ }
16047
+ },
16048
+ "type": "object"
16049
+ },
16050
+ "reddit.SubredditPostsResponse": {
16051
+ "properties": {
16052
+ "pagination": {
16053
+ "$ref": "#/definitions/reddit.Pagination"
16054
+ },
16055
+ "posts": {
16056
+ "items": {
16057
+ "$ref": "#/definitions/reddit.Post"
16058
+ },
16059
+ "type": "array"
16060
+ },
16061
+ "sort": {
16062
+ "example": "hot",
16063
+ "type": "string"
16064
+ },
16065
+ "source": {
16066
+ "$ref": "#/definitions/reddit.SourceDetail"
16067
+ },
16068
+ "subreddit": {
16069
+ "example": "OpenAI",
16070
+ "type": "string"
16071
+ },
16072
+ "time": {
16073
+ "example": "week",
16074
+ "type": "string"
16075
+ }
16076
+ },
16077
+ "type": "object"
16078
+ },
16079
+ "reddit.commentsResponseDoc": {
16080
+ "properties": {
16081
+ "code": {
16082
+ "example": 200,
16083
+ "type": "integer"
16084
+ },
16085
+ "data": {
16086
+ "$ref": "#/definitions/reddit.CommentsResponse"
16087
+ },
16088
+ "msg": {
16089
+ "example": "OK",
16090
+ "type": "string"
16091
+ }
16092
+ },
16093
+ "type": "object"
16094
+ },
16095
+ "reddit.postResponseDoc": {
16096
+ "properties": {
16097
+ "code": {
16098
+ "example": 200,
16099
+ "type": "integer"
16100
+ },
16101
+ "data": {
16102
+ "$ref": "#/definitions/reddit.PostResponse"
16103
+ },
16104
+ "msg": {
16105
+ "example": "OK",
16106
+ "type": "string"
16107
+ }
16108
+ },
16109
+ "type": "object"
16110
+ },
16111
+ "reddit.searchResponseDoc": {
16112
+ "properties": {
16113
+ "code": {
16114
+ "example": 200,
16115
+ "type": "integer"
16116
+ },
16117
+ "data": {
16118
+ "$ref": "#/definitions/reddit.SearchResponse"
16119
+ },
16120
+ "msg": {
16121
+ "example": "OK",
16122
+ "type": "string"
16123
+ }
16124
+ },
16125
+ "type": "object"
16126
+ },
16127
+ "reddit.subredditPostsResponseDoc": {
16128
+ "properties": {
16129
+ "code": {
16130
+ "example": 200,
16131
+ "type": "integer"
16132
+ },
16133
+ "data": {
16134
+ "$ref": "#/definitions/reddit.SubredditPostsResponse"
16135
+ },
16136
+ "msg": {
16137
+ "example": "OK",
16138
+ "type": "string"
16139
+ }
16140
+ },
16141
+ "type": "object"
16142
+ },
15543
16143
  "referrals.referralAttributionDoc": {
15544
16144
  "properties": {
15545
16145
  "campaign": {
@@ -25991,6 +26591,38 @@
25991
26591
  },
25992
26592
  "type": "object"
25993
26593
  },
26594
+ "yahoofinance.LookupResponse": {
26595
+ "properties": {
26596
+ "count": {
26597
+ "example": 10,
26598
+ "type": "integer"
26599
+ },
26600
+ "documents": {
26601
+ "items": {
26602
+ "additionalProperties": {},
26603
+ "type": "object"
26604
+ },
26605
+ "type": "array"
26606
+ },
26607
+ "query": {
26608
+ "example": "apple",
26609
+ "type": "string"
26610
+ },
26611
+ "start": {
26612
+ "example": 0,
26613
+ "type": "integer"
26614
+ },
26615
+ "total": {
26616
+ "example": 10,
26617
+ "type": "integer"
26618
+ },
26619
+ "type": {
26620
+ "example": "all",
26621
+ "type": "string"
26622
+ }
26623
+ },
26624
+ "type": "object"
26625
+ },
25994
26626
  "yahoofinance.MarketStatusResponse": {
25995
26627
  "properties": {
25996
26628
  "market": {
@@ -26573,6 +27205,22 @@
26573
27205
  },
26574
27206
  "type": "object"
26575
27207
  },
27208
+ "yahoofinance.lookupResponseDoc": {
27209
+ "properties": {
27210
+ "code": {
27211
+ "example": 200,
27212
+ "type": "integer"
27213
+ },
27214
+ "data": {
27215
+ "$ref": "#/definitions/yahoofinance.LookupResponse"
27216
+ },
27217
+ "msg": {
27218
+ "example": "OK",
27219
+ "type": "string"
27220
+ }
27221
+ },
27222
+ "type": "object"
27223
+ },
26576
27224
  "yahoofinance.marketStatusResponseDoc": {
26577
27225
  "properties": {
26578
27226
  "code": {
@@ -31180,58 +31828,150 @@
31180
31828
  "ApiKeyAuth": []
31181
31829
  }
31182
31830
  ],
31183
- "summary": "Suggest Bing search queries",
31831
+ "summary": "Suggest Bing search queries",
31832
+ "tags": [
31833
+ "Bing"
31834
+ ]
31835
+ }
31836
+ },
31837
+ "/bing/videos": {
31838
+ "get": {
31839
+ "consumes": [
31840
+ "application/json"
31841
+ ],
31842
+ "description": "Returns normalized Bing video search results for a query string. Locale defaults to country=us and lang=en-us. Results are fetched from public Bing video HTML/async pages and return 503 when Bing serves a challenge page or unusable HTML.",
31843
+ "operationId": "bing-videos",
31844
+ "parameters": [
31845
+ {
31846
+ "description": "Search query",
31847
+ "example": "openai",
31848
+ "in": "query",
31849
+ "name": "q",
31850
+ "required": true,
31851
+ "type": "string"
31852
+ },
31853
+ {
31854
+ "description": "1-based page number; defaults to 1",
31855
+ "example": 1,
31856
+ "in": "query",
31857
+ "minimum": 1,
31858
+ "name": "page",
31859
+ "type": "integer"
31860
+ },
31861
+ {
31862
+ "description": "Results per page; defaults to 10, clamped to 1..50",
31863
+ "example": 10,
31864
+ "in": "query",
31865
+ "maximum": 50,
31866
+ "minimum": 1,
31867
+ "name": "count",
31868
+ "type": "integer"
31869
+ },
31870
+ {
31871
+ "description": "Two-letter country code; defaults to us",
31872
+ "example": "us",
31873
+ "in": "query",
31874
+ "name": "country",
31875
+ "type": "string"
31876
+ },
31877
+ {
31878
+ "description": "Bing UI language; defaults to en-us",
31879
+ "example": "en-us",
31880
+ "in": "query",
31881
+ "name": "lang",
31882
+ "type": "string"
31883
+ }
31884
+ ],
31885
+ "produces": [
31886
+ "application/json"
31887
+ ],
31888
+ "responses": {
31889
+ "200": {
31890
+ "description": "OK",
31891
+ "schema": {
31892
+ "$ref": "#/definitions/bing.videosResponseDoc"
31893
+ }
31894
+ },
31895
+ "400": {
31896
+ "description": "Missing or invalid query parameters",
31897
+ "schema": {
31898
+ "$ref": "#/definitions/app.Response"
31899
+ }
31900
+ },
31901
+ "404": {
31902
+ "description": "No results found",
31903
+ "schema": {
31904
+ "$ref": "#/definitions/app.Response"
31905
+ }
31906
+ },
31907
+ "429": {
31908
+ "description": "Rate limit exceeded",
31909
+ "schema": {
31910
+ "$ref": "#/definitions/app.Response"
31911
+ }
31912
+ },
31913
+ "500": {
31914
+ "description": "Internal server error",
31915
+ "schema": {
31916
+ "$ref": "#/definitions/app.Response"
31917
+ }
31918
+ },
31919
+ "503": {
31920
+ "description": "Bing upstream request failed",
31921
+ "schema": {
31922
+ "$ref": "#/definitions/app.Response"
31923
+ }
31924
+ }
31925
+ },
31926
+ "security": [
31927
+ {
31928
+ "ApiKeyAuth": []
31929
+ }
31930
+ ],
31931
+ "summary": "Search Bing video results",
31184
31932
  "tags": [
31185
31933
  "Bing"
31186
31934
  ]
31187
31935
  }
31188
31936
  },
31189
- "/bing/videos": {
31937
+ "/brand/retrieve": {
31190
31938
  "get": {
31191
31939
  "consumes": [
31192
31940
  "application/json"
31193
31941
  ],
31194
- "description": "Returns normalized Bing video search results for a query string. Locale defaults to country=us and lang=en-us. Results are fetched from public Bing video HTML/async pages and return 503 when Bing serves a challenge page or unusable HTML.",
31195
- "operationId": "bing-videos",
31942
+ "description": "Fetches a domain's homepage and extracts a normalized brand profile (title, description, colors, logos, backdrops, socials, links, and any schema.org organization data). Enrichment-only fields that are not present in the page markup are returned as null.",
31943
+ "operationId": "brand-retrieve",
31196
31944
  "parameters": [
31197
31945
  {
31198
- "description": "Search query",
31199
- "example": "openai",
31946
+ "description": "Domain to retrieve brand data for, e.g. context.dev",
31200
31947
  "in": "query",
31201
- "name": "q",
31948
+ "name": "domain",
31202
31949
  "required": true,
31203
31950
  "type": "string"
31204
31951
  },
31205
31952
  {
31206
- "description": "1-based page number; defaults to 1",
31207
- "example": 1,
31953
+ "description": "Accepted for compatibility; not applied in HTML-only mode",
31208
31954
  "in": "query",
31209
- "minimum": 1,
31210
- "name": "page",
31211
- "type": "integer"
31955
+ "name": "force_language",
31956
+ "type": "string"
31212
31957
  },
31213
31958
  {
31214
- "description": "Results per page; defaults to 10, clamped to 1..50",
31215
- "example": 10,
31959
+ "description": "Optimize for speed by skipping schema.org and footer-link extraction",
31216
31960
  "in": "query",
31217
- "maximum": 50,
31218
- "minimum": 1,
31219
- "name": "count",
31220
- "type": "integer"
31961
+ "name": "maxSpeed",
31962
+ "type": "boolean"
31221
31963
  },
31222
31964
  {
31223
- "description": "Two-letter country code; defaults to us",
31224
- "example": "us",
31965
+ "description": "Cache freshness window in milliseconds, clamps to 1 day..1 year",
31225
31966
  "in": "query",
31226
- "name": "country",
31227
- "type": "string"
31967
+ "name": "maxAgeMs",
31968
+ "type": "integer"
31228
31969
  },
31229
31970
  {
31230
- "description": "Bing UI language; defaults to en-us",
31231
- "example": "en-us",
31971
+ "description": "Upstream fetch timeout in milliseconds, clamps to 1000..300000",
31232
31972
  "in": "query",
31233
- "name": "lang",
31234
- "type": "string"
31973
+ "name": "timeoutMS",
31974
+ "type": "integer"
31235
31975
  }
31236
31976
  ],
31237
31977
  "produces": [
@@ -31241,35 +31981,35 @@
31241
31981
  "200": {
31242
31982
  "description": "OK",
31243
31983
  "schema": {
31244
- "$ref": "#/definitions/bing.videosResponseDoc"
31984
+ "$ref": "#/definitions/brand.retrieveResponseDoc"
31245
31985
  }
31246
31986
  },
31247
31987
  "400": {
31248
- "description": "Missing or invalid query parameters",
31988
+ "description": "Bad Request",
31249
31989
  "schema": {
31250
31990
  "$ref": "#/definitions/app.Response"
31251
31991
  }
31252
31992
  },
31253
31993
  "404": {
31254
- "description": "No results found",
31994
+ "description": "Not Found",
31255
31995
  "schema": {
31256
31996
  "$ref": "#/definitions/app.Response"
31257
31997
  }
31258
31998
  },
31259
- "429": {
31260
- "description": "Rate limit exceeded",
31999
+ "408": {
32000
+ "description": "Request Timeout",
31261
32001
  "schema": {
31262
32002
  "$ref": "#/definitions/app.Response"
31263
32003
  }
31264
32004
  },
31265
- "500": {
31266
- "description": "Internal server error",
32005
+ "429": {
32006
+ "description": "Too Many Requests",
31267
32007
  "schema": {
31268
32008
  "$ref": "#/definitions/app.Response"
31269
32009
  }
31270
32010
  },
31271
32011
  "503": {
31272
- "description": "Bing upstream request failed",
32012
+ "description": "Service Unavailable",
31273
32013
  "schema": {
31274
32014
  "$ref": "#/definitions/app.Response"
31275
32015
  }
@@ -31280,9 +32020,9 @@
31280
32020
  "ApiKeyAuth": []
31281
32021
  }
31282
32022
  ],
31283
- "summary": "Search Bing video results",
32023
+ "summary": "Retrieve brand data by domain",
31284
32024
  "tags": [
31285
- "Bing"
32025
+ "Brand"
31286
32026
  ]
31287
32027
  }
31288
32028
  },
@@ -41877,33 +42617,313 @@
41877
42617
  "ApiKeyAuth": []
41878
42618
  }
41879
42619
  ],
41880
- "summary": "Retrieve Product Hunt product launches",
42620
+ "summary": "Retrieve Product Hunt product launches",
42621
+ "tags": [
42622
+ "ProductHunt"
42623
+ ]
42624
+ }
42625
+ },
42626
+ "/producthunt/product/{id}/makers": {
42627
+ "get": {
42628
+ "consumes": [
42629
+ "application/json"
42630
+ ],
42631
+ "description": "Returns maker items for a Product Hunt product.",
42632
+ "operationId": "producthunt-makers",
42633
+ "parameters": [
42634
+ {
42635
+ "description": "Product Hunt slug",
42636
+ "example": "\"clico\"",
42637
+ "in": "path",
42638
+ "name": "id",
42639
+ "required": true,
42640
+ "type": "string"
42641
+ },
42642
+ {
42643
+ "description": "Pagination cursor",
42644
+ "in": "query",
42645
+ "name": "cursor",
42646
+ "type": "string"
42647
+ }
42648
+ ],
42649
+ "produces": [
42650
+ "application/json"
42651
+ ],
42652
+ "responses": {
42653
+ "200": {
42654
+ "description": "Wrapped makers payload",
42655
+ "schema": {
42656
+ "$ref": "#/definitions/producthunt.makersResponseDoc"
42657
+ }
42658
+ },
42659
+ "400": {
42660
+ "description": "Missing or invalid parameters",
42661
+ "schema": {
42662
+ "$ref": "#/definitions/app.Response"
42663
+ }
42664
+ },
42665
+ "404": {
42666
+ "description": "Product not found",
42667
+ "schema": {
42668
+ "$ref": "#/definitions/app.Response"
42669
+ }
42670
+ },
42671
+ "429": {
42672
+ "description": "Rate limit exceeded",
42673
+ "schema": {
42674
+ "$ref": "#/definitions/app.Response"
42675
+ }
42676
+ },
42677
+ "500": {
42678
+ "description": "Internal server error",
42679
+ "schema": {
42680
+ "$ref": "#/definitions/app.Response"
42681
+ }
42682
+ }
42683
+ },
42684
+ "security": [
42685
+ {
42686
+ "ApiKeyAuth": []
42687
+ }
42688
+ ],
42689
+ "summary": "Retrieve Product Hunt product makers",
42690
+ "tags": [
42691
+ "ProductHunt"
42692
+ ]
42693
+ }
42694
+ },
42695
+ "/producthunt/product/{id}/reviews": {
42696
+ "get": {
42697
+ "consumes": [
42698
+ "application/json"
42699
+ ],
42700
+ "description": "Returns detailed review items for a Product Hunt product.",
42701
+ "operationId": "producthunt-reviews",
42702
+ "parameters": [
42703
+ {
42704
+ "description": "Product Hunt slug",
42705
+ "example": "\"clico\"",
42706
+ "in": "path",
42707
+ "name": "id",
42708
+ "required": true,
42709
+ "type": "string"
42710
+ }
42711
+ ],
42712
+ "produces": [
42713
+ "application/json"
42714
+ ],
42715
+ "responses": {
42716
+ "200": {
42717
+ "description": "Wrapped detailed reviews payload",
42718
+ "schema": {
42719
+ "$ref": "#/definitions/producthunt.reviewsResponseDoc"
42720
+ }
42721
+ },
42722
+ "400": {
42723
+ "description": "Missing or invalid parameters",
42724
+ "schema": {
42725
+ "$ref": "#/definitions/app.Response"
42726
+ }
42727
+ },
42728
+ "404": {
42729
+ "description": "Product not found",
42730
+ "schema": {
42731
+ "$ref": "#/definitions/app.Response"
42732
+ }
42733
+ },
42734
+ "429": {
42735
+ "description": "Rate limit exceeded",
42736
+ "schema": {
42737
+ "$ref": "#/definitions/app.Response"
42738
+ }
42739
+ },
42740
+ "500": {
42741
+ "description": "Internal server error",
42742
+ "schema": {
42743
+ "$ref": "#/definitions/app.Response"
42744
+ }
42745
+ }
42746
+ },
42747
+ "security": [
42748
+ {
42749
+ "ApiKeyAuth": []
42750
+ }
42751
+ ],
42752
+ "summary": "Retrieve Product Hunt product detailed reviews",
42753
+ "tags": [
42754
+ "ProductHunt"
42755
+ ]
42756
+ }
42757
+ },
42758
+ "/producthunt/search": {
42759
+ "get": {
42760
+ "consumes": [
42761
+ "application/json"
42762
+ ],
42763
+ "description": "Performs a full-text Product Hunt search and returns matching products, users, or launches.",
42764
+ "operationId": "producthunt-search",
42765
+ "parameters": [
42766
+ {
42767
+ "description": "Search keywords",
42768
+ "example": "\"ai\"",
42769
+ "in": "query",
42770
+ "name": "query",
42771
+ "required": true,
42772
+ "type": "string"
42773
+ },
42774
+ {
42775
+ "default": "product",
42776
+ "description": "Result type: **product** (default), **user**, or **launch**",
42777
+ "enum": [
42778
+ "product",
42779
+ "user",
42780
+ "launch"
42781
+ ],
42782
+ "in": "query",
42783
+ "name": "type",
42784
+ "type": "string"
42785
+ },
42786
+ {
42787
+ "description": "Page number (1-based)",
42788
+ "example": 2,
42789
+ "in": "query",
42790
+ "minimum": 1,
42791
+ "name": "page",
42792
+ "type": "integer"
42793
+ },
42794
+ {
42795
+ "default": false,
42796
+ "description": "Launch search only: featured launches only",
42797
+ "in": "query",
42798
+ "name": "featured",
42799
+ "type": "boolean"
42800
+ },
42801
+ {
42802
+ "description": "Launch search only: comma-separated topic slugs",
42803
+ "example": "ai-chatbots,chrome-extensions",
42804
+ "in": "query",
42805
+ "name": "topics",
42806
+ "type": "string"
42807
+ }
42808
+ ],
42809
+ "produces": [
42810
+ "application/json"
42811
+ ],
42812
+ "responses": {
42813
+ "200": {
42814
+ "description": "Wrapped search payload (map[string]any)",
42815
+ "schema": {
42816
+ "$ref": "#/definitions/producthunt.searchResponseDoc"
42817
+ }
42818
+ },
42819
+ "400": {
42820
+ "description": "Missing or invalid parameters",
42821
+ "schema": {
42822
+ "$ref": "#/definitions/app.Response"
42823
+ }
42824
+ },
42825
+ "404": {
42826
+ "description": "No results found",
42827
+ "schema": {
42828
+ "$ref": "#/definitions/app.Response"
42829
+ }
42830
+ },
42831
+ "429": {
42832
+ "description": "Rate limit exceeded",
42833
+ "schema": {
42834
+ "$ref": "#/definitions/app.Response"
42835
+ }
42836
+ },
42837
+ "500": {
42838
+ "description": "Internal server error",
42839
+ "schema": {
42840
+ "$ref": "#/definitions/app.Response"
42841
+ }
42842
+ }
42843
+ },
42844
+ "security": [
42845
+ {
42846
+ "ApiKeyAuth": []
42847
+ }
42848
+ ],
42849
+ "summary": "Search for products, users, or launches on Product Hunt",
41881
42850
  "tags": [
41882
42851
  "ProductHunt"
41883
42852
  ]
41884
42853
  }
41885
42854
  },
41886
- "/producthunt/product/{id}/makers": {
42855
+ "/ready": {
41887
42856
  "get": {
41888
42857
  "consumes": [
41889
42858
  "application/json"
41890
42859
  ],
41891
- "description": "Returns maker items for a Product Hunt product.",
41892
- "operationId": "producthunt-makers",
42860
+ "description": "Returns process readiness and lightweight dependency health. Root `/ready` returns the same payload as a compatibility alias, while `/ping` remains the lightweight liveness endpoint.",
42861
+ "operationId": "ready",
42862
+ "produces": [
42863
+ "application/json"
42864
+ ],
42865
+ "responses": {
42866
+ "200": {
42867
+ "description": "OK",
42868
+ "schema": {
42869
+ "$ref": "#/definitions/api.readinessResponseDoc"
42870
+ }
42871
+ },
42872
+ "503": {
42873
+ "description": "Service Unavailable",
42874
+ "schema": {
42875
+ "$ref": "#/definitions/api.readinessResponseDoc"
42876
+ }
42877
+ }
42878
+ },
42879
+ "summary": "Return API readiness",
42880
+ "tags": [
42881
+ "Meta"
42882
+ ]
42883
+ }
42884
+ },
42885
+ "/reddit/comments/{id}": {
42886
+ "get": {
42887
+ "consumes": [
42888
+ "application/json"
42889
+ ],
42890
+ "description": "Returns flat public comment entries from a Reddit post.",
42891
+ "operationId": "reddit-comments",
41893
42892
  "parameters": [
41894
42893
  {
41895
- "description": "Product Hunt slug",
41896
- "example": "\"clico\"",
42894
+ "description": "Reddit post id or t3_ id",
41897
42895
  "in": "path",
41898
42896
  "name": "id",
41899
42897
  "required": true,
41900
42898
  "type": "string"
41901
42899
  },
41902
42900
  {
41903
- "description": "Pagination cursor",
42901
+ "default": "confidence",
42902
+ "description": "Accepted for compatibility: confidence, top, new, controversial, old, or qa. Public comment data is flat and may ignore sort.",
42903
+ "enum": [
42904
+ "confidence",
42905
+ "top",
42906
+ "new",
42907
+ "controversial",
42908
+ "old",
42909
+ "qa"
42910
+ ],
41904
42911
  "in": "query",
41905
- "name": "cursor",
42912
+ "name": "sort",
41906
42913
  "type": "string"
42914
+ },
42915
+ {
42916
+ "description": "Maximum comments returned, defaults to 25 and clamps to 100",
42917
+ "in": "query",
42918
+ "name": "limit",
42919
+ "type": "integer"
42920
+ },
42921
+ {
42922
+ "default": 3,
42923
+ "description": "Accepted for compatibility. Public comment data is flat and may ignore depth.",
42924
+ "in": "query",
42925
+ "name": "depth",
42926
+ "type": "integer"
41907
42927
  }
41908
42928
  ],
41909
42929
  "produces": [
@@ -41911,31 +42931,31 @@
41911
42931
  ],
41912
42932
  "responses": {
41913
42933
  "200": {
41914
- "description": "Wrapped makers payload",
42934
+ "description": "OK",
41915
42935
  "schema": {
41916
- "$ref": "#/definitions/producthunt.makersResponseDoc"
42936
+ "$ref": "#/definitions/reddit.commentsResponseDoc"
41917
42937
  }
41918
42938
  },
41919
42939
  "400": {
41920
- "description": "Missing or invalid parameters",
42940
+ "description": "Bad Request",
41921
42941
  "schema": {
41922
42942
  "$ref": "#/definitions/app.Response"
41923
42943
  }
41924
42944
  },
41925
42945
  "404": {
41926
- "description": "Product not found",
42946
+ "description": "Not Found",
41927
42947
  "schema": {
41928
42948
  "$ref": "#/definitions/app.Response"
41929
42949
  }
41930
42950
  },
41931
42951
  "429": {
41932
- "description": "Rate limit exceeded",
42952
+ "description": "Too Many Requests",
41933
42953
  "schema": {
41934
42954
  "$ref": "#/definitions/app.Response"
41935
42955
  }
41936
42956
  },
41937
- "500": {
41938
- "description": "Internal server error",
42957
+ "503": {
42958
+ "description": "Service Unavailable",
41939
42959
  "schema": {
41940
42960
  "$ref": "#/definitions/app.Response"
41941
42961
  }
@@ -41946,23 +42966,22 @@
41946
42966
  "ApiKeyAuth": []
41947
42967
  }
41948
42968
  ],
41949
- "summary": "Retrieve Product Hunt product makers",
42969
+ "summary": "Get Reddit post comments",
41950
42970
  "tags": [
41951
- "ProductHunt"
42971
+ "Reddit"
41952
42972
  ]
41953
42973
  }
41954
42974
  },
41955
- "/producthunt/product/{id}/reviews": {
42975
+ "/reddit/post/{id}": {
41956
42976
  "get": {
41957
42977
  "consumes": [
41958
42978
  "application/json"
41959
42979
  ],
41960
- "description": "Returns detailed review items for a Product Hunt product.",
41961
- "operationId": "producthunt-reviews",
42980
+ "description": "Returns a normalized public Reddit post entry.",
42981
+ "operationId": "reddit-post",
41962
42982
  "parameters": [
41963
42983
  {
41964
- "description": "Product Hunt slug",
41965
- "example": "\"clico\"",
42984
+ "description": "Reddit post id or t3_ id",
41966
42985
  "in": "path",
41967
42986
  "name": "id",
41968
42987
  "required": true,
@@ -41974,31 +42993,31 @@
41974
42993
  ],
41975
42994
  "responses": {
41976
42995
  "200": {
41977
- "description": "Wrapped detailed reviews payload",
42996
+ "description": "OK",
41978
42997
  "schema": {
41979
- "$ref": "#/definitions/producthunt.reviewsResponseDoc"
42998
+ "$ref": "#/definitions/reddit.postResponseDoc"
41980
42999
  }
41981
43000
  },
41982
43001
  "400": {
41983
- "description": "Missing or invalid parameters",
43002
+ "description": "Bad Request",
41984
43003
  "schema": {
41985
43004
  "$ref": "#/definitions/app.Response"
41986
43005
  }
41987
43006
  },
41988
43007
  "404": {
41989
- "description": "Product not found",
43008
+ "description": "Not Found",
41990
43009
  "schema": {
41991
43010
  "$ref": "#/definitions/app.Response"
41992
43011
  }
41993
43012
  },
41994
43013
  "429": {
41995
- "description": "Rate limit exceeded",
43014
+ "description": "Too Many Requests",
41996
43015
  "schema": {
41997
43016
  "$ref": "#/definitions/app.Response"
41998
43017
  }
41999
43018
  },
42000
- "500": {
42001
- "description": "Internal server error",
43019
+ "503": {
43020
+ "description": "Service Unavailable",
42002
43021
  "schema": {
42003
43022
  "$ref": "#/definitions/app.Response"
42004
43023
  }
@@ -42009,60 +43028,71 @@
42009
43028
  "ApiKeyAuth": []
42010
43029
  }
42011
43030
  ],
42012
- "summary": "Retrieve Product Hunt product detailed reviews",
43031
+ "summary": "Get Reddit post",
42013
43032
  "tags": [
42014
- "ProductHunt"
43033
+ "Reddit"
42015
43034
  ]
42016
43035
  }
42017
43036
  },
42018
- "/producthunt/search": {
43037
+ "/reddit/search": {
42019
43038
  "get": {
42020
43039
  "consumes": [
42021
43040
  "application/json"
42022
43041
  ],
42023
- "description": "Performs a full-text Product Hunt search and returns matching products, users, or launches.",
42024
- "operationId": "producthunt-search",
43042
+ "description": "Searches public Reddit content and returns normalized public post entries.",
43043
+ "operationId": "reddit-search",
42025
43044
  "parameters": [
42026
43045
  {
42027
43046
  "description": "Search keywords",
42028
- "example": "\"ai\"",
42029
43047
  "in": "query",
42030
- "name": "query",
43048
+ "name": "q",
42031
43049
  "required": true,
42032
43050
  "type": "string"
42033
43051
  },
42034
43052
  {
42035
- "default": "product",
42036
- "description": "Result type: **product** (default), **user**, or **launch**",
43053
+ "description": "Restrict search to a subreddit name, without r/",
43054
+ "in": "query",
43055
+ "name": "subreddit",
43056
+ "type": "string"
43057
+ },
43058
+ {
43059
+ "default": "relevance",
43060
+ "description": "Sort: relevance, hot, new, top, or comments",
42037
43061
  "enum": [
42038
- "product",
42039
- "user",
42040
- "launch"
43062
+ "relevance",
43063
+ "hot",
43064
+ "new",
43065
+ "top",
43066
+ "comments"
42041
43067
  ],
42042
43068
  "in": "query",
42043
- "name": "type",
43069
+ "name": "sort",
42044
43070
  "type": "string"
42045
43071
  },
42046
43072
  {
42047
- "description": "Page number (1-based)",
42048
- "example": 2,
43073
+ "description": "Time window for top/comments sorts: hour, day, week, month, year, or all",
43074
+ "enum": [
43075
+ "hour",
43076
+ "day",
43077
+ "week",
43078
+ "month",
43079
+ "year",
43080
+ "all"
43081
+ ],
42049
43082
  "in": "query",
42050
- "minimum": 1,
42051
- "name": "page",
42052
- "type": "integer"
43083
+ "name": "time",
43084
+ "type": "string"
42053
43085
  },
42054
43086
  {
42055
- "default": false,
42056
- "description": "Launch search only: featured launches only",
43087
+ "description": "Maximum posts, defaults to 25 and clamps to 100",
42057
43088
  "in": "query",
42058
- "name": "featured",
42059
- "type": "boolean"
43089
+ "name": "limit",
43090
+ "type": "integer"
42060
43091
  },
42061
43092
  {
42062
- "description": "Launch search only: comma-separated topic slugs",
42063
- "example": "ai-chatbots,chrome-extensions",
43093
+ "description": "Reddit pagination token",
42064
43094
  "in": "query",
42065
- "name": "topics",
43095
+ "name": "after",
42066
43096
  "type": "string"
42067
43097
  }
42068
43098
  ],
@@ -42071,31 +43101,31 @@
42071
43101
  ],
42072
43102
  "responses": {
42073
43103
  "200": {
42074
- "description": "Wrapped search payload (map[string]any)",
43104
+ "description": "OK",
42075
43105
  "schema": {
42076
- "$ref": "#/definitions/producthunt.searchResponseDoc"
43106
+ "$ref": "#/definitions/reddit.searchResponseDoc"
42077
43107
  }
42078
43108
  },
42079
43109
  "400": {
42080
- "description": "Missing or invalid parameters",
43110
+ "description": "Bad Request",
42081
43111
  "schema": {
42082
43112
  "$ref": "#/definitions/app.Response"
42083
43113
  }
42084
43114
  },
42085
43115
  "404": {
42086
- "description": "No results found",
43116
+ "description": "Not Found",
42087
43117
  "schema": {
42088
43118
  "$ref": "#/definitions/app.Response"
42089
43119
  }
42090
43120
  },
42091
43121
  "429": {
42092
- "description": "Rate limit exceeded",
43122
+ "description": "Too Many Requests",
42093
43123
  "schema": {
42094
43124
  "$ref": "#/definitions/app.Response"
42095
43125
  }
42096
43126
  },
42097
- "500": {
42098
- "description": "Internal server error",
43127
+ "503": {
43128
+ "description": "Service Unavailable",
42099
43129
  "schema": {
42100
43130
  "$ref": "#/definitions/app.Response"
42101
43131
  }
@@ -42106,19 +43136,67 @@
42106
43136
  "ApiKeyAuth": []
42107
43137
  }
42108
43138
  ],
42109
- "summary": "Search for products, users, or launches on Product Hunt",
43139
+ "summary": "Search Reddit posts",
42110
43140
  "tags": [
42111
- "ProductHunt"
43141
+ "Reddit"
42112
43142
  ]
42113
43143
  }
42114
43144
  },
42115
- "/ready": {
43145
+ "/reddit/subreddit/{subreddit}/posts": {
42116
43146
  "get": {
42117
43147
  "consumes": [
42118
43148
  "application/json"
42119
43149
  ],
42120
- "description": "Returns process readiness and lightweight dependency health. Root `/ready` returns the same payload as a compatibility alias, while `/ping` remains the lightweight liveness endpoint.",
42121
- "operationId": "ready",
43150
+ "description": "Returns normalized public posts from a subreddit.",
43151
+ "operationId": "reddit-subreddit-posts",
43152
+ "parameters": [
43153
+ {
43154
+ "description": "Subreddit name, without r/",
43155
+ "in": "path",
43156
+ "name": "subreddit",
43157
+ "required": true,
43158
+ "type": "string"
43159
+ },
43160
+ {
43161
+ "default": "hot",
43162
+ "description": "Sort: hot, new, top, or rising",
43163
+ "enum": [
43164
+ "hot",
43165
+ "new",
43166
+ "top",
43167
+ "rising"
43168
+ ],
43169
+ "in": "query",
43170
+ "name": "sort",
43171
+ "type": "string"
43172
+ },
43173
+ {
43174
+ "description": "Time window for top sort: hour, day, week, month, year, or all",
43175
+ "enum": [
43176
+ "hour",
43177
+ "day",
43178
+ "week",
43179
+ "month",
43180
+ "year",
43181
+ "all"
43182
+ ],
43183
+ "in": "query",
43184
+ "name": "time",
43185
+ "type": "string"
43186
+ },
43187
+ {
43188
+ "description": "Maximum posts, defaults to 25 and clamps to 100",
43189
+ "in": "query",
43190
+ "name": "limit",
43191
+ "type": "integer"
43192
+ },
43193
+ {
43194
+ "description": "Reddit pagination token",
43195
+ "in": "query",
43196
+ "name": "after",
43197
+ "type": "string"
43198
+ }
43199
+ ],
42122
43200
  "produces": [
42123
43201
  "application/json"
42124
43202
  ],
@@ -42126,19 +43204,42 @@
42126
43204
  "200": {
42127
43205
  "description": "OK",
42128
43206
  "schema": {
42129
- "$ref": "#/definitions/api.readinessResponseDoc"
43207
+ "$ref": "#/definitions/reddit.subredditPostsResponseDoc"
43208
+ }
43209
+ },
43210
+ "400": {
43211
+ "description": "Bad Request",
43212
+ "schema": {
43213
+ "$ref": "#/definitions/app.Response"
43214
+ }
43215
+ },
43216
+ "404": {
43217
+ "description": "Not Found",
43218
+ "schema": {
43219
+ "$ref": "#/definitions/app.Response"
43220
+ }
43221
+ },
43222
+ "429": {
43223
+ "description": "Too Many Requests",
43224
+ "schema": {
43225
+ "$ref": "#/definitions/app.Response"
42130
43226
  }
42131
43227
  },
42132
43228
  "503": {
42133
43229
  "description": "Service Unavailable",
42134
43230
  "schema": {
42135
- "$ref": "#/definitions/api.readinessResponseDoc"
43231
+ "$ref": "#/definitions/app.Response"
42136
43232
  }
42137
43233
  }
42138
43234
  },
42139
- "summary": "Return API readiness",
43235
+ "security": [
43236
+ {
43237
+ "ApiKeyAuth": []
43238
+ }
43239
+ ],
43240
+ "summary": "List Reddit subreddit posts",
42140
43241
  "tags": [
42141
- "Meta"
43242
+ "Reddit"
42142
43243
  ]
42143
43244
  }
42144
43245
  },
@@ -50467,7 +51568,7 @@
50467
51568
  },
50468
51569
  "security": [
50469
51570
  {
50470
- "JWTAuth": []
51571
+ "ApiKeyAuth": []
50471
51572
  }
50472
51573
  ],
50473
51574
  "summary": "Get current user's endpoint usage breakdown",
@@ -50543,7 +51644,7 @@
50543
51644
  },
50544
51645
  "security": [
50545
51646
  {
50546
- "JWTAuth": []
51647
+ "ApiKeyAuth": []
50547
51648
  }
50548
51649
  ],
50549
51650
  "summary": "Get current user's usage overview",
@@ -50627,7 +51728,7 @@
50627
51728
  },
50628
51729
  "security": [
50629
51730
  {
50630
- "JWTAuth": []
51731
+ "ApiKeyAuth": []
50631
51732
  }
50632
51733
  ],
50633
51734
  "summary": "Get current user's recent API client IPs",
@@ -50720,7 +51821,7 @@
50720
51821
  },
50721
51822
  "security": [
50722
51823
  {
50723
- "JWTAuth": []
51824
+ "ApiKeyAuth": []
50724
51825
  }
50725
51826
  ],
50726
51827
  "summary": "Get current user's usage timeseries",
@@ -51196,6 +52297,96 @@
51196
52297
  ]
51197
52298
  }
51198
52299
  },
52300
+ "/yahoo-finance/lookup": {
52301
+ "get": {
52302
+ "consumes": [
52303
+ "application/json"
52304
+ ],
52305
+ "description": "Returns Yahoo Finance instrument matches for a query, optionally filtered by instrument type.",
52306
+ "operationId": "yahoo-finance-lookup",
52307
+ "parameters": [
52308
+ {
52309
+ "description": "Ticker symbol or company name",
52310
+ "in": "query",
52311
+ "name": "query",
52312
+ "required": true,
52313
+ "type": "string"
52314
+ },
52315
+ {
52316
+ "description": "Instrument type filter",
52317
+ "enum": [
52318
+ "all",
52319
+ "equity",
52320
+ "etf",
52321
+ "mutualfund",
52322
+ "index",
52323
+ "future",
52324
+ "currency",
52325
+ "cryptocurrency"
52326
+ ],
52327
+ "in": "query",
52328
+ "name": "type",
52329
+ "type": "string"
52330
+ },
52331
+ {
52332
+ "description": "Result count",
52333
+ "in": "query",
52334
+ "name": "count",
52335
+ "type": "integer"
52336
+ },
52337
+ {
52338
+ "description": "Result offset",
52339
+ "in": "query",
52340
+ "name": "start",
52341
+ "type": "integer"
52342
+ }
52343
+ ],
52344
+ "produces": [
52345
+ "application/json"
52346
+ ],
52347
+ "responses": {
52348
+ "200": {
52349
+ "description": "OK",
52350
+ "schema": {
52351
+ "$ref": "#/definitions/yahoofinance.lookupResponseDoc"
52352
+ }
52353
+ },
52354
+ "400": {
52355
+ "description": "Bad Request",
52356
+ "schema": {
52357
+ "$ref": "#/definitions/app.Response"
52358
+ }
52359
+ },
52360
+ "404": {
52361
+ "description": "Not Found",
52362
+ "schema": {
52363
+ "$ref": "#/definitions/app.Response"
52364
+ }
52365
+ },
52366
+ "500": {
52367
+ "description": "Internal Server Error",
52368
+ "schema": {
52369
+ "$ref": "#/definitions/app.Response"
52370
+ }
52371
+ },
52372
+ "503": {
52373
+ "description": "Service Unavailable",
52374
+ "schema": {
52375
+ "$ref": "#/definitions/app.Response"
52376
+ }
52377
+ }
52378
+ },
52379
+ "security": [
52380
+ {
52381
+ "ApiKeyAuth": []
52382
+ }
52383
+ ],
52384
+ "summary": "Yahoo Finance lookup",
52385
+ "tags": [
52386
+ "Yahoo Finance"
52387
+ ]
52388
+ }
52389
+ },
51199
52390
  "/yahoo-finance/market/{market}/status": {
51200
52391
  "get": {
51201
52392
  "consumes": [