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.

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

Active strings only

INACTIVE

Inactive strings only

BOTH

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.

Fields
Field Name Description
stringKey - String String key in the file
fileName - String! File name
stringInstruction - String Instruction from file
Example
{
  "stringKey": "button.submit",
  "fileName": "strings.json",
  "stringInstruction": "Do not translate"
}

Context

Description

Visual context for the string.

Fields
Field Name Description
contextUrl - String! Context URL
contextUid - ID! Context unique identifier
Example
{
  "contextUrl": "screenshot.png",
  "contextUid": "9129e0e0-265d-4fc2-9012-a95829f8cd68"
}

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

HAS_NOTHING

No instructions

HAS_ANY

Any type of instruction

HAS_FROM_FILE

Instructions from file

HAS_MANUAL

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

SOURCE_ISSUE

Issues on source strings

TRANSLATION_ISSUE

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

ANY_ISSUES

Strings with any issues (open or resolved)

ANY_OPEN_ISSUES

Strings with open issues only

ANY_RESOLVED_ISSUES

Strings with resolved issues only

NO_ISSUES

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

Description

Locale information.

Fields
Field Name Description
localeId - ID! Locale identifier
localeDescription - String! Human-readable locale description
direction - String Text direction (LTR or RTL)
Example
{
  "localeId": "de-DE",
  "localeDescription": "German (Germany)",
  "direction": "LTR"
}

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

Has placeholders only

HAS_PLURALS

Has plural forms only

HAS_BOTH

Has both placeholders and plurals
Example
"HAS_PLACEHOLDERS"

PluralForm

Description

Plural forms for strings with pluralization.

Values
Enum Value Description

ZERO

ONE

TWO

FEW

MANY

OTHER

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

Has any value or content

HAS_NOTHING

Has no value or content
Example
"HAS_ANY"

ProjectInfo

Description

Project information.

Fields
Field Name Description
projectId - String! Project unique identifier
projectName - String Project name
projectTypeCode - String Project type code (e.g., APPLICATION_RESOURCES, GDN)
Example
{
  "projectId": "7c21aadab",
  "projectName": "Website Translation Project",
  "projectTypeCode": "APPLICATION_RESOURCES"
}

SearchModeSelector

Description

Determines how multiple search criteria are combined.

Values
Enum Value Description

OR_MODE

Match any of the criteria (logical OR)

AND_MODE

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_AUTH

Awaiting authorization

IN_PROGRESS

Currently being translated

PUBLISHED

Translated and published

EXCLUDED

Excluded from translation

MIXED

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

Description

User assignment for translation.

Fields
Field Name Description
userUid - ID! User unique identifier
userFirstName - String User first name
userLastName - String User last name
Example
{"userUid": "usr123abc", "userFirstName": "John", "userLastName": "Smith"}

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.

Fields
Field Name Description
translationJobUid - ID! Translation job unique identifier
translationJobName - String Translation job name
translationJobNumber - String Translation job number
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

Has any translation

HAS_NOTHING

Has no translation

SAME_AS_SOURCE

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_AUTH

Awaiting authorization

IN_PROGRESS

Currently being translated

PUBLISHED

Translated and published

EXCLUDED

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

Description

Filter by string URLs.

Fields
Input Field Description
exactMatch - Boolean Match exact URL or use wildcard matching
urls - [String] URLs to filter by (supports wildcards)
Example
{"exactMatch": false, "urls": ["strings.json", "*.properties"]}

WorkflowStepWithWorkflow

Description

Workflow step with parent workflow information.

Fields
Field Name Description
workflowUid - ID! Workflow unique identifier
workflowName - String! Workflow name
workflowStepUid - String! Workflow step unique identifier
workflowStepName - String! Workflow step name
assignmentEnabled - Boolean Assignment enabled for this step
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"]}