languagelayer

Data API · Language detection · 100+ languages · Text analysis

TL;DR

languagelayer detects the natural language of any text input. Submit a string and get back the detected language code (ISO 639-1), language name, and confidence percentage. Supports 100+ languages from Afrikaans to Zulu. It's ideal for content classification, multilingual routing, and text processing pipelines.

Quick start: https://api.languagelayer.com/detect?access_key=YOUR_KEY&query=Hello+world

Free tier available — register for an API key (free plan includes 100 requests/month)

How to Use This API

1. Basic Detection

https://api.languagelayer.com/detect?access_key=YOUR_KEY&query=Bonjour%20tout%20le%20monde

Returns: {"success":true,"results":[{"language_code":"fr","language_name":"French","probability":99.8,"percentage":99.8}]}

2. Bulk Detection (Multiple Texts)

https://api.languagelayer.com/detect?access_key=YOUR_KEY&query[]=Hola%20mundo&query[]=Hello%20world

Submit up to 10 texts in a single request using array syntax.

3. JavaScript — Auto-Detect Page Content

async function detectLanguage(text) {
  const apiKey = 'YOUR_API_KEY';
  const resp = await fetch(
    `https://api.languagelayer.com/detect` +
    `?access_key=${apiKey}&query=${encodeURIComponent(text)}`
  );
  const data = await resp.json();
  
  if (data.success && data.results.length) {
    const result = data.results[0];
    return {
      code: result.language_code,
      name: result.language_name,
      confidence: result.percentage
    };
  }
  return null;
}

detectLanguage('¿Cómo estás?').then(lang => {
  if (lang) {
    console.log(`Detected: ${lang.name} (${lang.code})`);
    console.log(`Confidence: ${lang.confidence}%`);
  }
});

4. Python — Language Classifier for Text

import requests

def detect_text_language(text, api_key):
    resp = requests.get(
        'https://api.languagelayer.com/detect',
        params={
            'access_key': api_key,
            'query': text
        }
    )
    data = resp.json()
    
    if data.get('success') and data.get('results'):
        result = data['results'][0]
        return {
            'language': result['language_name'],
            'code': result['language_code'],
            'confidence': result['percentage']
        }
    return None

api_key = 'YOUR_KEY_HERE'
samples = [
    'The quick brown fox jumps over the lazy dog',
    'Je ne parle pas français',
    'Hallo, wie geht es dir?',
    'Ciao, come stai?',
    '今日はいい天気ですね'
]

for text in samples:
    result = detect_text_language(text, api_key)
    if result:
        print(f"\"{text[:30]}...\" -> {result['language']} ({result['confidence']}%)")
Test detection (replace key): https://api.languagelayer.com/detect?access_key=YOUR_KEY&query=Guten%20Tag

Frequently Asked Questions

How many languages does it detect?
100+ languages covering most widely spoken world languages including major dialects. The full list is available in the documentation.
How accurate is the detection?
For texts longer than 20 characters, accuracy is very high (typically >95%). Very short texts (1-2 words) have lower accuracy. The API returns a confidence percentage.
What is the free tier limit?
The free plan includes 100 requests per month. Paid plans offer higher volumes (1,000 to 50,000+ requests/month).
Can I detect languages in bulk?
Yes, use array syntax (query[]=text1&query[]=text2) to submit up to 10 texts in one API call.
What language codes are returned?
ISO 639-1 two-letter codes (en, fr, de, es, it, ja, zh, etc.) along with the full language name.
Is there a text moderation feature?
languagelayer focuses on language detection. For content moderation/profanity detection, consider a complementary API.

API Details

API URL
https://api.languagelayer.com
Documentation
languagelayer.com/documentation
Category
Data
Authentication
API Key Required (free tier available)
Geographic Coverage
Global — 100+ languages

What You Can Build