API v2 Documentation

Connect your software to the POEditor localization platform using this simple REST API

Overview

To perform an action using the POEditor API, send a request to the API endpoint and a response will then be sent back to you.

The POEditor API consists of a set of callable methods.

The request should be POST.
The API supports two content types for encoding form data:
- application/x-www-form-urlencoded
- multipart/form-data (required for projects/upload method)

Some endpoints will require you to send the parameter values as JSON.
Here's an example of a properly formatted JSON, for a request to export to Android Strings with unquoted strings using the «options» parameter:

[{"unquoted": 1}]

Here’s an example of a request containing this JSON:

curl -X POST https://api.poeditor.com/v2/projects/export \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9" \
     -d id="7717" \
     -d language="fr" \
     -d type="android_strings" \
     -d fallback_language="en" \
     -d options="[{\"unquoted\":1}]"

The response you'll get will be a JSON encoded object.
If the response is not successful, the JSON object will contain an error code and a message. You can find the full list of POEditor API errors here.

Authentication

All requests to the POEditor API must contain the parameter api_token. You can get your POEditor API key from your POEditor account. You'll find it in Account or Organization Settings > API Access.

Please take care of your token.

If you think the key has been compromised, you can reset it by clicking the Regenerate API Token button, or you can delete the API Access using the Remove API Token button.

OpenAPI

POEditor's API has an OpenAPI specification. You can find the document on SwaggerHub or download POEditor's Swagger file, which can "translate" our API for your specific needs. Request examples included for the following: C sharp, Go, Java, jaxrs-cxf-client, kotlin-client, PHP, Python, Scala, Swift3, Swift4, Swift5, typescript-angular, typescript-fetch.

METHODS

Projects

List Projects

https://api.poeditor.com/v2/projects/list

Returns the list of localization projects owned by the user.

Argument Value  
api_token required Get token readonly accepted
curl -X POST https://api.poeditor.com/v2/projects/list \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "OK"
    },
    "result": {
        "projects": [
            {
                "id": 4886,
                "name": "Twentytwelve",
                "public": 0,
                "open": 0,
                "created": "2013-04-12T09:24:42+0000"
            },
            {
                "id": 4537,
                "name": "contact form",
                "public": 0,
                "open": 0,
                "created": "2013-04-02T23:00:06+0000"
            },
            {
                "id": 6639,
                "name": "POEditor WP plugin",
                "public": 0,
                "open": 0,
                "created": "2013-06-05T17:41:25+0000"
            },
            {
                "id": 6268,
                "name": "Test Project",
                "public": 0,
                "open": 0,
                "created": "2013-05-23T14:26:34+0000"
            }
        ]
    }
}

View Project Details

https://api.poeditor.com/v2/projects/view

Returns the localization project's details.

Argument Value  
api_token required Get token readonly accepted
id required <integer> The id of project
curl -X POST https://api.poeditor.com/v2/projects/view \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9" \
     -d id="7717"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "OK"
    },
    "result": {
        "project": {
            "id": 7717,
            "name": "Automobile",
            "description": "Automobile",
            "public": 0,
            "open": 0,
            "reference_language": "fr",
            "fallback_language": "",
            "terms": 783,
            "created": "2013-07-04T17:44:37+0000"
        }
    }
}

Add Project

https://api.poeditor.com/v2/projects/add

Creates a new localization project.
Returns the project details (if successful).

Argument Value  
api_token required Get token
name required <string> The name of the project
description optional <string> The description of the project
curl -X POST https://api.poeditor.com/v2/projects/add \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9" \
     -d name="Automobile"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "Project created."
    },
    "result": {
        "project": {
            "id": 7717,
            "name": "Automobile",
            "description": "",
            "public": 0,
            "open": 0,
            "reference_language": "",
            "fallback_language": "",
            "terms": 0,
            "created": "2014-08-13T09:39:32+0000"
        }
    }
}

Update Project Settings

https://api.poeditor.com/v2/projects/update

Updates the project settings (name, description, reference language, fallback language).
If optional parameters are not sent, their respective fields will not be updated.

