@segha/tmdb 0.0.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.
Files changed (83) hide show
  1. package/README.md +401 -0
  2. package/index.ts +4 -0
  3. package/json-schemas/API/AiringTodayTVEndpoint.json +6 -0
  4. package/json-schemas/API/AllEndpoints.json +107 -0
  5. package/json-schemas/API/BaseUrl.json +6 -0
  6. package/json-schemas/API/ConfigurationSchema.json +13 -0
  7. package/json-schemas/API/EndpointsSchema.json +141 -0
  8. package/json-schemas/API/ImageBaseUrl.json +6 -0
  9. package/json-schemas/API/MethodsSchema.json +3791 -0
  10. package/json-schemas/API/MovieDetailsEndpoint.json +6 -0
  11. package/json-schemas/API/MovieEndpoints.json +45 -0
  12. package/json-schemas/API/MovieImagesEndpoint.json +6 -0
  13. package/json-schemas/API/MovieSimilarEndpoint.json +6 -0
  14. package/json-schemas/API/MovieVideosEndpoint.json +6 -0
  15. package/json-schemas/API/NowPlayingMoviesEndpoint.json +6 -0
  16. package/json-schemas/API/OnTheAirTVEndpoint.json +6 -0
  17. package/json-schemas/API/PopularMoviesEndpoint.json +6 -0
  18. package/json-schemas/API/PopularTVEndpoint.json +6 -0
  19. package/json-schemas/API/SearchEndpoints.json +15 -0
  20. package/json-schemas/API/SearchMoviesEndpoint.json +6 -0
  21. package/json-schemas/API/SearchTVEndpoint.json +6 -0
  22. package/json-schemas/API/SpecSchema.json +3817 -0
  23. package/json-schemas/API/TVDetailsEndpoint.json +6 -0
  24. package/json-schemas/API/TVEndpoints.json +45 -0
  25. package/json-schemas/API/TVImagesEndpoint.json +6 -0
  26. package/json-schemas/API/TVSimilarEndpoint.json +6 -0
  27. package/json-schemas/API/TVVideosEndpoint.json +6 -0
  28. package/json-schemas/API/TopRatedMoviesEndpoint.json +6 -0
  29. package/json-schemas/API/TopRatedTVEndpoint.json +6 -0
  30. package/json-schemas/API/UpcomingMoviesEndpoint.json +6 -0
  31. package/json-schemas/API/Version.json +6 -0
  32. package/json-schemas/API/index.json +8107 -0
  33. package/json-schemas/BackdropSizeSchema.json +11 -0
  34. package/json-schemas/DataTypes/BackdropSizeSchema.json +11 -0
  35. package/json-schemas/DataTypes/GenreSchema.json +18 -0
  36. package/json-schemas/DataTypes/ImageSchema.json +50 -0
  37. package/json-schemas/DataTypes/ImagesResponseSchema.json +175 -0
  38. package/json-schemas/DataTypes/LanguageSchema.json +23 -0
  39. package/json-schemas/DataTypes/PaginationParamsSchema.json +19 -0
  40. package/json-schemas/DataTypes/PosterSizeSchema.json +14 -0
  41. package/json-schemas/DataTypes/ProductionCompanySchema.json +35 -0
  42. package/json-schemas/DataTypes/ProductionCountrySchema.json +18 -0
  43. package/json-schemas/DataTypes/VideoSchema.json +58 -0
  44. package/json-schemas/DataTypes/VideosResponseSchema.json +75 -0
  45. package/json-schemas/DataTypes/index.json +503 -0
  46. package/json-schemas/GenreSchema.json +18 -0
  47. package/json-schemas/ImageSchema.json +50 -0
  48. package/json-schemas/ImagesResponseSchema.json +175 -0
  49. package/json-schemas/LanguageSchema.json +23 -0
  50. package/json-schemas/MovieDetailsParamsSchema.json +18 -0
  51. package/json-schemas/MovieDetailsSchema.json +246 -0
  52. package/json-schemas/MovieSchema.json +81 -0
  53. package/json-schemas/Movies/MovieDetailsParamsSchema.json +18 -0
  54. package/json-schemas/Movies/MovieDetailsSchema.json +246 -0
  55. package/json-schemas/Movies/MovieSchema.json +81 -0
  56. package/json-schemas/Movies/MoviesResponseSchema.json +108 -0
  57. package/json-schemas/Movies/SearchMoviesParamsSchema.json +31 -0
  58. package/json-schemas/Movies/index.json +491 -0
  59. package/json-schemas/MoviesResponseSchema.json +108 -0
  60. package/json-schemas/PaginationParamsSchema.json +19 -0
  61. package/json-schemas/PosterSizeSchema.json +14 -0
  62. package/json-schemas/ProductionCompanySchema.json +35 -0
  63. package/json-schemas/ProductionCountrySchema.json +18 -0
  64. package/json-schemas/SearchMoviesParamsSchema.json +31 -0
  65. package/json-schemas/SearchSeriesParamsSchema.json +31 -0
  66. package/json-schemas/SerieDetailsParamsSchema.json +18 -0
  67. package/json-schemas/SerieDetailsSchema.json +523 -0
  68. package/json-schemas/SerieSchema.json +107 -0
  69. package/json-schemas/SeriesResponseSchema.json +134 -0
  70. package/json-schemas/TVSeries/CreatorSchema.json +40 -0
  71. package/json-schemas/TVSeries/EpisodeSchema.json +89 -0
  72. package/json-schemas/TVSeries/NetworkSchema.json +35 -0
  73. package/json-schemas/TVSeries/SearchSeriesParamsSchema.json +31 -0
  74. package/json-schemas/TVSeries/SeasonSchema.json +57 -0
  75. package/json-schemas/TVSeries/SerieDetailsParamsSchema.json +18 -0
  76. package/json-schemas/TVSeries/SerieDetailsSchema.json +523 -0
  77. package/json-schemas/TVSeries/SerieSchema.json +107 -0
  78. package/json-schemas/TVSeries/SeriesResponseSchema.json +134 -0
  79. package/json-schemas/TVSeries/index.json +1041 -0
  80. package/json-schemas/VideoSchema.json +58 -0
  81. package/json-schemas/VideosResponseSchema.json +75 -0
  82. package/json-schemas/index.json +1800 -0
  83. package/package.json +50 -0
