On-Line Encyclopedia of Integer Sequences API
The On-Line Encyclopedia of Integer Sequences (OEIS) is a comprehensive database of integer sequences, founded by Neil Sloane in 1964 and now containing over 370,000 entries. It is one of the most widely cited resources in mathematics, serving as the definitive reference for identifying, cataloging, and exploring integer sequences that arise in combinatorics, number theory, algebra, analysis, and applied mathematics.
The OEIS provides a web-accessible search interface that can also be used programmatically to query sequences by their terms, by A-number (the unique identifier for each sequence), or by keyword. The API returns structured data in JSON or plain text format, including the sequence terms, formulas, generating functions, references, links to related sequences, and contributed programs in various languages.
Mathematicians, computer scientists, physicists, and researchers in any quantitative discipline use the OEIS to identify unknown sequences encountered in their work, verify conjectures, discover connections between different areas of mathematics, and access formulas and programs for computing sequence terms. It is an indispensable tool for both pure and applied mathematical research.
No authentication required. The OEIS is a free, open resource that does not require any API key, token, or registration. All queries are publicly accessible. The OEIS Foundation operates as a non-profit and relies on voluntary contributions.
Search the OEIS database by sequence terms, keywords, A-number, or author name. This is the primary endpoint for querying the encyclopedia.
GET https://oeis.org/search| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | Yes | Search query: sequence terms (comma-separated), keyword, or A-number |
| fmt | string | No | Output format: json, text, html (default) |
| start | int | No | Offset for pagination (default 0) |
# Search by sequence terms
curl "https://oeis.org/search?q=1,1,2,3,5,8,13,21&fmt=json"
# Search by A-number
curl "https://oeis.org/search?q=A000045&fmt=json"
# Search by keyword
curl "https://oeis.org/search?q=catalan+numbers&fmt=json"
count (total results), start, and results array. Each result contains number (A-number as integer), name (description), data (comma-separated terms), offset, formula (array of formula strings), comment (array), reference (array of bibliographic references), link (array of URLs), program (array of code implementations), and xref (cross-references to related sequences).Retrieve a specific sequence by its A-number directly via the URL path. This provides a simpler access pattern for known sequences.
GET https://oeis.org/A{number}| Parameter | Type | Required | Description |
|---|---|---|---|
| number | int | Yes | The sequence A-number (in the URL path) |
| fmt | string | No | Output format: json, text, html |
# Retrieve the Fibonacci sequence (A000045)
curl "https://oeis.org/A000045?fmt=json"
# Retrieve the prime numbers (A000040)
curl "https://oeis.org/A000040?fmt=json"
number, name, data, formula, maple (Maple code), mathematica (Mathematica code), program (other language implementations), and keyword (classification tags like nonn, easy, nice).No formal rate limits are published for the OEIS. However, the service is run by a non-profit organization with limited infrastructure. Users should be respectful and avoid sending more than a few requests per second. For bulk data access, the OEIS provides downloadable data files at https://oeis.org/stripped.gz (sequence terms) and https://oeis.org/names.gz (sequence names) which are more appropriate for large-scale analysis.
When you encounter an integer sequence in your research and want to identify it:
import requests
# You found this sequence in your combinatorial analysis
unknown_terms = "1,4,9,16,25,36,49,64"
resp = requests.get("https://oeis.org/search", params={"q": unknown_terms, "fmt": "json"})
data = resp.json()
if data["count"] > 0:
seq = data["results"][0]
print(f"A{seq['number']:06d}: {seq['name']}")
print(f"Terms: {seq['data']}")
if seq.get("formula"):
print(f"Formula: {seq['formula'][0]}")