πŸ˜‡
WhollyAPI
  • 🌎Home
  • 😎AI
    • πŸ–ΌοΈImage Generation
  • ☁️Hosting
    • πŸ–ΌοΈImage
  • β˜•General
    • Get Website's HTML
  • πŸ•ΈοΈWebsites
    • 🎼Jio Saavn
      • Homepage Data
      • 😎Details
        • πŸ•ΆοΈSong Details
    • πŸ“Mediafire
    • πŸ“₯Terabox
    • 🍎Aptoide
      • App Details
      • List Apps
    • ▢️YouTube Tag Generator
  • data
    • πŸ‘οΈView Counter
    • πŸ’‘Random Quotes
    • πŸ–ΌοΈRandom Images
    • πŸ§’Random Avatar
  • APIs
    • πŸ‘‘Ipflix
  • Under Development...
  • ▢️YouTube
  • πŸ‡ΈπŸ‡΄Instagram
  • ☁️Google Drive
  • πŸ’ŽPlay Store
  • βš”οΈTelegram
Powered by GitBook
On this page
  • Quotable - https://github.com/lukePeavey/quotable
  • API Reference
  • Examples
  • Get random quote
  • Get Random Quotes
  • List Quotes
  • Get Quote By ID
  • List Authors
  • Search Quotes (beta)
  • Search Authors (beta)
  • Get Author By Slug
  • List Tags
  1. data

Random Quotes

Get Random Quotes from Quotable is a free, open source quotations API.

PreviousView CounterNextRandom Images

Last updated 1 year ago

Quotable -

Quotable is a free, open source quotations API. It was originally built as part of a project. If you are interested in contributing, please check out the Contributors Guide.

Rate Limit

There 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.

API Servers

https://api.quotable.io

Postman

You can try out the API on our public Postman workspace.

API Reference

  • Get random quote

  • Get Random Quotes

  • List Quotes

  • Get Quote By ID

  • List Authors

  • Search Quotes (beta)

  • Search Authors (beta)

  • Get Author By Slug

  • List Tags

Examples

Get random quote

GET /random

Returns a single random quote from the database

⛔️ This method is deprecated in favor of Get Random Quotes

Query parameters

param
type
Description

maxLength

Int

The maximum Length in characters ( can be combined with minLength )

minLength

Int

The minimum Length in characters ( can be combined with maxLength )

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")

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.

authorId

String

deprecated Same as author param, except it uses author _id instead of slug

Response

{
  _id: string
  // The quotation text
  content: string
  // The full name of the author
  author: string
  // The `slug` of the quote author
  authorSlug: string
  // The length of quote (number of characters)
  length: number
  // An array of tag names for this quote
  tags: string[]
}

Get Random Quotes

GET /quotes/random

Get 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.)

By default, this methods returns a single random quote. You can specify the number of random quotes to return via the limit parameter.

⚠️ This method is equivalent to the /random endpoint. The only difference is the response format: Instead of retuning a single Quote object, this method returns an Array of Quote objects.

param
type
Description

limit

Int

default: 1 min: 1 max: 50 The number of random quotes to retrieve.

maxLength

Int

The maximum Length in characters ( can be combined with minLength )

minLength

Int

The minimum Length in characters ( can be combined with maxLength )

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")

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.

authorId

String

deprecated Same as author param, except it uses author _id instead of slug

Response

// An array containing one or more Quotes
Array<{
  _id: string
  // The quotation text
  content: string
  // The full name of the author
  author: string
  // The `slug` of the quote author
  authorSlug: string
  // The length of quote (number of characters)
  length: number
  // An array of tag names for this quote
  tags: string[]
}>

Examples

GET /quotes/random
GET /quotes/random?limit=3
GET /quotes/random?tags=technology,famous-quotes
GET /quotes/random?tags=history|civil-rights
GET /quotes/random?maxLength=50
GET /quotes/random?minLength=100&maxLength=140

List Quotes

GET /quotes

Get 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.

Query parameters

param
type
Description

maxLength

Int

The maximum Length in characters ( can be combined with minLength )

minLength

Int

The minimum Length in characters ( can be combined with maxLength )

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")

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.

authorId

String

deprecated Same as author param, except it uses author _id instead of slug

sortBy

enum

Default: "dateAdded" values: "dateAdded", "dateModified", "author", "content" The field used to sort quotes

order

enum

values: "asc", "desc" default: depends on sortBy 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.

limit

Int

Min: 1 Max: 150 Default: 20 Sets the number of results per page.

page

Int

Min: 1 Default: 1 The page of results to return. If the value is greater than the total number of pages, request will not return any results

