The ART19 Content API conforms to the [JSON:API specification](http://jsonapi.org). API requests **MUST** use the HTTP Accept header: `Accept: application/vnd.api+json` API requests **MUST** be authenticated using the HTTP Authorization header: `Authorization: Token token="your-token", credential="your-credential"` ## General Notes Some query parameters use unencoded [ and ] characters simply for readability. Defaults, examples, and possible values are additionally rendered in double quotes for readability. In practice, query parameters should not have quotes around the values (e.g., `foo=bar` is valid, not `foo="bar"`), and both query parameter keys and values must be percent-encoded, per the requirements in [RFC 3986 § 3.4](https://tools.ietf.org/html/rfc3986#section-3.4). ## Rate Limiting In order to provide a fair distribution of available resources, all API calls are subject to rate limits. If you exceed the number of API calls per minute granted to your credential, a `429 Too Many Requests` error response will be returned. In that case, a `Retry-After` header MAY be included in the response, describing the number of seconds after which a request can be retried. If you run into a high number of 429 errors, please reach out to ART19 Support to adjust your rate limit. ### Example In the following example the request can be retried after waiting for 21 seconds: HTTP/1.1 429 Too Many Requests Content-Type: text/html Retry-After: 21 ## Pagination Requests to collection endpoints **SHOULD** provide pagination parameters. Some endpoints **REQUIRE** pagination parameters to be provided. Whenever pagination is provided, it **MUST** be valid. Failing to provide pagination when it is required or providing wrong or incomplete pagination always results in a `400 Bad Request` error response. The page numbering starts with `1` and the maximum page size (if not otherwise documented on an endpoint) is `100`. Pagination **MUST NOT** be specified if requesting a list of IDs (using an `ids[]` parameter). Providing invalid values for page number or page size, as well as providing only a page number or only a page size, is considered an error. Pagination is provided like this: `page[number]=1&page[size]=25` Responses conform to the [JSON:API specification's pagination section](https://jsonapi.org/format/#fetching-pagination) by including pagination links. Your requested page size will be carried into the pagination links. ## Sorting Requests to collection endpoints usually accept a `sort` parameter. Please refer to the [JSON:API Specification's sorting section](https://jsonapi.org/format/#fetching-sorting) for further details. ## Relationship Linking Currently, resources return all of their relationships, in no particular order, pursuant to how relationships should be returned [according to the JSON:API specification](https://jsonapi.org/format/#document-resource-object-relationships). Consumers of this API **MUST NOT** make assumptions about the order of these collections. Even though this data is not currently paginated, consumers **MUST** support paginating relationships per the JSON:API specification if this data is important for their application.
# Introduction The SearchLy API provides similarity searching based on song lyrics. # Operations The API allows for the `/similarity/by_song` operation, which allows clients to search the similarity for an existing song in the database. Also, the API has an additional `/similarity/by_content` endpoint which allows clients to search similarity given a free String input through a JSON request body. Additional `/song/search` operation is available for searching songs given a query String. # Endpoint The API endpoint for the SearchLy API v1 is as follows: ``` https://searchly.asuarez.dev/api/v1 ``` # Motivation This project was built in order to create an API for searching similarities based on song lyrics. There are a lot of songs in the industry and most of them are talking about the same topic. What I wanted to prove with SearchLy was to estimate how similar are two songs between them based on the meaning of their lyrics. SearchLy is using a database of 100k songs from AZLyrics, using [this scraper](https://github.com/AlbertSuarez/azlyrics-scraper), which is being updated periodically. Then, using word2vec and NMSLIB, it was possible to create an index where you can search similarities using the k-nearest neighbors (KNN) algorithm. > **Note**: I am currently using a micro-instance from DigitalOcean where the API is deployed, so you should expect a bad performance. However, if this API becomes popular I will deploy it in a bigger instance.
The Flat API allows you to easily extend the abilities of the [Flat Platform](https://flat.io), with a wide range of use cases including the following: * Creating and importing new music scores using MusicXML, MIDI, Guitar Pro (GP3, GP4, GP5, GPX, GP), PowerTab, TuxGuitar and MuseScore files * Browsing, updating, copying, exporting the user's scores (for example in MP3, WAV or MIDI) * Managing educational resources with Flat for Education: creating & updating the organization accounts, the classes, rosters and assignments. The Flat API is built on HTTP. Our API is RESTful It has predictable resource URLs. It returns HTTP response codes to indicate errors. It also accepts and returns JSON in the HTTP body. The [schema](/swagger.yaml) of this API follows the [OpenAPI Initiative (OAI) specification](https://www.openapis.org/), you can use and work with [compatible Swagger tools](http://swagger.io/open-source-integrations/). This API features Cross-Origin Resource Sharing (CORS) implemented in compliance with [W3C spec](https://www.w3.org/TR/cors/). You can use your favorite HTTP/REST library for your programming language to use Flat's API. This specification and reference is [available on Github](https://github.com/FlatIO/api-reference). Getting Started and learn more: * [API Overview and introduction](https://flat.io/developers/docs/api/) * [Authentication (Personal Access Tokens or OAuth2)](https://flat.io/developers/docs/api/authentication.html) * [SDKs](https://flat.io/developers/docs/api/sdks.html) * [Rate Limits](https://flat.io/developers/docs/api/rate-limits.html) * [Changelog](https://flat.io/developers/docs/api/changelog.html)
With the Freesound APIv2 you can browse, search, and retrieve information about Freesound users, packs, and the sounds themselves of course. You can find similar sounds to a given target (based on content analysis) and retrieve automatically extracted features from audio files, as well as perform advanced queries combining content analysis features and other metadata (tags, etc...). With the Freesound APIv2, you can also upload, comment, rate and bookmark sounds!