Principles

API

The API is dedicated to clients and let them manage their workflow (projects and documents). It sticks with REST conventions and responds with JSON (default) or XML.

The API is accessible here: http://api.textmaster.com/v1.

All requests should be appended to this base url.

Work Flow

Basics

Assimilated to a file, a project is the base of the process. It is the main element determining the general and common characteristic to all the tasks: type of project (copywriting, translating or proofreading), the languages (1 or 2 depending the type of project), the category, the general briefing, the assignment method (unique author, multiple authors and My Textmasters), the language level, the pre-formatted template for the content and the optional parameters.

Assimilated to the content of a file, a document is the element corresponding to the expected content. Its characteristics are specific. A document can have the following characteristics : Title, word count, rule for the word count, source text or document (for translation and proofreading), keywords, keywords repeating, specific briefing and attached document. If many documents may share the same characteristics within the same project, they may also all be different.

Projects

Projects follow a logic succession of status. The accessible steps are represented in the diagram. The definition of each status is given in the table. Some transitions are triggered by the client, other result from document status, that’s what is detailed in the ‘How?’ column.

Project status flowchart

Status Name How? Definition
in_creation Initial status Your project is inaccessible to the authors, you can edit it and add or remove documents
in_progress Client decision:
  • launch project
  • resume project
Your project is opened to authors, you can’t edit it it nor remove documents.
in_review Depends on documents Means that all attached documents are in status in_review
completed Depends on documents Means that all documents are completed
paused Client decision Your project and it’s documents are inaccessible to the authors. Only documents taken by authors remain active.
canceled Client decision Only documents taken by authors remain active. Other documents are no more accessible and you’re paid your credits back.

Documents

Documents follow a logic succession of status. The accessible steps are represented in the diagram. The definition of each status is given in the table. Some transitions are triggered by the client, other by the author and finally some result from project’s status, that’s what is detailed in the ‘How?’ column.

Document status flowchart

Status Name How? Definition
in_creation Initial status Your project can be edited and is not yet accessible to the authors to start working on.
waiting_assignment
  • Client decision: unpaused
  • Client decision: resume
The document is visible to the clients. You cannot change directly your requirements unless you decide to switch your document in the status "paused".
in_progress Author action : the author has picked up the job An author is working on the document.
in_review Author action : the author has submitted his job, and the job has passed through TextMaster.com internal quality control process (if required). The document is now under the review of the client.
completed Client decision : Client has accepted the submitted job The job is completed and the author is payed.
incomplete
  • Author decision: the author asks a question
  • Client decision: a revision was requested
  • Textmaster decision: the job did not pass the internal quality control
The job has already been started, but needs the author to review / complete it.
paused Client decision Document inaccessible to the authors.
canceled Client decision The document is no longer accessible to the authors and the credits spent are charged back to the client account.
copyscape Author action : the job is submitted by the author This step is specific to copywriting documents. The system is performing a plagiarism detection analysis of the document.
counting_words Author action : the job is submitted by the author The system is checking the content of the produced document (key words, counting words,...).
quality_control Result from project status The QC manager is reviewing the document, to approve the quality of the job.

Authentication

Process

The Authentication process relies on user’s credentials:

  • one api key
  • one api secret

For security concerns, all API calls must contain a signature.

Signature Creation

All Authentication related information should be included in the header of the request.

Header Name Type Header Value
APIKEY String Api-key
DATE String Date Time, UTC. Format: “YYYY-MM-DD HH:MM:SS” Example: "2011-12-14 11:18:52"
SIGNATURE String Result of SHA1 algorithm on the string: api-secret + DATE SHA1(api-secret + DATE)

Example

Given the following key:

  • api-key: "kh4C2gynMQIz"
  • api-secret: "TrXEQGHC9vQz"
  • Date: "2011-12-14 11:18:52"

The signature would be:

  • SHA1("TrXEQGHC9vQz2011-12-14 11:18:52") => "3db3e8aaafea142063fbf0ad50db8705623817f3"

