Content Search API
The Content Search API allows you to search for strings within a Smartling project. You can filter by string text, hashcode, namespace, or any combination of available filters.
Terms of Service
API Endpoints
https://api.smartling.com/strings-view-service-graphql-api/v2/projects/<projectId>/graphql
Headers
Authorization: Bearer <YOUR_TOKEN_HERE>
Queries
searchStrings
Description
Search for strings with filtering options. Returns source strings and their translations.
Response
Returns a StringGroup!
Arguments
| Name | Description |
|---|---|
searchStringsFilter - SearchStringsFilter!
|
Filter criteria for string search |
Example
Query
query searchStrings($searchStringsFilter: SearchStringsFilter!) {
searchStrings(searchStringsFilter: $searchStringsFilter) {
content {
...StringResultFragment
}
totalCount
totalWordCount
}
}
Variables
{"searchStringsFilter": SearchStringsFilter}
Response
{
"data": {
"searchStrings": {
"content": [StringResult],
"totalCount": 150,
"totalWordCount": 1250
}
}
}
Types
ActiveStringsFilter
Description
Filter by string active state.
Fields
| Input Field | Description |
|---|---|
presence - ActiveStringsPresenceSelector
|
Active/inactive state selector |
Example
{"presence": "ACTIVE"}
ActiveStringsPresenceSelector
Description
Filter by string active state. Active strings are currently used in your project.
Values
| Enum Value | Description |
|---|---|
|
|
Active strings only |
|
|
Inactive strings only |
|
|
Both active and inactive strings |
Example
"ACTIVE"
AssignmentFilter
Description
Filter by user assignments.
Fields
| Input Field | Description |
|---|---|
presence - PresenceSelector
|
Filter by assignment presence |
userUids - [String]
|
User UIDs to filter by |
Example
{"presence": "HAS_ANY", "userUids": ["usr123", "usr456"]}
Boolean
Description
The Boolean scalar type represents true or false.
ContentFile
Description
Content file containing the string.
Example
{
"stringKey": "button.submit",
"fileName": "strings.json",
"stringInstruction": "Do not translate"
}
Context
ContextFilter
Description
Filter by visual context.
Fields
| Input Field | Description |
|---|---|
presence - PresenceSelector
|
Filter by presence or absence of context |
exactMatch - Boolean
|
Match exact URL or partial match |
urls - [String]
|
Context URLs to filter by |
uids - [String]
|
Context UIDs to filter by |
Example
{
"presence": "HAS_ANY",
"exactMatch": false,
"urls": ["https://example.com/page"],
"uids": [
"9129e0e0-365d-4fc2-9002-a95829f8cd78",
"9129e0e0-365d-3fc2-9012-a95829f8cd76"
]
}
Date
Example
"2026-02-11T22:00:00Z"
GdnSeoFilter
Description
Filter GDN strings by SEO content type.
Fields
| Input Field | Description |
|---|---|
presence - PresenceSelector
|
Filter by SEO content presence |
Example
{"presence": "HAS_ANY"}
ID
Description
The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.
Example
"4"
IngestionWarningTypeFilter
Description
Filter by string ingestion warning types.
Fields
| Input Field | Description |
|---|---|
ingestionWarningTypes - [String!]!
|
Warning type codes to filter by |
Example
{"ingestionWarningTypes": ["STRING_WITHOUT_WORDS", "STRING_IN_WRONG_LANGUAGE"]}
InstructionsFilter
Description
Filter by string instructions.
Fields
| Input Field | Description |
|---|---|
presence - InstructionsTypeSelector
|
Instruction type selector |
keyword - String
|
Search keyword in instructions |
Example
{"presence": "HAS_ANY", "keyword": "translate carefully"}
InstructionsTypeSelector
Description
Filter by instruction type.
Values
| Enum Value | Description |
|---|---|
|
|
No instructions |
|
|
Any type of instruction |
|
|
Instructions from file |
|
|
Manually added instructions |
Example
"HAS_NOTHING"
Int
Description
The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
123
IssueTypeSelector
Description
Filter by type of issue.
Values
| Enum Value | Description |
|---|---|
|
|
Issues on source strings |
|
|
Issues on translations |
Example
"SOURCE_ISSUE"
IssuesFilter
Description
Filter strings by issues.
Fields
| Input Field | Description |
|---|---|
selector - IssuesSelector
|
Issue status selector |
typeSelector - IssueTypeSelector
|
Type of issue (source or translation) |
Example
{"selector": "ANY_OPEN_ISSUES", "typeSelector": "TRANSLATION_ISSUE"}
IssuesSelector
Description
Filter strings by issue status.
Values
| Enum Value | Description |
|---|---|
|
|
Strings with any issues (open or resolved) |
|
|
Strings with open issues only |
|
|
Strings with resolved issues only |
|
|
Strings without any issues |
Example
"ANY_ISSUES"
KeyVariantFilter
Description
Filter by string key or variant.
Fields
| Input Field | Description |
|---|---|
keyword - String
|
Search keyword for key/variant |
exactMatch - Boolean
|
Match exact key or use partial matching |
presence - PresenceSelector
|
Filter by key/variant presence |
Example
{"keyword": "button.submit", "exactMatch": true, "presence": "HAS_ANY"}
Locale
NamespaceFilter
Description
Filter by string namespace.
Fields
| Input Field | Description |
|---|---|
name - String
|
Namespace name to filter by |
Example
{"name": "app.settings"}
OriginalStringForm
Description
Plural form of source string.
Fields
| Field Name | Description |
|---|---|
originalStringText - String!
|
Text for this plural form |
pluralForm - PluralForm
|
Plural form type |
Example
{"originalStringText": "{0} cats", "pluralForm": "ZERO"}
PlaceholderPluralsSelector
Description
Filter strings containing placeholders or plurals.
Values
| Enum Value | Description |
|---|---|
|
|
Has placeholders only |
|
|
Has plural forms only |
|
|
Has both placeholders and plurals |
Example
"HAS_PLACEHOLDERS"
PluralForm
Description
Plural forms for strings with pluralization.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"ZERO"
PrepublishFilter
Description
Filter by pre-publish status.
Fields
| Input Field | Description |
|---|---|
presence - PresenceSelector!
|
Filter by pre-publish presence |
Example
{"presence": "HAS_ANY"}
PresenceSelector
Description
Filter by presence or absence of a field.
Values
| Enum Value | Description |
|---|---|
|
|
Has any value or content |
|
|
Has no value or content |
Example
"HAS_ANY"
ProjectInfo
Description
Project information.
Example
{
"projectId": "7c21aadab",
"projectName": "Website Translation Project",
"projectTypeCode": "APPLICATION_RESOURCES"
}
SearchModeSelector
Description
Determines how multiple search criteria are combined.
Values
| Enum Value | Description |
|---|---|
|
|
Match any of the criteria (logical OR) |
|
|
Match all criteria (logical AND) |
Example
"OR_MODE"
SearchStringsFilter
Description
Filter that is used to search for strings.
Fields
| Input Field | Description |
|---|---|
sourceOnly - Boolean
|
Return source strings only (no translations) |
localeIds - [ID]
|
Target locale IDs to filter by |
hashcodes - [ID]
|
String hashcodes (unique identifiers) to filter by |
targetDomains - [String]
|
Target domain names for GDN projects |
status - Status
|
String status filter |
sourceKeyword - String
|
Search keyword in source text |
keyVariantFilter - KeyVariantFilter
|
Filter by string key or variant |
placeholderPluralsSelector - PlaceholderPluralsSelector
|
Filter strings with placeholders or plurals |
translationJobsFilter - TranslationJobsFilter
|
Filter by translation jobs |
translationReviewFilter - TranslationReviewFilter
|
Filter by LQA review state |
workflowStepsFilter - WorkflowStepsFilter
|
Filter by workflow steps |
translationsFilter - TranslationsFilter
|
Filter by translation content |
urlsFilter - UrlsFilter
|
Filter by file URLs or paths |
tagsFilter - TagsFilter
|
Filter by string tags |
issuesFilter - IssuesFilter
|
Filter by issues |
contextFilter - ContextFilter
|
Filter by visual context |
assignmentFilter - AssignmentFilter
|
Filter by user assignments |
prepublishFilter - PrepublishFilter
|
Filter by pre-publish status |
gdnSeoFilter - GdnSeoFilter
|
Filter GDN SEO strings |
activeStringsFilter - ActiveStringsFilter
|
Filter by active/inactive state |
instructionsFilter - InstructionsFilter
|
Filter by string instructions |
ingestionWarningTypeFilter - IngestionWarningTypeFilter
|
Filter by ingestion warnings |
namespaceFilter - NamespaceFilter
|
Filter by namespace |
limit - Int
|
Maximum number of results to return |
offset - Int
|
Number of results to skip (pagination) |
Example
{
"sourceOnly": true,
"localeIds": ["de-DE", "fr-FR", "es"],
"hashcodes": [
"2f5bc4e588030cb4a0c8b15385ca1070",
"bf78bd5cadddf06f027009abbb73959b"
],
"targetDomains": ["www.example.com", "blog.example.com"],
"status": "IN_PROGRESS",
"sourceKeyword": "welcome message",
"keyVariantFilter": KeyVariantFilter,
"placeholderPluralsSelector": "HAS_PLACEHOLDERS",
"translationJobsFilter": TranslationJobsFilter,
"translationReviewFilter": TranslationReviewFilter,
"workflowStepsFilter": WorkflowStepsFilter,
"translationsFilter": TranslationsFilter,
"urlsFilter": UrlsFilter,
"tagsFilter": TagsFilter,
"issuesFilter": IssuesFilter,
"contextFilter": ContextFilter,
"assignmentFilter": AssignmentFilter,
"prepublishFilter": PrepublishFilter,
"gdnSeoFilter": GdnSeoFilter,
"activeStringsFilter": ActiveStringsFilter,
"instructionsFilter": InstructionsFilter,
"ingestionWarningTypeFilter": IngestionWarningTypeFilter,
"namespaceFilter": NamespaceFilter,
"limit": 100,
"offset": 0
}
SourceString
Description
Source string with metadata.
Fields
| Field Name | Description |
|---|---|
locale - Locale!
|
Source locale |
hashcode - ID!
|
Unique string identifier |
wordCount - Int!
|
Word count in source text |
variant - String
|
String variant/key |
originalStringText - String!
|
Original source text |
originalStringForms - [OriginalStringForm!]
|
Plural forms of the source string |
hasOpenIssues - Boolean
|
Has open issues |
tags - [String!]!
|
Associated tags |
status - Status!
|
String status |
stringInstructions - [StringInstruction!]
|
String instructions |
namespace - String
|
String namespace |
isContentTypeSeo - Boolean!
|
Is SEO content type |
stringIngestionWarnings - [StringIngestionWarning!]!
|
Ingestion warnings |
createdDate - Date
|
String creation date |
lengthLimit - Int
|
Length limit |
Example
{
"locale": Locale,
"hashcode": "2f5bc4e588030cb4a0c8b15385ca1070",
"wordCount": 5,
"variant": "button.submit",
"originalStringText": "Welcome to our website",
"originalStringForms": [OriginalStringForm],
"hasOpenIssues": false,
"tags": ["xyz789"],
"status": "AWAITING_AUTH",
"stringInstructions": [StringInstruction],
"namespace": "app.settings",
"isContentTypeSeo": true,
"stringIngestionWarnings": [StringIngestionWarning],
"createdDate": "2026-02-11T22:00:00Z",
"lengthLimit": 100
}
Status
Description
String status in the translation workflow.
Values
| Enum Value | Description |
|---|---|
|
|
Awaiting authorization |
|
|
Currently being translated |
|
|
Translated and published |
|
|
Excluded from translation |
|
|
Mixed status |
Example
"AWAITING_AUTH"
String
Description
The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Example
"abc123"
StringGroup
Description
Group of strings with metadata.
Fields
| Field Name | Description |
|---|---|
content - [StringResult]!
|
Array of string results |
totalCount - Int
|
Total number of strings |
totalWordCount - Int
|
Total word count |
Example
{
"content": [StringResult],
"totalCount": 150,
"totalWordCount": 1250
}
StringIngestionWarning
Description
Warning generated during string ingestion.
Fields
| Field Name | Description |
|---|---|
warningType - String!
|
Warning type code |
Example
{"warningType": "STRING_WITHOUT_WORDS"}
StringInstruction
Description
Instruction for translators.
Fields
| Field Name | Description |
|---|---|
stringInstruction - String
|
Instruction text |
Example
{"stringInstruction": "Keep brand name untranslated"}
StringResult
Description
Individual string result with source and translations.
Fields
| Field Name | Description |
|---|---|
project - ProjectInfo
|
Project information |
contentFiles - [ContentFile!]!
|
Content files containing this string |
urlPath - String
|
URL path for the string |
targetDomainName - String
|
Target domain name (for GDN projects) |
context - Context
|
Visual context information |
source - SourceString!
|
Source string data |
translations - [TranslationString!]!
|
Translations for target locales |
active - Boolean
|
Whether the string is currently active |
Example
{
"project": ProjectInfo,
"contentFiles": [ContentFile],
"urlPath": "/api/path/web/e3435?device=mobile",
"targetDomainName": "www.example.com",
"context": Context,
"source": SourceString,
"translations": [TranslationString],
"active": true
}
TagsFilter
Description
Filter by string tags.
Fields
| Input Field | Description |
|---|---|
presence - PresenceSelector
|
Filter by presence or absence of tags |
mode - SearchModeSelector
|
How to match multiple tags (AND/OR) |
keywords - [String]
|
Tag names to filter by |
Example
{
"presence": "HAS_ANY",
"mode": "OR_MODE",
"keywords": ["marketing", "homepage"]
}
TranslationAssignment
TranslationForm
Description
Translation text form.
Fields
| Field Name | Description |
|---|---|
translationText - String!
|
Translated text |
pluralForm - PluralForm
|
Plural form type (if applicable) |
Example
{"translationText": "Willkommen auf unserer Website", "pluralForm": "ZERO"}
TranslationJob
Description
Translation job information.
Example
{
"translationJobUid": "ncfcnpnaogbb",
"translationJobName": "Q1 2024 Marketing",
"translationJobNumber": "ER-344"
}
TranslationJobsFilter
Description
Filter by translation jobs.
Fields
| Input Field | Description |
|---|---|
translationJobUids - [ID]
|
Translation job UIDs to filter by |
presence - PresenceSelector
|
Filter by presence in translation jobs |
Example
{"translationJobUids": ["jqhdjrdhqhf2", "uvno6v9h1r4o"], "presence": "HAS_ANY"}
TranslationPresenceSelector
Description
Filter by translation presence or state.
Values
| Enum Value | Description |
|---|---|
|
|
Has any translation |
|
|
Has no translation |
|
|
Translation is identical to source |
Example
"HAS_ANY"
TranslationReviewFilter
Description
Filter by LQA review state.
Fields
| Input Field | Description |
|---|---|
translationReviewStateCodes - [String]
|
Review state codes (e.g., 'NO_ERRORS', 'HAS_ERRORS') |
presence - PresenceSelector
|
Filter by presence of review state |
Example
{
"translationReviewStateCodes": ["NO_ERRORS", "HAS_ERRORS"],
"presence": "HAS_ANY"
}
TranslationStatus
Description
Translation status for a specific locale.
Values
| Enum Value | Description |
|---|---|
|
|
Awaiting authorization |
|
|
Currently being translated |
|
|
Translated and published |
|
|
Excluded from translation |
Example
"AWAITING_AUTH"
TranslationString
Description
Translation for a specific locale.
Fields
| Field Name | Description |
|---|---|
locale - Locale!
|
Target locale |
status - TranslationStatus!
|
Translation status |
translationForms - [TranslationForm!]!
|
Translation text forms |
translationJob - TranslationJob
|
Associated translation job |
workflowStep - WorkflowStepWithWorkflow
|
Current workflow step |
hasOpenIssues - Boolean
|
Has open issues |
editedInPreviousStep - Boolean
|
Edited in previous workflow step |
assignment - TranslationAssignment
|
Assigned user |
translationPrepublished - Boolean!
|
Is pre-published |
readOnly - Boolean!
|
Is read-only |
estimatedEditEffort - String
|
Estimated edit effort level |
Example
{
"locale": Locale,
"status": "AWAITING_AUTH",
"translationForms": [TranslationForm],
"translationJob": TranslationJob,
"workflowStep": WorkflowStepWithWorkflow,
"hasOpenIssues": false,
"editedInPreviousStep": true,
"assignment": TranslationAssignment,
"translationPrepublished": false,
"readOnly": false,
"estimatedEditEffort": "LEVEL_2"
}
TranslationsFilter
Description
Filter by translation content and presence.
Fields
| Input Field | Description |
|---|---|
presence - TranslationPresenceSelector
|
Filter by translation presence state |
translationKeyword - String
|
Search keyword in translations |
Example
{"presence": "HAS_ANY", "translationKeyword": "welcome"}
UrlsFilter
WorkflowStepWithWorkflow
Description
Workflow step with parent workflow information.
Example
{
"workflowUid": "616e918f7d02",
"workflowName": "Standard Translation Workflow",
"workflowStepUid": "ac5aebe1a698",
"workflowStepName": "Translation",
"assignmentEnabled": true
}
WorkflowStepsFilter
Description
Filter by workflow steps.
Fields
| Input Field | Description |
|---|---|
presence - PresenceSelector
|
Filter by presence in workflow steps |
workflowStepUids - [ID]
|
Workflow step UIDs to filter by |
Example
{"presence": "HAS_ANY", "workflowStepUids": ["c348c280445c", "ac38461bce23"]}