{"id":15131488,"url":"https://github.com/lukepeavey/quotable","last_synced_at":"2025-05-15T13:06:00.372Z","repository":{"id":38801270,"uuid":"103797434","full_name":"lukePeavey/quotable","owner":"lukePeavey","description":"Random Quotes API","archived":false,"fork":false,"pushed_at":"2024-01-14T17:33:47.000Z","size":1187,"stargazers_count":1944,"open_issues_count":53,"forks_count":242,"subscribers_count":24,"default_branch":"master","last_synced_at":"2025-05-15T13:06:00.059Z","etag":null,"topics":["api-service","freecodecamp","json-api","rest-api"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lukePeavey.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["lukePeavey"]}},"created_at":"2017-09-17T02:28:03.000Z","updated_at":"2025-05-14T10:07:10.000Z","dependencies_parsed_at":"2023-02-12T07:45:36.819Z","dependency_job_id":"dff105d0-3bed-44fe-aaba-f12506e8e601","html_url":"https://github.com/lukePeavey/quotable","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukePeavey%2Fquotable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukePeavey%2Fquotable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukePeavey%2Fquotable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukePeavey%2Fquotable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lukePeavey","download_url":"https://codeload.github.com/lukePeavey/quotable/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254346624,"owners_count":22055808,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-service","freecodecamp","json-api","rest-api"],"created_at":"2024-09-26T03:42:13.550Z","updated_at":"2025-05-15T13:06:00.348Z","avatar_url":"https://github.com/lukePeavey.png","language":"JavaScript","funding_links":["https://github.com/sponsors/lukePeavey"],"categories":[],"sub_categories":[],"readme":"# Quotable\n\n[![CI Tests](https://github.com/lukePeavey/quotable/actions/workflows/tests.yml/badge.svg)](https://github.com/lukePeavey/quotable/actions/workflows/tests.yml)\u0026nbsp; \u0026nbsp;\n\nQuotable is a free, open source quotations API. It was originally built as part of a [FreeCodeCamp](https://www.freecodecamp.org/) project. If you are interested in contributing, please check out the [Contributors Guide](CONTRIBUTING.md).\n\n### Rate Limit\n\nThere is a rate limit of **180 requests per minute**, per IP address. If you exceed the rate limit, the API will respond with a `429` error.\n\n### API Servers\n```\nhttps://api.quotable.io\n```\n\n### Postman\n\nYou can try out the API on our public Postman workspace. \n\n[![Run in Postman](https://run.pstmn.io/button.svg)](https://www.postman.com/quotable/workspace/quotable)\n\n\n## API Reference \u003c!-- omit in toc --\u003e\n\n- [Get random quote](#get-random-quote)\n- [Get Random Quotes](#get-random-quotes)\n- [List Quotes](#list-quotes)\n- [Get Quote By ID](#get-quote-by-id)\n- [List Authors](#list-authors)\n- [Search Quotes (beta)](#search-quotes-beta)\n- [Search Authors (beta)](#search-authors-beta)\n- [Get Author By Slug](#get-author-by-slug)\n- [List Tags](#list-tags)\n\n## Examples \u003c!-- omit in toc --\u003e\n\n- [Basic Quote Machine (CodePen)](https://codepen.io/lukePeavey/pen/RwNVeQG)\n- [React Quote Machine (CodeSandbox)](https://codesandbox.io/s/quotable-demo-react-e7zm1?fontsize=14\u0026hidenavigation=1\u0026module=%2Fsrc%2FApp.js\u0026theme=dark)\n- [React Native App (Github)](https://github.com/siddsarkar/SociQuote)\n- [Paginated Author List (codeSandbox)](https://codesandbox.io/s/quotable-author-list-2-14le9)\n- [Paginated Quote List (codeSandbox)](https://codesandbox.io/s/quotable-get-quotes-with-author-details-iyxw8)\n\n## Get random quote\n\n```HTTP\nGET /random\n```\n\nReturns a single random quote from the database\n\n\u003e ⛔️ This method is deprecated in favor of [Get Random Quotes](#get-random-quotes)\n\n**Query parameters**\n\n\n| param     | type     | Description                                                                                                                                                                                                                                                                                                                          |\n| :-------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| maxLength | `Int`    | The maximum Length in characters ( can be combined with `minLength` )                                                                                                                                                                                                                                                                |\n| minLength | `Int`    | The minimum Length in characters ( can be combined with `maxLength` )                                                                                                                                                                                                                                                                |\n| tags      | `String` | Get a random quote with specific tag(s). This takes a list of one or more tag names, separated by a comma (meaning `AND`) or a pipe (meaning `OR`). A comma separated list will match quotes that have **_all_** of the given tags. While a pipe (`\\|`) separated list will match quotes that have **any one** of the provided tags. Tag names are **not** case-sensitive. Multi-word tags can be kebab-case (\"tag-name\") or space separated (\"tag name\") |\n| author    | `String` | Get a random quote by one or more authors. The value can be an author `name` or `slug`. To include quotes by multiple authors, provide a pipe-separated list of author names/slugs.                                                                                                                                                  |\n| authorId  | `String` | `deprecated` \u003cbr\u003e Same as `author` param, except it uses author `_id` instead of `slug`                                                                                                                                                                                                                                          |\n\n**Response**\n\n```ts\n{\n  _id: string\n  // The quotation text\n  content: string\n  // The full name of the author\n  author: string\n  // The `slug` of the quote author\n  authorSlug: string\n  // The length of quote (number of characters)\n  length: number\n  // An array of tag names for this quote\n  tags: string[]\n}\n```\n\u003cbr\u003e\n\n## Get Random Quotes\n\n```HTTP\nGET /quotes/random\n```\n\nGet one or more random quotes from the database.  This method supports several filters that can be used to get random quotes with specific properties (ie tags, quote length, etc.)\n\nBy default, this methods returns a single random quote. You can specify the number of random quotes to return via the `limit` parameter.  \n\n\u003e ⚠️ This method is equivalent to the `/random` endpoint. The only difference is the response format:\n\u003e Instead of retuning a single `Quote` object, this method returns an `Array` of `Quote` objects.\n\n\n\u003cbr\u003e\n\n| param     | type     | Description                                                                                                                                                                                                                                                                                                                          | \n| :-------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | \n| limit     | `Int`    | `default: 1` \u0026nbsp; `min: 1` \u0026nbsp; `max: 50` \u003cbr\u003e The number of random quotes to retrieve.                                                                                                                                                                       |\n| maxLength | `Int`    | The maximum Length in characters ( can be combined with `minLength` )                                                                                                                                                                                                                                                                |\n| minLength | `Int`    | The minimum Length in characters ( can be combined with `maxLength` )                                                                                                                                                                                                                                                                |\n| tags      | `String` | Get a random quote with specific tag(s). This takes a list of one or more tag names, separated by a comma (meaning `AND`) or a pipe (meaning `OR`). A comma separated list will match quotes that have **_all_** of the given tags. While a pipe (`\\|`) separated list will match quotes that have **any one** of the provided tags. Tag names are **not** case-sensitive. Multi-word tags can be kebab-case (\"tag-name\") or space separated (\"tag name\") |\n| author    | `String` | Get a random quote by one or more authors. The value can be an author `name` or `slug`. To include quotes by multiple authors, provide a pipe-separated list of author names/slugs.                                                                                                                                                  |\n| authorId  | `String` | `deprecated` \u003cbr\u003eSame as `author` param, except it uses author `_id` instead of `slug`                                                                                                                                                                                                                                          | \n\n**Response**\n\n```ts\n// An array containing one or more Quotes\nArray\u003c{\n  _id: string\n  // The quotation text\n  content: string\n  // The full name of the author\n  author: string\n  // The `slug` of the quote author\n  authorSlug: string\n  // The length of quote (number of characters)\n  length: number\n  // An array of tag names for this quote\n  tags: string[]\n}\u003e\n```\n\n\n**Examples**\n\nGet random quote [try in browser](https://api.quotable.io/quotes/random)\n\n```HTTP\nGET /quotes/random\n```\n\nGet 5 random quotes [try in browser](https://api.quotable.io/quotes/random?limit=3)\n\n```HTTP\nGET /quotes/random?limit=3\n```\n\n\nRandom Quote with tags \"technology\" **`AND`** \"famous-quotes\" [try in browser](https://api.quotable.io/quotes/random?tags=technology,famous-quotes)\n\n```HTTP\nGET /quotes/random?tags=technology,famous-quotes\n```\n\nRandom Quote with tags \"History\" **`OR`** \"Civil Rights\" [try in browser](https://api.quotable.io/quotes/random?tags=history|civil-rights)\n\n```HTTP\nGET /quotes/random?tags=history|civil-rights\n```\n\nRandom Quote with a maximum length of 50 characters [try in browser](https://api.quotable.io/quotes/random?maxLength=50)\n\n```HTTP\nGET /quotes/random?maxLength=50\n```\n\nRandom Quote with a length between 100 and 140 characters [try in browser](https://api.quotable.io/quotes/random?minLength=100\u0026maxLength=140)\n\n```HTTP\nGET /quotes/random?minLength=100\u0026maxLength=140\n```\n\n\u003cbr\u003e\n\n## List Quotes\n\n```HTTP\nGET /quotes\n```\n\nGet all quotes matching a given query. By default, this will return a paginated list of all quotes, sorted by `_id`. Quotes can also be filter by author, tag, and length.\n\n**Query parameters**\n\n| param     | type     | Description                                                                                                                                                                                                                                                                                                      |\n| :-------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| maxLength | `Int`    | The maximum Length in characters ( can be combined with `minLength` )                                                                                                                                                                                                                                            |\n| minLength | `Int`    | The minimum Length in characters ( can be combined with `maxLength` )                                                                                                                                                                                                                                            |\n| tags      | `String` | Filter quotes by tag(s). Takes a list of one or more tag names, separated by a comma (meaning `AND`) or a pipe (meaning `OR`). A comma separated list will match quotes that have **_all_** of the given tags. While a pipe (`\\|`) separated list will match quotes that have **_either_** of the provided tags.  Tag names are **not** case-sensitive. Multi-word tags can be kebab-case (\"tag-name\") or space separated (\"tag name\") |\n| author    | `String` | Get quotes by a specific author. The value can be an author `name` or `slug`. To get quotes by multiple authors, provide a pipe separated list of author names/slugs.                                                                                                                                            |\n| authorId  | `String` | `deprecated` \u003cbr\u003e Same as `author` param, except it uses author `_id` instead of `slug`                                                                                                                                                                                                                      |\n| sortBy    | `enum`   | `Default: \"dateAdded\"` \u0026nbsp; `values: \"dateAdded\", \"dateModified\", \"author\", \"content\"` \u003cbr\u003e The field used to sort quotes                                                                                                                                                                                  |\n| order     | `enum`   | `values: \"asc\", \"desc\"` \u0026nbsp; `default: depends on sortBy` \u003cbr\u003e The order in which results are sorted. The default order depends on the sortBy field. For string fields that are sorted alphabetically, the default order is ascending. For number and date fields, the default order is descending.        |\n| limit     | `Int`    | `Min: 1` \u0026nbsp; `Max: 150` \u0026nbsp; `Default: 20` \u003cbr\u003e Sets the number of results per page.                                                                                                                                                                                                                    |\n| page      | `Int`    | `Min: 1` \u0026nbsp; `Default: 1` \u003cbr\u003e The page of results to return. If the value is greater than the total number of pages, request will not return any results                                                                                                                                                 |\n\n**Response**\n\n```ts\n{\n  // The number of quotes returned in this response\n  count: number\n  // The total number of quotes matching this query\n  totalCount: number\n  // The current page number\n  page: number\n  // The total number of pages matching this request\n  totalPages: number\n  // The 1-based index of the last result included in the current response.\n  lastItemIndex: number\n  // The array of quotes\n  results: Array\u003c{\n    _id: string\n    // The quotation text\n    content: string\n    // The full name of the author\n    author: string\n    // The `slug` of the quote author\n    authorSlug: string\n    // The length of quote (number of characters)\n    length: number\n    // An array of tag names for this quote\n    tags: string[]\n  }\u003e\n}\n```\n\n**Examples**\n\nGet the first page of quotes, with 20 results per page [try in browser](https://api.quotable.io/quotes?page=1)\n\n```HTTP\nGET /quotes?page=1\n```\n\nGet the second page of quotes, with 20 results per page [try in browser](https://api.quotable.io/quotes?page=2)\n\n```HTTP\nGET /quotes?page=2\n```\n\nGet all quotes with the tags `love` `OR` `happiness` [try in browser](https://api.quotable.io/quotes?tags=love|happiness)\n\n```HTTP\nGET /quotes?tags=love|happiness\n```\n\nGet all quotes with the tags `technology` `AND` `famous-quotes` [try in browser](https://api.quotable.io/quotes?tags=technology,famous-quotes)\n\n```HTTP\nGET /quotes?tags=technology,famous-quotes\n```\n\nGet all quotes by author, using the author's `slug`. [try in browser](https://api.quotable.io/quotes?author=albert-einstein)\n\n```HTTP\nGET /quotes?author=albert-einstein\n```\n\n\u003cbr\u003e\n\n## Get Quote By ID\n\n```HTTP\nGET /quotes/:id\n```\n\nGet a quote by its ID\n\n**Response**\n\n```ts\n{\n  _id: string\n  // The quotation text\n  content: string\n  // The full name of the author\n  author: string\n  // The length of quote (number of characters)\n  length: number\n  // An array of tag names for this quote\n  tags: string[]\n}\n```\n\n\u003cbr\u003e\n\n## List Authors\n\n```HTTP\nGET /authors\n```\n\nGet all authors matching the given query. This endpoint can be used to list authors, with several options for sorting and filter. It can also be used to get author details for one or more specific authors, using the author slug or ids.\n\n**Query parameters**\n\n| param  | type     | Description                                                                                                                                                                                                                                                                                       |\n| :----- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| slug   | `string` | Filter authors by slug. The value can be one or more author slugs. To get multiple authors by slug, the value should be a pipe separated list of slugs.                                                                                                                                           |\n| sortBy | `enum`   | `Default: \"name\"` \u0026nbsp; `values: \"dateAdded\", \"dateModified\", \"name\", \"quoteCount\"` \u003cbr\u003e The field used to sort authors.                                                                                                                                                                      |\n| order  | `enum`   | `values: \"asc\", \"desc\"` \u003cbr\u003e The order in which results are sorted. The default order depends on the sortBy field. For string fields that are sorted alphabetically (ie `name`), the default order is ascending. For number and date fields (ie `quoteCount`) the default order is descending. |\n| limit  | `Int`    | `Min: 1` \u0026nbsp; `Max: 150` \u0026nbsp; `Default: 20` \u003cbr\u003e Sets the number of results per page.                                                                                                                                                                                                      |\n| page   | `Int`    | `Min: 1` \u0026nbsp; `Default: 1` \u003cbr\u003e The page of results to return. If the value is greater than the total number of pages, request will not return any results                                                                                                                                   |\n\n**Response**\n\n```ts\n{\n  // The number of results included in this response.\n  count: number\n  // The total number of results matching this request.\n  totalCount: number\n  // The current page number\n  page: number\n  // The total number of pages matching this request\n  totalPages: number\n  // The 1-based index of the last result included in this response. This shows the\n  // current pagination offset.\n  lastItemIndex: number | null\n  // The array of authors\n  results: Array\u003c{\n    // A unique id for this author\n    _id: string\n    // A brief, one paragraph bio of the author. Source: wiki API\n    bio: string\n    // A one-line description of the author. Typically it is the person's primary\n    // occupation or what they are know for.\n    description: string\n    // The link to the author's wikipedia page or official website\n    link: string\n    // The authors full name\n    name: string\n    // A slug is a URL-friendly ID derived from the authors name. It can be used as\n    slug: string\n    // The number of quotes by this author\n    quoteCount: string\n  }\u003e\n}\n```\n\n**Examples**\n\nGet all authors, sorted alphabetically by name [try in browser](https://api.quotable.io/authors?sortBy=name\u0026order=asc)\n\n```HTTP\nGET /authors?sortBy=name\n```\n\nGet all authors, sorted by number of quotes in descending order [try in browser](https://api.quotable.io/authors?sortBy=quoteCount\u0026order=desc)\n\n```HTTP\nGET /authors?sortBy=quoteCount\u0026order=desc\n```\n\nGet a single author by slug. [try in browser](https://api.quotable.io/authors?slug=albert-einstein)\n\n```HTTP\nGET /authors?slug=albert-einstein\n```\n\nGet multiple authors by slug. In this case, you provide a pipe-separated list of slugs [try in browser](https://api.quotable.io/authors?slug=albert-einstein|abraham-lincoln)\n\n```HTTP\nGET /authors?slug=albert-einstein|abraham-lincoln\n```\n\n\u003cbr\u003e\n\n## Search Quotes (beta)\n\n```HTTP\nGET /search/quotes\n```\n\nThis endpoint allows you to search for quotes by keywords, content, and/or author name. Unlike the [List Quotes](#list-quotes) endpoint, this method is powered by [Atlas Search](https://docs.atlas.mongodb.com/atlas-search/) and is designed to power a search bar UI.\n\n- Search results are sorted by score\n- The query can be wrapped in quotes to search for an exact phrase. In this case, results will only include quotes that match the query exactly.\n- Supports fuzzy search (optional). This allows for minor typos and misspelling in the search query. For more info on how this works, refer to the [Atlas docs](https://docs.atlas.mongodb.com/reference/atlas-search/text/#fields)\n\n**Query Params**\n\n| Param              | Type     | Description                                                                                                                                                                                                                                   |\n| :----------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| query              | `String` | The search string. The query can be wrapped in quotes to search for an exact phrase.                                                                                                                                                          |\n| fields             | `String` | `Default: \"content,author,tags\"` \u003cbr\u003e Specify the fields to search by. This takes a comma separated list of field names. Supported search fields are \"content\", \"author\", \"tags\". By default, it will search by all fields simultaneously. |\n| fuzzyMaxEdits      | `Int`    | `Min: 0` \u0026nbsp; `Max: 2` \u0026nbsp; `Default: 0` \u003cbr\u003e  The maximum number of single-character edits required to match the specified search term. Setting this to zero disables fuzzy matching.                                                 |\n| fuzzyMaxExpansions | `Int`    | `Max: 150` \u0026nbsp; `Min: 0` \u0026nbsp; `Default: 50` \u003cbr\u003e  When fuzzy search is enabled, this is the maximum number of variations to generate and search for. This limit applies on a per-token basis.                                          |\n| limit              | `Int`    | `Min: 0` \u0026nbsp; `Max: 150` \u0026nbsp; `Default: 20` \u003cbr\u003e  The maximum number of results per page                                                                                                                                               |\n| page               | `Int`    | `Min: 1` \u0026nbsp; `Default: 1` \u003cbr\u003e  Sets the page number for pagination                                                                                                                                                                     |\n\n**Response**\n\n```ts\n{\n  // The number of results included in this response.\n  count: number\n  // The total number of results matching this request.\n  totalCount: number\n  // The current page number\n  page: number\n  // The total number of pages matching this request\n  totalPages: number\n  // The 1-based index of the last result included in this response. This shows the\n  // current pagination offset.\n  lastItemIndex: number | null\n  // The array of authors\n  results: Array\u003c{\n    // A unique id for this author\n    _id: string\n    // A brief, one paragraph bio of the author. Source: wiki API\n    bio: string\n    // A one-line description of the author. Typically it is the person's primary\n    // occupation or what they are know for.\n    description: string\n    // The link to the author's wikipedia page or official website\n    link: string\n    // The authors full name\n    name: string\n    // A slug is a URL-friendly ID derived from the authors name. It can be used as\n    slug: string\n    // The number of quotes by this author\n    quoteCount: string\n  }\u003e\n}\n```\n\n**Examples**\n\nSearch for \"every good technology is basically magic\" ([try in browser](https://api.quotable.io/search/quotes?query=every+good+technology+is+basically+magic\u0026fields=content))\n\n```HTTP\nGET /search/quotes?query=every good technology is basically magic\n```\n\n\u003e Results:\n\u003e\n\u003e - \"Any sufficiently advanced technology is equivalent to magic.\"\n\nSearch for the phrase \"divided house\"\n\n```HTTP\nGET /search/quotes?query=divided house\n```\n\n\u003e Results\n\u003e\n\u003e - \"A house divided against itself cannot stand.\"\n\nSearch for quotes with the keywords \"life\" or \"happiness\" ([try in browser](https://api.quotable.io/search/quotes?query=life+happiness))\n\n```HTTP\nGET /search/quotes?query=life happiness\n```\n\nSearch for quotes by an author named \"kennedy\" ([try in browser](https://api.quotable.io/search/quotes?query=kennedy\u0026fields=author))\n\n```HTTP\nGET /search/quotes?query=Kennedy\u0026fields=author\n```\n\n\u003cbr\u003e\n\n## Search Authors (beta)\n\n```HTTP\nGET  /search/authors\n```\n\nThis endpoint allows you search for authors by name. It is designed to power a search bar for authors that displays autocomplete suggests as the user types.\n\n- Powered by [Atlas Search](https://docs.atlas.mongodb.com/atlas-search/).\n- Real autocomplete\n- Results are sorted by score\n- Parses the query into \"terms\". Things like initials, prefixes, suffixes, and stopwords are not considered search terms. They will still impact the score of a result, but are not required to match.\n\n```\nExample\nquery=\"John F. Kennedy\"\nterms=[\"john\", \"kennedy\"]\n\n term      term\n  |         |\nJohn  F.  Kennedy  Jr.\n      |             |\n   initial        suffix\n\nExample\nquery=\"Saint Augustine of Hippo\"\nterms=[\"Augustine\", \"Hippo\"]\n\n        term        term\n          |          |\n Saint Augustine of Hippo\n   |             |\nprefix        stopword\n```\n\n**Query Parameters**\n\n| Param          | Type      | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |\n| :------------- | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| query          | `String`  | The search query                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |\n| autocomplete   | `Boolean` | `default: true` \u003cbr\u003e  Enables autocomplete matching                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |\n| matchThreshold | `Int`     | `Min: 1` \u0026nbsp; `Max: 3` \u0026nbsp; `Default: 2` \u003cbr\u003e  Sets the minimum number of search terms (words) that must match for an author to be included in results. Basically, if this is set to 1, the results will include all authors that match at least one part of the name. So query=\"John F. Kennedy\" the results would include all authors that match either \"john\" `OR` \"kennedy\". \u003cbr\u003e If this is set to `2`: when the search query includes two or more \"terms\", at least two of those terms must match. So query=\"John F. Kennedy\" would only return authors that match \"John\" `AND` \"Kennedy\". |\n| limit          | `Int`     | `Min: ` \u0026nbsp; `Max: 150` \u0026nbsp; `Default: 20` \u003cbr\u003e  Maximum number of results per page                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |\n| page           | `Int`     | `Min: 1` \u0026nbsp; `Default: 1` \u003cbr\u003e Sets the page number for pagination                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |\n\n**Response**\n\n```ts\n{\n  // The number of results included in this response.\n  count: number\n  // The total number of results matching this request.\n  totalCount: number\n  // The current page number\n  page: number\n  // The total number of pages matching this request\n  totalPages: number\n  // The 1-based index of the last result included in this response. This shows the\n  // current pagination offset.\n  lastItemIndex: number | null\n  // The array of authors\n  results: Array\u003c{\n    // A unique id for this author\n    _id: string\n    // A brief, one paragraph bio of the author. Source: wiki API\n    bio: string\n    // A one-line description of the author. Typically it is the person's primary\n    // occupation or what they are know for.\n    description: string\n    // The link to the author's wikipedia page or official website\n    link: string\n    // The authors full name\n    name: string\n    // A slug is a URL-friendly ID derived from the authors name. It can be used as\n    slug: string\n    // The number of quotes by this author\n    quoteCount: string\n  }\u003e\n}\n```\n\n**Examples**\n\nSearch for author named \"Einstein\" ([try in browser](https://api.quotable.io/search/authors?query=einstein))\n\n```HTTP\nGET /search/authors?query=Einstein\n```\n\n\u003e Results:\n\u003e\n\u003e - Albert Einstein\n\nAutocomplete search for \"Einstein\" ([try in browser](https://api.quotable.io/search/authors?query=Einst))\n\n```HTTP\nGET /search/authors?query=Einst\n```\n\n\u003e Results:\n\u003e\n\u003e - Albert Einstein\n\nSearch for \"John Adams\" ([try in browser](https://api.quotable.io/search/authors?query=john+adams))\n\n```HTTP\nGET /search/authors?query=john adams\n```\n\n\u003e Results\n\u003e\n\u003e - John Adams\n\u003e - John Quincy Adams\n\nSearch for \"John Quincy Adams\" ([try in browser](https://api.quotable.io/search/authors?query=john+quincy+adams))\n\n```HTTP\nGET /search/authors?query=john quincy adams\n```\n\n\u003e Results:\n\u003e\n\u003e - John Quincy Adams)\n\u003e - John Adams\n\n\u003cbr\u003e\n\n## Get Author By Slug\n\nGet a _single_ `Author` by `slug`. This method can be used to get author details such as bio, website link, and profile image.\n\nIf you want to get all _quotes_ by a specific author, use the [/quotes](#list-quotes) endpoint and filter by author author name/slug.\n\nIf you want to get _multiple_ authors by slug in a single request, use the [/authors](#list-authors) endpoint and filter by `slug`.\n\n```HTTP\nGET /authors/:id\n```\n\n**Response**\n\n```ts\n{\n  // A unique id for this author\n  _id: string\n  // A brief, one paragraph bio of the author. Source wiki API.\n  bio: string\n  // A one-line description of the author.\n  description: string\n  // The link to the author's wikipedia page or official website\n  link: string\n  // The authors full name\n  name: string\n  // A slug is a URL-friendly ID derived from the authors name. It can be used as\n  slug: string\n  // The number of quotes by this author\n  quoteCount: string\n}\n```\n\n\u003cbr\u003e\n\n## List Tags\n\n```HTTP\nGET /tags\n```\n\nGet a list of all tags\n\n**Query parameters**\n\n| param  | type   | Description                                                                                                                                                                                                                                                          |\n| :----- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| sortBy | `enum` | `Default: \"name\"` \u0026nbsp; `values: \"dateAdded\", \"dateModified\", \"name\", \"quoteCount\"` \u003cbr\u003e The field used to sort tags.                                                                                                                                            |\n| order  | `enum` | `values: \"asc\", \"desc\"` \u003cbr\u003e The order in which results are sorted. The default order depends on the sortBy field. For string fields that are sorted alphabetically, the default order is ascending. For number and date fields, the default order is descending. |\n\n**Response**\n\n```ts\n{\n  // The number of all tags by this request\n  count: number\n  // The array of tags\n  results: Array\u003c{\n    _id: string\n    name: string\n  }\u003e\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukepeavey%2Fquotable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flukepeavey%2Fquotable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukepeavey%2Fquotable/lists"}