Python wrapper for RhymeBrain API

python rhyme words api
pip install pyrhyme==0.1



pyrhyme is a wrapper around the RhymeBrain api. It aims to provide a pythonic way for interacting with the RhymeBrain api.

Requirements, Installing, and Compatibility

The only requirement, included in requirements.txt is for requests. If you are using pip, you can install pyrhyme:

$ pip install requests pyrhyme


$ pip install requests
$ pip install -e git+

Then you should be off and running. pyrhyme has been tested against python version 3.6.

Getting Started

Using pyrhyme is straightforward and aims provide interaction with the api without any JSON interaction.

The entry point for interacting with Giphy_ api is the pyrhyme.RhymeBrain class. This class optionally accepts two arguments: api_key and strict. The api_key agument, when not preset, will default to the public key (see above). The strict argument controls how you expect the api to react when no results are returned. If enabled, an exception is raised, otherwise, None is returned.

>>> import pyrhyme
>>> g = pyrhyme.RhymeBrain()

Now you're ready to get started. There are a few key methods of the pyrhyme.RhymeBrain object that you'll want to know about


Search for rhymes with a given word.

Note that this method is a RhymeWord generator. Optionally accepts a maximum number of results.

  • word: Word to search a rhyme for
  • 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 toshow based on how many good sounding rhymes there are for the word.


Suppose you expect the rhyming method to just give you a list rather than a generator. This method will have that effect. Equivalent to:

>>> g = pyrhyme.RhymeBrain()
>>> results = [x for x in g.rhymimg('foo')]


The above methods of pyrhyme.RhymeBrain are also exposed at the module level for your convenience. For example:

>>> from pyrhyme import rhyming
>>> img = rhyming('foo', lang='en')

Handling Results

All results that represent a single image are wrapped in a pyrhyme.RhymeWord object. This object acts like a dictionary, but also exposes keys as attributes. Note, that these are not a direct mirror of api response objects; their goal is to be simpler. Structure follows this layout:

<Result Object>
    - 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.

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

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

For example:

>>> from pyrhyme import rhyme
>>> r = rhyme('foo')
>>> r.word



  • Initial Version

Contribution and License

Developed by Jorge Sequeira and is licensed under the terms of a MIT license. Contributions are welcomed and appreciated!