Available Languages API
This endpoint returns the list of languages that have content available in your tenant. Use it to determine which locales are active and to build language selectors.
Endpoint
| Method | Endpoint | Description |
|---|---|---|
GET | /public/available-languages | Get available content languages |
Get Available Languages
GET /public/available-languagesQuery Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
tenant_id | string | Yes | The tenant ID to query languages for |
Note: Unlike other public endpoints that infer the tenant from the API key, this endpoint requires an explicit tenant_id query parameter.
Example Request
curl -X GET "https://api.adaptocms.com/public/available-languages?tenant_id=YOUR_TENANT_ID" \
-H "x-api-key: YOUR_API_KEY"Example Response
["en", "fr", "de", "es"]The response is a simple JSON array of ISO 639-1 language codes.
Use Case: Language Selector
// Fetch available languages and build a selector
const languages = await fetch(
`${BASE_URL}/public/available-languages?tenant_id=${TENANT_ID}`,
{ headers: { 'x-api-key': API_KEY } }
).then(r => r.json());
// Map language codes to display names
const languageNames = {
en: 'English',
fr: 'Français',
de: 'Deutsch',
es: 'Español',
it: 'Italiano',
pt: 'Português',
nl: 'Nederlands',
ja: '日本語',
zh: '中文',
ko: '한국어'
};
const selector = languages.map(code => ({
code,
label: languageNames[code] || code
}));Use Case: Astro i18n Routing
// astro.config.mjs
import { defineConfig } from 'astro/config';
// Fetch available languages at build time
const languages = await fetch(
`https://api.adaptocms.com/public/available-languages?tenant_id=${process.env.ADAPTO_TENANT_ID}`,
{ headers: { 'x-api-key': process.env.ADAPTO_API_KEY } }
).then(r => r.json());
export default defineConfig({
i18n: {
defaultLocale: languages[0] || 'en',
locales: languages
}
});