Argument Value  
api_token required Get token
id required <integer> The id of project
name optional <string> The name of the project
description optional <string> The description of the project
reference_language optional <string> The language code
fallback_language optional <string> The code of the language from which you want to export empty translations.
curl -X POST https://api.poeditor.com/v2/projects/update \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9" \
     -d id="7717" \
     -d name="Automobile" \
     -d reference_language="fr" \
     -d fallback_language="en"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "OK"
    },
    "result": {
        "project": {
            "id": 7717,
            "name": "Automobile",
            "description": "",
            "public": 1,
            "open": 0,
            "reference_language": "en",
            "fallback_language": "fr",
            "terms": 184,
            "created": "2014-08-13T09:39:32+0000"
        }
    }
}

Delete Project

https://api.poeditor.com/v2/projects/delete

Deletes the localization project from the account.
You must be the owner of the project.

Argument Value  
api_token required Get token
id required <integer> The id of project
curl -X POST https://api.poeditor.com/v2/projects/delete \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9" \
     -d id="7717"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "Project was deleted: Automobile [7717]"
    }
}

Upload

https://api.poeditor.com/v2/projects/upload

Uploads terms and/or translations. No more than one request every 20 seconds.

Argument Value  
api_token required Get token
id required <integer> The id of project
updating required terms | terms_translations | translations
file required <file> The uploaded file (.po, .xls or any of the supported file formats)
language optional <string> The language code (required only if updating is terms_translations or translations)
When using terms_translations with .xcstrings file format, leave it empty to import all the languages in the file.
overwrite optional 0 | 1 Set it to 1 if you want to overwrite translations
sync_terms optional 0 | 1 Set it to 1 if you want to sync your terms (terms that are not found in the uploaded file will be deleted from the project and the new ones will be added). Ignored if updating = translations.
tags optional <string> Adds tags to the project terms; available when updating terms or terms_translations; you can use the following filters: "all" - for the all the imported terms, "new" - for the terms which aren't already in the project, "obsolete" - for the terms which are in the project but not in the imported file and "overwritten_translations" - for the terms for which translations change (example)
read_from_source optional 0 | 1 For .xliff format only - set it to 1 if you want to import translations from the source tag
fuzzy_trigger optional 0 | 1 Set it to 1 to mark corresponding translations from the other languages as fuzzy for the updated values
curl -X POST https://api.poeditor.com/v2/projects/upload \
     -F api_token="a9824103d8729b923fbe1d268ec69ef9" \
     -F id="7717" \
     -F updating="terms" \
     -F file=@"pathtofile/filename.po" \
     -F tags="{\"obsolete\":\"removed-strings\"}"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "OK"
    },
    "result": {
        "terms": {
            "parsed": 1017,
            "added": 1017,
            "deleted": 0
        },
        "translations": {
            "parsed": 0,
            "added": 0,
            "updated": 0
        }
    }
}
# If not specified, the tags are set by default to all terms.
tags=["name-of-tag", "name-of-another-tag"]
tags={"all":"name-of-tag"}
tags={"all":"name-of-tag","new":["name-of-tag"],"obsolete":["name-of-tag", "name-of-another-tag"]}

Sync Terms

https://api.poeditor.com/v2/projects/sync

Syncs your localization project with the array you send (terms that are not found in the JSON object will be deleted from the project and the new ones will be added).
Please use with caution. If wrong data is sent, existing terms and their translations might be irreversibly lost.

Argument Value  
api_token required Get token
id required <integer> The project id
data required <string> JSON format (example)
curl -X POST https://api.poeditor.com/v2/projects/sync \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9" \
     -d id="7717" \
     -d data="[{\"term\":\"Add new list\"}, {\"term\":\"Add new item\"}]"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "OK"
    },
    "result": {
        "terms": {
            "parsed": 2,
            "added": 2,
            "updated": 0,
            "deleted": 2446
        }
    }
}
[
    {
        "term": "Add new list",
        "context": "",
        "reference": "\/projects",
        "plural": "",
        "comment": ""
    },
    {
        "term": "one project found",
        "context": "",
        "reference": "\/projects",
        "plural": "%d projects found",
        "comment": "Make sure you translate the plural forms",
        "tags": [
            "first_tag",
            "second_tag"
        ]
    },
    {
        "term": "Show all projects",
        "context": "",
        "reference": "\/projects",
        "plural": "",
        "tags": "just_a_tag"
    }
]

