π‘Random Quotes
Get Random Quotes from Quotable is a free, open source quotations API.
Last updated
Get Random Quotes from Quotable is a free, open source quotations API.
Last updated
Quotable is a free, open source quotations API. It was originally built as part of a FreeCodeCamp project. If you are interested in contributing, please check out the Contributors Guide.
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.
You can try out the API on our public Postman workspace.
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
Returns a single random quote from the database
βοΈ This method is deprecated in favor of Get Random Quotes
Query parameters
Response
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 singleQuote
object, this method returns anArray
ofQuote
objects.
Response
Examples
Get random quote try in browser
Get 5 random quotes try in browser
Random Quote with tags "technology" AND
"famous-quotes" try in browser
Random Quote with tags "History" OR
"Civil Rights" try in browser
Random Quote with a maximum length of 50 characters try in browser
Random Quote with a length between 100 and 140 characters try in browser
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
Response
Examples
Get the first page of quotes, with 20 results per page try in browser
Get the second page of quotes, with 20 results per page try in browser
Get all quotes with the tags love
OR
happiness
try in browser
Get all quotes with the tags technology
AND
famous-quotes
try in browser
Get all quotes by author, using the author's slug
. try in browser
Get a quote by its ID
Response
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
Response
Examples
Get all authors, sorted alphabetically by name try in browser
Get all authors, sorted by number of quotes in descending order try in browser
Get a single author by slug. try in browser
Get multiple authors by slug. In this case, you provide a pipe-separated list of slugs try in browser
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 Atlas Search and is designed to power a search bar UI.
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.
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
Query Params
Response
Examples
Search for "every good technology is basically magic" (try in browser)
Results:
"Any sufficiently advanced technology is equivalent to magic."
Search for the phrase "divided house"
Results
"A house divided against itself cannot stand."
Search for quotes with the keywords "life" or "happiness" (try in browser)
Search for quotes by an author named "kennedy" (try in browser)
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.
Powered by Atlas Search.
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.
Query Parameters
Response
Examples
Search for author named "Einstein" (try in browser)
Results:
Albert Einstein
Autocomplete search for "Einstein" (try in browser)
Results:
Albert Einstein
Search for "John Adams" (try in browser)
Results
John Adams
John Quincy Adams
Search for "John Quincy Adams" (try in browser)
Results:
John Quincy Adams)
John Adams
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
.
Response
Get a list of all tags
Query parameters
Response
param | type | Description |
---|---|---|
param | type | Description |
---|---|---|
param | type | Description |
---|---|---|
param | type | Description |
---|---|---|
Param | Type | Description |
---|---|---|
Param | Type | Description |
---|---|---|
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
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
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
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
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
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
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.