Response

{
  // The number of quotes returned in this response
  count: number
  // The total number of quotes matching this query
  totalCount: number
  // The current page number
  page: number
  // The total number of pages matching this request
  totalPages: number
  // The 1-based index of the last result included in the current response.
  lastItemIndex: number
  // The array of quotes
  results: Array<{
    _id: string
    // The quotation text
    content: string
    // The full name of the author
    author: string
    // The `slug` of the quote author
    authorSlug: string
    // The length of quote (number of characters)
    length: number
    // An array of tag names for this quote
    tags: string[]
  }>
}

Examples

GET /quotes?page=1
GET /quotes?page=2
GET /quotes?tags=love|happiness
GET /quotes?tags=technology,famous-quotes
GET /quotes?author=albert-einstein

Get Quote By ID

GET /quotes/:id

Get a quote by its ID

Response

{
  _id: string
  // The quotation text
  content: string
  // The full name of the author
  author: string
  // The length of quote (number of characters)
  length: number
  // An array of tag names for this quote
  tags: string[]
}

List Authors

GET /authors

Get 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.

Query parameters

param
type
Description

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.

sortBy

enum

Default: "name" values: "dateAdded", "dateModified", "name", "quoteCount" The field used to sort authors.

order

enum

values: "asc", "desc" 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.

limit

Int

Min: 1 Max: 150 Default: 20 Sets the number of results per page.

page

Int

Min: 1 Default: 1 The page of results to return. If the value is greater than the total number of pages, request will not return any results

Response

{
  // The number of results included in this response.
  count: number
  // The total number of results matching this request.
  totalCount: number
  // The current page number
  page: number
  // The total number of pages matching this request
  totalPages: number
  // The 1-based index of the last result included in this response. This shows the
  // current pagination offset.
  lastItemIndex: number | null
  // The array of authors
  results: Array<{
    // A unique id for this author
    _id: string
    // A brief, one paragraph bio of the author. Source: wiki API
    bio: string
    // A one-line description of the author. Typically it is the person's primary
    // occupation or what they are know for.
    description: string
    // The link to the author's wikipedia page or official website
    link: string
    // The authors full name
    name: string
    // A slug is a URL-friendly ID derived from the authors name. It can be used as
    slug: string
    // The number of quotes by this author
    quoteCount: string
  }>
}

Examples

GET /authors?sortBy=name
GET /authors?sortBy=quoteCount&order=desc
GET /authors?slug=albert-einstein
GET /authors?slug=albert-einstein|abraham-lincoln

Search Quotes (beta)

GET /search/quotes
  • Search results are sorted by score

  • 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.

Query Params

Param
Type
Description

query

String

The search string. The query can be wrapped in quotes to search for an exact phrase.

fields

String

Default: "content,author,tags" 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.

fuzzyMaxEdits

Int

Min: 0 Max: 2 Default: 0 The maximum number of single-character edits required to match the specified search term. Setting this to zero disables fuzzy matching.

fuzzyMaxExpansions

Int

Max: 150 Min: 0 Default: 50 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.

limit

Int

Min: 0 Max: 150 Default: 20 The maximum number of results per page

page

Int

Min: 1 Default: 1 Sets the page number for pagination

Response

{
  // The number of results included in this response.
  count: number
  // The total number of results matching this request.
  totalCount: number
  // The current page number
  page: number
  // The total number of pages matching this request
  totalPages: number
  // The 1-based index of the last result included in this response. This shows the
  // current pagination offset.
  lastItemIndex: number | null
  // The array of authors
  results: Array<{
    // A unique id for this author
    _id: string
    // A brief, one paragraph bio of the author. Source: wiki API
    bio: string
    // A one-line description of the author. Typically it is the person's primary
    // occupation or what they are know for.
    description: string
    // The link to the author's wikipedia page or official website
    link: string
    // The authors full name
    name: string
    // A slug is a URL-friendly ID derived from the authors name. It can be used as
    slug: string
    // The number of quotes by this author
    quoteCount: string
  }>
}

Examples

GET /search/quotes?query=every good technology is basically magic

Results:

  • "Any sufficiently advanced technology is equivalent to magic."

Search for the phrase "divided house"

GET /search/quotes?query=divided house

Results

  • "A house divided against itself cannot stand."

GET /search/quotes?query=life happiness
GET /search/quotes?query=Kennedy&fields=author

Search Authors (beta)

GET  /search/authors

This 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.

  • Real autocomplete

  • Results are sorted by score

  • 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.

Example
query="John F. Kennedy"
terms=["john", "kennedy"]

 term      term
  |         |