Export

https://api.poeditor.com/v2/projects/export

Returns the link of the file (expires after 10 minutes).
The settings inherited from the project will be the ones at the time of the download.

Argument Value  
api_token required Get token readonly accepted
id required <integer> The project id
language required <string> The language code
type required <string> The file format
arb [Flutter ARB], csv [CSV], ini [INI], key_value_json [Key-Value JSON], i18next [i18next JSON], json [JSON], po [Gettext PO], pot [Gettext POT], mo [Gettext MO], properties [Java Properties], resw [.NET RESW], resx [.NET RESX], ts [Qt TS], apple_strings [iOS Strings], xliff [iOS XLIFF], xcstrings [iOS Xcstrings], xlf [Angular XLIFF], xmb [Angular XMB], xtb [Angular XTB], xliff_1_2 [XLIFF 1.2], rise_360_xliff [Rise 360 XLIFF], xls [Microsoft Excel], xlsx [Microsoft Excel], android_strings [Android String Resources], yml [YAML]
filters optional <string> Filter results by 'translated', 'untranslated', 'fuzzy', 'not_fuzzy', 'automatic', 'not_automatic', 'proofread', 'not_proofread' (only available when proofreading is enabled for the project in its settings); you can use either a string for a single filter or a JSON array for one or multiple filter (example)
order optional <string> Set it to terms to order results by 'terms' alphabetically.
tags optional <string> Filter results by tags; you can use either a string for a single tag or a JSON array for one or multiple tags (example)
fallback_language optional <string> The language code of the fallback language
options optional <string> Set specific advanced options for particular formats (where these exist). The value must be a JSON array of objects.
Can be used to export in Android XML format without wrapping the strings in quotes. (example)
curl -X POST https://api.poeditor.com/v2/projects/export \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9" \
     -d id="7717" \
     -d language="fr" \
     -d type="po" \
     -d fallback_language="en"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "OK"
    },
    "result": {
        "url": "https:\/\/api.poeditor.com\/v2\/download\/file\/b577a66ac39d82995debfabc016f855d"
    }
}
filters=translated
filters=["translated"]
filters=["translated", "not_fuzzy"]
tags=name-of-tag
tags=["name-of-tag"]
tags=["name-of-tag", "name-of-another-tag"]
// Android Strings exported without wrapping the strings in quotes.
options=[{"unquoted": 1}]
// RESX and RESW files exported without encoding single and double quotes.
options=[{"unencoded": 1}]
// Xcstrings files exported containing all the languages in the project.
options=[{"export_all": 1}]
METHODS

Languages

Available Languages

https://api.poeditor.com/v2/languages/available

Returns a comprehensive list of all the languages supported by POEditor. You can find the language list here, too.

Argument Value  
api_token required Get token readonly accepted
curl -X POST https://api.poeditor.com/v2/languages/available \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "OK"
    },
    "result": {
        "languages": [
            {
                "name": "Abkhazian",
                "code": "ab"
            },
            {
                "name": "Afar",
                "code": "aa"
            },
            {
                "name": "Afrikaans",
                "code": "af"
            },
            {
                "name": "Akan",
                "code": "ak"
            },
            {
                "name": "Albanian",
                "code": "sq"
            },
            {
                "name": "Amharic",
                "code": "am"
            },
            {
                "name": "Arabic",
                "code": "ar"
            },
            {
                "name": "Aragonese",
                "code": "an"
            },
            {
                "name": "Armenian",
                "code": "hy"
            },
            {
                "name": "Assamese",
                "code": "as"
            },
            {
                "name": "Yiddish",
                "code": "yi"
            },
            {
                "name": "Yoruba",
                "code": "yo"
            },
            {
                "name": "Zhuang; Chuang",
                "code": "za"
            },
            {
                "name": "Zulu",
                "code": "zu"
            }
        ]
    }
}

List Languages

https://api.poeditor.com/v2/languages/list