Test

You could test the API auth, with a GET call on http://api.textmaster.com/test. This will respond with the content of your header and tell you whether or not your api key and your signature are valid. Please notice that the status of the response will always be 200 (it’s a test, right?), only the content of the message will change.

API Methods

REST Protocol

The REST protocol lets you interact with resources with some conventions. The conventions concern both URL and HTTP Verbs, they are well detailed in the wikipedia article.

Private Resources and Actions Available for Clients

Resource Name Available Actions
Projects
  • Show all projects
  • Show one project
  • Create one project
  • Update one project
  • Launch a project
  • List My textmasters eligible to the project
  • Pause a project
  • Resume a project
  • Cancel a project
  • Duplicate a project
  • Quote a project
Documents
  • Show all documents in one project
  • Show one document in the project
  • Create one document in the project
  • Update one document in the project
  • Delete one document from the project
  • Complete a document by accepting author’s work
Transactions
  • Show all transactions of the connected user
  • Create a transaction transfer, to pay via paypal and fill the wallet
S3 Signatures
  • Get a new signature, to allow an upload on TextMaster Storage Server
Support Messages
  • Get the thread of messages concerning a document
  • Post a revision request for a document
Language Levels
  • Show all available Language levels
Work Template
  • Show all work templates
  • Get a specific work template based on his name
My Authors
  • Get all your authors
  • Add author to your list
  • Show Author of your list
  • Update Author attributes in your list
Authors
  • Get available authors based on project criteria
My User
  • Get my user information
  • Update user information

Public Resources and Actions

Resource Name Available Actions
Languages
  • Get all languages listed
Categories
  • Get all categories listed
Locales
  • Get all locale listed
Reference Pricings
  • Get reference pricing on all locales
  • Get reference pricing for a specific locale

Client Private Resources Details

Convention for clients resources

All URL below are relative to the base URL: http://api.textmaster.com/v1/clients.

Projects

See all projects

URL: GET /projects

Parameter Status Type
status optional String, among values:
  • in_creation
  • in_progress
  • in_review
  • paused
  • completed
  • canceled
archived optional
  • true
  • false
page optional integer
per_page optional integer

Create a project

URL: POST /projects

This action has two namespaces that parameters should be nested : project and tracker.

The table below represents the parameters to include in namespace project

Parameter Description Status Type
name mandatory string
ctype Different from the type. It describe the type of service mandatory string. Choose one among:
  • copywriting
  • translation
  • proofreading