John  F.  Kennedy  Jr.
      |             |
   initial        suffix

Example
query="Saint Augustine of Hippo"
terms=["Augustine", "Hippo"]

        term        term
          |          |
 Saint Augustine of Hippo
   |             |
prefix        stopword

Query Parameters

Param
Type
Description

query

String

The search query

autocomplete

Boolean

default: true Enables autocomplete matching

matchThreshold

Int

Min: 1 Max: 3 Default: 2 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". 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".

limit

Int

Min: Max: 150 Default: 20 Maximum number of results per page

page

Int

Min: 1 Default: 1 Sets the page number for pagination

Response

{
  // The number of results included in this response.
  count: number
  // The total number of results matching this request.
  totalCount: number
  // The current page number
  page: number
  // The total number of pages matching this request
  totalPages: number
  // The 1-based index of the last result included in this response. This shows the
  // current pagination offset.
  lastItemIndex: number | null
  // The array of authors
  results: Array<{
    // A unique id for this author
    _id: string
    // A brief, one paragraph bio of the author. Source: wiki API
    bio: string
    // A one-line description of the author. Typically it is the person's primary
    // occupation or what they are know for.
    description: string
    // The link to the author's wikipedia page or official website
    link: string
    // The authors full name
    name: string
    // A slug is a URL-friendly ID derived from the authors name. It can be used as
    slug: string
    // The number of quotes by this author
    quoteCount: string
  }>
}

Examples

GET /search/authors?query=Einstein

Results:

  • Albert Einstein

GET /search/authors?query=Einst

Results:

  • Albert Einstein

GET /search/authors?query=john adams

Results

  • John Adams

  • John Quincy Adams

GET /search/authors?query=john quincy adams

Results:

  • John Quincy Adams)

  • John Adams

Get Author By Slug

Get a single Author by slug. This method can be used to get author details such as bio, website link, and profile image.

If you want to get all quotes by a specific author, use the /quotes endpoint and filter by author author name/slug.

If you want to get multiple authors by slug in a single request, use the /authors endpoint and filter by slug.

GET /authors/:id

Response

{
  // A unique id for this author
  _id: string
  // A brief, one paragraph bio of the author. Source wiki API.
  bio: string
  // A one-line description of the author.
  description: string
  // The link to the author's wikipedia page or official website
  link: string
  // The authors full name
  name: string
  // A slug is a URL-friendly ID derived from the authors name. It can be used as
  slug: string
  // The number of quotes by this author
  quoteCount: string
}

List Tags

GET /tags

Get a list of all tags

Query parameters

param
type
Description

sortBy

enum

Default: "name" values: "dateAdded", "dateModified", "name", "quoteCount" The field used to sort tags.

order

enum

values: "asc", "desc" 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.

Response

{
  // The number of all tags by this request
  count: number
  // The array of tags
  results: Array<{
    _id: string
    name: string
  }>
}

Get random quote

Get 5 random quotes

Random Quote with tags "technology" AND "famous-quotes"

Random Quote with tags "History" OR "Civil Rights"

Random Quote with a maximum length of 50 characters

Random Quote with a length between 100 and 140 characters

Get the first page of quotes, with 20 results per page

Get the second page of quotes, with 20 results per page

Get all quotes with the tags love OR happiness

Get all quotes with the tags technology AND famous-quotes

Get all quotes by author, using the author's slug.

Get all authors, sorted alphabetically by name

Get all authors, sorted by number of quotes in descending order

Get a single author by slug.

Get multiple authors by slug. In this case, you provide a pipe-separated list of slugs

This endpoint allows you to search for quotes by keywords, content, and/or author name. Unlike the List Quotes endpoint, this method is powered by and is designed to power a search bar UI.

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

Search for "every good technology is basically magic" ()

Search for quotes with the keywords "life" or "happiness" ()

Search for quotes by an author named "kennedy" ()

Powered by .

Search for author named "Einstein" ()

Autocomplete search for "Einstein" ()

Search for "John Adams" ()

Search for "John Quincy Adams" ()

πŸ’‘
Basic Quote Machine (CodePen)
React Quote Machine (CodeSandbox)
React Native App (Github)
Paginated Author List (codeSandbox)
Paginated Quote List (codeSandbox)
try in browser
try in browser
try in browser
try in browser
try in browser
try in browser
try in browser
try in browser
try in browser
try in browser
try in browser
try in browser
try in browser
try in browser
try in browser
Atlas Search
Atlas docs
try in browser
try in browser
try in browser
Atlas Search
try in browser
try in browser
try in browser
try in browser
https://github.com/lukePeavey/quotable
FreeCodeCamp