Returns the project languages, percentage of translation for each and the datetime (UTC - ISO 8601) when the last edit was made.

Argument Value  
api_token required Get token readonly accepted
id required <integer> The project id
curl -X POST https://api.poeditor.com/v2/languages/list \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9" \
     -d id="7717"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "OK"
    },
    "result": {
        "languages": [
            {
                "name": "English",
                "code": "en",
                "translations": 13,
                "percentage": 12.5,
                "updated": "2015-05-04T14:21:41+0000"
            },
            {
                "name": "French",
                "code": "fr",
                "translations": 70,
                "percentage": 68.75,
                "updated": "2015-04-30T08:59:34+0000"
            }
        ]
    }
}

Add Language to Project

https://api.poeditor.com/v2/languages/add

Adds a new language to the localization project.

Argument Value  
api_token required Get token
id required <integer> The project id
language required <string> The language code
curl -X POST https://api.poeditor.com/v2/languages/add \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9" \
     -d id="7717" \
     -d language="de"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "Language was added: German [de]"
    }
}

Update Project Language

https://api.poeditor.com/v2/languages/update

Inserts / overwrites translations.

Argument Value  
api_token required Get token
id required <integer> The id of project
language required <string> The language code
fuzzy_trigger optional 0 | 1 Set it to 1 to mark corresponding translations from the other languages as fuzzy for the updated values
data required <string> JSON format (example)
curl -X POST https://api.poeditor.com/v2/languages/update \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9" \
     -d id="7717" \
     -d language="fr" \
     -d data="[{\"term\":\"Projects\",\"context\":\"project list\",\"translation\":{\"content\":\"Des projets\",\"fuzzy\":0}}]"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "OK"
    },
    "result": {
        "translations": {
            "parsed": 1,
            "added": 1,
            "updated": 0
        }
    }
}
[
    {
        "term": "Projects",
        "context": "project list",
        "translation": {
            "content": "Des projets",
            "fuzzy": 0
        }
    }
]
[
    {
        "term": "%d Projects available",
        "context": "project list",
        "translation": {
            "content": {
                "one": "Un projet disponible",
                "other": "%d Projets disponibles"
            },
            "fuzzy": 1
        }
    }
]

Delete Language from Project

https://api.poeditor.com/v2/languages/delete

Deletes the specified language from the localization project.

Argument Value  
api_token required Get token
id required <integer> The project id
language required <string> The language code
curl -X POST https://api.poeditor.com/v2/languages/delete \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9" \
     -d id="7717" \
     -d language="de"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "Language was deleted: German [de]"
    }
}
METHODS

Terms

List Project Terms

https://api.poeditor.com/v2/terms/list

Returns the project's terms and translations if the argument language is provided.

Argument Value  
api_token required Get token readonly accepted
id required <integer> The project id
language optional <string> The language code
curl -X POST https://api.poeditor.com/v2/terms/list \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9" \
     -d id="7717" \
     -d language="en"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "OK"
    },
    "result": {
        "terms": [
            {
                "term": "app_name",
                "context": "",
                "plural": "",
                "created": "2013-06-10T11:08:54+0000",
                "updated": "",
                "translation": {
                    "content": "TODO List",
                    "fuzzy": 0,
                    "proofread": 1,
                    "updated": "2013-06-12T11:08:54+0000"
                },
                "reference": "",
                "tags": [
                    "first_upload",
                    "second_upload"
                ],
                "comment": "Don't translate the name of the app"
            },
            {
                "term": "mark_as_unread",
                "context": "",
                "plural": "",
                "created": "2013-06-10T11:08:54+0000",
                "updated": "",
                "translation": {
                    "content": "",
                    "fuzzy": 0,
                    "proofread": 0,
                    "updated": ""
                },
                "reference": "",
                "tags": [
                    "second_upload"
                ],
                "comment": ""
            },
            {
                "term": "One Item",
                "context": "",
                "plural": "%d Items",
                "created": "2013-06-10T11:24:12+0000",
                "updated": "",
                "translation": {
                    "content": {
                        "one": "",
                        "other": ""
                    },
                    "fuzzy": 0,
                    "proofread": 0,
                    "updated": ""
                },
                "reference": "",
                "tags": [],
                "comment": ""
            }
        ]
    }
}

