{"openapi":"3.2.0","info":{"title":"OpenAI Sora API","description":"Sora & Sora 2 (new social media like TikTok) API by ChatGPT creator OpenAI. Access AI-generated visual content (images, videos) programmatically. Perform searches, get image/video download links, retrieve comments/replies, get user details, and more. Website : sora.chatgpt.com","version":"1.0.0"},"servers":[{"url":"https://sora.jojapi.net"}],"security":[{"ApiKeyAuth":[]}],"tags":[{"name":"v2 / Explore"},{"name":"v2 / Profile"},{"name":"v2 / Post"},{"name":"v1 Endpoint (Old Sora App)"}],"paths":{"/v2/feed":{"get":{"operationId":"get_v2_feed","summary":"v2 / Feed","description":"v2 / Feed","tags":["v2 / Explore"],"parameters":[{"name":"limit","in":"query","description":"Result limit","required":false,"schema":{"type":"string","title":"limit","example":"16"}},{"name":"cut","in":"query","description":"Sorting parameter. Default is `nf2`. What does it mean? :\n\n- `nf2` : For you (You can assume that it brings random popular videos.)\n- `nf2_top` : Top videos\n- `nf2_latest` : Latest videos","required":false,"schema":{"type":"string","title":"cut"}},{"name":"cursor","in":"query","description":"You can get subsequent results by entering the `cursor` value taken from the first response.","required":false,"schema":{"type":"string","title":"cursor"}}]}},"/v2/search":{"get":{"operationId":"get_v2_search","summary":"v2 / Search","description":"v2 / Search","tags":["v2 / Explore"],"parameters":[{"name":"username","in":"query","description":"Search query for users","required":false,"schema":{"type":"string","title":"username","example":"sam"}},{"name":"limit","in":"query","description":"Result limit","required":false,"schema":{"type":"string","title":"limit","example":"10"}}]}},"/v2/profile/details":{"get":{"operationId":"get_v2_profile_details","summary":"v2 / Profile Details","description":"v2 / Profile Details","tags":["v2 / Profile"],"parameters":[{"name":"username","in":"query","description":"Username","required":false,"schema":{"type":"string","title":"username","example":"sama"}}]}},"/v2/profile/feed":{"get":{"operationId":"get_v2_profile_feed","summary":"v2 / Profile Feed (Posts)","description":"v2 / Profile Feed (Posts)","tags":["v2 / Profile"],"parameters":[{"name":"user_id","in":"query","description":"User ID","required":false,"schema":{"type":"string","title":"user_id","example":"user-1tRSOHXQxgZtEj9GFqsHOvnF"}},{"name":"limit","in":"query","description":"Result limit","required":false,"schema":{"type":"string","title":"limit","example":"15"}},{"name":"cursor","in":"query","description":"You can get subsequent results by entering the `cursor` value taken from the first response.","required":false,"schema":{"type":"string","title":"cursor"}}]}},"/v2/profile/cameos":{"get":{"operationId":"get_v2_profile_cameos","summary":"v2 / Profile Cameos","description":"v2 / Profile Cameos","tags":["v2 / Profile"],"parameters":[{"name":"user_id","in":"query","description":"User ID","required":false,"schema":{"type":"string","title":"user_id","example":"user-1tRSOHXQxgZtEj9GFqsHOvnF"}},{"name":"limit","in":"query","description":"Result limit","required":false,"schema":{"type":"string","title":"limit","example":"15"}},{"name":"cursor","in":"query","description":"You can get subsequent results by entering the `cursor` value taken from the first response.","required":false,"schema":{"type":"string","title":"cursor"}}]}},"/v2/profile/followers":{"get":{"operationId":"get_v2_profile_followers","summary":"v2 / Profile Followers","description":"v2 / Profile Followers","tags":["v2 / Profile"],"parameters":[{"name":"user_id","in":"query","description":"User ID","required":false,"schema":{"type":"string","title":"user_id","example":"user-1tRSOHXQxgZtEj9GFqsHOvnF"}},{"name":"limit","in":"query","description":"Result limit","required":false,"schema":{"type":"string","title":"limit","example":"20"}},{"name":"cursor","in":"query","description":"You can get subsequent results by entering the `cursor` value taken from the first response.","required":false,"schema":{"type":"string","title":"cursor"}}]}},"/v2/profile/following":{"get":{"operationId":"get_v2_profile_following","summary":"v2 / Profile Following","description":"v2 / Profile Following","tags":["v2 / Profile"],"parameters":[{"name":"user_id","in":"query","description":"User ID","required":false,"schema":{"type":"string","title":"user_id","example":"user-1tRSOHXQxgZtEj9GFqsHOvnF"}},{"name":"limit","in":"query","description":"Result limit","required":false,"schema":{"type":"string","title":"limit","example":"20"}},{"name":"cursor","in":"query","description":"You can get subsequent results by entering the `cursor` value taken from the first response.","required":false,"schema":{"type":"string","title":"cursor"}}]}},"/v2/post/details_and_replies":{"get":{"operationId":"get_v2_post_details_and_replies","summary":"v2 / Post Details & Replies","description":"v2 / Post Details & Replies","tags":["v2 / Post"],"parameters":[{"name":"post_id","in":"query","description":"Post ID (You can also enter the Child ID to get sub-replies to a reply.)","required":false,"schema":{"type":"string","title":"post_id","example":"s_68df688cf01c8191b410af7194c34f5f"}},{"name":"limit","in":"query","description":"Result limit","required":false,"schema":{"type":"string","title":"limit","example":"20"}},{"name":"max_depth","in":"query","description":"Tree depth for replies. Default = 1","required":false,"schema":{"type":"string","title":"max_depth","example":"1"}},{"name":"cursor","in":"query","description":"You can get subsequent results by entering the `cursor` value taken from the first response.","required":false,"schema":{"type":"string","title":"cursor"}}]}},"/v2/post/remix_feed":{"get":{"operationId":"get_v2_post_remix_feed","summary":"v2 / Post Remix Feed","description":"v2 / Post Remix Feed","tags":["v2 / Post"],"parameters":[{"name":"post_id","in":"query","description":"Post ID","required":false,"schema":{"type":"string","title":"post_id","example":"s_68df688cf01c8191b410af7194c34f5f"}},{"name":"cursor","in":"query","description":"You can get subsequent results by entering the `cursor` value taken from the first response.","required":false,"schema":{"type":"string","title":"cursor"}}]}},"/v1/feed/home":{"get":{"operationId":"get_v1_feed_home","summary":"v1 / Home Feed","description":"v1 / Home Feed","tags":["v1 Endpoint (Old Sora App)"],"parameters":[{"name":"limit","in":"query","description":"Result limit","required":false,"schema":{"type":"string","title":"limit","example":"24"}},{"name":"after","in":"query","description":"You can get subsequent results by entering the `last_id` value taken from the first response.","required":false,"schema":{"type":"string","title":"after"}},{"name":"task_type_filters","in":"query","description":"Filter results. To get all results, don't send this parameter.","required":false,"schema":{"type":"string","title":"task_type_filters"}}]}},"/v1/feed/images":{"get":{"operationId":"get_v1_feed_images","summary":"v1 / Images Feed","description":"v1 / Images Feed","tags":["v1 Endpoint (Old Sora App)"],"parameters":[{"name":"limit","in":"query","description":"Result limit","required":false,"schema":{"type":"string","title":"limit","example":"24"}},{"name":"after","in":"query","description":"You can get subsequent results by entering the `last_id` value taken from the first response.","required":false,"schema":{"type":"string","title":"after"}}]}},"/v1/feed/videos":{"get":{"operationId":"get_v1_feed_videos","summary":"v1 / Videos Feed","description":"v1 / Videos Feed","tags":["v1 Endpoint (Old Sora App)"],"parameters":[{"name":"limit","in":"query","description":"Result limit","required":false,"schema":{"type":"string","title":"limit","example":"24"}},{"name":"after","in":"query","description":"You can get subsequent results by entering the `last_id` value taken from the first response.","required":false,"schema":{"type":"string","title":"after"}}]}},"/v1/feed/top":{"get":{"operationId":"get_v1_feed_top","summary":"v1 / Top Feed","description":"v1 / Top Feed","tags":["v1 Endpoint (Old Sora App)"],"parameters":[{"name":"limit","in":"query","description":"Result limit","required":false,"schema":{"type":"string","title":"limit","example":"24"}},{"name":"after","in":"query","description":"You can get subsequent results by entering the `last_id` value taken from the first response.","required":false,"schema":{"type":"string","title":"after"}},{"name":"task_type_filters","in":"query","description":"Filter results. To get all results, don't send this parameter.","required":false,"schema":{"type":"string","title":"task_type_filters"}},{"name":"time_range","in":"query","description":"Time range","required":false,"schema":{"type":"string","title":"time_range"}}]}},"/v1/search":{"get":{"operationId":"get_v1_search","summary":"v1 / Search","description":"v1 / Search","tags":["v1 Endpoint (Old Sora App)"],"parameters":[{"name":"query","in":"query","description":"Search query","required":false,"schema":{"type":"string","title":"query","example":"crocodile"}},{"name":"after","in":"query","description":"You can get subsequent results by entering the `last_id` value taken from the first response.","required":false,"schema":{"type":"string","title":"after"}},{"name":"user_id","in":"query","description":"Fetch content from a specific user. Allowed User ID or username.","required":false,"schema":{"type":"string","title":"user_id"}},{"name":"similar_to","in":"query","description":"Search for similar content. An array containing Generation IDs (`gen_...`) must be sent.","required":false,"schema":{"type":"string","title":"similar_to"}}]}},"/v1/profile/details":{"get":{"operationId":"get_v1_profile_details","summary":"v1 / Profile Details","description":"v1 / Profile Details","tags":["v1 Endpoint (Old Sora App)"],"parameters":[{"name":"user_id","in":"query","description":"Allowed User ID","required":false,"schema":{"type":"string","title":"user_id","example":"user-1tRSOHXQxgZtEj9GFqsHOvnF"}}]}},"/v1/post/details":{"get":{"operationId":"get_v1_post_details","summary":"v1 / Post Details","description":"v1 / Post Details","tags":["v1 Endpoint (Old Sora App)"],"parameters":[{"name":"generation_id","in":"query","description":"Allowed Generation ID","required":false,"schema":{"type":"string","title":"generation_id","example":"gen_01jjj0ag1qfq6r237ysxj9wsv0"}}]}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-JoJAPI-Key","description":"Your JoJ API key."}}}}