# geniURL
Simple JSON "REST proxy" to search for lyrics metadata on [genius](https://genius.com/).
Obtaining actual lyrics sadly isn't possible.
## Base URL:
I host a public instance on this URL:
```
https://api.sv443.net/geniurl/
```
## Routes:
All routes support gzip and deflate compression.
> ### GET `/search?q=search_text`
> This endpoint gives you the top 10 results for a search query specified by `search_text`
> The returned data contains various data like the lyrics website URL, song and thumbnail metadata and more (see below).
>
>
>
> **Parameters:**
> `?q=search%20query`
> This parameter should contain both song and artist name(s) if possible (order doesn't matter, separate with a whitespace).
> Sometimes the song name alone might be enough but the results may vary.
> If the search query contains special characters, they need to be [percent/URL-encoded.](https://en.wikipedia.org/wiki/Percent-encoding)
>
>
> Successful response (click to view)
>
> ```json
> {
> "error": false,
> "top": {
> "url": "https://genius.com/Artist-1-song-name-lyrics",
> "path": "/Artist-1-song-name-lyrics",
> "meta": {
> "title": "Song Name",
> "fullTitle": "Song Name by Artist 1 (ft. Artist 2)",
> "artists": "Artist 1 (ft. Artist 2)",
> "primaryArtist": {
> "name": "Artist 1",
> "url": "https://genius.com/artists/Artist-1"
> }
> },
> "resources": {
> "thumbnail": "https://images.genius.com/8485557225af0345d2c550af8bae731b.300x300x1.png",
> "image": "https://images.genius.com/13d7b13ef827a9f007a5d24c115b9ebb.1000x1000x1.png"
> },
> "lyricsState": "complete",
> "id": 42069
> },
> "all": [
> /* 10 elements, same structure as "top", sorted best match first */
> ],
> "timestamp": 1234567890123
> }
> ```
>
>
>
>
> Errored response (click to view)
>
> ```json
> {
> "error": true,
> "message": "Something went wrong",
> "timestamp": 1234567890123
> }
> ```
>
>
>
> ### GET `/search/top`
> This endpoint is the same as `/search`, but it only gives the top result.
> Use this if you are only interested in the top result and want to reduce traffic.
>
>
>
> **Parameters:**
> `?q=search%20query`
> This parameter should contain both song and artist name(s) if possible (order doesn't matter, separate with a whitespace).
> Sometimes the song name alone might be enough but the results may vary.
> If the search query contains special characters, they need to be [percent/URL-encoded.](https://en.wikipedia.org/wiki/Percent-encoding)
>
>
> Successful response (click to view)
>
> ```json
> {
> "error": false,
> "url": "https://genius.com/Artist-1-song-name-lyrics",
> "path": "/Artist-1-song-name-lyrics",
> "meta": {
> "title": "Song Name",
> "fullTitle": "Song Name by Artist 1 (ft. Artist 2)",
> "artists": "Artist 1 (ft. Artist 2)",
> "primaryArtist": {
> "name": "Artist 1",
> "url": "https://genius.com/artists/Artist-1"
> }
> },
> "resources": {
> "thumbnail": "https://images.genius.com/8485557225af0345d2c550af8bae731b.300x300x1.png",
> "image": "https://images.genius.com/13d7b13ef827a9f007a5d24c115b9ebb.1000x1000x1.png"
> },
> "lyricsState": "complete",
> "id": 42069,
> "timestamp": 1234567890123
> }
> ```
>
>
>
>
> Errored response (click to view)
>
> ```json
> {
> "error": true,
> "message": "Something went wrong",
> "timestamp": 1234567890123
> }
> ```
>
>
>