options All possible options for the projects.
  • language_level (Basic/Standard)
  • quality (true / false)
  • expertise (true / false)
  • specific_attachment (true / false)
  • priority (true / false)
  • mandatory Hash. Includes at least key language_level. By default, all other options are set at false.
    language_from mandatory String. Bigram representing a language.Full list available in Appendix or via API call to: GET /languages
    language_to mandatory for a translation project String, same constraints as language_from
    category mandatory String. Code representing a category (eg: “C014”).Full list available in Appendix or via API call to: GET /categories
    project_briefing This is where you have to provide the general instructions for the project. All the information must be common to all documents and allow the authors to carry out their task in the best possible conditions. Providing more details will increase your chances of getting the best content. mandatory string
    same_author_must_do_entire_project
  • One author only: Slower but editorial continuity
  • Multiple authors: Faster but without editorial continuity
  • mandatory Boolean (true/false)
    work_template Select the template that fits your project. This choice will determine how the content is organized in each documents that will be produced. mandatory String. Name of the work template level you want. Full list available in Appendix or via API call to: GET /work_templates
    vocabulary_type What style are you expecting your content to be written with?
    • Not specified Popular: based on simply and "each day" words and sentences
    • Technical: focused on precise and specific terms
    • Fictional: writing style amplified and expanded and scripted
    optional, defaults to "not_specified" String, one among:
    • not_specified
    • popular
    • technical
    • fictional
    grammatical_person Which grammatical person should be used to write the content?
    • Not specified I: First-Person Singular
    • You: Second Person - Singular
    • He: Third person - Singular Masculine
    • She: Third Person - Singular Feminine
    • It: Third person - Singular Neutral
    • We: First Person - Plural
    • You: Second Person - Plural
    • They: Third Person - Plural
    optional, defaults to "not_specified" String, one among:
    • not_specified
    • first_person_singular
    • second_person_singular
    • third_person_singular_masculine
    • third_person_singular_feminine
    • third_person_singular_neuter
    • first_person_plural
    • second_person_plural
    • third_person_plural
    target_reader_groups What is the target audience of this project?
    • Not specified
    • Childrens: 13 years old and younger
    • Teenager: from 14 to 18 years old
    • Young Adults: from 19 to 29 years old
    • Adults: from 30 to 59 years old
    • Seniors: 60 years old and more
    optional, defaults to "not_specified" String, one among:
    • not_specified
    • children
    • teenager
    • young_adults
    • adults
    • old_adults
    textmasters Provide an array with the ids of the authors you’d like to give the job. optional array of ids "['4f23bba94403ba5d6a000025', '4d5a62ac29e1676226000050']"
    documents In case documents are already known when creating the projects, documents fields can be encapsulated inside the project. This document will appear after creation in the documents list field of the project. For more details on the document field to add, C.f. POST /projects/:project_id/documents optional Array of Hash field

    The table below is for the parameter to include in namespace tracker

    Parameter Description Status Type
    tracker This is used for project created with an account on belhalf of another. For more information regarding the usage of this parameter, please contact the support team. optional String

    Show a project

    URL: GET /projects/:project_id

    Update a project

    URL: PUT /projects/:project_id

    Same parameters as in create.Constraints: You can’t edit a project once it’s validated.

    Launch a project

    URL: PUT /projects/:project_id/launch

    Pass the project status to in_progress. See details in table in introduction. Pause a project

    Pause a project

    URL: PUT /projects/:project_id/pause

    Pass the project status to pause. See details in table in introduction.

    Resume a project

    URL: PUT /projects/:project_id/resume

    Pass the project status to in_progress. See details in table in introduction.

    Cancel a Project

    URL: PUT /projects/:project_id/cancel

    Pass the project status to cancel. See details in table in introduction.

    Duplicate a Project

    URL: POST /projects/:project_id/duplicate

    Creates a new project from the one whose id is passed. More precisely, it copies:

    • name
    • same_author_must_do_entire_project
    • language_level
    • language_to
    • language_from
    • category
    • keywording_requirements
    • vocabulary_type
    • target_reader_groups
    • grammatical_person,
    • work_template_id
    • project_briefing
    • textmasters

    Quote a Project

    URL: GET /projects/quotation

    This is a simplified way to get project pricing, without creating a project.

    Parameter Description Status Type
    ctype It describes the type of service mandatory string. Choose one among:
    • copywriting
    • translation
    • proofreading
    options All possible options for the projects.
    • language_level (Basic/Standard)
    • quality (true / false)
    • expertise (true / false)
    • specific_attachment (true / false)
    • priority (true / false)
    mandatory Hash. Includes at least key language_level. By default, all other options are set at false.
    language_from mandatory String. Bigram representing a language. Full list available in Appendix or via API call to: GET /languages
    language_to mandatory for a translation project String, same constraints as language_from
    total_word_count Number of words to quote mandatory Integer

    Archive a Project

    URL: PUT /projects/:project_id/archive

    Unarchive a Project

    URL: PUT /projects/:project_id/unarchive

    List authors you have already worked with and are eligible to this project

    URL: GET /projects/:project_id/my_authors

    Documents

    Context

    A document holds elements the author will get. This is in the document you'll be define the title you want to be written or the content that must be translated of proofread for instance. A project can hold many documents. Each document must be a single task.

    See all documents in a project

    Documents belong to a project, so routes are nested.

    URL: GET /projects/:project_id/documents

    Parameter Status Type
    status optional String, among values:
    • waiting_assignment
    • in_progress
    • in_review
    • incomplete
    • completed
    • paused
    • canceled
    page optional integer
    per_page optional integer

    Create a document in a project

    URL: POST /projects/:project_id/documents

    All parameters here should be nested within an array "document".

    Parameter Description Status Type
    title mandatory string
    type Type of document. Standard document is defined with a template, when key / value document defines mutli phrases with an associated key. Optional, defaults to "standard" string. Choose one among:
    • standard
    • key_value
    word_count mandatory integer
    word_count_rule optional, defaults to 1 integer among 0, 1 & 2:
  • 0: +/- 10% X words
  • 1: at least X words
  • 2: maximum of X words
  • original_content Your original content to translate or send for proofreading.
    • For standard project, the original content is a sentence in a readable format (txt, html,...)
    • For key value project, the original content has to be a hash with a unique key associated to a value. For example, a hash could be :{ translation1: { "original_phrase": "Text to translate for my key translation1"}, translation2: { "original_phrase": "Text to translate for my second key"}}
    mandatory for translation and proofreading projects (incompatible with file, choose one or the other) string or hash, depending of the project type
    remote_file_url An url link to the file storage. For more information on how to upload, C.f. the endpoint [GET] (/s3_signatures/new)The url should be with the format below : https://files.textmaster.com/api_uploads/(document_id)/(file_name) optional string
    instructions Specific briefing. Add here any information specific to this document optional string
    keyword_list Please indicate the keywords you want the author to integrate to the content. optional string. Keywords should be comma separated
    keywords_repeat_count Each key word should be repeated at least X times. mandatory if keyword_list provided integer
    callback Allow to execute a POST callback based on keys. Each key represents the new status of the document (when you need the callback) and has for value the url which needs to be called and the format. C.f. Chapter My User / Update my user information NB: The user callback is overwrited by the callback into the document. optional hash

    Show a document within a project

    URL: GET /projects/:project_id/documents/:document_id

    Update a document within a project

    URL: PUT /projects/:project_id/documents/:document_id

    Same parameters as in create. Constraints: You can’t edit a document once it’s been assigned to one author.

    Delete a document within a project

    URL: DELETE /projects/:project_id/documents/:document_id

    Constraints: You can’t delete a document if the project has been validated.

    Accept Author Job and complete document

    URL: PUT /projects/:project_id/documents/:document_id/complete

    Parameter Status Type
    satisfaction optional, defaults to neutral string, among values:
    • neutral
    • negative
    • positive
    message optional string: message to the author

    Transactions

    List transactions

    List all transactions done by the user, which involve credits transfer (project creation / cancellation, purchased of credits, admin transfer... )

    URL: GET /transactions

    Parameter Status Type
    types optional Array. Used to filter the transactions, available values are :
    • given_by_manager
    • given_to_subordinate
    • buying_a_credit_bundle
    • redeeming_a_promo_code
    • earning_from_referred_client
    • launching_a_project
    • canceling_a_project
    • repo_doc_with_canceled_project
    • admin_project_refund
    • admin_project_levy
    • admin_levy
    • admin_refund

    Buy credits

    URL: POST /transactions

    Request a transaction to transfer credits. Based on the payment method, return a url to pay online (For credit cards and paypal only).

    Parameter Status Type
    promo_code_holder optional promo code to apply, if there is one
    bundle_id compulsory id of a specific bundle or the value pay_as_you_go
    pag_amount optional Amount in reference currency to be paid, in case the bundle type is pay_as_you_go
    order compulsory Hash with values :
    • billing_address : hash with the keys : city, address, address2, company, country, zip_code, state_region, last_name, first_name. If no hash provided, then current user information are used
    • payment_options return_url : The url to return in case the user pay successfully (For paypal and credit card only) cancel_return_url : The url to return in case the user cancel the transaction (For Paypal and credit card only)
    • payment_method one of those values : paypal, credit_card or wire_transfer

    Get Invoices

    List all transactions associated to projects (creation, cancellation)

    URL: GET /invoices

    Get Receipts

    List all transactions associated to projects (creation, cancellation)

    URL: GET /receipts

    Create a new transaction

    URL: POST /my_authors

    All data must be wrapped in a "my_author" array.

    Parameter Status Type
    author_id mandatory string, id of the author
    status optional string among:
    • “my_textmaster”, for favorite author
    • “blacklisted”
    status optional string, your reminder to remember why you classified the author

    S3 Signatures

    Context

    The file storage is done with the help of Amazon Storage Service. In order to upload / access files, you need to request temporary access to this service.

    This access is a temporary signature based on the request you will do. You need to provide it to the endpoint described below.

    You can have a look at Evaporate to help you with the file upload.

    It can also be implemented manually. For that you need to generate the request to sign and define the header request :

    Parameter To Sign Description
    Date Yes Date in one of the RFC 2616 formats
    x-amz-acl Yes Specify a canned ACL in your request. x-amz-acl: public-read
    Content-Type Yes Override the content type for multipart upload.NB: this header is optional, and should be used only in case you want to do a multipart request.
    Authorization No Authorization header to pass authentication information. the Authorization header has the following form: AWS AWSAccessKeyId:Signature. To get the AWSAccessKeyId, please contact the support team.
    bucket Yes URL to access to the folder that will host the file:the file to upload must be localed in a folder with the id document as a name. /files.textmaster.com/api_uploads/:document_id/:filename

    Example of request, with the string to sign.

    Request Example:

    PUT /api_uploads/17/file_to_upload.pdf HTTP/1.1
                      Host: files.textmaster.com
                      Date: Thu, 29 Aug 2013 06:36:26 +0000
                      x-amz-acl: public-read
                      multipart/form-data; boundary=----------------------------ffffffff
                      Authorization: AWS AWSAccessKeyId:CzwN9KWD87BI9SZsyidD2sJBmSQ=
                    

    Associated string to sign (You must respect the return line):

    PUT
    
                      multipart/form-data; boundary=----------------------------ffffffff
                      Thu, 29 Aug 2013 06:36:26 +0000
                      x-amz-acl:public-read
                      /files.textmaster.com/api_uploads/17/file_to_upload.pdf
                    

    When REST request authentication fails, the Storage Service responds to the request with an XML error document. The information contained in this error document is meant to help developers diagnose the problem. In particular, the StringToSign element of the SignatureDoesNotMatch error document tells you exactly what request canonicalization the system is using.

    Get a Signature

    URL: GET /s3_signatures/new

    Parameter Status Type
    to_sign mandatory string. Cf context section to see how to generate this parameter

    My Authors

    Get all your authors

    URL: GET /my_authors

    By default, you’ll only get authors you put in your white/black list. Authors who completed a document of yours but you didn’t rated can be found with the “uncategorized” status.

    Parameter Status Type
    status optional string among:
    • “my_textmaster”
    • “blacklisted”
    • “uncategorized”
    Let you filter the output.

    Add author to your list

    URL: POST /my_authors

    All data must be wrapped in a "my_author" array.

    Parameter Status Type
    author_id mandatory string, id of the author
    status optional string among:
    • “my_textmaster”, for favorite author
    • “blacklisted”
    status optional string, your reminder to remember why you classified the author

    Update Author within your list

    URL: PUT /my_authors/:author_id

    Same parameters as in create.

    Show Author

    URL: GET /my_authors/:author_id

    Get all authors available based on criteria

    URL: GET /authors

    Returns the available authors based on the options and project criteria.

    All parameters here should be nested within a hash "project".

    Parameter Description Status Type
    ctype It describes the type of service mandatory string. Choose one among:
    • copywriting
    • translation
    • proofreading
    options All possible options for the projects.
    • language_level (Basic/Standard)
    • quality (true / false)
    • expertise (true / false)
    • specific_attachment (true / false)
    • priority (true / false)
    mandatory Hash. Includes at least key language_level. By default, all other options are set at false.
    language_from mandatory String. Bigram representing a language. Full list available in Appendix or via API call to: GET /languages
    language_to mandatory for a translation project String, same constraints as language_from
    total_word_count Number of words to quote mandatory Integer

    My User

    Get your user information

    URL: GET /users/me

    You get information related to your current user like the email, the identification and contact information

    Update user information

    URL: PUT /users/:id

    All data must be wrapped in a "user" hash which includes a "callback" hash. Only callback information can be updated. The POST callback is executed based on keys in callback hash : depending of the new status of a document, an url is called in a provided format.

    For example, if we want to have a callback when a document is assigned and when the document is completed, the hash will look like :

    
                      {
                      waiting_assignment: {
                      url: 'http://my.host/completed_callback',
                      format: 'json' },
                      completed: {
                      url: 'http://my.host/completed_callback',
                      format: 'json' } }
                    

    To know document status, c.f. Document status flowchart

    The callback information can be hosted in your user directly if you want to execute for all your documents, and only on one specific document, with a priority to the document if you need.

    Finally The action is handled as a GET to the updated document.

    Parameter Status Type
    url mandatory string
    format optional string among:
    • “json”, for json format
    • “xml”, for xml format

    Support Messages

    This section is meant to let you communicate with the author working on one of your documents. It could be either:

    • triggered by the author: he has questions regarding the text you expect

    • triggered by you: you demand revisions on the text the author provided

    See whole thread concerning a document

    URL: GET /projects/:project_id/documents/:document_id/support_messages

    Post a revision request or reply to the author

    URL: POST /projects/:project_id/documents/:document_id/support_messages

    All parameters here should be nested within an array "support_message".

    Parameter Status Type
    message mandatory string

    The api response could be:

    • 201: everything is clear

    • 202: Textmaster considers your message requires moderation. The returned object will also have an additional "warning_message" key.

    • 400: you probably sent a message when the document wasn't in an appropriate state, it should be either incomplete or in_review.

    Work Templates

    See all work templates available

    This will present all public work templates along your private ones.

    URL: GET /work_templates

    Parameter Status Type
    page optional integer
    per_page optional integer

    Get a specific work template, based on his name

    This will return a specific work template based on the given name, from all public work templates along your private ones.

    URL: GET /work_templates/:name

    Public Resources Details

    Convention for Public Resources

    All URL below are relative to the base URL: http://api.textmaster.com/v1/public.

    Categories

    See all categories available

    URL: GET /categories

    Parameter Description Status Type
    locale one of the locale handled by the website. Full list available in Appendix or via API call to: GET /locales optional String

    Languages

    See all languages available

    URL: GET /languages

    Parameter Description Status Type
    locale one of the locale handled by the website. Full list available in Appendix or via API call to: GET /locales optional String

    Reference Pricing

    See reference pricing for all locales

    URL: GET /reference_pricings

    Parameter Description Status Type
    word_count Number of word to get pricing optional String

    See reference pricing for a specified locale

    URL: GET /reference_pricings/:locale

    Parameter Description Status Type
    word_count Number of word to get pricing optional String

    Locales

    See all locales available

    URL: GET /locales

    Appendix

    Categories List

    • "C001" => "Agriculture"
    • "C002" => "Aerospace"
    • "C003" => "Animals/Pets/Plants"
    • "C004" => "Arts/Culture/Literature"
    • "C005" => "Automotive/Transportation"
    • "C006" => "Computers/Technology/Software"
    • "C007" => "Telecom"
    • "C008" => "Real Estate/Construction/Building"
    • "C009" => "Consumer Goods"
    • "C010" => "Education"
    • "C011" => "Entertainment"
    • "C012" => "Ecology/Environment"
    • "C013" => "Health/Biotechnology/Pharma"
    • "C014" => "Internet"
    • "C015" => "Policy/Government/Public"
    • "C016" => "Publishing/Media/Communication"
    • "C017" => "Religion"
    • "C018" => "Food/Beverages"
    • "C019" => "Retail"
    • "C020" => "Fashion/Luxury/Textiles"
    • "C021" => "Travel/Tourism"
    • "C022" => "Natural Resources/Energy"
    • "C023" => "Banking/Financial Services/Insurance"
    • "C024" => "Legal Affairs/Tax/Law"
    • "C025" => "Raw Materials/Industrial Goods"
    • "C026" => "Lifestyle/Leisure/Hobbies"
    • "C027" => "Sports"
    • "C028" => "Home/Family/Friends/Children"
    • "C029" => "Economy/Financial Markets"
    • "C030" => "Science"
    • "C031" => "Human Resources/Employment"
    • "C032" => "Adult (Pornography, Violence, etc.)"

    Languages List

    • "ar" => "Arabic"
    • "be" => "Byelorussian"
    • "bg" => "Bulgarian"
    • "bn" => "Bengali"
    • "cs" => "Czech"
    • "da" => "Danish"
    • "de" => "German"
    • "el" => "Greek"
    • "en" => "English"
    • "es" => "Spanish"
    • "et" => "Estonian"
    • "fi" => "Finnish"
    • "fr" => "French"
    • "he" => "Hebrew"
    • "hi" => "Hindi"
    • "hr" => "Croatian"
    • "hu" => "Hungarian"
    • "id" => "Indonesian"
    • "is" => "Icelandic"
    • "it" => "Italian"
    • "ja" => "Japanese"
    • "ko" => "Korean"
    • "lt" => "Lithuanian"
    • "lv" => "Latvian, Lettish"
    • "mk" => "Macedonian"
    • "mo" => "Moldavian"
    • "ms" => "Malay"
    • "nl" => "Dutch"
    • "no" => "Norwegian"
    • "pl" => "Polish"
    • "pt" => "Portuguese"
    • "ro" => "Romanian"
    • "ru" => "Russian"
    • "sk" => "Slovak"
    • "sl" => "Slovenian"
    • "sq" => "Albanian"
    • "sr" => "Serbian"
    • "sv" => "Swedish"
    • "ta" => "Tamil"
    • "tr" => "Turkish"
    • "uk" => "Ukrainian"
    • "vi" => "Vietnamese"
    • "zh" => "Chinese"

    Region List

    • "en-US" => "United States (EN & USD)"
    • "fr-FR" => 'France (FR & EUR)'
    • "es-ES" => 'España (ES & EUR)'
    • "pt-PT" => 'Portugal (PT & EUR)'
    • "it-IT" => 'Italia (IT & EUR)'
    • "en-GB" => 'United Kingdom (EN & GBP)'
    • "de-DE" => 'Deutschland (DE & EUR)'
    • "pt-BR" => 'Brasil (PT & BRL)'
    • "en-EU" => 'Europe (EN & EUR)'
    • "es-LA" => 'Latin America (ES & USD)'
    • "zh-CN" => 'China (ZH & USD)'

    TextMaster ist der führende Online-Anbieter für professionelle Übersetzung und Content Erstellung. Seit der Gründung im Jahr 2011 hat sich TextMaster rasant entwickelt und betreut heute über 5.000 Kunden aus dem E-Commerce, Tourismus, Industrie, Mobile-Services, und der Mode-Branche. Mit TextMaster bestellen Sie Ihren Content ganz einfach und schnell in über 40 Sprachen. Sie geben Ihre Bestellung entweder direkt über TextMaster.de, per API oder über unsere PlugIns für Magento, PrestaShop und WordPress auf. Ihr Content wird dann durch unser Netzwerk von qualifizierten Übersetzern und Redakteuren bearbeitet und von einem unserer Projekt Manager betreut.