Add Terms

https://api.poeditor.com/v2/terms/add

Adds terms to the localization project.

Argument Value  
api_token required Get token
id required <integer> The project id
data required <string> JSON format (example)
curl -X POST https://api.poeditor.com/v2/terms/add \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9" \
     -d id="7717" \
     -d data="[{\"term\":\"Add new list\"}]"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "OK"
    },
    "result": {
        "terms": {
            "parsed": 1,
            "added": 1
        }
    }
}
[
    {
        "term": "Add new list",
        "context": "",
        "reference": "\/projects",
        "plural": "",
        "comment": ""
    },
    {
        "term": "one project found",
        "context": "",
        "reference": "\/projects",
        "plural": "%d projects found",
        "comment": "Make sure you translate the plural forms",
        "tags": [
            "first_tag",
            "second_tag"
        ]
    },
    {
        "term": "Show all projects",
        "context": "",
        "reference": "\/projects",
        "plural": "",
        "tags": "just_a_tag"
    }
]

Update Terms

https://api.poeditor.com/v2/terms/update

Updates project terms. Lets you change the text, context, reference, plural and tags.

Argument Value  
api_token required Get token
id required <integer> The project id
data required <string> JSON format (example)
fuzzy_trigger optional 0 | 1 Set it to 1 to mark corresponding translations from all languages as fuzzy for the updated values
curl -X POST https://api.poeditor.com/v2/terms/update \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9" \
     -d id="7717" \
     -d data="[{\"term\":\"Add new list\", \"new_term\": \"Save list\"}]"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "OK"
    },
    "result": {
        "terms": {
            "parsed": 2,
            "updated": 2
        }
    }
}
[
    {
        "term": "Add new list",
        "context": "",
        "new_term": "Save list",
        "new_context": "",
        "reference": "\/projects",
        "plural": "",
        "comment": "",
        "tags": [
            "first_tag",
            "second_tag"
        ]
    },
    {
        "term": "Display list",
        "context": "",
        "new_term": "Show list",
        "new_context": ""
    }
]

Delete Terms

https://api.poeditor.com/v2/terms/delete

Deletes terms from the localization project.

Argument Value  
api_token required Get token
id required <integer> The project id
data required <string> JSON format (example)
curl -X POST https://api.poeditor.com/v2/terms/delete \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9" \
     -d id="7717" \
     -d data="[{\"term\":\"one project found\", \"context\":\"\"}, {\"term\":\"Show all projects\", \"context\":\"form\"}]"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "OK"
    },
    "result": {
        "terms": {
            "parsed": 2,
            "deleted": 2
        }
    }
}
[
    {
        "term": "one project found",
        "context": ""
    },
    {
        "term": "Show all projects",
        "context": "form"
    }
]

Add Comment

https://api.poeditor.com/v2/terms/add_comment

Adds comments to existing terms.

Argument Value  
api_token required Get token
id required <integer> The id of project
data required <string> JSON format (example)
curl -X POST https://api.poeditor.com/v2/terms/add_comment \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9" \
     -d id="7717" \
     -d data="[{\"term\":\"Add new list\", \"comment\":\"This is a button\"}, {\"term\":\"Show all projects\", \"comment\":\"This is a button\"}]"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "OK"
    },
    "result": {
        "terms": {
            "parsed": 2,
            "with_added_comment": 2
        }
    }
}
[
    {
        "term": "Add new list",
        "context": "",
        "comment": "This is a button"
    },
    {
        "term": "one project found",
        "context": "",
        "comment": "Make sure you translate the plural forms"
    },
    {
        "term": "Show all projects",
        "context": "",
        "comment": "This is a button"
    }
]
METHODS

Translations

Add Translations

https://api.poeditor.com/v2/translations/add

Adds translations to the localization project. If a translation exists, it will not be overwritten.

