POST /v3/language/query → Query.ttdLanguages / Query.peer39Languages
Overview
| Property |
Value |
| REST endpoint |
POST /v3/language/query |
| GraphQL query |
Query.ttdLanguages, Query.peer39Languages |
| Return type |
TtdLanguagesConnection, Peer39LanguagesConnection |
Multi-step operations
One REST paged language query maps to two top-level GraphQL connections, selected by REST LanguageSourceType instead of a filter input:
REST LanguageSourceType |
GraphQL query |
GraphQL node type |
Default (or omitted) |
Query.ttdLanguages |
TTDLanguage |
Peer39SiteLanguage |
Query.peer39Languages |
Peer39Language |
Both connections support first/after/last/before, where filter inputs, and order sort inputs. Default sort is by name ascending (matches REST default of Name ascending).
Request and filter field mapping
| REST field |
GraphQL argument |
GraphQL type |
Required |
Notes |
PageStartIndex |
after |
String |
Optional |
N/A |
PageSize |
first |
Int |
Optional |
N/A |
LanguageSourceType |
(query selection) |
N/A |
Optional |
Choose ttdLanguages vs peer39Languages instead of a filter input. |
SortFields |
order |
[TTDLanguageSortInput!] or [Peer39LanguageSortInput!] |
Optional |
REST FieldId: Name → order: [{ name: ASC }]. |
SortFields[].FieldId |
order[].name |
SortEnumType |
Required |
REST Name → name. |
SortFields[].Ascending |
order[].* value |
SortEnumType |
Optional |
true → ASC; false → DESC. |
GraphQL-only filters (no REST POST equivalent)
| GraphQL argument |
GraphQL type |
Notes |
where.id |
StringIdOperationFilterInput |
Filter by language ID. |
where.name |
StringOperationFilterInput |
Filter by display name. |
where.languageCode |
StringOperationFilterInput |
Filter by language code. |
Response field mapping
| REST response field | GraphQL field | GraphQL type | Nullable | Notes |
|---------------------|---------------|--------------|----------|-------|
| `Result` | `nodes` | `[TTDLanguage!]` or `[Peer39Language!]` | Nullable | N/A |
| `ResultCount` | N/A | N/A | N/A | N/A |
| `TotalFilteredCount` | `totalCount` | Int! | Not nullable | N/A |
| `TotalUnfilteredCount` | N/A | N/A | N/A | N/A |
Default catalog (`LanguageSourceType: default` → `Query.ttdLanguages` → `TTDLanguage`)
| REST response field |
GraphQL field |
GraphQL type |
Nullable |
Notes |
Id |
id |
ID! |
Not nullable |
N/A |
Name |
name |
String! |
Not nullable |
Display name. |
Code |
languageCode |
String! |
Not nullable |
ISO 639-1 code. GraphQL field name is languageCode, not REST Code. |
Peer39 catalog (`LanguageSourceType: Peer39SiteLanguage` → `Query.peer39Languages` → `Peer39Language`)
| REST response field |
GraphQL field |
GraphQL type |
Nullable |
Notes |
Id |
id |
ID! |
Not nullable |
Ids typically in the 1000–1499 range. |
Name |
name |
String! |
Not nullable |
Display names omit the Peer39_ prefix from provisioning names (e.g. Peer39_English → English). |
Code |
languageCode |
String! |
Not nullable |
Peer39-specific code (e.g. peer39-lang-en). |
Code examples
The following are examples of querying the default TTD language catalog and the Peer39 site-language catalog.
REST example (Default)
POST /v3/language/query HTTP/1.1
Content-Type: application/json
TTD-Auth: AUTH_TOKEN_PLACEHOLDER
{
"PageStartIndex": 0,
"PageSize": 25,
"LanguageSourceType": "Default",
"SortFields": [{ "FieldId": "Name", "Ascending": true }]
}
GraphQL example
POST /graphql HTTP/1.1
Content-Type: application/json
TTD-Auth: AUTH_TOKEN_PLACEHOLDER
query TtdLanguages {
ttdLanguages(
first: 25
order: [{ name: ASC }]
) {
nodes {
id
name
languageCode
}
totalCount
pageInfo {
hasNextPage
endCursor
}
}
}
REST example (Peer39SiteLanguage)
POST /v3/language/query HTTP/1.1
Content-Type: application/json
TTD-Auth: AUTH_TOKEN_PLACEHOLDER
{
"PageStartIndex": 0,
"PageSize": 25,
"LanguageSourceType": "Peer39SiteLanguage",
"SortFields": [{ "FieldId": "Name", "Ascending": true }]
}
GraphQL example
POST /graphql HTTP/1.1
Content-Type: application/json
TTD-Auth: AUTH_TOKEN_PLACEHOLDER
query Peer39Languages {
peer39Languages(
first: 25
order: [{ name: ASC }]
) {
nodes {
id
name
languageCode
}
totalCount
pageInfo {
hasNextPage
endCursor
}
}
}