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"
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": true,
"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
987
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 |
|---|---|
items - [String!]
|
List of key/variant keyword strings to search for (combined with OR logic). Maximum 50 items. |
exactMatch - Boolean
|
Match exact key or use partial matching |
presence - PresenceSelector
|
Filter by key/variant presence |
Example
{
"items": ["abc123"],
"exactMatch": false,
"presence": "HAS_ANY"
}
KeywordMatchMode
Description
Keyword match mode.
Values
| Enum Value | Description |
|---|---|
|
|
Fuzzy substring match (default) |
|
|
Full string exact match — only matches if the entire string equals the keyword |
|
|
Exact phrase match — matches the keyword as whole words anywhere in the text, respecting word boundaries and word order |
|
|
Starts-with match — matches strings that begin with the keyword as a whole word. Example: 'cat' matches 'cat sat on the mat' but not 'category' or 'the cat sat' |
Example
"FUZZY"
Locale
NamespaceFilter
Description
Filter by string namespace.
Fields
| Input Field | Description |
|---|---|
items - [String!]
|
List of namespace names to filter by (combined with OR logic). Maximum 50 items. |
Example
{"items": ["abc123"]}
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 |
sourceKeywords - SourceKeywords
|
Filter by source keywords (list with OR logic, replaces sourceKeyword) |
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 |
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",
"sourceKeywords": SourceKeywords,
"keyVariantFilter": KeyVariantFilter,
"placeholderPluralsSelector": "HAS_PLACEHOLDERS",
"translationJobsFilter": TranslationJobsFilter,
"translationReviewFilter": TranslationReviewFilter,
"workflowStepsFilter": WorkflowStepsFilter,
"translationsFilter": TranslationsFilter,
"urlsFilter": UrlsFilter,
"tagsFilter": TagsFilter,
"issuesFilter": IssuesFilter,
"contextFilter": ContextFilter,
"prepublishFilter": PrepublishFilter,
"gdnSeoFilter": GdnSeoFilter,
"activeStringsFilter": ActiveStringsFilter,
"instructionsFilter": InstructionsFilter,
"ingestionWarningTypeFilter": IngestionWarningTypeFilter,
"namespaceFilter": NamespaceFilter,
"limit": 100,
"offset": 0
}
SourceKeywords
Description
Filter by source keywords with list support.
Fields
| Input Field | Description |
|---|---|
items - [String!]!
|
List of source keyword strings to search for (combined with OR logic). Maximum 50 items. |
matchMode - KeywordMatchMode
|
Match mode for keyword search. Defaults to FUZZY if not specified. Individual items can still use quote convention to override to FULL_EXACT. |
Example
{"items": ["xyz789"], "matchMode": "FUZZY"}
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": true,
"tags": ["xyz789"],
"status": "AWAITING_AUTH",
"stringInstructions": [StringInstruction],
"namespace": "app.settings",
"isContentTypeSeo": false,
"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
"xyz789"
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": false
}
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"}
TranslationKeywords
Description
Filter by translation keywords with list support.
Fields
| Input Field | Description |
|---|---|
items - [String!]!
|
List of translation keyword strings to search for (combined with OR logic). Maximum 50 items. |
matchMode - KeywordMatchMode
|
Match mode for keyword search. Defaults to FUZZY if not specified. Individual items can still use quote convention to override to FULL_EXACT. |
Example
{"items": ["abc123"], "matchMode": "FUZZY"}
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": false,
"assignment": TranslationAssignment,
"translationPrepublished": false,
"readOnly": true,
"estimatedEditEffort": "LEVEL_2"
}
TranslationsFilter
Description
Filter by translation content and presence.
Fields
| Input Field | Description |
|---|---|
presence - TranslationPresenceSelector
|
Filter by translation presence state |
translationKeywords - TranslationKeywords
|
Filter by translation keywords (list with OR logic, replaces translationKeyword) |
Example
{
"presence": "HAS_ANY",
"translationKeywords": TranslationKeywords
}
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"]}