@@ -0,0 +1,3791 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "search": {
6
+ "type": "object",
7
+ "properties": {
8
+ "movies": {
9
+ "type": "object",
10
+ "properties": {
11
+ "get": {
12
+ "type": "object",
13
+ "properties": {
14
+ "endpoint": {
15
+ "type": "string",
16
+ "const": "/search/movie",
17
+ "description": "Search for movies by their original, translated and alternative titles."
18
+ },
19
+ "parameters": {
20
+ "type": "object",
21
+ "properties": {
22
+ "query": {
23
+ "type": "object",
24
+ "properties": {
25
+ "page": {
26
+ "type": "number",
27
+ "description": "Page number"
28
+ },
29
+ "language": {
30
+ "type": "string",
31
+ "description": "Language code"
32
+ },
33
+ "query": {
34
+ "type": "string",
35
+ "description": "Search query"
36
+ },
37
+ "include_adult": {
38
+ "description": "Include adult movies",
39
+ "type": "boolean"
40
+ },
41
+ "year": {
42
+ "description": "Year",
43
+ "type": "number"
44
+ }
45
+ },
46
+ "required": [
47
+ "page",
48
+ "language",
49
+ "query"
50
+ ]
51
+ }
52
+ },
53
+ "required": [
54
+ "query"
55
+ ]
56
+ },
57
+ "responses": {
58
+ "type": "object",
59
+ "properties": {
60
+ "200": {
61
+ "type": "object",
62
+ "properties": {
63
+ "page": {
64
+ "type": "number",
65
+ "description": "Page number"
66
+ },
67
+ "results": {
68
+ "type": "array",
69
+ "items": {
70
+ "type": "object",
71
+ "properties": {
72
+ "id": {
73
+ "type": "number",
74
+ "description": "Unique identifier for the movie"
75
+ },
76
+ "title": {
77
+ "type": "string",
78
+ "description": "Movie title"
79
+ },
80
+ "original_title": {
81
+ "type": "string",
82
+ "description": "Original movie title (in original language)"
83
+ },
84
+ "original_language": {
85
+ "type": "string",
86
+ "description": "Original language code (e.g., 'en', 'es', 'fr')"
87
+ },
88
+ "overview": {
89
+ "type": "string",
90
+ "description": "Movie overview/synopsis"
91
+ },
92
+ "poster_path": {
93
+ "type": "string",
94
+ "description": "Poster path (relative URL)"
95
+ },
96
+ "backdrop_path": {
97
+ "type": "string",
98
+ "description": "Backdrop path (relative URL)"
99
+ },
100
+ "release_date": {
101
+ "type": "string",
102
+ "description": "Release date (YYYY-MM-DD format)"
103
+ },
104
+ "vote_average": {
105
+ "type": "number",
106
+ "description": "Average vote rating (0-10)"
107
+ },
108
+ "vote_count": {
109
+ "type": "number",
110
+ "description": "Total number of votes"
111
+ },
112
+ "popularity": {
113
+ "type": "number",
114
+ "description": "Popularity score"
115
+ },
116
+ "adult": {
117
+ "type": "boolean",
118
+ "description": "Adult content flag"
119
+ },
120
+ "genre_ids": {
121
+ "type": "array",
122
+ "items": {
123
+ "type": "number"
124
+ },
125
+ "description": "Array of genre IDs"
126
+ },
127
+ "video": {
128
+ "type": "boolean",
129
+ "description": "Video flag"
130
+ }
131
+ },
132
+ "required": [
133
+ "id",
134
+ "title",
135
+ "original_title",
136
+ "original_language",
137
+ "overview",
138
+ "poster_path",
139
+ "backdrop_path",
140
+ "release_date",
141
+ "vote_average",
142
+ "vote_count",
143
+ "popularity",
144
+ "adult",
145
+ "genre_ids",
146
+ "video"
147
+ ]
148
+ },
149
+ "description": "Movies"
150
+ },
151
+ "total_pages": {
152
+ "type": "number",
153
+ "description": "Total pages"
154
+ },
155
+ "total_results": {
156
+ "type": "number",
157
+ "description": "Total results"
158
+ }
159
+ },
160
+ "required": [
161
+ "page",
162
+ "results",
163
+ "total_pages",
164
+ "total_results"
165
+ ]
166
+ }
167
+ },
168
+ "required": [
169
+ "200"
170
+ ]
171
+ }
172
+ },
173
+ "required": [
174
+ "endpoint",
175
+ "parameters",
176
+ "responses"
177
+ ]
178
+ }
179
+ },
180
+ "required": [
181
+ "get"
182
+ ]
183
+ },
184
+ "tv": {
185
+ "type": "object",
186
+ "properties": {
187
+ "get": {
188
+ "type": "object",
189
+ "properties": {
190
+ "endpoint": {
191
+ "type": "string",
192
+ "const": "/search/tv",
193
+ "description": "Search for TV shows by their original, translated and also known as names."
194
+ },
195
+ "parameters": {
196
+ "type": "object",
197
+ "properties": {
198
+ "query": {
199
+ "type": "object",
200
+ "properties": {
201
+ "page": {
202
+ "type": "number",
203
+ "description": "Page number"
204
+ },
205
+ "language": {
206
+ "type": "string",
207
+ "description": "Language code"
208
+ },
209
+ "query": {
210
+ "type": "string",
211
+ "description": "Search query"
212
+ },
213
+ "include_adult": {
214
+ "description": "Include adult movies",
215
+ "type": "boolean"
216
+ },
217
+ "year": {
218
+ "description": "Year",
219
+ "type": "number"
220
+ }
221
+ },
222
+ "required": [
223
+ "page",
224
+ "language",
225
+ "query"
226
+ ]
227
+ }
228
+ },
229
+ "required": [
230
+ "query"
231
+ ]
232
+ },
233
+ "responses": {
234
+ "type": "object",
235
+ "properties": {
236
+ "200": {
237
+ "type": "object",
238
+ "properties": {
239
+ "page": {
240
+ "type": "number",
241
+ "description": "Page number"
242
+ },
243
+ "results": {
244
+ "type": "array",
245
+ "items": {
246
+ "type": "object",
247
+ "properties": {
248
+ "backdrop_path": {
249
+ "anyOf": [
250
+ {
251
+ "type": "string"
252
+ },
253
+ {
254
+ "type": "null"
255
+ }
256
+ ],
257
+ "description": "Backdrop path (relative URL)"
258
+ },
259
+ "first_air_date": {
260
+ "anyOf": [
261
+ {
262
+ "type": "string"
263
+ },
264
+ {
265
+ "type": "null"
266
+ }
267
+ ],
268
+ "description": "First air date (YYYY-MM-DD format)"
269
+ },
270
+ "genre_ids": {
271
+ "type": "array",
272
+ "items": {
273
+ "type": "number"
274
+ },
275
+ "description": "Array of genre IDs"
276
+ },
277
+ "id": {
278
+ "type": "number",
279
+ "description": "Unique identifier for the serie"
280
+ },
281
+ "name": {
282
+ "type": "string",
283
+ "description": "Serie name"
284
+ },
285
+ "origin_country": {
286
+ "type": "array",
287
+ "items": {
288
+ "type": "string"
289
+ },
290
+ "description": "Array of origin countries"
291
+ },
292
+ "original_language": {
293
+ "type": "string",
294
+ "description": "Original language code (e.g., 'en', 'es', 'fr')"
295
+ },
296
+ "original_name": {
297
+ "type": "string",
298
+ "description": "Original serie name (in original language)"
299
+ },
300
+ "overview": {
301
+ "anyOf": [
302
+ {
303
+ "type": "string"
304
+ },
305
+ {
306
+ "type": "null"
307
+ }
308
+ ],
309
+ "description": "Serie overview/synopsis"
310
+ },
311
+ "popularity": {
312
+ "type": "number",
313
+ "description": "Popularity score"
314
+ },
315
+ "poster_path": {
316
+ "anyOf": [
317
+ {
318
+ "type": "string"
319
+ },
320
+ {
321
+ "type": "null"
322
+ }
323
+ ],
324
+ "description": "Poster path (relative URL)"
325
+ },
326
+ "vote_average": {
327
+ "type": "number",
328
+ "description": "Average vote rating (0-10)"
329
+ },
330
+ "vote_count": {
331
+ "type": "number",
332
+ "description": "Total number of votes"
333
+ }
334
+ },
335
+ "required": [
336
+ "backdrop_path",
337
+ "first_air_date",
338
+ "genre_ids",
339
+ "id",
340
+ "name",
341
+ "origin_country",
342
+ "original_language",
343
+ "original_name",
344
+ "overview",
345
+ "popularity",
346
+ "poster_path",
347
+ "vote_average",
348
+ "vote_count"
349
+ ]
350
+ },
351
+ "description": "Series"
352
+ },
353
+ "total_pages": {
354
+ "type": "number",
355
+ "description": "Total pages"
356
+ },
357
+ "total_results": {
358
+ "type": "number",
359
+ "description": "Total results"
360
+ }
361
+ },
362
+ "required": [
363
+ "page",
364
+ "results",
365
+ "total_pages",
366
+ "total_results"
367
+ ]
368
+ }
369
+ },
370
+ "required": [
371
+ "200"
372
+ ]
373
+ }
374
+ },
375
+ "required": [
376
+ "endpoint",
377
+ "parameters",
378
+ "responses"
379
+ ]
380
+ }
381
+ },
382
+ "required": [
383
+ "get"
384
+ ]
385
+ }
386
+ },
387
+ "required": [
388
+ "movies",
389
+ "tv"
390
+ ]
391
+ },
392
+ "movie": {
393
+ "type": "object",
394
+ "properties": {
395
+ "now_playing": {
396
+ "type": "object",
397
+ "properties": {
398
+ "get": {
399
+ "type": "object",
400
+ "properties": {
401
+ "endpoint": {
402
+ "type": "string",
403
+ "const": "/movie/now_playing",
404
+ "description": "Get a list of movies that are currently in theatres."
405
+ },
406
+ "parameters": {
407
+ "type": "object",
408
+ "properties": {
409
+ "query": {
410
+ "type": "object",
411
+ "properties": {
412
+ "page": {
413
+ "type": "number",
414
+ "description": "Page number"
415
+ },
416
+ "language": {
417
+ "type": "string",
418
+ "description": "Language code"
419
+ }
420
+ },
421
+ "required": [
422
+ "page",
423
+ "language"
424
+ ],
425
+ "description": "Pagination parameters"
426
+ }
427
+ },
428
+ "required": [
429
+ "query"
430
+ ]
431
+ },
432
+ "responses": {
433
+ "type": "object",
434
+ "properties": {
435
+ "200": {
436
+ "type": "object",
437
+ "properties": {
438
+ "page": {
439
+ "type": "number",
440
+ "description": "Page number"
441
+ },
442
+ "results": {
443
+ "type": "array",
444
+ "items": {
445
+ "type": "object",
446
+ "properties": {
447
+ "id": {
448
+ "type": "number",
449
+ "description": "Unique identifier for the movie"
450
+ },
451
+ "title": {
452
+ "type": "string",
453
+ "description": "Movie title"
454
+ },
455
+ "original_title": {
456
+ "type": "string",
457
+ "description": "Original movie title (in original language)"
458
+ },
459
+ "original_language": {
460
+ "type": "string",
461
+ "description": "Original language code (e.g., 'en', 'es', 'fr')"
462
+ },
463
+ "overview": {
464
+ "type": "string",
465
+ "description": "Movie overview/synopsis"
466
+ },
467
+ "poster_path": {
468
+ "type": "string",
469
+ "description": "Poster path (relative URL)"
470
+ },
471
+ "backdrop_path": {
472
+ "type": "string",
473
+ "description": "Backdrop path (relative URL)"
474
+ },
475
+ "release_date": {
476
+ "type": "string",
477
+ "description": "Release date (YYYY-MM-DD format)"
478
+ },
479
+ "vote_average": {
480
+ "type": "number",
481
+ "description": "Average vote rating (0-10)"
482
+ },
483
+ "vote_count": {
484
+ "type": "number",
485
+ "description": "Total number of votes"
486
+ },
487
+ "popularity": {
488
+ "type": "number",
489
+ "description": "Popularity score"
490
+ },
491
+ "adult": {
492
+ "type": "boolean",
493
+ "description": "Adult content flag"
494
+ },
495
+ "genre_ids": {
496
+ "type": "array",
497
+ "items": {
498
+ "type": "number"
499
+ },
500
+ "description": "Array of genre IDs"
501
+ },
502
+ "video": {
503
+ "type": "boolean",
504
+ "description": "Video flag"
505
+ }
506
+ },
507
+ "required": [
508
+ "id",
509
+ "title",
510
+ "original_title",
511
+ "original_language",
512
+ "overview",
513
+ "poster_path",
514
+ "backdrop_path",
515
+ "release_date",
516
+ "vote_average",
517
+ "vote_count",
518
+ "popularity",
519
+ "adult",
520
+ "genre_ids",
521
+ "video"
522
+ ]
523
+ },
524
+ "description": "Movies"
525
+ },
526
+ "total_pages": {
527
+ "type": "number",
528
+ "description": "Total pages"
529
+ },
530
+ "total_results": {
531
+ "type": "number",
532
+ "description": "Total results"
533
+ }
534
+ },
535
+ "required": [
536
+ "page",
537
+ "results",
538
+ "total_pages",
539
+ "total_results"
540
+ ]
541
+ }
542
+ },
543
+ "required": [
544
+ "200"
545
+ ]
546
+ }
547
+ },
548
+ "required": [
549
+ "endpoint",
550
+ "parameters",
551
+ "responses"
552
+ ]
553
+ }
554
+ },
555
+ "required": [
556
+ "get"
557
+ ]
558
+ },
559
+ "popular": {
560
+ "type": "object",
561
+ "properties": {
562
+ "get": {
563
+ "type": "object",
564
+ "properties": {
565
+ "endpoint": {
566
+ "type": "string",
567
+ "const": "/movie/popular",
568
+ "description": "Get a list of movies ordered by popularity."
569
+ },
570
+ "parameters": {
571
+ "type": "object",
572
+ "properties": {
573
+ "query": {
574
+ "type": "object",
575
+ "properties": {
576
+ "page": {
577
+ "type": "number",
578
+ "description": "Page number"
579
+ },
580
+ "language": {
581
+ "type": "string",
582
+ "description": "Language code"
583
+ }
584
+ },
585
+ "required": [
586
+ "page",
587
+ "language"
588
+ ],
589
+ "description": "Pagination parameters"
590
+ }
591
+ },
592
+ "required": [
593
+ "query"
594
+ ]
595
+ },
596
+ "responses": {
597
+ "type": "object",
598
+ "properties": {
599
+ "200": {
600
+ "type": "object",
601
+ "properties": {
602
+ "page": {
603
+ "type": "number",
604
+ "description": "Page number"
605
+ },
606
+ "results": {
607
+ "type": "array",
608
+ "items": {
609
+ "type": "object",
610
+ "properties": {
611
+ "id": {
612
+ "type": "number",
613
+ "description": "Unique identifier for the movie"
614
+ },
615
+ "title": {
616
+ "type": "string",
617
+ "description": "Movie title"
618
+ },
619
+ "original_title": {
620
+ "type": "string",
621
+ "description": "Original movie title (in original language)"
622
+ },
623
+ "original_language": {
624
+ "type": "string",
625
+ "description": "Original language code (e.g., 'en', 'es', 'fr')"
626
+ },
627
+ "overview": {
628
+ "type": "string",
629
+ "description": "Movie overview/synopsis"
630
+ },
631
+ "poster_path": {
632
+ "type": "string",
633
+ "description": "Poster path (relative URL)"
634
+ },
635
+ "backdrop_path": {
636
+ "type": "string",
637
+ "description": "Backdrop path (relative URL)"
638
+ },
639
+ "release_date": {
640
+ "type": "string",
641
+ "description": "Release date (YYYY-MM-DD format)"
642
+ },
643
+ "vote_average": {
644
+ "type": "number",
645
+ "description": "Average vote rating (0-10)"
646
+ },
647
+ "vote_count": {
648
+ "type": "number",
649
+ "description": "Total number of votes"
650
+ },
651
+ "popularity": {
652
+ "type": "number",
653
+ "description": "Popularity score"
654
+ },
655
+ "adult": {
656
+ "type": "boolean",
657
+ "description": "Adult content flag"
658
+ },
659
+ "genre_ids": {
660
+ "type": "array",
661
+ "items": {
662
+ "type": "number"
663
+ },
664
+ "description": "Array of genre IDs"
665
+ },
666
+ "video": {
667
+ "type": "boolean",
668
+ "description": "Video flag"
669
+ }
670
+ },
671
+ "required": [
672
+ "id",
673
+ "title",
674
+ "original_title",
675
+ "original_language",
676
+ "overview",
677
+ "poster_path",
678
+ "backdrop_path",
679
+ "release_date",
680
+ "vote_average",
681
+ "vote_count",
682
+ "popularity",
683
+ "adult",
684
+ "genre_ids",
685
+ "video"
686
+ ]
687
+ },
688
+ "description": "Movies"
689
+ },
690
+ "total_pages": {
691
+ "type": "number",
692
+ "description": "Total pages"
693
+ },
694
+ "total_results": {
695
+ "type": "number",
696
+ "description": "Total results"
697
+ }
698
+ },
699
+ "required": [
700
+ "page",
701
+ "results",
702
+ "total_pages",
703
+ "total_results"
704
+ ]
705
+ }
706
+ },
707
+ "required": [
708
+ "200"
709
+ ]
710
+ }
711
+ },
712
+ "required": [
713
+ "endpoint",
714
+ "parameters",
715
+ "responses"
716
+ ]
717
+ }
718
+ },
719
+ "required": [
720
+ "get"
721
+ ]
722
+ },
723
+ "top_rated": {
724
+ "type": "object",
725
+ "properties": {
726
+ "get": {
727
+ "type": "object",
728
+ "properties": {
729
+ "endpoint": {
730
+ "type": "string",
731
+ "const": "/movie/top_rated",
732
+ "description": "Get a list of movies ordered by rating."
733
+ },
734
+ "parameters": {
735
+ "type": "object",
736
+ "properties": {
737
+ "query": {
738
+ "type": "object",
739
+ "properties": {
740
+ "page": {
741
+ "type": "number",
742
+ "description": "Page number"
743
+ },
744
+ "language": {
745
+ "type": "string",
746
+ "description": "Language code"
747
+ }
748
+ },
749
+ "required": [
750
+ "page",
751
+ "language"
752
+ ],
753
+ "description": "Pagination parameters"
754
+ }
755
+ },
756
+ "required": [
757
+ "query"
758
+ ]
759
+ },
760
+ "responses": {
761
+ "type": "object",
762
+ "properties": {
763
+ "200": {
764
+ "type": "object",
765
+ "properties": {
766
+ "page": {
767
+ "type": "number",
768
+ "description": "Page number"
769
+ },
770
+ "results": {
771
+ "type": "array",
772
+ "items": {
773
+ "type": "object",
774
+ "properties": {
775
+ "id": {
776
+ "type": "number",
777
+ "description": "Unique identifier for the movie"
778
+ },
779
+ "title": {
780
+ "type": "string",
781
+ "description": "Movie title"
782
+ },
783
+ "original_title": {
784
+ "type": "string",
785
+ "description": "Original movie title (in original language)"
786
+ },
787
+ "original_language": {
788
+ "type": "string",
789
+ "description": "Original language code (e.g., 'en', 'es', 'fr')"
790
+ },
791
+ "overview": {
792
+ "type": "string",
793
+ "description": "Movie overview/synopsis"
794
+ },
795
+ "poster_path": {
796
+ "type": "string",
797
+ "description": "Poster path (relative URL)"
798
+ },
799
+ "backdrop_path": {
800
+ "type": "string",
801
+ "description": "Backdrop path (relative URL)"
802
+ },
803
+ "release_date": {
804
+ "type": "string",
805
+ "description": "Release date (YYYY-MM-DD format)"
806
+ },
807
+ "vote_average": {
808
+ "type": "number",
809
+ "description": "Average vote rating (0-10)"
810
+ },
811
+ "vote_count": {
812
+ "type": "number",
813
+ "description": "Total number of votes"
814
+ },
815
+ "popularity": {
816
+ "type": "number",
817
+ "description": "Popularity score"
818
+ },
819
+ "adult": {
820
+ "type": "boolean",
821
+ "description": "Adult content flag"
822
+ },
823
+ "genre_ids": {
824
+ "type": "array",
825
+ "items": {
826
+ "type": "number"
827
+ },
828
+ "description": "Array of genre IDs"
829
+ },
830
+ "video": {
831
+ "type": "boolean",
832
+ "description": "Video flag"
833
+ }
834
+ },
835
+ "required": [
836
+ "id",
837
+ "title",
838
+ "original_title",
839
+ "original_language",
840
+ "overview",
841
+ "poster_path",
842
+ "backdrop_path",
843
+ "release_date",
844
+ "vote_average",
845
+ "vote_count",
846
+ "popularity",
847
+ "adult",
848
+ "genre_ids",
849
+ "video"
850
+ ]
851
+ },
852
+ "description": "Movies"
853
+ },
854
+ "total_pages": {
855
+ "type": "number",
856
+ "description": "Total pages"
857
+ },
858
+ "total_results": {
859
+ "type": "number",
860
+ "description": "Total results"
861
+ }
862
+ },
863
+ "required": [
864
+ "page",
865
+ "results",
866
+ "total_pages",
867
+ "total_results"
868
+ ]
869
+ }
870
+ },
871
+ "required": [
872
+ "200"
873
+ ]
874
+ }
875
+ },
876
+ "required": [
877
+ "endpoint",
878
+ "parameters",
879
+ "responses"
880
+ ]
881
+ }
882
+ },
883
+ "required": [
884
+ "get"
885
+ ]
886
+ },
887
+ "upcoming": {
888
+ "type": "object",
889
+ "properties": {
890
+ "get": {
891
+ "type": "object",
892
+ "properties": {
893
+ "endpoint": {
894
+ "type": "string",
895
+ "const": "/movie/upcoming",
896
+ "description": "Get a list of movies that are being released soon."
897
+ },
898
+ "parameters": {
899
+ "type": "object",
900
+ "properties": {
901
+ "query": {
902
+ "type": "object",
903
+ "properties": {
904
+ "page": {
905
+ "type": "number",
906
+ "description": "Page number"
907
+ },
908
+ "language": {
909
+ "type": "string",
910
+ "description": "Language code"
911
+ }
912
+ },
913
+ "required": [
914
+ "page",
915
+ "language"
916
+ ],
917
+ "description": "Pagination parameters"
918
+ }
919
+ },
920
+ "required": [
921
+ "query"
922
+ ]
923
+ },
924
+ "responses": {
925
+ "type": "object",
926
+ "properties": {
927
+ "200": {
928
+ "type": "object",
929
+ "properties": {
930
+ "page": {
931
+ "type": "number",
932
+ "description": "Page number"
933
+ },
934
+ "results": {
935
+ "type": "array",
936
+ "items": {
937
+ "type": "object",
938
+ "properties": {
939
+ "id": {
940
+ "type": "number",
941
+ "description": "Unique identifier for the movie"
942
+ },
943
+ "title": {
944
+ "type": "string",
945
+ "description": "Movie title"
946
+ },
947
+ "original_title": {
948
+ "type": "string",
949
+ "description": "Original movie title (in original language)"
950
+ },
951
+ "original_language": {
952
+ "type": "string",
953
+ "description": "Original language code (e.g., 'en', 'es', 'fr')"
954
+ },
955
+ "overview": {
956
+ "type": "string",
957
+ "description": "Movie overview/synopsis"
958
+ },
959
+ "poster_path": {
960
+ "type": "string",
961
+ "description": "Poster path (relative URL)"
962
+ },
963
+ "backdrop_path": {
964
+ "type": "string",
965
+ "description": "Backdrop path (relative URL)"
966
+ },
967
+ "release_date": {
968
+ "type": "string",
969
+ "description": "Release date (YYYY-MM-DD format)"
970
+ },
971
+ "vote_average": {
972
+ "type": "number",
973
+ "description": "Average vote rating (0-10)"
974
+ },
975
+ "vote_count": {
976
+ "type": "number",
977
+ "description": "Total number of votes"
978
+ },
979
+ "popularity": {
980
+ "type": "number",
981
+ "description": "Popularity score"
982
+ },
983
+ "adult": {
984
+ "type": "boolean",
985
+ "description": "Adult content flag"
986
+ },
987
+ "genre_ids": {
988
+ "type": "array",
989
+ "items": {
990
+ "type": "number"
991
+ },
992
+ "description": "Array of genre IDs"
993
+ },
994
+ "video": {
995
+ "type": "boolean",
996
+ "description": "Video flag"
997
+ }
998
+ },
999
+ "required": [
1000
+ "id",
1001
+ "title",
1002
+ "original_title",
1003
+ "original_language",
1004
+ "overview",
1005
+ "poster_path",
1006
+ "backdrop_path",
1007
+ "release_date",
1008
+ "vote_average",
1009
+ "vote_count",
1010
+ "popularity",
1011
+ "adult",
1012
+ "genre_ids",
1013
+ "video"
1014
+ ]
1015
+ },
1016
+ "description": "Movies"
1017
+ },
1018
+ "total_pages": {
1019
+ "type": "number",
1020
+ "description": "Total pages"
1021
+ },
1022
+ "total_results": {
1023
+ "type": "number",
1024
+ "description": "Total results"
1025
+ }
1026
+ },
1027
+ "required": [
1028
+ "page",
1029
+ "results",
1030
+ "total_pages",
1031
+ "total_results"
1032
+ ]
1033
+ }
1034
+ },
1035
+ "required": [
1036
+ "200"
1037
+ ]
1038
+ }
1039
+ },
1040
+ "required": [
1041
+ "endpoint",
1042
+ "parameters",
1043
+ "responses"
1044
+ ]
1045
+ }
1046
+ },
1047
+ "required": [
1048
+ "get"
1049
+ ]
1050
+ },
1051
+ "details": {
1052
+ "type": "object",
1053
+ "properties": {
1054
+ "get": {
1055
+ "type": "object",
1056
+ "properties": {
1057
+ "endpoint": {
1058
+ "type": "string",
1059
+ "const": "/movie/{movie_id}",
1060
+ "description": "Get the top level details of a movie by ID."
1061
+ },
1062
+ "parameters": {
1063
+ "type": "object",
1064
+ "properties": {
1065
+ "url": {
1066
+ "type": "object",
1067
+ "properties": {
1068
+ "movie_id": {
1069
+ "type": "number",
1070
+ "description": "Movie ID"
1071
+ }
1072
+ },
1073
+ "required": [
1074
+ "movie_id"
1075
+ ]
1076
+ },
1077
+ "query": {
1078
+ "type": "object",
1079
+ "properties": {
1080
+ "append_to_response": {
1081
+ "description": "Append to response",
1082
+ "type": "string"
1083
+ },
1084
+ "include_image_language": {
1085
+ "description": "Include image language",
1086
+ "type": "string"
1087
+ },
1088
+ "language": {
1089
+ "description": "Language",
1090
+ "type": "string"
1091
+ }
1092
+ }
1093
+ }
1094
+ },
1095
+ "required": [
1096
+ "url",
1097
+ "query"
1098
+ ]
1099
+ },
1100
+ "responses": {
1101
+ "type": "object",
1102
+ "properties": {
1103
+ "200": {
1104
+ "type": "object",
1105
+ "properties": {
1106
+ "id": {
1107
+ "type": "number",
1108
+ "description": "Unique identifier for the movie"
1109
+ },
1110
+ "title": {
1111
+ "type": "string",
1112
+ "description": "Movie title"
1113
+ },
1114
+ "original_title": {
1115
+ "type": "string",
1116
+ "description": "Original movie title (in original language)"
1117
+ },
1118
+ "original_language": {
1119
+ "type": "string",
1120
+ "description": "Original language code (e.g., 'en', 'es', 'fr')"
1121
+ },
1122
+ "overview": {
1123
+ "type": "string",
1124
+ "description": "Movie overview/synopsis"
1125
+ },
1126
+ "poster_path": {
1127
+ "type": "string",
1128
+ "description": "Poster path (relative URL)"
1129
+ },
1130
+ "backdrop_path": {
1131
+ "type": "string",
1132
+ "description": "Backdrop path (relative URL)"
1133
+ },
1134
+ "release_date": {
1135
+ "type": "string",
1136
+ "description": "Release date (YYYY-MM-DD format)"
1137
+ },
1138
+ "vote_average": {
1139
+ "type": "number",
1140
+ "description": "Average vote rating (0-10)"
1141
+ },
1142
+ "vote_count": {
1143
+ "type": "number",
1144
+ "description": "Total number of votes"
1145
+ },
1146
+ "popularity": {
1147
+ "type": "number",
1148
+ "description": "Popularity score"
1149
+ },
1150
+ "adult": {
1151
+ "type": "boolean",
1152
+ "description": "Adult content flag"
1153
+ },
1154
+ "video": {
1155
+ "type": "boolean",
1156
+ "description": "Video flag"
1157
+ },
1158
+ "genres": {
1159
+ "type": "array",
1160
+ "items": {
1161
+ "type": "object",
1162
+ "properties": {
1163
+ "id": {
1164
+ "type": "number",
1165
+ "description": "Unique identifier for the genre"
1166
+ },
1167
+ "name": {
1168
+ "type": "string",
1169
+ "description": "Genre name"
1170
+ }
1171
+ },
1172
+ "required": [
1173
+ "id",
1174
+ "name"
1175
+ ]
1176
+ },
1177
+ "description": "Movie genres"
1178
+ },
1179
+ "runtime": {
1180
+ "anyOf": [
1181
+ {
1182
+ "type": "number"
1183
+ },
1184
+ {
1185
+ "type": "null"
1186
+ }
1187
+ ],
1188
+ "description": "Movie runtime in minutes"
1189
+ },
1190
+ "budget": {
1191
+ "type": "number",
1192
+ "description": "Budget in USD"
1193
+ },
1194
+ "revenue": {
1195
+ "type": "number",
1196
+ "description": "Revenue in USD"
1197
+ },
1198
+ "homepage": {
1199
+ "anyOf": [
1200
+ {
1201
+ "type": "string"
1202
+ },
1203
+ {
1204
+ "type": "null"
1205
+ }
1206
+ ],
1207
+ "description": "Homepage URL"
1208
+ },
1209
+ "imdb_id": {
1210
+ "anyOf": [
1211
+ {
1212
+ "type": "string"
1213
+ },
1214
+ {
1215
+ "type": "null"
1216
+ }
1217
+ ],
1218
+ "description": "IMDB ID"
1219
+ },
1220
+ "production_companies": {
1221
+ "type": "array",
1222
+ "items": {
1223
+ "type": "object",
1224
+ "properties": {
1225
+ "id": {
1226
+ "type": "number",
1227
+ "description": "Unique identifier for the production company"
1228
+ },
1229
+ "name": {
1230
+ "type": "string",
1231
+ "description": "Production company name"
1232
+ },
1233
+ "logo_path": {
1234
+ "anyOf": [
1235
+ {
1236
+ "type": "string"
1237
+ },
1238
+ {
1239
+ "type": "null"
1240
+ }
1241
+ ],
1242
+ "description": "Logo path (relative URL)"
1243
+ },
1244
+ "origin_country": {
1245
+ "type": "string",
1246
+ "description": "Production company origin country"
1247
+ }
1248
+ },
1249
+ "required": [
1250
+ "id",
1251
+ "name",
1252
+ "logo_path",
1253
+ "origin_country"
1254
+ ]
1255
+ },
1256
+ "description": "Production companies"
1257
+ },
1258
+ "production_countries": {
1259
+ "type": "array",
1260
+ "items": {
1261
+ "type": "object",
1262
+ "properties": {
1263
+ "iso_3166_1": {
1264
+ "type": "string",
1265
+ "description": "Production country ISO 3166-1 Alpha-2 code"
1266
+ },
1267
+ "name": {
1268
+ "type": "string",
1269
+ "description": "Production country name"
1270
+ }
1271
+ },
1272
+ "required": [
1273
+ "iso_3166_1",
1274
+ "name"
1275
+ ]
1276
+ },
1277
+ "description": "Production countries"
1278
+ },
1279
+ "spoken_languages": {
1280
+ "type": "array",
1281
+ "items": {
1282
+ "type": "object",
1283
+ "properties": {
1284
+ "iso_639_1": {
1285
+ "type": "string",
1286
+ "description": "Spoken language ISO 639-1 code"
1287
+ },
1288
+ "name": {
1289
+ "type": "string",
1290
+ "description": "Spoken language name"
1291
+ },
1292
+ "english_name": {
1293
+ "type": "string",
1294
+ "description": "Spoken language English name"
1295
+ }
1296
+ },
1297
+ "required": [
1298
+ "iso_639_1",
1299
+ "name",
1300
+ "english_name"
1301
+ ]
1302
+ },
1303
+ "description": "Spoken languages"
1304
+ },
1305
+ "status": {
1306
+ "type": "string",
1307
+ "description": "Current status (Released, Post Production, etc.)"
1308
+ },
1309
+ "tagline": {
1310
+ "anyOf": [
1311
+ {
1312
+ "type": "string"
1313
+ },
1314
+ {
1315
+ "type": "null"
1316
+ }
1317
+ ],
1318
+ "description": "Tagline"
1319
+ }
1320
+ },
1321
+ "required": [
1322
+ "id",
1323
+ "title",
1324
+ "original_title",
1325
+ "original_language",
1326
+ "overview",
1327
+ "poster_path",
1328
+ "backdrop_path",
1329
+ "release_date",
1330
+ "vote_average",
1331
+ "vote_count",
1332
+ "popularity",
1333
+ "adult",
1334
+ "video",
1335
+ "genres",
1336
+ "runtime",
1337
+ "budget",
1338
+ "revenue",
1339
+ "homepage",
1340
+ "imdb_id",
1341
+ "production_companies",
1342
+ "production_countries",
1343
+ "spoken_languages",
1344
+ "status",
1345
+ "tagline"
1346
+ ]
1347
+ }
1348
+ },
1349
+ "required": [
1350
+ "200"
1351
+ ]
1352
+ }
1353
+ },
1354
+ "required": [
1355
+ "endpoint",
1356
+ "parameters",
1357
+ "responses"
1358
+ ]
1359
+ }
1360
+ },
1361
+ "required": [
1362
+ "get"
1363
+ ]
1364
+ },
1365
+ "images": {
1366
+ "type": "object",
1367
+ "properties": {
1368
+ "get": {
1369
+ "type": "object",
1370
+ "properties": {
1371
+ "endpoint": {
1372
+ "type": "string",
1373
+ "const": "/movie/{movie_id}/images",
1374
+ "description": "Get the images that belong to a movie."
1375
+ },
1376
+ "parameters": {
1377
+ "type": "object",
1378
+ "properties": {
1379
+ "url": {
1380
+ "type": "object",
1381
+ "properties": {
1382
+ "movie_id": {
1383
+ "type": "number",
1384
+ "description": "Movie ID"
1385
+ }
1386
+ },
1387
+ "required": [
1388
+ "movie_id"
1389
+ ]
1390
+ }
1391
+ },
1392
+ "required": [
1393
+ "url"
1394
+ ]
1395
+ },
1396
+ "responses": {
1397
+ "type": "object",
1398
+ "properties": {
1399
+ "200": {
1400
+ "type": "object",
1401
+ "properties": {
1402
+ "id": {
1403
+ "type": "number",
1404
+ "description": "Image ID"
1405
+ },
1406
+ "backdrops": {
1407
+ "type": "array",
1408
+ "items": {
1409
+ "type": "object",
1410
+ "properties": {
1411
+ "aspect_ratio": {
1412
+ "type": "number",
1413
+ "description": "Aspect ratio"
1414
+ },
1415
+ "height": {
1416
+ "type": "number",
1417
+ "description": "Height"
1418
+ },
1419
+ "iso_639_1": {
1420
+ "anyOf": [
1421
+ {
1422
+ "type": "string"
1423
+ },
1424
+ {
1425
+ "type": "null"
1426
+ }
1427
+ ],
1428
+ "description": "Spoken language ISO 639-1 code"
1429
+ },
1430
+ "file_path": {
1431
+ "type": "string",
1432
+ "description": "File path"
1433
+ },
1434
+ "vote_average": {
1435
+ "type": "number",
1436
+ "description": "Vote average"
1437
+ },
1438
+ "vote_count": {
1439
+ "type": "number",
1440
+ "description": "Vote count"
1441
+ },
1442
+ "width": {
1443
+ "type": "number",
1444
+ "description": "Width"
1445
+ }
1446
+ },
1447
+ "required": [
1448
+ "aspect_ratio",
1449
+ "height",
1450
+ "iso_639_1",
1451
+ "file_path",
1452
+ "vote_average",
1453
+ "vote_count",
1454
+ "width"
1455
+ ]
1456
+ },
1457
+ "description": "Backdrops"
1458
+ },
1459
+ "logos": {
1460
+ "type": "array",
1461
+ "items": {
1462
+ "type": "object",
1463
+ "properties": {
1464
+ "aspect_ratio": {
1465
+ "type": "number",
1466
+ "description": "Aspect ratio"
1467
+ },
1468
+ "height": {
1469
+ "type": "number",
1470
+ "description": "Height"
1471
+ },
1472
+ "iso_639_1": {
1473
+ "anyOf": [
1474
+ {
1475
+ "type": "string"
1476
+ },
1477
+ {
1478
+ "type": "null"
1479
+ }
1480
+ ],
1481
+ "description": "Spoken language ISO 639-1 code"
1482
+ },
1483
+ "file_path": {
1484
+ "type": "string",
1485
+ "description": "File path"
1486
+ },
1487
+ "vote_average": {
1488
+ "type": "number",
1489
+ "description": "Vote average"
1490
+ },
1491
+ "vote_count": {
1492
+ "type": "number",
1493
+ "description": "Vote count"
1494
+ },
1495
+ "width": {
1496
+ "type": "number",
1497
+ "description": "Width"
1498
+ }
1499
+ },
1500
+ "required": [
1501
+ "aspect_ratio",
1502
+ "height",
1503
+ "iso_639_1",
1504
+ "file_path",
1505
+ "vote_average",
1506
+ "vote_count",
1507
+ "width"
1508
+ ]
1509
+ },
1510
+ "description": "Logos"
1511
+ },
1512
+ "posters": {
1513
+ "type": "array",
1514
+ "items": {
1515
+ "type": "object",
1516
+ "properties": {
1517
+ "aspect_ratio": {
1518
+ "type": "number",
1519
+ "description": "Aspect ratio"
1520
+ },
1521
+ "height": {
1522
+ "type": "number",
1523
+ "description": "Height"
1524
+ },
1525
+ "iso_639_1": {
1526
+ "anyOf": [
1527
+ {
1528
+ "type": "string"
1529
+ },
1530
+ {
1531
+ "type": "null"
1532
+ }
1533
+ ],
1534
+ "description": "Spoken language ISO 639-1 code"
1535
+ },
1536
+ "file_path": {
1537
+ "type": "string",
1538
+ "description": "File path"
1539
+ },
1540
+ "vote_average": {
1541
+ "type": "number",
1542
+ "description": "Vote average"
1543
+ },
1544
+ "vote_count": {
1545
+ "type": "number",
1546
+ "description": "Vote count"
1547
+ },
1548
+ "width": {
1549
+ "type": "number",
1550
+ "description": "Width"
1551
+ }
1552
+ },
1553
+ "required": [
1554
+ "aspect_ratio",
1555
+ "height",
1556
+ "iso_639_1",
1557
+ "file_path",
1558
+ "vote_average",
1559
+ "vote_count",
1560
+ "width"
1561
+ ]
1562
+ },
1563
+ "description": "Posters"
1564
+ }
1565
+ },
1566
+ "required": [
1567
+ "id",
1568
+ "backdrops",
1569
+ "logos",
1570
+ "posters"
1571
+ ]
1572
+ }
1573
+ },
1574
+ "required": [
1575
+ "200"
1576
+ ]
1577
+ }
1578
+ },
1579
+ "required": [
1580
+ "endpoint",
1581
+ "parameters",
1582
+ "responses"
1583
+ ]
1584
+ }
1585
+ },
1586
+ "required": [
1587
+ "get"
1588
+ ]
1589
+ },
1590
+ "videos": {
1591
+ "type": "object",
1592
+ "properties": {
1593
+ "get": {
1594
+ "type": "object",
1595
+ "properties": {
1596
+ "endpoint": {
1597
+ "type": "string",
1598
+ "const": "/movie/{movie_id}/videos",
1599
+ "description": "Get the videos that belong to a movie."
1600
+ },
1601
+ "parameters": {
1602
+ "type": "object",
1603
+ "properties": {
1604
+ "url": {
1605
+ "type": "object",
1606
+ "properties": {
1607
+ "movie_id": {
1608
+ "type": "number",
1609
+ "description": "Movie ID"
1610
+ }
1611
+ },
1612
+ "required": [
1613
+ "movie_id"
1614
+ ]
1615
+ }
1616
+ },
1617
+ "required": [
1618
+ "url"
1619
+ ]
1620
+ },
1621
+ "responses": {
1622
+ "type": "object",
1623
+ "properties": {
1624
+ "200": {
1625
+ "type": "object",
1626
+ "properties": {
1627
+ "id": {
1628
+ "type": "number",
1629
+ "description": "Video ID"
1630
+ },
1631
+ "results": {
1632
+ "type": "array",
1633
+ "items": {
1634
+ "type": "object",
1635
+ "properties": {
1636
+ "iso_639_1": {
1637
+ "type": "string",
1638
+ "description": "Spoken language ISO 639-1 code"
1639
+ },
1640
+ "iso_3166_1": {
1641
+ "type": "string",
1642
+ "description": "Production country ISO 3166-1 Alpha-2 code"
1643
+ },
1644
+ "name": {
1645
+ "type": "string",
1646
+ "description": "Video name"
1647
+ },
1648
+ "key": {
1649
+ "type": "string",
1650
+ "description": "Video key"
1651
+ },
1652
+ "site": {
1653
+ "type": "string",
1654
+ "description": "Video site"
1655
+ },
1656
+ "size": {
1657
+ "type": "number",
1658
+ "description": "Video size"
1659
+ },
1660
+ "type": {
1661
+ "type": "string",
1662
+ "description": "Video type"
1663
+ },
1664
+ "official": {
1665
+ "type": "boolean",
1666
+ "description": "Video official"
1667
+ },
1668
+ "published_at": {
1669
+ "type": "string",
1670
+ "description": "Video published at"
1671
+ },
1672
+ "id": {
1673
+ "type": "string",
1674
+ "description": "Video ID"
1675
+ }
1676
+ },
1677
+ "required": [
1678
+ "iso_639_1",
1679
+ "iso_3166_1",
1680
+ "name",
1681
+ "key",
1682
+ "site",
1683
+ "size",
1684
+ "type",
1685
+ "official",
1686
+ "published_at",
1687
+ "id"
1688
+ ]
1689
+ },
1690
+ "description": "Videos"
1691
+ }
1692
+ },
1693
+ "required": [
1694
+ "id",
1695
+ "results"
1696
+ ]
1697
+ }
1698
+ },
1699
+ "required": [
1700
+ "200"
1701
+ ]
1702
+ }
1703
+ },
1704
+ "required": [
1705
+ "endpoint",
1706
+ "parameters",
1707
+ "responses"
1708
+ ]
1709
+ }
1710
+ },
1711
+ "required": [
1712
+ "get"
1713
+ ]
1714
+ },
1715
+ "similar": {
1716
+ "type": "object",
1717
+ "properties": {
1718
+ "get": {
1719
+ "type": "object",
1720
+ "properties": {
1721
+ "endpoint": {
1722
+ "type": "string",
1723
+ "const": "/movie/{movie_id}/similar",
1724
+ "description": "Get the similar movies based on genres and keywords."
1725
+ },
1726
+ "parameters": {
1727
+ "type": "object",
1728
+ "properties": {
1729
+ "url": {
1730
+ "type": "object",
1731
+ "properties": {
1732
+ "movie_id": {
1733
+ "type": "number",
1734
+ "description": "Movie ID"
1735
+ }
1736
+ },
1737
+ "required": [
1738
+ "movie_id"
1739
+ ]
1740
+ }
1741
+ },
1742
+ "required": [
1743
+ "url"
1744
+ ]
1745
+ },
1746
+ "responses": {
1747
+ "type": "object",
1748
+ "properties": {
1749
+ "200": {
1750
+ "type": "object",
1751
+ "properties": {
1752
+ "page": {
1753
+ "type": "number",
1754
+ "description": "Page number"
1755
+ },
1756
+ "results": {
1757
+ "type": "array",
1758
+ "items": {
1759
+ "type": "object",
1760
+ "properties": {
1761
+ "id": {
1762
+ "type": "number",
1763
+ "description": "Unique identifier for the movie"
1764
+ },
1765
+ "title": {
1766
+ "type": "string",
1767
+ "description": "Movie title"
1768
+ },
1769
+ "original_title": {
1770
+ "type": "string",
1771
+ "description": "Original movie title (in original language)"
1772
+ },
1773
+ "original_language": {
1774
+ "type": "string",
1775
+ "description": "Original language code (e.g., 'en', 'es', 'fr')"
1776
+ },
1777
+ "overview": {
1778
+ "type": "string",
1779
+ "description": "Movie overview/synopsis"
1780
+ },
1781
+ "poster_path": {
1782
+ "type": "string",
1783
+ "description": "Poster path (relative URL)"
1784
+ },
1785
+ "backdrop_path": {
1786
+ "type": "string",
1787
+ "description": "Backdrop path (relative URL)"
1788
+ },
1789
+ "release_date": {
1790
+ "type": "string",
1791
+ "description": "Release date (YYYY-MM-DD format)"
1792
+ },
1793
+ "vote_average": {
1794
+ "type": "number",
1795
+ "description": "Average vote rating (0-10)"
1796
+ },
1797
+ "vote_count": {
1798
+ "type": "number",
1799
+ "description": "Total number of votes"
1800
+ },
1801
+ "popularity": {
1802
+ "type": "number",
1803
+ "description": "Popularity score"
1804
+ },
1805
+ "adult": {
1806
+ "type": "boolean",
1807
+ "description": "Adult content flag"
1808
+ },
1809
+ "genre_ids": {
1810
+ "type": "array",
1811
+ "items": {
1812
+ "type": "number"
1813
+ },
1814
+ "description": "Array of genre IDs"
1815
+ },
1816
+ "video": {
1817
+ "type": "boolean",
1818
+ "description": "Video flag"
1819
+ }
1820
+ },
1821
+ "required": [
1822
+ "id",
1823
+ "title",
1824
+ "original_title",
1825
+ "original_language",
1826
+ "overview",
1827
+ "poster_path",
1828
+ "backdrop_path",
1829
+ "release_date",
1830
+ "vote_average",
1831
+ "vote_count",
1832
+ "popularity",
1833
+ "adult",
1834
+ "genre_ids",
1835
+ "video"
1836
+ ]
1837
+ },
1838
+ "description": "Movies"
1839
+ },
1840
+ "total_pages": {
1841
+ "type": "number",
1842
+ "description": "Total pages"
1843
+ },
1844
+ "total_results": {
1845
+ "type": "number",
1846
+ "description": "Total results"
1847
+ }
1848
+ },
1849
+ "required": [
1850
+ "page",
1851
+ "results",
1852
+ "total_pages",
1853
+ "total_results"
1854
+ ]
1855
+ }
1856
+ },
1857
+ "required": [
1858
+ "200"
1859
+ ]
1860
+ }
1861
+ },
1862
+ "required": [
1863
+ "endpoint",
1864
+ "parameters",
1865
+ "responses"
1866
+ ]
1867
+ }
1868
+ },
1869
+ "required": [
1870
+ "get"
1871
+ ]
1872
+ }
1873
+ },
1874
+ "required": [
1875
+ "now_playing",
1876
+ "popular",
1877
+ "top_rated",
1878
+ "upcoming",
1879
+ "details",
1880
+ "images",
1881
+ "videos",
1882
+ "similar"
1883
+ ]
1884
+ },
1885
+ "tv": {
1886
+ "type": "object",
1887
+ "properties": {
1888
+ "airing_today": {
1889
+ "type": "object",
1890
+ "properties": {
1891
+ "get": {
1892
+ "type": "object",
1893
+ "properties": {
1894
+ "endpoint": {
1895
+ "type": "string",
1896
+ "const": "/tv/airing_today",
1897
+ "description": "Get a list of TV shows airing today."
1898
+ },
1899
+ "parameters": {
1900
+ "type": "object",
1901
+ "properties": {
1902
+ "query": {
1903
+ "type": "object",
1904
+ "properties": {
1905
+ "page": {
1906
+ "type": "number",
1907
+ "description": "Page number"
1908
+ },
1909
+ "language": {
1910
+ "type": "string",
1911
+ "description": "Language code"
1912
+ }
1913
+ },
1914
+ "required": [
1915
+ "page",
1916
+ "language"
1917
+ ],
1918
+ "description": "Pagination parameters"
1919
+ }
1920
+ },
1921
+ "required": [
1922
+ "query"
1923
+ ]
1924
+ },
1925
+ "responses": {
1926
+ "type": "object",
1927
+ "properties": {
1928
+ "200": {
1929
+ "type": "object",
1930
+ "properties": {
1931
+ "page": {
1932
+ "type": "number",
1933
+ "description": "Page number"
1934
+ },
1935
+ "results": {
1936
+ "type": "array",
1937
+ "items": {
1938
+ "type": "object",
1939
+ "properties": {
1940
+ "backdrop_path": {
1941
+ "anyOf": [
1942
+ {
1943
+ "type": "string"
1944
+ },
1945
+ {
1946
+ "type": "null"
1947
+ }
1948
+ ],
1949
+ "description": "Backdrop path (relative URL)"
1950
+ },
1951
+ "first_air_date": {
1952
+ "anyOf": [
1953
+ {
1954
+ "type": "string"
1955
+ },
1956
+ {
1957
+ "type": "null"
1958
+ }
1959
+ ],
1960
+ "description": "First air date (YYYY-MM-DD format)"
1961
+ },
1962
+ "genre_ids": {
1963
+ "type": "array",
1964
+ "items": {
1965
+ "type": "number"
1966
+ },
1967
+ "description": "Array of genre IDs"
1968
+ },
1969
+ "id": {
1970
+ "type": "number",
1971
+ "description": "Unique identifier for the serie"
1972
+ },
1973
+ "name": {
1974
+ "type": "string",
1975
+ "description": "Serie name"
1976
+ },
1977
+ "origin_country": {
1978
+ "type": "array",
1979
+ "items": {
1980
+ "type": "string"
1981
+ },
1982
+ "description": "Array of origin countries"
1983
+ },
1984
+ "original_language": {
1985
+ "type": "string",
1986
+ "description": "Original language code (e.g., 'en', 'es', 'fr')"
1987
+ },
1988
+ "original_name": {
1989
+ "type": "string",
1990
+ "description": "Original serie name (in original language)"
1991
+ },
1992
+ "overview": {
1993
+ "anyOf": [
1994
+ {
1995
+ "type": "string"
1996
+ },
1997
+ {
1998
+ "type": "null"
1999
+ }
2000
+ ],
2001
+ "description": "Serie overview/synopsis"
2002
+ },
2003
+ "popularity": {
2004
+ "type": "number",
2005
+ "description": "Popularity score"
2006
+ },
2007
+ "poster_path": {
2008
+ "anyOf": [
2009
+ {
2010
+ "type": "string"
2011
+ },
2012
+ {
2013
+ "type": "null"
2014
+ }
2015
+ ],
2016
+ "description": "Poster path (relative URL)"
2017
+ },
2018
+ "vote_average": {
2019
+ "type": "number",
2020
+ "description": "Average vote rating (0-10)"
2021
+ },
2022
+ "vote_count": {
2023
+ "type": "number",
2024
+ "description": "Total number of votes"
2025
+ }
2026
+ },
2027
+ "required": [
2028
+ "backdrop_path",
2029
+ "first_air_date",
2030
+ "genre_ids",
2031
+ "id",
2032
+ "name",
2033
+ "origin_country",
2034
+ "original_language",
2035
+ "original_name",
2036
+ "overview",
2037
+ "popularity",
2038
+ "poster_path",
2039
+ "vote_average",
2040
+ "vote_count"
2041
+ ]
2042
+ },
2043
+ "description": "Series"
2044
+ },
2045
+ "total_pages": {
2046
+ "type": "number",
2047
+ "description": "Total pages"
2048
+ },
2049
+ "total_results": {
2050
+ "type": "number",
2051
+ "description": "Total results"
2052
+ }
2053
+ },
2054
+ "required": [
2055
+ "page",
2056
+ "results",
2057
+ "total_pages",
2058
+ "total_results"
2059
+ ]
2060
+ }
2061
+ },
2062
+ "required": [
2063
+ "200"
2064
+ ]
2065
+ }
2066
+ },
2067
+ "required": [
2068
+ "endpoint",
2069
+ "parameters",
2070
+ "responses"
2071
+ ]
2072
+ }
2073
+ },
2074
+ "required": [
2075
+ "get"
2076
+ ]
2077
+ },
2078
+ "on_the_air": {
2079
+ "type": "object",
2080
+ "properties": {
2081
+ "get": {
2082
+ "type": "object",
2083
+ "properties": {
2084
+ "endpoint": {
2085
+ "type": "string",
2086
+ "const": "/tv/on_the_air",
2087
+ "description": "Get a list of TV shows that air in the next 7 days."
2088
+ },
2089
+ "parameters": {
2090
+ "type": "object",
2091
+ "properties": {
2092
+ "query": {
2093
+ "type": "object",
2094
+ "properties": {
2095
+ "page": {
2096
+ "type": "number",
2097
+ "description": "Page number"
2098
+ },
2099
+ "language": {
2100
+ "type": "string",
2101
+ "description": "Language code"
2102
+ }
2103
+ },
2104
+ "required": [
2105
+ "page",
2106
+ "language"
2107
+ ],
2108
+ "description": "Pagination parameters"
2109
+ }
2110
+ },
2111
+ "required": [
2112
+ "query"
2113
+ ]
2114
+ },
2115
+ "responses": {
2116
+ "type": "object",
2117
+ "properties": {
2118
+ "200": {
2119
+ "type": "object",
2120
+ "properties": {
2121
+ "page": {
2122
+ "type": "number",
2123
+ "description": "Page number"
2124
+ },
2125
+ "results": {
2126
+ "type": "array",
2127
+ "items": {
2128
+ "type": "object",
2129
+ "properties": {
2130
+ "backdrop_path": {
2131
+ "anyOf": [
2132
+ {
2133
+ "type": "string"
2134
+ },
2135
+ {
2136
+ "type": "null"
2137
+ }
2138
+ ],
2139
+ "description": "Backdrop path (relative URL)"
2140
+ },
2141
+ "first_air_date": {
2142
+ "anyOf": [
2143
+ {
2144
+ "type": "string"
2145
+ },
2146
+ {
2147
+ "type": "null"
2148
+ }
2149
+ ],
2150
+ "description": "First air date (YYYY-MM-DD format)"
2151
+ },
2152
+ "genre_ids": {
2153
+ "type": "array",
2154
+ "items": {
2155
+ "type": "number"
2156
+ },
2157
+ "description": "Array of genre IDs"
2158
+ },
2159
+ "id": {
2160
+ "type": "number",
2161
+ "description": "Unique identifier for the serie"
2162
+ },
2163
+ "name": {
2164
+ "type": "string",
2165
+ "description": "Serie name"
2166
+ },
2167
+ "origin_country": {
2168
+ "type": "array",
2169
+ "items": {
2170
+ "type": "string"
2171
+ },
2172
+ "description": "Array of origin countries"
2173
+ },
2174
+ "original_language": {
2175
+ "type": "string",
2176
+ "description": "Original language code (e.g., 'en', 'es', 'fr')"
2177
+ },
2178
+ "original_name": {
2179
+ "type": "string",
2180
+ "description": "Original serie name (in original language)"
2181
+ },
2182
+ "overview": {
2183
+ "anyOf": [
2184
+ {
2185
+ "type": "string"
2186
+ },
2187
+ {
2188
+ "type": "null"
2189
+ }
2190
+ ],
2191
+ "description": "Serie overview/synopsis"
2192
+ },
2193
+ "popularity": {
2194
+ "type": "number",
2195
+ "description": "Popularity score"
2196
+ },
2197
+ "poster_path": {
2198
+ "anyOf": [
2199
+ {
2200
+ "type": "string"
2201
+ },
2202
+ {
2203
+ "type": "null"
2204
+ }
2205
+ ],
2206
+ "description": "Poster path (relative URL)"
2207
+ },
2208
+ "vote_average": {
2209
+ "type": "number",
2210
+ "description": "Average vote rating (0-10)"
2211
+ },
2212
+ "vote_count": {
2213
+ "type": "number",
2214
+ "description": "Total number of votes"
2215
+ }
2216
+ },
2217
+ "required": [
2218
+ "backdrop_path",
2219
+ "first_air_date",
2220
+ "genre_ids",
2221
+ "id",
2222
+ "name",
2223
+ "origin_country",
2224
+ "original_language",
2225
+ "original_name",
2226
+ "overview",
2227
+ "popularity",
2228
+ "poster_path",
2229
+ "vote_average",
2230
+ "vote_count"
2231
+ ]
2232
+ },
2233
+ "description": "Series"
2234
+ },
2235
+ "total_pages": {
2236
+ "type": "number",
2237
+ "description": "Total pages"
2238
+ },
2239
+ "total_results": {
2240
+ "type": "number",
2241
+ "description": "Total results"
2242
+ }
2243
+ },
2244
+ "required": [
2245
+ "page",
2246
+ "results",
2247
+ "total_pages",
2248
+ "total_results"
2249
+ ]
2250
+ }
2251
+ },
2252
+ "required": [
2253
+ "200"
2254
+ ]
2255
+ }
2256
+ },
2257
+ "required": [
2258
+ "endpoint",
2259
+ "parameters",
2260
+ "responses"
2261
+ ]
2262
+ }
2263
+ },
2264
+ "required": [
2265
+ "get"
2266
+ ]
2267
+ },
2268
+ "popular": {
2269
+ "type": "object",
2270
+ "properties": {
2271
+ "get": {
2272
+ "type": "object",
2273
+ "properties": {
2274
+ "endpoint": {
2275
+ "type": "string",
2276
+ "const": "/tv/popular",
2277
+ "description": "Get a list of TV shows ordered by popularity."
2278
+ },
2279
+ "parameters": {
2280
+ "type": "object",
2281
+ "properties": {
2282
+ "query": {
2283
+ "type": "object",
2284
+ "properties": {
2285
+ "page": {
2286
+ "type": "number",
2287
+ "description": "Page number"
2288
+ },
2289
+ "language": {
2290
+ "type": "string",
2291
+ "description": "Language code"
2292
+ }
2293
+ },
2294
+ "required": [
2295
+ "page",
2296
+ "language"
2297
+ ],
2298
+ "description": "Pagination parameters"
2299
+ }
2300
+ },
2301
+ "required": [
2302
+ "query"
2303
+ ]
2304
+ },
2305
+ "responses": {
2306
+ "type": "object",
2307
+ "properties": {
2308
+ "200": {
2309
+ "type": "object",
2310
+ "properties": {
2311
+ "page": {
2312
+ "type": "number",
2313
+ "description": "Page number"
2314
+ },
2315
+ "results": {
2316
+ "type": "array",
2317
+ "items": {
2318
+ "type": "object",
2319
+ "properties": {
2320
+ "backdrop_path": {
2321
+ "anyOf": [
2322
+ {
2323
+ "type": "string"
2324
+ },
2325
+ {
2326
+ "type": "null"
2327
+ }
2328
+ ],
2329
+ "description": "Backdrop path (relative URL)"
2330
+ },
2331
+ "first_air_date": {
2332
+ "anyOf": [
2333
+ {
2334
+ "type": "string"
2335
+ },
2336
+ {
2337
+ "type": "null"
2338
+ }
2339
+ ],
2340
+ "description": "First air date (YYYY-MM-DD format)"
2341
+ },
2342
+ "genre_ids": {
2343
+ "type": "array",
2344
+ "items": {
2345
+ "type": "number"
2346
+ },
2347
+ "description": "Array of genre IDs"
2348
+ },
2349
+ "id": {
2350
+ "type": "number",
2351
+ "description": "Unique identifier for the serie"
2352
+ },
2353
+ "name": {
2354
+ "type": "string",
2355
+ "description": "Serie name"
2356
+ },
2357
+ "origin_country": {
2358
+ "type": "array",
2359
+ "items": {
2360
+ "type": "string"
2361
+ },
2362
+ "description": "Array of origin countries"
2363
+ },
2364
+ "original_language": {
2365
+ "type": "string",
2366
+ "description": "Original language code (e.g., 'en', 'es', 'fr')"
2367
+ },
2368
+ "original_name": {
2369
+ "type": "string",
2370
+ "description": "Original serie name (in original language)"
2371
+ },
2372
+ "overview": {
2373
+ "anyOf": [
2374
+ {
2375
+ "type": "string"
2376
+ },
2377
+ {
2378
+ "type": "null"
2379
+ }
2380
+ ],
2381
+ "description": "Serie overview/synopsis"
2382
+ },
2383
+ "popularity": {
2384
+ "type": "number",
2385
+ "description": "Popularity score"
2386
+ },
2387
+ "poster_path": {
2388
+ "anyOf": [
2389
+ {
2390
+ "type": "string"
2391
+ },
2392
+ {
2393
+ "type": "null"
2394
+ }
2395
+ ],
2396
+ "description": "Poster path (relative URL)"
2397
+ },
2398
+ "vote_average": {
2399
+ "type": "number",
2400
+ "description": "Average vote rating (0-10)"
2401
+ },
2402
+ "vote_count": {
2403
+ "type": "number",
2404
+ "description": "Total number of votes"
2405
+ }
2406
+ },
2407
+ "required": [
2408
+ "backdrop_path",
2409
+ "first_air_date",
2410
+ "genre_ids",
2411
+ "id",
2412
+ "name",
2413
+ "origin_country",
2414
+ "original_language",
2415
+ "original_name",
2416
+ "overview",
2417
+ "popularity",
2418
+ "poster_path",
2419
+ "vote_average",
2420
+ "vote_count"
2421
+ ]
2422
+ },
2423
+ "description": "Series"
2424
+ },
2425
+ "total_pages": {
2426
+ "type": "number",
2427
+ "description": "Total pages"
2428
+ },
2429
+ "total_results": {
2430
+ "type": "number",
2431
+ "description": "Total results"
2432
+ }
2433
+ },
2434
+ "required": [
2435
+ "page",
2436
+ "results",
2437
+ "total_pages",
2438
+ "total_results"
2439
+ ]
2440
+ }
2441
+ },
2442
+ "required": [
2443
+ "200"
2444
+ ]
2445
+ }
2446
+ },
2447
+ "required": [
2448
+ "endpoint",
2449
+ "parameters",
2450
+ "responses"
2451
+ ]
2452
+ }
2453
+ },
2454
+ "required": [
2455
+ "get"
2456
+ ]
2457
+ },
2458
+ "top_rated": {
2459
+ "type": "object",
2460
+ "properties": {
2461
+ "get": {
2462
+ "type": "object",
2463
+ "properties": {
2464
+ "endpoint": {
2465
+ "type": "string",
2466
+ "const": "/tv/top_rated",
2467
+ "description": "Get a list of TV shows ordered by rating."
2468
+ },
2469
+ "parameters": {
2470
+ "type": "object",
2471
+ "properties": {
2472
+ "query": {
2473
+ "type": "object",
2474
+ "properties": {
2475
+ "page": {
2476
+ "type": "number",
2477
+ "description": "Page number"
2478
+ },
2479
+ "language": {
2480
+ "type": "string",
2481
+ "description": "Language code"
2482
+ }
2483
+ },
2484
+ "required": [
2485
+ "page",
2486
+ "language"
2487
+ ],
2488
+ "description": "Pagination parameters"
2489
+ }
2490
+ },
2491
+ "required": [
2492
+ "query"
2493
+ ]
2494
+ },
2495
+ "responses": {
2496
+ "type": "object",
2497
+ "properties": {
2498
+ "200": {
2499
+ "type": "object",
2500
+ "properties": {
2501
+ "page": {
2502
+ "type": "number",
2503
+ "description": "Page number"
2504
+ },
2505
+ "results": {
2506
+ "type": "array",
2507
+ "items": {
2508
+ "type": "object",
2509
+ "properties": {
2510
+ "backdrop_path": {
2511
+ "anyOf": [
2512
+ {
2513
+ "type": "string"
2514
+ },
2515
+ {
2516
+ "type": "null"
2517
+ }
2518
+ ],
2519
+ "description": "Backdrop path (relative URL)"
2520
+ },
2521
+ "first_air_date": {
2522
+ "anyOf": [
2523
+ {
2524
+ "type": "string"
2525
+ },
2526
+ {
2527
+ "type": "null"
2528
+ }
2529
+ ],
2530
+ "description": "First air date (YYYY-MM-DD format)"
2531
+ },
2532
+ "genre_ids": {
2533
+ "type": "array",
2534
+ "items": {
2535
+ "type": "number"
2536
+ },
2537
+ "description": "Array of genre IDs"
2538
+ },
2539
+ "id": {
2540
+ "type": "number",
2541
+ "description": "Unique identifier for the serie"
2542
+ },
2543
+ "name": {
2544
+ "type": "string",
2545
+ "description": "Serie name"
2546
+ },
2547
+ "origin_country": {
2548
+ "type": "array",
2549
+ "items": {
2550
+ "type": "string"
2551
+ },
2552
+ "description": "Array of origin countries"
2553
+ },
2554
+ "original_language": {
2555
+ "type": "string",
2556
+ "description": "Original language code (e.g., 'en', 'es', 'fr')"
2557
+ },
2558
+ "original_name": {
2559
+ "type": "string",
2560
+ "description": "Original serie name (in original language)"
2561
+ },
2562
+ "overview": {
2563
+ "anyOf": [
2564
+ {
2565
+ "type": "string"
2566
+ },
2567
+ {
2568
+ "type": "null"
2569
+ }
2570
+ ],
2571
+ "description": "Serie overview/synopsis"
2572
+ },
2573
+ "popularity": {
2574
+ "type": "number",
2575
+ "description": "Popularity score"
2576
+ },
2577
+ "poster_path": {
2578
+ "anyOf": [
2579
+ {
2580
+ "type": "string"
2581
+ },
2582
+ {
2583
+ "type": "null"
2584
+ }
2585
+ ],
2586
+ "description": "Poster path (relative URL)"
2587
+ },
2588
+ "vote_average": {
2589
+ "type": "number",
2590
+ "description": "Average vote rating (0-10)"
2591
+ },
2592
+ "vote_count": {
2593
+ "type": "number",
2594
+ "description": "Total number of votes"
2595
+ }
2596
+ },
2597
+ "required": [
2598
+ "backdrop_path",
2599
+ "first_air_date",
2600
+ "genre_ids",
2601
+ "id",
2602
+ "name",
2603
+ "origin_country",
2604
+ "original_language",
2605
+ "original_name",
2606
+ "overview",
2607
+ "popularity",
2608
+ "poster_path",
2609
+ "vote_average",
2610
+ "vote_count"
2611
+ ]
2612
+ },
2613
+ "description": "Series"
2614
+ },
2615
+ "total_pages": {
2616
+ "type": "number",
2617
+ "description": "Total pages"
2618
+ },
2619
+ "total_results": {
2620
+ "type": "number",
2621
+ "description": "Total results"
2622
+ }
2623
+ },
2624
+ "required": [
2625
+ "page",
2626
+ "results",
2627
+ "total_pages",
2628
+ "total_results"
2629
+ ]
2630
+ }
2631
+ },
2632
+ "required": [
2633
+ "200"
2634
+ ]
2635
+ }
2636
+ },
2637
+ "required": [
2638
+ "endpoint",
2639
+ "parameters",
2640
+ "responses"
2641
+ ]
2642
+ }
2643
+ },
2644
+ "required": [
2645
+ "get"
2646
+ ]
2647
+ },
2648
+ "details": {
2649
+ "type": "object",
2650
+ "properties": {
2651
+ "get": {
2652
+ "type": "object",
2653
+ "properties": {
2654
+ "endpoint": {
2655
+ "type": "string",
2656
+ "const": "/tv/{tv_id}",
2657
+ "description": "Get the top level details of a TV show by ID."
2658
+ },
2659
+ "parameters": {
2660
+ "type": "object",
2661
+ "properties": {
2662
+ "url": {
2663
+ "type": "object",
2664
+ "properties": {
2665
+ "tv_id": {
2666
+ "type": "number",
2667
+ "description": "TV ID"
2668
+ }
2669
+ },
2670
+ "required": [
2671
+ "tv_id"
2672
+ ]
2673
+ },
2674
+ "query": {
2675
+ "type": "object",
2676
+ "properties": {
2677
+ "append_to_response": {
2678
+ "description": "Append to response",
2679
+ "type": "string"
2680
+ },
2681
+ "include_image_language": {
2682
+ "description": "Include image language",
2683
+ "type": "string"
2684
+ },
2685
+ "language": {
2686
+ "description": "Language",
2687
+ "type": "string"
2688
+ }
2689
+ }
2690
+ }
2691
+ },
2692
+ "required": [
2693
+ "url",
2694
+ "query"
2695
+ ]
2696
+ },
2697
+ "responses": {
2698
+ "type": "object",
2699
+ "properties": {
2700
+ "200": {
2701
+ "type": "object",
2702
+ "properties": {
2703
+ "backdrop_path": {
2704
+ "anyOf": [
2705
+ {
2706
+ "type": "string"
2707
+ },
2708
+ {
2709
+ "type": "null"
2710
+ }
2711
+ ],
2712
+ "description": "Backdrop path (relative URL)"
2713
+ },
2714
+ "first_air_date": {
2715
+ "anyOf": [
2716
+ {
2717
+ "type": "string"
2718
+ },
2719
+ {
2720
+ "type": "null"
2721
+ }
2722
+ ],
2723
+ "description": "First air date (YYYY-MM-DD format)"
2724
+ },
2725
+ "id": {
2726
+ "type": "number",
2727
+ "description": "Unique identifier for the serie"
2728
+ },
2729
+ "name": {
2730
+ "type": "string",
2731
+ "description": "Serie name"
2732
+ },
2733
+ "origin_country": {
2734
+ "type": "array",
2735
+ "items": {
2736
+ "type": "string"
2737
+ },
2738
+ "description": "Array of origin countries"
2739
+ },
2740
+ "original_language": {
2741
+ "type": "string",
2742
+ "description": "Original language code (e.g., 'en', 'es', 'fr')"
2743
+ },
2744
+ "original_name": {
2745
+ "type": "string",
2746
+ "description": "Original serie name (in original language)"
2747
+ },
2748
+ "overview": {
2749
+ "anyOf": [
2750
+ {
2751
+ "type": "string"
2752
+ },
2753
+ {
2754
+ "type": "null"
2755
+ }
2756
+ ],
2757
+ "description": "Serie overview/synopsis"
2758
+ },
2759
+ "popularity": {
2760
+ "type": "number",
2761
+ "description": "Popularity score"
2762
+ },
2763
+ "poster_path": {
2764
+ "anyOf": [
2765
+ {
2766
+ "type": "string"
2767
+ },
2768
+ {
2769
+ "type": "null"
2770
+ }
2771
+ ],
2772
+ "description": "Poster path (relative URL)"
2773
+ },
2774
+ "vote_average": {
2775
+ "type": "number",
2776
+ "description": "Average vote rating (0-10)"
2777
+ },
2778
+ "vote_count": {
2779
+ "type": "number",
2780
+ "description": "Total number of votes"
2781
+ },
2782
+ "adult": {
2783
+ "type": "boolean",
2784
+ "description": "Adult content flag"
2785
+ },
2786
+ "created_by": {
2787
+ "type": "array",
2788
+ "items": {
2789
+ "type": "object",
2790
+ "properties": {
2791
+ "id": {
2792
+ "type": "number",
2793
+ "description": "Unique identifier for the creator"
2794
+ },
2795
+ "credit_id": {
2796
+ "type": "string",
2797
+ "description": "Credit ID"
2798
+ },
2799
+ "name": {
2800
+ "type": "string",
2801
+ "description": "Creator name"
2802
+ },
2803
+ "gender": {
2804
+ "type": "number",
2805
+ "description": "Creator gender"
2806
+ },
2807
+ "profile_path": {
2808
+ "anyOf": [
2809
+ {
2810
+ "type": "string"
2811
+ },
2812
+ {
2813
+ "type": "null"
2814
+ }
2815
+ ],
2816
+ "description": "Creator profile path (relative URL)"
2817
+ }
2818
+ },
2819
+ "required": [
2820
+ "id",
2821
+ "credit_id",
2822
+ "name",
2823
+ "gender",
2824
+ "profile_path"
2825
+ ]
2826
+ },
2827
+ "description": "Creators of the serie"
2828
+ },
2829
+ "episode_run_time": {
2830
+ "type": "array",
2831
+ "items": {
2832
+ "type": "number"
2833
+ },
2834
+ "description": "Episode runtime in minutes"
2835
+ },
2836
+ "genres": {
2837
+ "type": "array",
2838
+ "items": {
2839
+ "type": "object",
2840
+ "properties": {
2841
+ "id": {
2842
+ "type": "number",
2843
+ "description": "Unique identifier for the genre"
2844
+ },
2845
+ "name": {
2846
+ "type": "string",
2847
+ "description": "Genre name"
2848
+ }
2849
+ },
2850
+ "required": [
2851
+ "id",
2852
+ "name"
2853
+ ]
2854
+ },
2855
+ "description": "Genres of the serie"
2856
+ },
2857
+ "homepage": {
2858
+ "anyOf": [
2859
+ {
2860
+ "type": "string"
2861
+ },
2862
+ {
2863
+ "type": "null"
2864
+ }
2865
+ ],
2866
+ "description": "Homepage URL"
2867
+ },
2868
+ "in_production": {
2869
+ "type": "boolean",
2870
+ "description": "In production flag"
2871
+ },
2872
+ "languages": {
2873
+ "type": "array",
2874
+ "items": {
2875
+ "type": "string"
2876
+ },
2877
+ "description": "Languages of the serie"
2878
+ },
2879
+ "last_air_date": {
2880
+ "type": "string",
2881
+ "description": "Last air date (YYYY-MM-DD format)"
2882
+ },
2883
+ "last_episode_to_air": {
2884
+ "type": "object",
2885
+ "properties": {
2886
+ "id": {
2887
+ "type": "number",
2888
+ "description": "Unique identifier for the episode"
2889
+ },
2890
+ "name": {
2891
+ "type": "string",
2892
+ "description": "Episode name"
2893
+ },
2894
+ "overview": {
2895
+ "anyOf": [
2896
+ {
2897
+ "type": "string"
2898
+ },
2899
+ {
2900
+ "type": "null"
2901
+ }
2902
+ ],
2903
+ "description": "Episode overview/synopsis"
2904
+ },
2905
+ "vote_average": {
2906
+ "type": "number",
2907
+ "description": "Average vote rating (0-10)"
2908
+ },
2909
+ "vote_count": {
2910
+ "type": "number",
2911
+ "description": "Total number of votes"
2912
+ },
2913
+ "air_date": {
2914
+ "type": "string",
2915
+ "description": "Air date (YYYY-MM-DD format)"
2916
+ },
2917
+ "episode_number": {
2918
+ "type": "number",
2919
+ "description": "Episode number"
2920
+ },
2921
+ "production_code": {
2922
+ "type": "string",
2923
+ "description": "Production code"
2924
+ },
2925
+ "runtime": {
2926
+ "anyOf": [
2927
+ {
2928
+ "type": "number"
2929
+ },
2930
+ {
2931
+ "type": "null"
2932
+ }
2933
+ ],
2934
+ "description": "Runtime in minutes"
2935
+ },
2936
+ "season_number": {
2937
+ "type": "number",
2938
+ "description": "Season number"
2939
+ },
2940
+ "show_id": {
2941
+ "type": "number",
2942
+ "description": "Show ID"
2943
+ },
2944
+ "still_path": {
2945
+ "anyOf": [
2946
+ {
2947
+ "type": "string"
2948
+ },
2949
+ {
2950
+ "type": "null"
2951
+ }
2952
+ ],
2953
+ "description": "Still path (relative URL)"
2954
+ }
2955
+ },
2956
+ "required": [
2957
+ "id",
2958
+ "name",
2959
+ "overview",
2960
+ "vote_average",
2961
+ "vote_count",
2962
+ "air_date",
2963
+ "episode_number",
2964
+ "production_code",
2965
+ "runtime",
2966
+ "season_number",
2967
+ "show_id",
2968
+ "still_path"
2969
+ ],
2970
+ "description": "Last episode to air"
2971
+ },
2972
+ "next_episode_to_air": {
2973
+ "type": "string",
2974
+ "description": "Next episode to air"
2975
+ },
2976
+ "networks": {
2977
+ "type": "array",
2978
+ "items": {
2979
+ "type": "object",
2980
+ "properties": {
2981
+ "id": {
2982
+ "type": "number",
2983
+ "description": "Unique identifier for the network"
2984
+ },
2985
+ "name": {
2986
+ "type": "string",
2987
+ "description": "Network name"
2988
+ },
2989
+ "logo_path": {
2990
+ "anyOf": [
2991
+ {
2992
+ "type": "string"
2993
+ },
2994
+ {
2995
+ "type": "null"
2996
+ }
2997
+ ],
2998
+ "description": "Logo path (relative URL)"
2999
+ },
3000
+ "origin_country": {
3001
+ "type": "string",
3002
+ "description": "Network origin country"
3003
+ }
3004
+ },
3005
+ "required": [
3006
+ "id",
3007
+ "name",
3008
+ "logo_path",
3009
+ "origin_country"
3010
+ ]
3011
+ },
3012
+ "description": "Networks of the serie"
3013
+ },
3014
+ "number_of_episodes": {
3015
+ "type": "number",
3016
+ "description": "Number of episodes"
3017
+ },
3018
+ "number_of_seasons": {
3019
+ "type": "number",
3020
+ "description": "Number of seasons"
3021
+ },
3022
+ "production_companies": {
3023
+ "type": "array",
3024
+ "items": {
3025
+ "type": "object",
3026
+ "properties": {
3027
+ "id": {
3028
+ "type": "number",
3029
+ "description": "Unique identifier for the production company"
3030
+ },
3031
+ "name": {
3032
+ "type": "string",
3033
+ "description": "Production company name"
3034
+ },
3035
+ "logo_path": {
3036
+ "anyOf": [
3037
+ {
3038
+ "type": "string"
3039
+ },
3040
+ {
3041
+ "type": "null"
3042
+ }
3043
+ ],
3044
+ "description": "Logo path (relative URL)"
3045
+ },
3046
+ "origin_country": {
3047
+ "type": "string",
3048
+ "description": "Production company origin country"
3049
+ }
3050
+ },
3051
+ "required": [
3052
+ "id",
3053
+ "name",
3054
+ "logo_path",
3055
+ "origin_country"
3056
+ ]
3057
+ },
3058
+ "description": "Production companies of the serie"
3059
+ },
3060
+ "production_countries": {
3061
+ "type": "array",
3062
+ "items": {
3063
+ "type": "object",
3064
+ "properties": {
3065
+ "iso_3166_1": {
3066
+ "type": "string",
3067
+ "description": "Production country ISO 3166-1 Alpha-2 code"
3068
+ },
3069
+ "name": {
3070
+ "type": "string",
3071
+ "description": "Production country name"
3072
+ }
3073
+ },
3074
+ "required": [
3075
+ "iso_3166_1",
3076
+ "name"
3077
+ ]
3078
+ },
3079
+ "description": "Production countries of the serie"
3080
+ },
3081
+ "seasons": {
3082
+ "type": "array",
3083
+ "items": {
3084
+ "type": "object",
3085
+ "properties": {
3086
+ "air_date": {
3087
+ "type": "string",
3088
+ "description": "Air date (YYYY-MM-DD format)"
3089
+ },
3090
+ "episode_count": {
3091
+ "type": "number",
3092
+ "description": "Episode count"
3093
+ },
3094
+ "id": {
3095
+ "type": "number",
3096
+ "description": "Unique identifier for the season"
3097
+ },
3098
+ "name": {
3099
+ "type": "string",
3100
+ "description": "Season name"
3101
+ },
3102
+ "overview": {
3103
+ "anyOf": [
3104
+ {
3105
+ "type": "string"
3106
+ },
3107
+ {
3108
+ "type": "null"
3109
+ }
3110
+ ],
3111
+ "description": "Season overview/synopsis"
3112
+ },
3113
+ "poster_path": {
3114
+ "anyOf": [
3115
+ {
3116
+ "type": "string"
3117
+ },
3118
+ {
3119
+ "type": "null"
3120
+ }
3121
+ ],
3122
+ "description": "Poster path (relative URL)"
3123
+ },
3124
+ "season_number": {
3125
+ "type": "number",
3126
+ "description": "Season number"
3127
+ }
3128
+ },
3129
+ "required": [
3130
+ "air_date",
3131
+ "episode_count",
3132
+ "id",
3133
+ "name",
3134
+ "overview",
3135
+ "poster_path",
3136
+ "season_number"
3137
+ ]
3138
+ },
3139
+ "description": "Seasons of the serie"
3140
+ },
3141
+ "spoken_languages": {
3142
+ "type": "array",
3143
+ "items": {
3144
+ "type": "object",
3145
+ "properties": {
3146
+ "iso_639_1": {
3147
+ "type": "string",
3148
+ "description": "Spoken language ISO 639-1 code"
3149
+ },
3150
+ "name": {
3151
+ "type": "string",
3152
+ "description": "Spoken language name"
3153
+ },
3154
+ "english_name": {
3155
+ "type": "string",
3156
+ "description": "Spoken language English name"
3157
+ }
3158
+ },
3159
+ "required": [
3160
+ "iso_639_1",
3161
+ "name",
3162
+ "english_name"
3163
+ ]
3164
+ },
3165
+ "description": "Spoken languages of the serie"
3166
+ },
3167
+ "status": {
3168
+ "type": "string",
3169
+ "description": "Status of the serie"
3170
+ },
3171
+ "tagline": {
3172
+ "anyOf": [
3173
+ {
3174
+ "type": "string"
3175
+ },
3176
+ {
3177
+ "type": "null"
3178
+ }
3179
+ ],
3180
+ "description": "Tagline of the serie"
3181
+ },
3182
+ "type": {
3183
+ "type": "string",
3184
+ "description": "Type of the serie"
3185
+ }
3186
+ },
3187
+ "required": [
3188
+ "backdrop_path",
3189
+ "first_air_date",
3190
+ "id",
3191
+ "name",
3192
+ "origin_country",
3193
+ "original_language",
3194
+ "original_name",
3195
+ "overview",
3196
+ "popularity",
3197
+ "poster_path",
3198
+ "vote_average",
3199
+ "vote_count",
3200
+ "adult",
3201
+ "created_by",
3202
+ "episode_run_time",
3203
+ "genres",
3204
+ "homepage",
3205
+ "in_production",
3206
+ "languages",
3207
+ "last_air_date",
3208
+ "last_episode_to_air",
3209
+ "next_episode_to_air",
3210
+ "networks",
3211
+ "number_of_episodes",
3212
+ "number_of_seasons",
3213
+ "production_companies",
3214
+ "production_countries",
3215
+ "seasons",
3216
+ "spoken_languages",
3217
+ "status",
3218
+ "tagline",
3219
+ "type"
3220
+ ]
3221
+ }
3222
+ },
3223
+ "required": [
3224
+ "200"
3225
+ ]
3226
+ }
3227
+ },
3228
+ "required": [
3229
+ "endpoint",
3230
+ "parameters",
3231
+ "responses"
3232
+ ]
3233
+ }
3234
+ },
3235
+ "required": [
3236
+ "get"
3237
+ ]
3238
+ },
3239
+ "images": {
3240
+ "type": "object",
3241
+ "properties": {
3242
+ "get": {
3243
+ "type": "object",
3244
+ "properties": {
3245
+ "endpoint": {
3246
+ "type": "string",
3247
+ "const": "/tv/{tv_id}/images",
3248
+ "description": "Get the images that belong to a TV show."
3249
+ },
3250
+ "parameters": {
3251
+ "type": "object",
3252
+ "properties": {
3253
+ "url": {
3254
+ "type": "object",
3255
+ "properties": {
3256
+ "tv_id": {
3257
+ "type": "number",
3258
+ "description": "TV ID"
3259
+ }
3260
+ },
3261
+ "required": [
3262
+ "tv_id"
3263
+ ]
3264
+ }
3265
+ },
3266
+ "required": [
3267
+ "url"
3268
+ ]
3269
+ },
3270
+ "responses": {
3271
+ "type": "object",
3272
+ "properties": {
3273
+ "200": {
3274
+ "type": "object",
3275
+ "properties": {
3276
+ "id": {
3277
+ "type": "number",
3278
+ "description": "Image ID"
3279
+ },
3280
+ "backdrops": {
3281
+ "type": "array",
3282
+ "items": {
3283
+ "type": "object",
3284
+ "properties": {
3285
+ "aspect_ratio": {
3286
+ "type": "number",
3287
+ "description": "Aspect ratio"
3288
+ },
3289
+ "height": {
3290
+ "type": "number",
3291
+ "description": "Height"
3292
+ },
3293
+ "iso_639_1": {
3294
+ "anyOf": [
3295
+ {
3296
+ "type": "string"
3297
+ },
3298
+ {
3299
+ "type": "null"
3300
+ }
3301
+ ],
3302
+ "description": "Spoken language ISO 639-1 code"
3303
+ },
3304
+ "file_path": {
3305
+ "type": "string",
3306
+ "description": "File path"
3307
+ },
3308
+ "vote_average": {
3309
+ "type": "number",
3310
+ "description": "Vote average"
3311
+ },
3312
+ "vote_count": {
3313
+ "type": "number",
3314
+ "description": "Vote count"
3315
+ },
3316
+ "width": {
3317
+ "type": "number",
3318
+ "description": "Width"
3319
+ }
3320
+ },
3321
+ "required": [
3322
+ "aspect_ratio",
3323
+ "height",
3324
+ "iso_639_1",
3325
+ "file_path",
3326
+ "vote_average",
3327
+ "vote_count",
3328
+ "width"
3329
+ ]
3330
+ },
3331
+ "description": "Backdrops"
3332
+ },
3333
+ "logos": {
3334
+ "type": "array",
3335
+ "items": {
3336
+ "type": "object",
3337
+ "properties": {
3338
+ "aspect_ratio": {
3339
+ "type": "number",
3340
+ "description": "Aspect ratio"
3341
+ },
3342
+ "height": {
3343
+ "type": "number",
3344
+ "description": "Height"
3345
+ },
3346
+ "iso_639_1": {
3347
+ "anyOf": [
3348
+ {
3349
+ "type": "string"
3350
+ },
3351
+ {
3352
+ "type": "null"
3353
+ }
3354
+ ],
3355
+ "description": "Spoken language ISO 639-1 code"
3356
+ },
3357
+ "file_path": {
3358
+ "type": "string",
3359
+ "description": "File path"
3360
+ },
3361
+ "vote_average": {
3362
+ "type": "number",
3363
+ "description": "Vote average"
3364
+ },
3365
+ "vote_count": {
3366
+ "type": "number",
3367
+ "description": "Vote count"
3368
+ },
3369
+ "width": {
3370
+ "type": "number",
3371
+ "description": "Width"
3372
+ }
3373
+ },
3374
+ "required": [
3375
+ "aspect_ratio",
3376
+ "height",
3377
+ "iso_639_1",
3378
+ "file_path",
3379
+ "vote_average",
3380
+ "vote_count",
3381
+ "width"
3382
+ ]
3383
+ },
3384
+ "description": "Logos"
3385
+ },
3386
+ "posters": {
3387
+ "type": "array",
3388
+ "items": {
3389
+ "type": "object",
3390
+ "properties": {
3391
+ "aspect_ratio": {
3392
+ "type": "number",
3393
+ "description": "Aspect ratio"
3394
+ },
3395
+ "height": {
3396
+ "type": "number",
3397
+ "description": "Height"
3398
+ },
3399
+ "iso_639_1": {
3400
+ "anyOf": [
3401
+ {
3402
+ "type": "string"
3403
+ },
3404
+ {
3405
+ "type": "null"
3406
+ }
3407
+ ],
3408
+ "description": "Spoken language ISO 639-1 code"
3409
+ },
3410
+ "file_path": {
3411
+ "type": "string",
3412
+ "description": "File path"
3413
+ },
3414
+ "vote_average": {
3415
+ "type": "number",
3416
+ "description": "Vote average"
3417
+ },
3418
+ "vote_count": {
3419
+ "type": "number",
3420
+ "description": "Vote count"
3421
+ },
3422
+ "width": {
3423
+ "type": "number",
3424
+ "description": "Width"
3425
+ }
3426
+ },
3427
+ "required": [
3428
+ "aspect_ratio",
3429
+ "height",
3430
+ "iso_639_1",
3431
+ "file_path",
3432
+ "vote_average",
3433
+ "vote_count",
3434
+ "width"
3435
+ ]
3436
+ },
3437
+ "description": "Posters"
3438
+ }
3439
+ },
3440
+ "required": [
3441
+ "id",
3442
+ "backdrops",
3443
+ "logos",
3444
+ "posters"
3445
+ ]
3446
+ }
3447
+ },
3448
+ "required": [
3449
+ "200"
3450
+ ]
3451
+ }
3452
+ },
3453
+ "required": [
3454
+ "endpoint",
3455
+ "parameters",
3456
+ "responses"
3457
+ ]
3458
+ }
3459
+ },
3460
+ "required": [
3461
+ "get"
3462
+ ]
3463
+ },
3464
+ "videos": {
3465
+ "type": "object",
3466
+ "properties": {
3467
+ "get": {
3468
+ "type": "object",
3469
+ "properties": {
3470
+ "endpoint": {
3471
+ "type": "string",
3472
+ "const": "/tv/{tv_id}/videos",
3473
+ "description": "Get the videos that belong to a TV show."
3474
+ },
3475
+ "parameters": {
3476
+ "type": "object",
3477
+ "properties": {
3478
+ "url": {
3479
+ "type": "object",
3480
+ "properties": {
3481
+ "tv_id": {
3482
+ "type": "number",
3483
+ "description": "TV ID"
3484
+ }
3485
+ },
3486
+ "required": [
3487
+ "tv_id"
3488
+ ]
3489
+ }
3490
+ },
3491
+ "required": [
3492
+ "url"
3493
+ ]
3494
+ },
3495
+ "responses": {
3496
+ "type": "object",
3497
+ "properties": {
3498
+ "200": {
3499
+ "type": "object",
3500
+ "properties": {
3501
+ "id": {
3502
+ "type": "number",
3503
+ "description": "Video ID"
3504
+ },
3505
+ "results": {
3506
+ "type": "array",
3507
+ "items": {
3508
+ "type": "object",
3509
+ "properties": {
3510
+ "iso_639_1": {
3511
+ "type": "string",
3512
+ "description": "Spoken language ISO 639-1 code"
3513
+ },
3514
+ "iso_3166_1": {
3515
+ "type": "string",
3516
+ "description": "Production country ISO 3166-1 Alpha-2 code"
3517
+ },
3518
+ "name": {
3519
+ "type": "string",
3520
+ "description": "Video name"
3521
+ },
3522
+ "key": {
3523
+ "type": "string",
3524
+ "description": "Video key"
3525
+ },
3526
+ "site": {
3527
+ "type": "string",
3528
+ "description": "Video site"
3529
+ },
3530
+ "size": {
3531
+ "type": "number",
3532
+ "description": "Video size"
3533
+ },
3534
+ "type": {
3535
+ "type": "string",
3536
+ "description": "Video type"
3537
+ },
3538
+ "official": {
3539
+ "type": "boolean",
3540
+ "description": "Video official"
3541
+ },
3542
+ "published_at": {
3543
+ "type": "string",
3544
+ "description": "Video published at"
3545
+ },
3546
+ "id": {
3547
+ "type": "string",
3548
+ "description": "Video ID"
3549
+ }
3550
+ },
3551
+ "required": [
3552
+ "iso_639_1",
3553
+ "iso_3166_1",
3554
+ "name",
3555
+ "key",
3556
+ "site",
3557
+ "size",
3558
+ "type",
3559
+ "official",
3560
+ "published_at",
3561
+ "id"
3562
+ ]
3563
+ },
3564
+ "description": "Videos"
3565
+ }
3566
+ },
3567
+ "required": [
3568
+ "id",
3569
+ "results"
3570
+ ]
3571
+ }
3572
+ },
3573
+ "required": [
3574
+ "200"
3575
+ ]
3576
+ }
3577
+ },
3578
+ "required": [
3579
+ "endpoint",
3580
+ "parameters",
3581
+ "responses"
3582
+ ]
3583
+ }
3584
+ },
3585
+ "required": [
3586
+ "get"
3587
+ ]
3588
+ },
3589
+ "similar": {
3590
+ "type": "object",
3591
+ "properties": {
3592
+ "get": {
3593
+ "type": "object",
3594
+ "properties": {
3595
+ "endpoint": {
3596
+ "type": "string",
3597
+ "const": "/tv/{tv_id}/similar",
3598
+ "description": "Get the similar TV shows."
3599
+ },
3600
+ "parameters": {
3601
+ "type": "object",
3602
+ "properties": {
3603
+ "url": {
3604
+ "type": "object",
3605
+ "properties": {
3606
+ "tv_id": {
3607
+ "type": "number",
3608
+ "description": "TV ID"
3609
+ }
3610
+ },
3611
+ "required": [
3612
+ "tv_id"
3613
+ ]
3614
+ }
3615
+ },
3616
+ "required": [
3617
+ "url"
3618
+ ]
3619
+ },
3620
+ "responses": {
3621
+ "type": "object",
3622
+ "properties": {
3623
+ "200": {
3624
+ "type": "object",
3625
+ "properties": {
3626
+ "page": {
3627
+ "type": "number",
3628
+ "description": "Page number"
3629
+ },
3630
+ "results": {
3631
+ "type": "array",
3632
+ "items": {
3633
+ "type": "object",
3634
+ "properties": {
3635
+ "backdrop_path": {
3636
+ "anyOf": [
3637
+ {
3638
+ "type": "string"
3639
+ },
3640
+ {
3641
+ "type": "null"
3642
+ }
3643
+ ],
3644
+ "description": "Backdrop path (relative URL)"
3645
+ },
3646
+ "first_air_date": {
3647
+ "anyOf": [
3648
+ {
3649
+ "type": "string"
3650
+ },
3651
+ {
3652
+ "type": "null"
3653
+ }
3654
+ ],
3655
+ "description": "First air date (YYYY-MM-DD format)"
3656
+ },
3657
+ "genre_ids": {
3658
+ "type": "array",
3659
+ "items": {
3660
+ "type": "number"
3661
+ },
3662
+ "description": "Array of genre IDs"
3663
+ },
3664
+ "id": {
3665
+ "type": "number",
3666
+ "description": "Unique identifier for the serie"
3667
+ },
3668
+ "name": {
3669
+ "type": "string",
3670
+ "description": "Serie name"
3671
+ },
3672
+ "origin_country": {
3673
+ "type": "array",
3674
+ "items": {
3675
+ "type": "string"
3676
+ },
3677
+ "description": "Array of origin countries"
3678
+ },
3679
+ "original_language": {
3680
+ "type": "string",
3681
+ "description": "Original language code (e.g., 'en', 'es', 'fr')"
3682
+ },
3683
+ "original_name": {
3684
+ "type": "string",
3685
+ "description": "Original serie name (in original language)"
3686
+ },
3687
+ "overview": {
3688
+ "anyOf": [
3689
+ {
3690
+ "type": "string"
3691
+ },
3692
+ {
3693
+ "type": "null"
3694
+ }
3695
+ ],
3696
+ "description": "Serie overview/synopsis"
3697
+ },
3698
+ "popularity": {
3699
+ "type": "number",
3700
+ "description": "Popularity score"
3701
+ },
3702
+ "poster_path": {
3703
+ "anyOf": [
3704
+ {
3705
+ "type": "string"
3706
+ },
3707
+ {
3708
+ "type": "null"
3709
+ }
3710
+ ],
3711
+ "description": "Poster path (relative URL)"
3712
+ },
3713
+ "vote_average": {
3714
+ "type": "number",
3715
+ "description": "Average vote rating (0-10)"
3716
+ },
3717
+ "vote_count": {
3718
+ "type": "number",
3719
+ "description": "Total number of votes"
3720
+ }
3721
+ },
3722
+ "required": [
3723
+ "backdrop_path",
3724
+ "first_air_date",
3725
+ "genre_ids",
3726
+ "id",
3727
+ "name",
3728
+ "origin_country",
3729
+ "original_language",
3730
+ "original_name",
3731
+ "overview",
3732
+ "popularity",
3733
+ "poster_path",
3734
+ "vote_average",
3735
+ "vote_count"
3736
+ ]
3737
+ },
3738
+ "description": "Series"
3739
+ },
3740
+ "total_pages": {
3741
+ "type": "number",
3742
+ "description": "Total pages"
3743
+ },
3744
+ "total_results": {
3745
+ "type": "number",
3746
+ "description": "Total results"
3747
+ }
3748
+ },
3749
+ "required": [
3750
+ "page",
3751
+ "results",
3752
+ "total_pages",
3753
+ "total_results"
3754
+ ]
3755
+ }
3756
+ },
3757
+ "required": [
3758
+ "200"
3759
+ ]
3760
+ }
3761
+ },
3762
+ "required": [
3763
+ "endpoint",
3764
+ "parameters",
3765
+ "responses"
3766
+ ]
3767
+ }
3768
+ },
3769
+ "required": [
3770
+ "get"
3771
+ ]
3772
+ }
3773
+ },
3774
+ "required": [
3775
+ "airing_today",
3776
+ "on_the_air",
3777
+ "popular",
3778
+ "top_rated",
3779
+ "details",
3780
+ "images",
3781
+ "videos",
3782
+ "similar"
3783
+ ]
3784
+ }
3785
+ },
3786
+ "required": [
3787
+ "search",
3788
+ "movie",
3789
+ "tv"
3790
+ ]
3791
+ }