openapi: 3.0.0 info: title: woolbot's FunAPI description: Big API for bots, developers or just fun by @podvaljoey. version: $VERSION_VARIABLE$ servers: - url: 'https://imperialwool-funapi.hf.space/' description: 'You are here! ^ะท^' paths: /signatures/api/v1/get: get: tags: - "Authentication" parameters: - name: 'key' description: Key to generate signature. in: 'query' schema: type: 'string' example: rickroll summary: "Generating auth key with small TTL." responses: 200: description: OK content: application/json: schema: $ref: "#/components/schemas/AuthSuccessObject" 400: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/AuthErrorObject" post: tags: - "Authentication" parameters: - name: 'key' description: Key to generate signature. in: 'query' schema: type: 'string' example: rickroll summary: "Generating auth key with small TTL." responses: 200: description: OK content: application/json: schema: $ref: "#/components/schemas/AuthSuccessObject" 400: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/AuthErrorObject" /osu/api/v1/find-song: get: tags: - "osu! API" parameters: - name: 'query' description: Query to find beatmap. in: 'query' schema: type: 'string' example: rickroll - name: 'signature' description: Special access key. in: 'query' schema: type: 'string' example: 'B46AAB1A3F1E33625C1B6BD9507453B928DE69BA638E7098DB533A2184ED288EFB899D563EF8AB5487DACBCAD909A801E4C81FD6D34B639F6591295CD1D10A5B' summary: "Finding beatmap by query." responses: 200: description: OK content: application/json: schema: $ref: "#/components/schemas/FindBeatmapsObject" 400: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorObject" post: tags: - "osu! API" parameters: - name: 'query' description: Query to find beatmap. in: 'query' schema: type: 'string' example: rickroll - name: 'signature' description: Special access key. in: 'query' schema: type: 'string' example: 'B46AAB1A3F1E33625C1B6BD9507453B928DE69BA638E7098DB533A2184ED288EFB899D563EF8AB5487DACBCAD909A801E4C81FD6D34B639F6591295CD1D10A5B' summary: "Finding beatmap by query." responses: 200: description: OK content: application/json: schema: $ref: "#/components/schemas/FindBeatmapsObject" 400: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorObject" /osu/api/v1/get-full: get: tags: - "osu! API" parameters: - name: 'query' description: Query to find beatmap and download full song. in: 'query' schema: type: 'string' example: rickroll - name: 'beatmapId' description: Beatset id. Not map, set. in: 'query' schema: type: 'integer' example: 1 - name: 'signature' description: Special access key. in: 'query' schema: type: 'string' example: 'B46AAB1A3F1E33625C1B6BD9507453B928DE69BA638E7098DB533A2184ED288EFB899D563EF8AB5487DACBCAD909A801E4C81FD6D34B639F6591295CD1D10A5B' summary: "Get beatmap's full song." responses: 200: description: OK content: application/json: schema: $ref: "#/components/schemas/SongFullObject" 400: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorObject" post: tags: - "osu! API" parameters: - name: 'query' description: Query to find beatmap and download full song. in: 'query' schema: type: 'string' example: rickroll - name: 'beatmapId' description: Beatset id. Not map, set. in: 'query' schema: type: 'integer' example: 1 - name: 'signature' description: Special access key. in: 'query' schema: type: 'string' example: 'B46AAB1A3F1E33625C1B6BD9507453B928DE69BA638E7098DB533A2184ED288EFB899D563EF8AB5487DACBCAD909A801E4C81FD6D34B639F6591295CD1D10A5B' summary: "Get beatmap's full song." responses: 200: description: OK content: application/json: schema: $ref: "#/components/schemas/SongFullObject" 400: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorObject" /osu/api/v1/get-preview: get: tags: - "osu! API" parameters: - name: 'query' description: Query to find beatmap and download full song. in: 'query' schema: type: 'string' example: rickroll - name: 'beatmapId' description: Beatset id. Not map, set. in: 'query' schema: type: 'integer' example: 1 - name: 'signature' description: Special access key. in: 'query' schema: type: 'string' example: 'B46AAB1A3F1E33625C1B6BD9507453B928DE69BA638E7098DB533A2184ED288EFB899D563EF8AB5487DACBCAD909A801E4C81FD6D34B639F6591295CD1D10A5B' summary: "Get beatmap's song preview." responses: 200: description: OK content: application/json: schema: $ref: "#/components/schemas/SongPreviewObject" 400: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorObject" post: tags: - "osu! API" parameters: - name: 'query' description: Query to find beatmap and download full song. in: 'query' schema: type: 'string' example: rickroll - name: 'beatmapId' description: Beatset id. Not map, set. in: 'query' schema: type: 'integer' example: 1 - name: 'signature' description: Special access key. in: 'query' schema: type: 'string' example: 'B46AAB1A3F1E33625C1B6BD9507453B928DE69BA638E7098DB533A2184ED288EFB899D563EF8AB5487DACBCAD909A801E4C81FD6D34B639F6591295CD1D10A5B' summary: "Get beatmap's song preview." responses: 200: description: OK content: application/json: schema: $ref: "#/components/schemas/SongPreviewObject" 400: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorObject" /recognize/api/v1/voice: get: tags: - Recognize API parameters: - name: 'url' description: URL-link to voice message. Should be mp3, ogg or wav. in: 'query' schema: type: 'string' example: https://cdn-102.anonfiles.com/q8v0o5O5y8/3d62dac1-1671893935/j4893hg894g4.mp3 - name: 'extendInfo' description: Provide additional information or not. in: 'query' schema: type: 'string' default: False example: False - name: 'signature' description: Special access key. in: 'query' schema: type: 'string' example: 'B46AAB1A3F1E33625C1B6BD9507453B928DE69BA638E7098DB533A2184ED288EFB899D563EF8AB5487DACBCAD909A801E4C81FD6D34B639F6591295CD1D10A5B' summary: "This method can help with converting voice into the text." responses: 200: description: OK content: application/json: schema: $ref: "#/components/schemas/RecognizeObject" 400: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorObject" post: tags: - Recognize API parameters: - name: 'url' description: URL-link to voice message. Should be mp3, ogg or wav. in: 'query' schema: type: 'string' example: https://cdn-102.anonfiles.com/q8v0o5O5y8/3d62dac1-1671893935/j4893hg894g4.mp3 - name: 'file' description: Upload file to recognize voice. **NOT SUPPORTED NOW** in: 'query' schema: type: 'string' - name: 'extendInfo' description: Provide additional information or not. in: 'query' schema: type: 'string' default: False example: False - name: 'signature' description: Special access key. in: 'query' schema: type: 'string' example: 'B46AAB1A3F1E33625C1B6BD9507453B928DE69BA638E7098DB533A2184ED288EFB899D563EF8AB5487DACBCAD909A801E4C81FD6D34B639F6591295CD1D10A5B' summary: "This method can help with converting voice into the text." responses: 200: description: OK content: application/json: schema: $ref: "#/components/schemas/RecognizeObject" 400: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorObject" /system-info/api/v1/get: get: tags: - "System information" summary: "Information about server." responses: 200: description: OK content: application/json: schema: $ref: "#/components/schemas/SysinfoObject" 400: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorObject" post: tags: - "System information" summary: "Information about server." responses: 200: description: OK content: application/json: schema: $ref: "#/components/schemas/SysinfoObject" 400: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorObject" /yt/api/v1/search: get: tags: - "Youtube: Becoming Music Platform" parameters: - name: 'query' description: Query for YouTube to find videos. in: 'query' schema: type: 'string' example: never gonna give you up - name: 'signature' description: Special access key. in: 'query' schema: type: 'string' example: 'B46AAB1A3F1E33625C1B6BD9507453B928DE69BA638E7098DB533A2184ED288EFB899D563EF8AB5487DACBCAD909A801E4C81FD6D34B639F6591295CD1D10A5B' summary: "This method can help with searching videos on YouTube." responses: 200: description: OK content: application/json: schema: $ref: "#/components/schemas/YTSearchObject" 400: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorObject" post: tags: - "Youtube: Becoming Music Platform" parameters: - name: 'query' description: Query for YouTube to find videos. in: 'query' schema: type: 'string' example: never gonna give you up - name: 'signature' description: Special access key. in: 'query' schema: type: 'string' example: 'B46AAB1A3F1E33625C1B6BD9507453B928DE69BA638E7098DB533A2184ED288EFB899D563EF8AB5487DACBCAD909A801E4C81FD6D34B639F6591295CD1D10A5B' summary: "This method can help with searching videos on YouTube." responses: 200: description: OK content: application/json: schema: $ref: "#/components/schemas/YTSearchObject" 400: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorObject" /yt/api/v1/get-full: get: tags: - "Youtube: Becoming Music Platform" parameters: - name: 'url' description: Url to video from YouTube. (TikTok also works sometimes.) in: 'query' schema: type: 'string' - name: 'bitrate' description: Bitrate of final audio. in: 'query' schema: type: 'string' example: "64k" - name: 'quality' description: Quality of final audio. Only 'worst' or 'best'. in: 'query' schema: type: 'string' example: "worst" - name: 'signature' description: Special access key. in: 'query' schema: type: 'string' example: 'B46AAB1A3F1E33625C1B6BD9507453B928DE69BA638E7098DB533A2184ED288EFB899D563EF8AB5487DACBCAD909A801E4C81FD6D34B639F6591295CD1D10A5B' summary: "Download video as audio and providing link for you." responses: 200: description: OK content: application/json: schema: $ref: "#/components/schemas/YTFullObject" 400: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorObject" post: tags: - "Youtube: Becoming Music Platform" parameters: - name: 'url' description: Url to video from YouTube. (TikTok also works sometimes.) in: 'query' schema: type: 'string' - name: 'bitrate' description: Bitrate of final audio. in: 'query' schema: type: 'string' example: "64k" - name: 'quality' description: Quality of final audio. Only 'worst' or 'best'. in: 'query' schema: type: 'string' example: "worst" - name: 'signature' description: Special access key. in: 'query' schema: type: 'string' example: 'B46AAB1A3F1E33625C1B6BD9507453B928DE69BA638E7098DB533A2184ED288EFB899D563EF8AB5487DACBCAD909A801E4C81FD6D34B639F6591295CD1D10A5B' summary: "Download video as audio and providing link for you." responses: 200: description: OK content: application/json: schema: $ref: "#/components/schemas/YTFullObject" 400: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorObject" /yt/api/v1/get-preview: get: tags: - "Youtube: Becoming Music Platform" parameters: - name: 'url' description: Url to video from YouTube. (TikTok also works sometimes.) in: 'query' schema: type: 'string' - name: 'bitrate' description: Bitrate of final audio. in: 'query' schema: type: 'string' example: "64k" - name: 'quality' description: Quality of final audio. Only 'worst' or 'best'. in: 'query' schema: type: 'string' example: "worst" - name: 'duration' description: Duration of preview. Maximum 60 seconds. in: 'query' schema: type: 'integer' example: 30 - name: 'signature' description: Special access key. in: 'query' schema: type: 'string' example: 'B46AAB1A3F1E33625C1B6BD9507453B928DE69BA638E7098DB533A2184ED288EFB899D563EF8AB5487DACBCAD909A801E4C81FD6D34B639F6591295CD1D10A5B' summary: "Download video as cutted audio and providing link for you." responses: 200: description: OK content: application/json: schema: $ref: "#/components/schemas/YTPreviewResult" 400: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorObject" post: tags: - "Youtube: Becoming Music Platform" parameters: - name: 'url' description: Url to video from YouTube. (TikTok also works sometimes.) in: 'query' schema: type: 'string' - name: 'bitrate' description: Bitrate of final audio. in: 'query' schema: type: 'string' example: "64k" - name: 'quality' description: Quality of final audio. Only 'worst' or 'best'. in: 'query' schema: type: 'string' example: "worst" - name: 'duration' description: Duration of preview. Maximum 60 seconds. in: 'query' schema: type: 'integer' example: 30 - name: 'signature' description: Special access key. in: 'query' schema: type: 'string' example: 'B46AAB1A3F1E33625C1B6BD9507453B928DE69BA638E7098DB533A2184ED288EFB899D563EF8AB5487DACBCAD909A801E4C81FD6D34B639F6591295CD1D10A5B' summary: "Download video as cutted audio and providing link for you." responses: 200: description: OK content: application/json: schema: $ref: "#/components/schemas/YTPreviewResult" 400: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorObject" components: schemas: SongFullObject: type: object properties: status: type: string example: pass details: type: object properties: code: type: integer example: 200 name: type: string example: "1592415.ogg" result: type: string example: "https://imperialwool-funapi.hf.space/static/full/1592415.ogg" SongPreviewObject: type: object properties: status: type: string example: pass details: type: object properties: code: type: integer example: 200 name: type: string example: "1244874.mp3" result: type: string example: "https://b.ppy.sh/preview/1244874.mp3" BeatmapObject: type: object properties: "artist": type: string example: "never gonna give you up remix" "beatmapId": type: integer example: 1542795 "creator": type: string example: "CrisFloppa" "source": type: string example: "" "tags": type: string example: "never gonna gie you up rick roll" "title": type: string example: "rick astley" FindBeatmapsObject: type: object properties: status: type: string example: pass details: type: object properties: "code": type: integer example: 200 "result": type: array items: $ref: "#/components/schemas/BeatmapObject" SysinfoObject: type: object properties: "API_VERSION": type: string example: "1.0 build62" "CPU_INFO": type: object properties: "cpu_brand": type: string example: "AMD EPYC 7R13 Processor" "cpu_count": type: object properties: "all": type: integer example: 16 "exclude_virtual": type: integer example: 8 "cpu_freq": type: object properties: "current": type: number format: float example: 3522.9323125 "min": type: number format: float example: 0.0 "max": type: number format: float example: 3600.0 "cpu_load": type: number format: float example: 16.2 "MEM_INFO": type: object properties: "mem_total": type: integer example: 126125 "mem_used": type: integer example: 87497 AuthSuccessObject: type: object properties: status: type: string example: pass endtime: type: integer example: 1672602259 result: type: string example: B46AAB1A3F1E33625C1B6BD9507453B928DE69BA638E7098DB533A2184ED288EFB899D563EF8AB5487DACBCAD909A801E4C81FD6D34B639F6591295CD1D10A5B AuthErrorObject: type: object properties: status: type: string example: error details: type: object properties: error_code: type: integer example: -1 error_details: type: string example: This key already got signature ErrorObject: type: object properties: status: type: string example: error details: type: object properties: error_code: type: integer example: 103 error_details: type: string example: No signature RecognizeObject: type: object properties: status: type: string example: pass result: type: string example: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean condimentum neque quis enim bibendum, ut molestie magna gravida. Donec et felis eget lacus sodales convallis. Quisque vitae erat et leo lobortis iaculis. Maecenas a lectus vitae metus fringilla luctus. Morbi sed pellentesque elit. Phasellus bibendum et urna sed elementum. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus." YTSearchObject: type: object properties: status: type: string example: ok query: type: string example: never gonna give you up videoIds: type: object properties: "0": type: string example: dQw4w9WgXcQ "1": type: string example: GtL1huin9EE "2": type: string example: uXV-IaR_vNE YTFullObject: type: object properties: status: type: string example: pass details: type: object properties: code: type: integer example: 0 name: type: string example: "R8YprjS6ztg.ogg" result: type: string example: "https://imperialwool-funapi.hf.space/static/full/R8YprjS6ztg.ogg" YTPreviewResult: type: object properties: status: type: string example: pass details: type: object properties: code: type: integer example: 0 name: type: string example: "R8YprjS6ztg.ogg" result: type: string example: "https://imperialwool-funapi.hf.space/static/previews/R8YprjS6ztg.ogg"