Argument Value  
api_token required Get token
id required <integer> The project id
language required <string> The language code
data required <string> JSON format (example)
curl -X POST https://api.poeditor.com/v2/translations/add \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9" \
     -d id="7717" \
     -d language="en" \
     -d data="[{\"term\":\"Projects\",\"context\":\"project list\",\"translation\":{\"content\":\"Des projets\"}}]"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "OK"
    },
    "result": {
        "translations": {
            "parsed": 1,
            "added": 1
        }
    }
}
[
    {
        "term": "Projects",
        "context": "project list",
        "translation": {
            "content": "Des projets"
        }
    }
]
[
    {
        "term": "%d Projects available",
        "context": "project list",
        "translation": {
            "content": {
                "one": "Un projet disponible",
                "other": "%d Projets disponibles"
            }
        }
    }
]

Update Translations

https://api.poeditor.com/v2/translations/update

Updates existing translations.

Argument Value  
api_token required Get token
id required <integer> The project id
language required <string> The language code
data required <string> JSON format (example)
curl -X POST https://api.poeditor.com/v2/translations/update \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9" \
     -d id="7717" \
     -d language="en" \
     -d data="[{\"term\":\"Projects\",\"context\":\"project list\",\"translation\":{\"content\":\"Des projets\"}}]"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "OK"
    },
    "result": {
        "translations": {
            "parsed": 1,
            "updated": 1
        }
    }
}
[
    {
        "term": "Projects",
        "context": "project list",
        "translation": {
            "content": "Des projets"
        }
    }
]
[
    {
        "term": "%d Projects available",
        "context": "project list",
        "translation": {
            "content": {
                "one": "Un projet disponible",
                "other": "%d Projets disponibles"
            }
        }
    }
]

Delete Translations

https://api.poeditor.com/v2/translations/delete

Deletes translations from the specified language.

Argument Value  
api_token required Get token
id required <integer> The project id
language required <string> The language code
data required <string> JSON format (example)
curl -X POST https://api.poeditor.com/v2/translations/delete \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9" \
     -d id="7717" \
     -d language="en" \
     -d data="[{\"term\":\"Projects\",\"context\":\"project list\"}, {\"term\":\"Languages\",\"context\":\"\"}]"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "OK"
    },
    "result": {
        "translations": {
            "parsed": 2,
            "deleted": 2
        }
    }
}
[
    {
        "term": "Projects",
        "context": "project list"
    },
    {
        "term": "Languages",
        "context": ""
    }
]

Translate automatically

https://api.poeditor.com/v2/translations/automatic

Gets machine translations from integrated providers.

Argument Value  
api_token required Get token
id required <integer> The project id
source_language required <string> The language code of the source language in POEditor. The strings in this language will be sent for translation.
provider_source_language required <string> The language code from the provider that corresponds to the source_language.
provider required google | microsoft | deepl
target_languages required <string> A JSON of the languages to translate to. (example) Languages
options optional <string> A JSON of the advanced options you want to use with the selected provider. Possible options include the POEditor tag of the strings you want to send for translation and some provider-specific options (check Options example)
curl -X POST https://api.poeditor.com/v2/translations/automatic \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9" \
     -d id="7717" \
     -d source_language="en" \
     -d provider_source_language="en" \
     -d provider="google" \
     -d target_languages="[{\"project_language\":\"it\",\"provider_language\":\"it\"},{\"project_language\":\"fr\",\"provider_language\":\"fr\"}]" \
     -d options="{\"tag\":\"new\",\"format\":\"html\"}"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "OK"
    },
    "result": {
        "successful": [
            {
                "source": "en",
                "target": "fr",
                "chars": 7
            },
            {
                "source": "en",
                "target": "it",
                "chars": 7
            }
        ],
        "failed": [
            {
                "source": "en",
                "target": null,
                "message": "Invalid pair."
            },
            {
                "source": "en",
                "target": "ar",
                "message": "Insufficient AT characters for this translation."
            }
        ]
    }
}
[
    {
        "project_language": "fr",
        "provider_language": "fr"
    },
    {
        "project_language": "it",
        "provider_language": "it"
    }
]
// OPTIONS EXAMPLE
{
    "tag": "new",
    "tag_handling": "html",
    "split_sentences": "0",
    "formality": "less"
}




