RhymeBrain.com Rhyming and Word Information API

You can use RhymeBrain.com results for your own projects and web sites. There are some limitations:
  1. We cannot guarantee that RhymeBrain will remain available all the time.
  2. If you use RhymeBrain.com's results in a web site, you must link back to rhymebrain.com on the same page as the results are presented.
  3. If you use RhymeBrain.com's results in an application, you must acknowledge RhymeBrain.com in your application's About screen.
  4. Unless you make special arrangements with us, requests will be limited to a certain number per hour. After this limit is reached, access will fail until you are under the limit.

Include RhymeBrain.com results on your web site

To include RhymeBrain.com rhyming results on your web site, include this code in your HTML. You may modify this code. However, you must include a link back to RhymeBrain.com to use this service.

Demonstration

Rhyme results are provided by RhymeBrain.com

Example Web Page

See Example Web Page

RhymeBrain.com Advanced Access

Advanced Access is suited for server-side and native applications. It provides access to more functions.

You can send several requests at a time. Separate the parameters with &next. In this case, the results will be returned in an array of arrays.

If present, the jsonp parameter can contain the name of a Javascript function to call with the results. This lets you use RhymeBrain functions from other web sites. See JSONP on wikipedia for more details.

To make a request containing international alphabets, you must follow the standards regarding percent-encoding URLs. Each unicode character must be first converted into UTF-8, and then each UTF-8 character is percent-encoded as required.

Rhyming

Example

http://rhymebrain.com/talk?function=getRhymes&word=hello

[
    {
        "word": "no",
        "frequency": 28,
        "score": "300",
        "flags": "bc",
        "syllables": "1"
    },
    {
        "word": "so",
        "frequency": 28,
        "score": "300",
        "flags": "bc",
        "syllables": "1"
    },
    {
        "word": "know",
        "frequency": 27,
        "score": "300",
        "flags": "bc",
        "syllables": "1"
    }
]

Request parameters

Name Description
word The rhyming word
lang ISO639-1 language code (optional). Eg. en, de, es, fr, ru
maxResults (optional) The number of results to return. If you do not include this parameter, RhymeBrain will choose how many words to show based on how many good sounding rhymes there are for the word.

Response

Each result is an object with these members:
Name Description
word The rhyming word
score The RhymeRankTM score for the word.
  • Scores of 300 and above are perfect rhymes.
  • Scores between 0 and 300 are near rhymes without similar sounding consonents.
  • Words with the same score are listed with the most matching sounds first. If you later sort by score again, it is best to preserve this ordering before showing the results to the user.
flags A list of letters giving more information about the word.
  • a: The word is offensive.
  • b: The word might be found in most dictionaries.
  • c: The pronunciation is known with confidence. It was not automatically generated.
syllables An estimate of the number of syllables in the rhyming word.
freq A number that tells you how common the word is. The number is a logarithm of the frequency of usage in common texts. Currently, the highest possible value is 34.

Word Information

You can ask RhymeBrain to return everything it knows about a word, including its pronunciation and other flags.

Example

http://rhymebrain.com/talk?function=getWordInfo&word=hello

{
    "word": "hello",
    "pron": "HH AH0 L OW1",
    "ipa": "h\u028cl\u02c8\u0259\u028a\u032f",
    "freq": 19,
    "flags": "bc"
}

Request parameters

Name Description
word The word
lang ISO639-1 language code (optional). Eg. en, de, es

Response

Name Description
word The word
pron The result is a string containing the phonetic transcription of the word. The arpabet format used is described here. The flags indicate whether the pronunciation is automatically generated or not. An automatically generated pronunciation might not be accurate.
ipa The phonetic transcription using the International Phonetic Alphabet. This transcription might contain unicode characters. Since the response is in JSON format, the unicode characters are encoded using the \u syntax.
flags A list of letters giving more information about the word.
  • a: The word is offensive.
  • b: The word might be found in most dictionaries.
  • c: The pronunciation is known with confidence. It was not automatically generated.
syllables An estimate of the number of syllables in the word.
freq A number that tells you how common the word is. Currently, the highest possible value is 34.

Portmanteaus

http://rhymebrain.com/talk?function=getPortmanteaus&word=blog

[
    {
        "source": "blog,augmentation",
        "combined": "blogmentation,blaugmentation"
    },
    {
        "source": "blog,august",
        "combined": "blogust,blaugust"
    },
    {
        "source": "blog,logarithmic",
        "combined": "blogarithmic"
    }
]

Request

Name Description
word The rhyming word
lang ISO639-1 language code (optional). Eg. en, de, es
maxResults (optional) The number of results to return.

Response

Name Description
source The two words contained in the the portmanteau, separated by a comma.
combined One or two possible spellings of the portmanteau. When there is more than one possibility, they are separated by a comma.

Rate limiting

If you are making too many requests, they will be automatically limited. In that case, you will get back an error. Each individual query in a request counts towards the limit. The rate limiting is performed according to the "leaky bucket" algorithm.

The current rate limit is 350 requests per hour.

About RhymeBrain

Steve Hanov lives in Waterloo, Ontario, Canada, and occasionally works on RhymeBrain when allowed by his wife, Alice, and two small daughters. Since 2009, Steve has been tweaking the rhyming algorithm to present better results and add new human languages. He has had to learn about linguistics, information retrieval, statistics, and, unfortunately, linear algebra to build this system.

RhymeBrain uses machine learning to derive the pronunciation of words. Rhymes are not stored, but computed automatically for each request by finding words that sound similar.

Steve sometimes writes about the technical things on his blog.