The Alphabeticall API provides free, programmatic access to comprehensive dictionary data. Perfect for building language learning apps, writing tools, or research projects.
/api/v1/wordset_words
Retrieve a paginated list of words with optional filtering.
Parameter | Type | Default | Description |
---|---|---|---|
page |
integer | 1 | Page number for pagination |
per_page |
integer | 20 | Items per page (max: 100) |
letter |
string | - | Filter words starting with letter |
search |
string | - | Search words containing string |
random |
boolean | false | Return random selection |
count |
integer | 10 | Number of random words (max: 50) |
curl "https://alphabeticall.com/api/v1/wordset_words?letter=a&page=2"
/api/v1/wordset_words/:id
Retrieve a specific word by its ID.
curl "https://alphabeticall.com/api/v1/wordset_words/123"
/api/v1/wordset_words/search
Search for words matching a query.
Parameter | Type | Required | Description |
---|---|---|---|
q |
string | Yes | Search query |
exact |
boolean | No | Match exact word only |
page |
integer | No | Page number |
per_page |
integer | No | Items per page |
curl "https://alphabeticall.com/api/v1/wordset_words/search?q=example"
All endpoints return raw JSON data without wrapper objects. Each word object contains:
{
"id": 123,
"word": "example",
"definition": {
"word": "example",
"wordset_id": "a1b2c3d4e5",
"meanings": [
{
"id": "m1a2b3c4d5",
"def": "a thing characteristic of its kind or illustrating a general rule",
"speech_part": "noun",
"example": "it's a good example of how they can collaborate",
"synonyms": ["instance", "sample", "specimen"],
"labels": [
{
"name": "formal",
"is_dialect": false
}
]
}
],
"editors": ["user1"],
"contributors": ["user2", "user3"]
}
}
definition
field contains the complete wordset data structure as stored in the database.
// Search for words
fetch('https://alphabeticall.com/api/v1/wordset_words/search?q=hello')
.then(response => response.json())
.then(words => {
words.forEach(word => {
console.log(`${word.word}: ${word.definition.meanings[0].def}`);
});
});
// Get random words
fetch('https://alphabeticall.com/api/v1/wordset_words?random=true&count=5')
.then(response => response.json())
.then(words => console.log(words));
import requests
# Get words starting with 'a'
response = requests.get('https://alphabeticall.com/api/v1/wordset_words?letter=a')
words = response.json()
for word in words:
print(f"{word['word']}: {word['definition']['meanings'][0]['def']}")
require 'net/http'
require 'json'
# Search for exact word
uri = URI('https://alphabeticall.com/api/v1/wordset_words/search?q=ruby&exact=true')
response = Net::HTTP.get(uri)
words = JSON.parse(response)
words.each do |word|
puts "#{word['word']}: #{word['definition']['meanings'][0]['def']}"
end
The API uses standard HTTP status codes and returns errors in JSON format:
{
"error": {
"code": "not_found",
"message": "The requested word was not found"
}
}
Status Code | Description |
---|---|
200 |
Success |
400 |
Bad Request - Invalid parameters |
404 |
Not Found - Resource not found |
500 |
Internal Server Error |
While we don't enforce rate limits, please be respectful of our resources:
Store frequently accessed data locally to reduce API calls
Request data in smaller chunks to improve performance
Wait progressively longer between retry attempts
Get a representative sample without processing all data