// FILTER BY TAG
{
    "tag": "new"
}




// AVAILABLE OPTIONS FOR GOOGLE

// Format: Tells the translation engine whether your strings are plain text or contain HTML.
// Allowed values: 
// - html (Recommended for strings that contain HTML tags.)
// - text
{
    "format": "text"
}





// AVAILABLE OPTIONS FOR DEEPL

// Tag Handling: Tells the machine translation engine what kind of tags to take into account.
// Allowed values: 
// - 
// - xml (Recommended for strings that contain XML tags.)
// - html (Recommended for strings that contain HTML tags.)
{
    "tag_handling": ""
}

// Split Sentences: Tells the translation engine whether to split the strings into sentences or to treat each string as a single sentence.
// Allowed values: 
// - 0
// - 1
// - nonewlines
{
    "split_sentences": "1"
}

// Preserve Formatting: Tells the translation engine whether to respect the original formatting (punctuation and upper/lower case at the beginning and end of the sentence).
// Allowed values: 
// - 0
// - 1
{
    "preserve_formatting": "0"
}

// Formality: Tells the translation engine whether to lean towards formal or informal language.
// Allowed values: 
// - default
// - more
// - less
{
    "formality": "default"
}





// AVAILABLE OPTIONS FOR AZURE

// Format: Tells the translation engine whether your strings are plain text or contain HTML.
// Allowed values: 
// - html (Recommended for strings that contain HTML tags.)
// - plain
{
    "textType": "plain"
}
METHODS

Contributors

List Contributors

https://api.poeditor.com/v2/contributors/list

Returns the list of contributors from your localization projects.

Argument Value  
api_token required Get token readonly accepted
id optional <integer> The project id (optional, unless language is set. Then, it becomes required)
language optional <string> The language code
curl -X POST https://api.poeditor.com/v2/contributors/list \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9" \
     -d id="4886"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "OK"
    },
    "result": {
        "contributors": [
            {
                "name": "final test",
                "email": "email@example.com",
                "permissions": [
                    {
                        "project": {
                            "id": "4886",
                            "name": "Twentytwelve"
                        },
                        "type": "administrator",
                        "proofreader": true
                    }
                ]
            },
            {
                "name": "Translator",
                "email": "translator@example.com",
                "permissions": [
                    {
                        "project": {
                            "id": "4886",
                            "name": "Twentytwelve"
                        },
                        "type": "contributor",
                        "proofreader": false,
                        "languages": [
                            "en",
                            "en-us"
                        ]
                    }
                ]
            }
        ]
    }
}

Add Contributor

https://api.poeditor.com/v2/contributors/add

Adds a contributor to a project language or an administrator to a project.

Argument Value  
api_token required Get token
id required <integer> The project id
name required <string> The name of the contributor
email required <string> The email of the contributor
language optional <string> The language code (required if adding a contributor)
admin optional 0 | 1 Set it to 1 to add as administrator
curl -X POST https://api.poeditor.com/v2/contributors/add \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9" \
     -d id="7717" \
     -d name="caesar" \
     -d email="email@email.com" \
     -d language="en"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "Contributor added."
    }
}

Remove Contributor

https://api.poeditor.com/v2/contributors/remove

Removes a contributor from a project language or an admin from a project, if the language is not specified.

Argument Value  
api_token required Get token
id required <integer> The project id
email required <string> The email of the contributor
language optional <string> The language code (required if removing a contributor from a certain language)
curl -X POST https://api.poeditor.com/v2/contributors/remove \
     -d api_token="a9824103d8729b923fbe1d268ec69ef9" \
     -d id="7717" \
     -d email="email@email.com" \
     -d language="en"
{
    "response": {
        "status": "success",
        "code": "200",
        "message": "Contributor removed."
    }
}
METHODS

Third-Party Libraries

WordPress Plugin

Using WordPress and all this API business seems too much for you? Try our POEditor WordPress plugin. It will let you manage your POEditor translations directly from WordPress via the POEditor API.

No technical knowledge needed.

User Contributions

Looking for a starting point for a script of your own? Check out these libraries our users are sharing.



Additional help