--- openapi: 3.0.3 info: title: TextMaster API v1 version: v1 paths: "/v1/clients/abilities": get: summary: List Abilities tags: - Abilities security: - oauth2: [] parameters: - name: activity in: query required: false description: | Filters abilities on a specific activity. Possible values: * translation * copywriting * proofreading schema: type: string enum: - translation - copywriting - proofreading - name: language_from in: query required: false description: 'Bigram representing a language (ex: en-us). Full list available via API call.' schema: type: string pattern: "^[a-z]{2}(-[a-z]{2})?$" - name: language_to in: query required: false description: 'Bigram representing a language (ex: en-us). Full list available via API call.' schema: type: string pattern: "^[a-z]{2}(-[a-z]{2})?$" - name: currency_code in: query required: false description: | Currency used to display the pricing (defaults to your account currency). Possible values: EUR, AUD, GBP, HKD, JPY, USD schema: type: string enum: - EUR - AUD - GBP - HKD - JPY - USD - name: locale in: query required: false description: | [DEPRECATED] Locale used to display the pricing (defaults to en-EU). Possible values: * en-EU: pricing in EURO * en-GB: pricing in GBP * en-US: pricing in USD schema: type: string enum: - en-EU - en-GB - en-US - name: page in: query required: false description: Search results are limited to 100 items. Specify page number to read more than the first page. schema: type: integer responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Lists abilities content: application/json: examples: example_0: value: data: - id: 61698a988b81926d91c0e15f level_name: enterprise language_from: fr-fr language_to: fr-fr pricing: enterprise: 0.014 specific_attachment: 0.014 priority: 0.014 quality: 0.014 translation_memory: 0.0 - id: 61698a998b81926d91c0e185 level_name: regular language_from: fr-fr language_to: fr-fr pricing: regular: 0.014 specific_attachment: 0.014 priority: 0.014 quality: 0.014 translation_memory: 0.0 - id: 61698a998b81926d91c0e197 level_name: premium language_from: fr-fr language_to: fr-fr pricing: premium: 0.014 specific_attachment: 0.014 priority: 0.014 quality: 0.014 translation_memory: 0.0 schema: type: object properties: total_pages: type: integer count: type: integer page: type: integer per_page: type: integer previous_page: type: integer nullable: true next_page: type: integer nullable: true data: type: array items: "$ref": "#/components/schemas/Ability" minItems: 1 uniqueItems: true "/v1/clients/api_templates": get: summary: List API Templates tags: - API Templates security: - oauth2: - project:manage - project:read - project:write parameters: - name: page in: query required: false description: Search results are limited to 100 items. Specify page number to read more than the first page. schema: type: integer responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Lists API Templates content: application/json: examples: example_0: value: api_templates: - id: e1e452a3-9bcd-408e-810e-91d63175ebc1 name: Foo Bar 2021-10-15 16:05:13 +0200 description: "[TM] Enterprise Translation (en-us > fr-fr)" level_name: enterprise activity_name: translation language_from: en-us language_to: fr-fr project_briefing: Bacon ipsum dolor amet ribeye tenderloin pancetta ground round cow turducken shankle beef ribs. options: language_level: enterprise textmasters: [] cost_per_word: currency: credits amount: 10 cost_per_word_in_currency: currency: USD amount: 0.014 same_author_must_do_entire_project: true auto_launch: true created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:14 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:14 UTC total_pages: 1 count: 1 page: 1 per_page: 20 previous_page: next_page: schema: type: object properties: total_pages: type: integer count: type: integer page: type: integer per_page: type: integer previous_page: type: integer nullable: true next_page: type: integer nullable: true api_templates: type: array items: "$ref": "#/components/schemas/ApiTemplate" "/v1/clients/api_templates/filter": get: summary: Filter API Templates tags: - API Templates security: - oauth2: - project:manage - project:read - project:write parameters: - name: where in: query required: false description: URL encoded JSON selector composed of one or several criteria. schema: type: string - name: order in: query required: false description: Comma separated order list schema: type: string - name: page in: query required: false description: Search results are limited to 100 items. Specify page number to read more than the first page. schema: type: integer responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Lists API Templates content: application/json: examples: example_0: value: api_templates: - id: e1e452a3-9bcd-408e-810e-91d63175ebc1 name: Foo Bar 2021-10-15 16:05:13 +0200 description: "[TM] Enterprise Translation (en-us > fr-fr)" level_name: enterprise activity_name: translation language_from: en-us language_to: fr-fr project_briefing: Bacon ipsum dolor amet ribeye tenderloin pancetta ground round cow turducken shankle beef ribs. options: language_level: enterprise textmasters: [] cost_per_word: currency: credits amount: 10 cost_per_word_in_currency: currency: USD amount: 0.014 same_author_must_do_entire_project: true auto_launch: true created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:14 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:14 UTC total_pages: 1 count: 1 page: 1 per_page: 20 previous_page: next_page: schema: type: object properties: total_pages: type: integer count: type: integer page: type: integer per_page: type: integer previous_page: type: integer nullable: true next_page: type: integer nullable: true api_templates: type: array items: "$ref": "#/components/schemas/ApiTemplate" "/v1/clients/authors": get: summary: List all potential authors for a project tags: - Authors security: - oauth2: [] parameters: - name: project[activity_name] in: query required: false description: | Type of project to filter on. Possible values: * translation * copywriting * proofreading schema: type: string enum: - translation - copywriting - proofreading - name: project[language_from] in: query required: false description: 'Source language for translation projects (ex: fr-FR).' schema: type: string pattern: "^[a-z]{2}-[A-Z]{2}$" - name: project[language_to] in: query required: false description: 'Target language (ex: en-US)' schema: type: string pattern: "^[a-z]{2}-[A-Z]{2}$" - name: project[options][expertise] in: query required: false description: An Expertise ID (See List Expertises for more info) schema: type: string - name: project[options][language_level] in: query required: false description: An Expertise ID (See List Expertises for more info) schema: type: string enum: - enterprise - premium - name: page in: query required: false description: Search results are limited to 100 items. Specify page number to read more than the first page. schema: type: integer responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Lists Potential Authors content: application/json: examples: example_0: value: total_pages: 1 count: 2 page: 1 per_page: 20 previous_page: next_page: authors: - id: 61698a9a8b81926d91c0e28c ident: A-988C-FM - id: 61698a9a8b81926d91c0e299 ident: A-9899-FM schema: type: object properties: total_pages: type: integer count: type: integer page: type: integer per_page: type: integer previous_page: type: integer nullable: true next_page: type: integer nullable: true authors: type: array items: "$ref": "#/components/schemas/PotentialAuthor" "/v1/clients/projects/{project_id}/documents": get: summary: List Documents tags: - Documents security: - oauth2: - project:manage - project:read - project:write parameters: - name: project_id in: path required: true description: The Project ID. schema: type: string - name: page in: query required: false description: Search results are limited to 100 items. Specify page number to read more than the first page. schema: type: integer responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Lists Documents content: application/json: examples: example_0: value: documents: - language_from: fr language_to: en language_from_code: fr-fr language_to_code: en-us status: waiting_assignment skip_copyscape: false title: document_3 instructions: Lorem ipsum dolor sit amet,... word_count: 200 word_count_rule: 0 keywords_repeat_count: 1 deliver_work_as_file: false custom_data: {} plagiarism_analysis: {} written_words: 0 type: standard id: 61698a9e8b81926d91c0e3a4 project_id: 61698a9e8b81926d91c0e3a3 callback: {} reference: TR-99D-3815-00000 ctype: translation keyword_list: foo, bar, baz satisfaction: completion: 0.0 can_post_message_to_author: false author_work: {} author_id: author_rating: 1 original_content: foo bar markup_in_content: false created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:18 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:18 UTC completed_at: total_pages: 1 count: 1 page: 1 per_page: 20 previous_page: next_page: schema: type: object properties: total_pages: type: integer count: type: integer page: type: integer per_page: type: integer previous_page: type: integer nullable: true next_page: type: integer nullable: true documents: type: array items: "$ref": "#/components/schemas/Document" post: summary: Create a Document tags: - Documents security: - oauth2: - project:manage - project:write parameters: - name: project_id in: path required: true description: The Project ID. schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Document Created content: application/json: examples: example_0: value: language_from: fr language_to: en language_from_code: fr-fr language_to_code: en-us status: in_creation skip_copyscape: false title: document_4 instructions: Lorem ipsum dolor sit amet, consectetur ... word_count: 200 word_count_rule: 0 keywords_repeat_count: 1 deliver_work_as_file: true custom_data: tags: - red - soft external_client_id: 1234 plagiarism_analysis: {} written_words: 0 type: standard id: 61698aa08b81926d91c0e471 project_id: 61698a9f8b81926d91c0e41b callback: support_message_created: url: https://callback.example.com/ reference: TR-915-49834-91906 ctype: translation keyword_list: foo, bar, baz satisfaction: completion: 0.0 can_post_message_to_author: false author_work: {} author_id: author_rating: 1 original_content: test_content markup_in_content: false created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:20 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:20 UTC completed_at: schema: "$ref": "#/components/schemas/Document" requestBody: content: application/json: schema: type: object properties: document: type: object properties: title: description: Title of the Document type: string type: description: | Type of document. * standard (default): defined with a template * key_value: defines multiple phrases with an associated key type: string word_count: description: "(required unless perform_word_count is true) Base number of words. See the word_count_rule parameter." type: integer word_count_rule: description: | Specifies how to treat the specified "word_count". * 0: +/- 10% [word_count] words * 1: at least [word_count] words * 2: maximum [word_count] words type: integer enum: - 0 - 1 - 2 perform_word_count: description: Automated word count is possible for translation and proofreading projects type: boolean original_content: description: Content for translation or proofreading projects. oneOf: - type: string - type: object markup_in_content: description: Does the content contains markup (HTML, XML, etc) or not? type: boolean remote_file_url: description: URL to a stored file (see Uploading files to TextMaster for more information). type: string remote_file_help_url: description: URL to a stored help file providing instructions/comments for the authors (see Uploading files to TextMaster for more information). type: string instructions: description: Specific briefing. Add here any information specific to this Document. type: string keyword_list: description: The keywords you the Author must include in the content (a comma-separated list). type: string keywords_repeat_count: description: "(required if keyword_list is provided) Each key word should be repeated at least X times." type: integer callback: description: List of callbacks to be called upon Document status changes. type: object properties: in_creation: type: object properties: url: type: string required: - url waiting_assignment: type: object properties: url: type: string required: - url in_progress: type: object properties: url: type: string required: - url incomplete: type: object properties: url: type: string required: - url paused: type: object properties: url: type: string required: - url quality_control: type: object properties: url: type: string required: - url copyscape: type: object properties: url: type: string required: - url counting_words: type: object properties: url: type: string required: - url in_review: type: object properties: url: type: string required: - url in_extra_review: type: object properties: url: type: string required: - url completed: type: object properties: url: type: string required: - url canceled: type: object properties: url: type: string required: - url word_count_finished: type: object properties: url: type: string required: - url complete: type: object properties: url: type: string required: - url support_message_created: type: object properties: url: type: string required: - url deliver_work_as_file: description: Should the Authors submit their work as a file? type: boolean "/v1/clients/projects/{project_id}/documents/filter": get: summary: Filter Documents tags: - Documents security: - oauth2: - project:manage - project:read - project:write parameters: - name: project_id in: path required: true description: The Project ID. schema: type: string - name: page in: query required: false description: Search results are limited to 100 items. Specify page number to read more than the first page. schema: type: integer - name: where in: query required: false description: URL encoded JSON selector composed of one or several criteria. schema: type: string - name: order in: query required: false description: Comma separated order list schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Filters Documents content: application/json: examples: example_0: value: documents: - language_from: fr language_to: en language_from_code: fr-fr language_to_code: en-us status: waiting_assignment skip_copyscape: false title: document_2 instructions: Lorem ipsum dolor sit amet,... word_count: 200 word_count_rule: 0 keywords_repeat_count: 1 deliver_work_as_file: false custom_data: {} plagiarism_analysis: {} written_words: 0 type: standard id: 61698a9c8b81926d91c0e32c project_id: 61698a9c8b81926d91c0e32b callback: {} reference: TR-925-85279-00000 ctype: translation keyword_list: foo, bar, baz satisfaction: completion: 0.0 can_post_message_to_author: false author_work: {} author_id: author_rating: 1 original_content: foo bar markup_in_content: false created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:17 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:17 UTC completed_at: total_pages: 1 count: 1 page: 1 per_page: 20 previous_page: next_page: schema: type: object properties: total_pages: type: integer count: type: integer page: type: integer per_page: type: integer previous_page: type: integer nullable: true next_page: type: integer nullable: true documents: type: array items: "$ref": "#/components/schemas/Document" "/v1/clients/projects/{project_id}/documents/{document_id}": get: summary: Get a Document tags: - Documents security: - oauth2: - project:manage - project:read - project:write parameters: - name: project_id in: path required: true description: The Project ID. schema: type: string - name: document_id in: path required: true description: The Document ID. schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Gets a Document content: application/json: examples: example_0: value: language_from: fr language_to: en language_from_code: fr-fr language_to_code: en-us status: waiting_assignment skip_copyscape: false title: document_8 instructions: Lorem ipsum dolor sit amet, consectetur ... word_count: 200 word_count_rule: 0 keywords_repeat_count: 1 deliver_work_as_file: false custom_data: {} plagiarism_analysis: {} written_words: 0 type: standard id: 61698aa18b81926d91c0e4e4 project_id: 61698aa18b81926d91c0e4e3 callback: {} reference: TR-9DD-51325-00000 ctype: translation keyword_list: foo, bar, baz satisfaction: completion: 0.0 can_post_message_to_author: false author_work: {} author_id: author_rating: 1 original_content: foo bar markup_in_content: false created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:21 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:21 UTC completed_at: schema: "$ref": "#/components/schemas/Document" put: summary: Update a Document tags: - Documents security: - oauth2: - project:manage - project:write parameters: - name: project_id in: path required: true description: The Project ID. schema: type: string - name: document_id in: path required: true description: The Document ID. schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Document Updated content: application/json: examples: example_0: value: language_from: fr language_to: en language_from_code: fr-fr language_to_code: en-us status: in_creation skip_copyscape: false title: document_10 instructions: '456' word_count: 200 word_count_rule: 0 keywords_repeat_count: 1 deliver_work_as_file: false custom_data: {} plagiarism_analysis: {} written_words: 0 type: standard id: 61698aa48b81926d91c0e5c5 project_id: 61698aa38b81926d91c0e55b callback: {} reference: TR-955-58851-684849 ctype: proofreading keyword_list: foo, bar, baz satisfaction: completion: 0.0 can_post_message_to_author: false author_work: {} author_id: author_rating: 1 original_content: '123' markup_in_content: false created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:24 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:24 UTC completed_at: schema: "$ref": "#/components/schemas/Document" requestBody: content: application/json: schema: type: object properties: document: type: object properties: title: description: Title of the Document type: string type: description: | Type of document. * standard (default): defined with a template * key_value: defines multiple phrases with an associated key type: string word_count: description: "(required unless perform_word_count is true) Base number of words. See the word_count_rule parameter." type: integer perform_word_count: description: Automated word count is possible for translation and proofreading projects type: boolean original_content: description: Content for translation or proofreading projects. oneOf: - type: string - type: object markup_in_content: description: Does the content contains markup (HTML, XML, etc) or not? type: boolean remote_file_url: description: URL to a stored file (see Uploading files to TextMaster for more information). type: string remote_file_help_url: description: URL to a stored help file providing instructions/comments for the authors (see Uploading files to TextMaster for more information). type: string instructions: description: Specific briefing. Add here any information specific to this Document. type: string keyword_list: description: The keywords you the Author must include in the content (a comma-separated list). type: string keywords_repeat_count: description: "(required if keyword_list is provided) Each key word should be repeated at least X times." type: integer callback: description: List of callbacks to be called upon Document status changes. type: object properties: in_creation: type: object properties: url: type: string required: - url waiting_assignment: type: object properties: url: type: string required: - url in_progress: type: object properties: url: type: string required: - url incomplete: type: object properties: url: type: string required: - url paused: type: object properties: url: type: string required: - url quality_control: type: object properties: url: type: string required: - url copyscape: type: object properties: url: type: string required: - url counting_words: type: object properties: url: type: string required: - url in_review: type: object properties: url: type: string required: - url in_extra_review: type: object properties: url: type: string required: - url completed: type: object properties: url: type: string required: - url canceled: type: object properties: url: type: string required: - url word_count_finished: type: object properties: url: type: string required: - url complete: type: object properties: url: type: string required: - url support_message_created: type: object properties: url: type: string required: - url deliver_work_as_file: description: Should the Authors submit their work as a file? type: boolean delete: summary: Delete a Document tags: - Documents security: - oauth2: - project:manage - project:write parameters: - name: project_id in: path required: true description: The Project ID. schema: type: string - name: document_id in: path required: true description: The Document ID. schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Document Deleted content: application/json: examples: example_0: value: language_from: fr language_to: en language_from_code: fr-fr language_to_code: en-us status: in_creation skip_copyscape: false title: document_11 instructions: Lorem ipsum dolor sit amet, consectetur ... word_count: 200 word_count_rule: 0 keywords_repeat_count: 1 deliver_work_as_file: false custom_data: {} plagiarism_analysis: {} written_words: 0 type: standard id: 61698aa58b81926d91c0e64b project_id: 61698aa48b81926d91c0e5fd callback: {} reference: TR-9F7-91411-691278 ctype: proofreading keyword_list: foo, bar, baz satisfaction: completion: 0.0 can_post_message_to_author: false author_work: {} author_id: author_rating: 1 original_content: test_content markup_in_content: false created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:25 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:25 UTC completed_at: schema: "$ref": "#/components/schemas/Document" "/v1/clients/projects/{project_id}/documents/{document_id}/complete": put: summary: Complete a Document tags: - Documents security: - oauth2: - project:manage - project:write parameters: - name: project_id in: path required: true description: The Project ID. schema: type: string - name: document_id in: path required: true description: The Document ID. schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Document Completed content: application/json: examples: example_0: value: language_from: fr language_to: en language_from_code: fr-fr language_to_code: en-us status: completed skip_copyscape: false title: document_12 instructions: Lorem ipsum dolor sit amet, consectetur ... word_count: 200 word_count_rule: 0 keywords_repeat_count: 1 deliver_work_as_file: false custom_data: {} plagiarism_analysis: {} written_words: 27 type: standard id: 61698aa58b81926d91c0e685 project_id: 61698aa58b81926d91c0e684 callback: {} reference: TR-97E-94280-00000 ctype: translation keyword_list: foo, bar, baz satisfaction: 1 completion: 100.0 can_post_message_to_author: false author_work: factory_template_element9: |- foo bar baz foo bar baz author_id: 61698aa68b81926d91c0e6d7 author_rating: 1 original_content: foo bar markup_in_content: false created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:26 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:28 UTC completed_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:27 UTC schema: "$ref": "#/components/schemas/Document" requestBody: content: application/json: schema: type: object properties: satisfaction: description: Satisfaction level. * positive * neutral (default) * negative type: string enum: - neutral - positive - negative message: description: Message addressed to the Author. type: string "/v1/clients/projects/{project_id}/documents/{document_id}/review_url": post: summary: Generate a Review URL tags: - Documents security: - oauth2: - project:manage - project:write parameters: - name: project_id in: path required: true description: The Project ID. schema: type: string - name: document_id in: path required: true description: The Document ID. schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Gets a Review URL content: application/json: examples: example_0: value: url: "/authors/tasks/61698aa88b81926d91c0e71c?indexes=0-1" schema: type: object properties: url: type: string required: - url requestBody: content: application/json: schema: type: object properties: keys: description: The document keys to be reviewed type: array items: type: string required: - keys required: true "/v1/clients/projects/{project_id}/batch/documents": post: summary: Create multiple Documents tags: - Documents security: - oauth2: - project:manage - project:write parameters: - name: project_id in: path required: true description: The Project ID. schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Documents Created content: application/json: examples: example_0: value: - language_from: fr language_to: en language_from_code: fr-fr language_to_code: en-us status: in_creation skip_copyscape: false title: document_5 instructions: Lorem ipsum dolor sit amet, consectetur ... word_count: 200 word_count_rule: 0 keywords_repeat_count: 1 deliver_work_as_file: true custom_data: {} plagiarism_analysis: {} written_words: 0 type: standard id: 61698aa18b81926d91c0e4d1 project_id: 61698aa08b81926d91c0e47b callback: {} reference: TR-975-38954-395263 ctype: translation keyword_list: foo, bar, baz satisfaction: completion: 0.0 can_post_message_to_author: false author_work: {} author_id: author_rating: 1 original_content: test_content markup_in_content: false created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:21 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:21 UTC completed_at: - language_from: fr language_to: en language_from_code: fr-fr language_to_code: en-us status: in_creation skip_copyscape: false title: document_6 instructions: Lorem ipsum dolor sit amet, consectetur ... word_count: 200 word_count_rule: 0 keywords_repeat_count: 1 deliver_work_as_file: true custom_data: {} plagiarism_analysis: {} written_words: 0 type: standard id: 61698aa18b81926d91c0e4d5 project_id: 61698aa08b81926d91c0e47b callback: {} reference: TR-975-38954-675554 ctype: translation keyword_list: foo, bar, baz satisfaction: completion: 0.0 can_post_message_to_author: false author_work: {} author_id: author_rating: 1 original_content: test_content markup_in_content: false created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:21 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:21 UTC completed_at: - status: in_creation skip_copyscape: false title: document_7 instructions: Lorem ipsum dolor sit amet, consectetur ... word_count: 200 word_count_rule: 0 keywords_repeat_count: 1 deliver_work_as_file: true custom_data: {} plagiarism_analysis: {} written_words: 0 type: standard id: 61698aa18b81926d91c0e4d9 project_id: 61698aa08b81926d91c0e47b callback: {} reference: TR-975-38954-557113 ctype: translation keyword_list: foo, bar, baz satisfaction: completion: 0.0 can_post_message_to_author: false author_work: {} author_id: author_rating: 1 original_content: test_content markup_in_content: false created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:21 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:21 UTC completed_at: schema: type: array items: "$ref": "#/components/schemas/Document" requestBody: content: application/json: schema: type: object properties: documents: type: array items: type: object properties: title: description: Title of the Document type: string type: description: | Type of document. * standard (default): defined with a template * key_value: defines multiple phrases with an associated key type: string word_count: description: "(required unless perform_word_count is true) Base number of words. See the word_count_rule parameter." type: integer word_count_rule: description: | Specifies how to treat the specified "word_count". * 0: +/- 10% [word_count] words * 1: at least [word_count] words * 2: maximum [word_count] words type: integer enum: - 0 - 1 - 2 perform_word_count: description: Automated word count is possible for translation and proofreading projects type: boolean original_content: description: Content for translation or proofreading projects. oneOf: - type: string - type: object markup_in_content: description: Does the content contains markup (HTML, XML, etc) or not? type: boolean remote_file_url: description: URL to a stored file (see Uploading files to TextMaster for more information). type: string remote_file_help_url: description: URL to a stored help file providing instructions/comments for the authors (see Uploading files to TextMaster for more information). type: string instructions: description: Specific briefing. Add here any information specific to this Document. type: string keyword_list: description: The keywords you the Author must include in the content (a comma-separated list). type: string keywords_repeat_count: description: "(required if keyword_list is provided) Each key word should be repeated at least X times." type: integer callback: description: List of callbacks to be called upon Document status changes. type: object properties: in_creation: type: object properties: url: type: string required: - url waiting_assignment: type: object properties: url: type: string required: - url in_progress: type: object properties: url: type: string required: - url incomplete: type: object properties: url: type: string required: - url paused: type: object properties: url: type: string required: - url quality_control: type: object properties: url: type: string required: - url copyscape: type: object properties: url: type: string required: - url counting_words: type: object properties: url: type: string required: - url in_review: type: object properties: url: type: string required: - url in_extra_review: type: object properties: url: type: string required: - url completed: type: object properties: url: type: string required: - url canceled: type: object properties: url: type: string required: - url word_count_finished: type: object properties: url: type: string required: - url complete: type: object properties: url: type: string required: - url support_message_created: type: object properties: url: type: string required: - url deliver_work_as_file: description: Should the Authors submit their work as a file? type: boolean "/v1/clients/projects/{project_id}/batch/documents/complete": post: summary: Complete multiple Documents tags: - Documents security: - oauth2: - project:manage - project:write parameters: - name: project_id in: path required: true description: The Project ID. schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Documents Completed content: application/json: examples: example_0: value: status: ok schema: type: object properties: status: type: string required: - status requestBody: content: application/json: schema: type: object properties: documents: type: array items: type: string satisfaction: description: Satisfaction level. * positive * neutral (default) * negative type: string enum: - neutral - positive - negative message: description: Message addressed to the Author. type: string required: - documents "/v1/clients/glossaries": get: summary: List Glossaries tags: - Glossaries security: - oauth2: - glossary:manage - glossary:read - glossary:write parameters: - name: filter in: query required: false description: | Possible values: * all: list both shared and owned glossaries (default). * share: shared glossaries only. * owned: owned glossaries only. schema: type: string enum: - all - share - owned - name: page in: query required: false description: Search results are limited to 100 items. Specify page number to read more than the first page. schema: type: integer responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Lists glossaries content: application/json: examples: example_0: value: - name: some-glossary.xlsx language_codes: - en-eu - fr-fr created_at: '2021-12-25T12:34:45.123Z' file_url: https://s3-eu-west-1.amazonaws.com/base-textmaster-production/uploads/glossaries/user_abcdefghijklmn0123456789/2e485972-3bbf-41f7-bead-5b328c3ad1d2/some-glossary.xlsx?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=XXX%2F20211225%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20211225T123456Z&X-Amz-Expires=86400&X-Amz-Signature=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&X-Amz-SignedHeaders=host&response-content-disposition=attachment user_id: 97e36903-1c7b-4790-9ff3-bf76e0e4c17c term_count: 123456 id: 2e485972-3bbf-41f7-bead-5b328c3ad1d2 type: glossaries links: self: http://api.glossary.svc.cluster.local/api/v1/glossaries/2e485972-3bbf-41f7-bead-5b328c3ad1d2 relationships: glossary_holders: links: self: http://api.glossary.svc.cluster.local/api/v1/glossaries/2e485972-3bbf-41f7-bead-5b328c3ad1d2/relationships/glossary_holders related: http://api.glossary.svc.cluster.local/api/v1/glossaries/2e485972-3bbf-41f7-bead-5b328c3ad1d2/glossary_holders schema: type: array items: "$ref": "#/components/schemas/Glossary" minItems: 1 uniqueItems: true "/v1/clients/invoices": get: summary: List Invoices tags: - Invoices security: - oauth2: - transaction:manage - transaction:read - transaction:write responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Lists invoices content: application/json: examples: example_0: value: invoices: - invoice_num: 20211015-A44D-FM5 money_amount: 48.0 type: Transaction::CreditPurchase::BuyingACreditBundle url: "/clients/transactions/61698afd8b81926d91c0f685.pdf" issued_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:06:53 UTC schema: type: object properties: invoices: type: array items: "$ref": "#/components/schemas/Invoice" minItems: 1 uniqueItems: true "/v1/clients/my_authors": get: summary: Get My Authors tags: - My Authors security: - oauth2: - preferred_author:manage - preferred_author:read - preferred_author:write parameters: - name: status in: query required: false description: | The category of authors to list (lists all by default). Prossible values: * preferred * blacklisted * uncategorized * my_textmaster (legacy, prefer 'preferred') schema: type: string enum: - preferred - blacklisted - uncategorized - my_textmaster - name: page in: query required: false description: Search results are limited to 100 items. Specify page number to read more than the first page. schema: type: integer - name: per_page in: query required: false description: Number of items per page. Default is 100. Maximum is 100. schema: type: integer responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Lists My Authors content: application/json: examples: example_0: value: total_pages: 1 count: 1 page: 1 per_page: 100 previous_page: next_page: my_authors: - id: 61698aaf8b81926d91c0e87a author_id: 61698aaf8b81926d91c0e86f author_name: john author_ref: A-986F-FM created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:35 UTC description: description latest_activity: 2021-10-15 14:05:06 UTC status: preferred tags: [] updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:35 UTC schema: type: object properties: total_pages: type: integer count: type: integer page: type: integer per_page: type: integer previous_page: type: integer nullable: true next_page: type: integer nullable: true my_authors: type: array items: "$ref": "#/components/schemas/MyAuthor" post: summary: Add a My Author tags: - My Authors security: - oauth2: - preferred_author:manage - preferred_author:write parameters: [] responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: My Author Created content: application/json: examples: example_0: value: id: 61698ab08b81926d91c0e8ae author_id: 61698ab08b81926d91c0e8a3 author_name: john author_ref: A-98A3-FM created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:36 UTC description: Some personal note latest_activity: 2021-10-15 14:05:06 UTC status: preferred tags: [] updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:36 UTC schema: "$ref": "#/components/schemas/MyAuthor" '422': description: Unprocessable Entity content: application/json: examples: example_0: value: errors: author_id: - must be filled status: - 'must be one of: preferred, blacklisted, uncategorized' requestBody: content: application/json: schema: type: object properties: my_author: type: object properties: author_id: description: "(required) Author ID" example: 61698ab08b81926d91c0e8a3 type: string description: description: User note for this author example: Some personal note type: string status: description: | (required) Category to file the author in. Possible values: * preferred * blacklisted * uncategorized * my_textmaster (legacy, prefer 'preferred') enum: - preferred - blacklisted - uncategorized - my_textmaster type: string required: - author_id - status required: - my_author "/v1/clients/my_authors/{author_id}": get: summary: Retrieve a single My Author tags: - My Authors security: - oauth2: - preferred_author:manage - preferred_author:read - preferred_author:write parameters: - name: author_id in: path description: "(required) ID of the Author" required: true schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Gets My Author Info content: application/json: examples: example_0: value: id: 61698ab08b81926d91c0e8ae author_id: 61698ab08b81926d91c0e8a3 author_name: john author_ref: A-98A3-FM created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:36 UTC description: description latest_activity: 2021-10-15 14:05:06 UTC status: preferred tags: [] updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:36 UTC schema: "$ref": "#/components/schemas/MyAuthor" '404': description: My Author Info Not Found content: application/json: examples: example_0: value: errors: base: - Resource not found. put: summary: Update My Author tags: - My Authors security: - oauth2: - preferred_author:manage - preferred_author:write parameters: - name: author_id in: path description: "(required) ID of the Author" required: true schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: My Author Updated content: application/json: examples: example_0: value: id: 61698ab08b81926d91c0e8ae author_id: 61698ab08b81926d91c0e8a3 author_name: john author_ref: A-98A3-FM created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:36 UTC description: description latest_activity: 2021-10-15 14:05:06 UTC status: my_textmaster tags: [] updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:36 UTC schema: "$ref": "#/components/schemas/MyAuthor" '404': description: My Author Info Not Found content: application/json: examples: example_0: value: errors: base: - Resource not found. schema: type: object properties: errors: type: object properties: base: type: array items: type: string required: - base required: - errors '422': description: Unprocessable Entity content: application/json: examples: example_0: value: errors: status: - 'must be one of: preferred, blacklisted, uncategorized' schema: type: object properties: errors: type: object properties: status: type: array items: type: string required: [] required: - errors requestBody: content: application/json: schema: type: object properties: my_author: type: object properties: description: description: User note for this author example: Updated personal note type: string status: description: | (required) Category to file the author in. Possible values: * preferred * blacklisted * uncategorized * my_textmaster (legacy, prefer 'preferred') enum: - preferred - blacklisted - uncategorized - my_textmaster type: string required: - status required: - my_author "/v1/clients/negotiated_contracts": get: summary: List Negotiated Contracts tags: - Negotiated Contracts security: - oauth2: [] parameters: - name: page in: query required: false description: Search results are limited to 100 items. Specify page number to read more than the first page. schema: type: integer responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Lists Negotiated Contracts content: application/json: examples: example_0: value: total_pages: 1 count: 1 page: 1 per_page: 20 previous_page: next_page: negotiated_contracts: - id: 61698ab18b81926d91c0e8d7 name: Special eCommerce 1 client_pricing: -5 client_pricing_in_currency: -0.007 schema: type: object properties: total_pages: type: integer count: type: integer page: type: integer per_page: type: integer previous_page: type: integer nullable: true next_page: type: integer nullable: true my_authors: type: array items: "$ref": "#/components/schemas/NegotiatedContract" "/v1/clients/projects/{project_id}/documents/{document_id}/support_messages": get: summary: List Support Messages tags: - Support Messages security: - oauth2: - discussion:manage - discussion:read - discussion:write parameters: - name: project_id in: path required: true description: Project ID schema: type: string - name: document_id in: path required: true description: Document ID schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Lists support Messages content: application/json: examples: example_0: value: support_messages: - content: Hey, we need a small fix there message: Hey, we need a small fix there author_id: 61698af88b81926d91c0f50e written_by_you: true written_by_author: false author_ref: C-980E-FM created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:06:50 UTC - content: done message: done author_id: 61698afa8b81926d91c0f58e written_by_you: false written_by_author: true author_ref: A-988E-FM created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:06:50 UTC schema: type: object properties: support_messages: type: array items: "$ref": "#/components/schemas/SupportMessage" post: summary: Create a Support Message tags: - Support Messages security: - oauth2: - discussion:manage - discussion:write parameters: - name: project_id in: path required: true description: Project ID schema: type: string - name: document_id in: path required: true description: Document ID schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Lists support Messages content: application/json: examples: example_0: value: content: we need a fix here message: we need a fix here author_id: 61698afa8b81926d91c0f5a2 written_by_you: true written_by_author: false author_ref: C-98A2-FM created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:06:52 UTC schema: "$ref": "#/components/schemas/SupportMessage" requestBody: content: application/json: schema: type: object properties: support_message: type: object properties: message: type: string description: Text of the message required: - message revision_request: type: boolean description: | Only used when document status in 'in_review'. If 'true' (default), this support message is considered a revision request and the document is transitioned back to the 'incomplete' status so that the author can continue working on it. required: - support_message "/v1/clients/projects/{project_id}/my_authors": get: summary: Get all My Authors who can do a given Project tags: - My Authors security: - oauth2: - preferred_author:manage - preferred_author:write - preferred_author:read parameters: - name: project_id in: path required: true description: The Project ID. schema: type: string - name: status in: query required: false description: | The category of authors to list (lists all by default). Prossible values: * preferred * blacklisted * uncategorized * my_textmaster (legacy, prefer 'preferred') schema: type: string enum: - preferred - blacklisted - uncategorized - my_textmaster - name: page in: query required: false description: Search results are limited to 100 items. Specify page number to read more than the first page. schema: type: integer responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Lists possible My Authors content: application/json: examples: example_0: value: total_pages: 1 count: 1 page: 1 per_page: 20 previous_page: next_page: my_authors: - id: 61698aaf8b81926d91c0e87a author_id: 61698aaf8b81926d91c0e86f author_name: john author_ref: A-986F-FM created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:35 UTC description: description latest_activity: 2021-10-15 14:05:06 UTC status: preferred tags: [] updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:35 UTC schema: type: object properties: total_pages: type: integer count: type: integer page: type: integer per_page: type: integer previous_page: type: integer nullable: true next_page: type: integer nullable: true my_authors: type: array items: "$ref": "#/components/schemas/MyAuthor" "/v1/clients/projects": get: summary: List Projects tags: - Projects security: - oauth2: - project:manage - project:read - project:write parameters: - name: page in: query required: false description: Search results are limited to 100 items. Specify page number to read more than the first page. schema: type: integer responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Lists Projects content: application/json: examples: example_0: value: projects: - id: 61698ac38b81926d91c0ebba name: factory_project language_from: fr language_to: en language_from_code: fr-fr language_to_code: en-us category: C014 vocabulary_type: not_specified target_reader_groups: not_specified grammatical_person: not_specified custom_data: {} project_briefing: Lorem ipsum dolor sit amet, consectetur ... project_briefing_is_rich: false priority: 48.0 status: in_progress total_word_count: 200 documents_statuses: canceled: 0 completed: 0 copyscape: 0 counting_words: 0 in_creation: 0 in_extra_review: 0 in_progress: 0 in_review: 0 incomplete: 0 paused: 0 quality_control: 0 waiting_assignment: 1 progress: 0.0 same_author_must_do_entire_project: false callback: {} external_id: multi_project_id: auto_launch: false project_template_id: finalized: false word_count_error: cost_in_credits: 2000 ctype: translation creation_channel: standard reference: TR-9A6-1792 cost_per_word: currency: credits amount: 10 options: language_level: premium option_values: language_level: premium textmasters: - 61698ac38b81926d91c0ebf8 glossaries: [] cost_in_currency: currency: USD amount: 2.8 api_template_id: created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:55 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:56 UTC launched_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:56 UTC completed_at: work_template: name: factory_template17 description: image_preview_path: ctype: public total_pages: 1 count: 1 page: 1 per_page: 20 previous_page: next_page: schema: type: object properties: total_pages: type: integer count: type: integer page: type: integer per_page: type: integer previous_page: type: integer nullable: true next_page: type: integer nullable: true projects: type: array items: "$ref": "#/components/schemas/Project" post: summary: Create a Project tags: - Projects security: - oauth2: - project:manage - project:write parameters: [] responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Project Created content: application/json: examples: example_0: value: id: 61698af18b81926d91c0f397 name: factory_project language_from: fr language_to: en language_from_code: fr-fr language_to_code: en-us category: C014 vocabulary_type: not_specified target_reader_groups: not_specified grammatical_person: not_specified custom_data: tags: - red - soft external_client_id: 1234 project_briefing: Lorem ipsum dolor sit amet, consectetur ... project_briefing_is_rich: false priority: 0.0 status: in_creation total_word_count: 0 documents_statuses: in_creation: 1 waiting_assignment: 0 in_progress: 0 in_review: 0 incomplete: 0 completed: 0 paused: 0 canceled: 0 quality_control: 0 copyscape: 0 counting_words: 0 in_extra_review: 0 progress: 0.0 same_author_must_do_entire_project: false callback: project_in_progress: url: https://callback.example.com/ external_id: multi_project_id: auto_launch: false project_template_id: finalized: false word_count_error: cost_in_credits: 0 ctype: translation creation_channel: api reference: TR-909-9784 cost_per_word: currency: credits amount: 20 options: expertise: true language_level: premium option_values: expertise: 61698af08b81926d91c0f320 language_level: premium textmasters: [] glossaries: [] total_costs: - currency: USD amount: 0.0 - currency: credits amount: 0 api_template_id: created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:06:42 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:06:42 UTC launched_at: completed_at: work_template: name: factory_template29 description: image_preview_path: ctype: public schema: "$ref": "#/components/schemas/Project" requestBody: content: application/json: schema: type: object properties: project: type: object properties: activity_name: description: "(required) Project type (copywriting, proofreading or translation)" type: string api_template_id: description: | ApiTemplate for the Project by passing its ID. If provided, the following attributes will be copied from the Template: * level_name * activity_name * language_from * language_to * project_briefing * textmasters * same_author_must_do_entire_project * auto_launch type: string author_should_use_rich_text: description: Enables author to write HTML content and displays it as such (defaults to false). Only applies to Copywriting projects. type: boolean auto_launch: description: Instruct the API to automatically attempt to launch the Project as soon as all asynchronous operations have been completed. Such operations are, for example, counting the number of words on each Document and running the translation memory analysis on the Project and its Documents (defaults to false). type: boolean callback: description: List of callbacks to be called upon Project status changes. type: object properties: project_in_progress: type: object properties: url: type: string required: - url project_tm_completed: type: object properties: url: type: string required: - url project_finalized: type: object properties: url: type: string required: - url project_tm_diff_completed: type: object properties: url: type: string required: - url project_in_review: type: object properties: url: type: string required: - url project_cancelled: type: object properties: url: type: string required: - url project_canceled: type: object properties: url: type: string required: - url project_not_launched: type: object properties: url: type: string required: - url category: description: '(required) Code representing a category (eg: "C014"). Full list available via API call.' type: string custom_data: description: Arbitrary structured data to attach to a Project type: object deadline: description: You can add an optional deadline to inform the author when the project should be delivered by. Please note that this deadline is not enforced and serve for informational purposes. Finally, please make sure you provide a realistic deadline in order not to impact negativaly the selection of your project by the authors. Must be a string in "YYYY-MM-DD" or "YYYY-MM-DD hh:mm:ss" format. type: string documents: description: 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 fields to add, refer to the Documents endpoint. type: array items: "$ref": "#/components/schemas/Document" glossaries: description: An array of IDs listing the Glossaries to add to the project. type: array items: type: string grammatical_person: description: | Which personal pronoun should the content be written with? * not_specified: Same as "first_person_singular" * first_person_singular: I * second_person_singular: You * third_person_singular_masculine: He * third_person_singular_feminine: She * third_person_singular_neuter: It * first_person_plural: We * second_person_plural: You * third_person_plural: They type: string language_from: description: "(required) Bigram representing a language (ex: en-us). Full list available via API call." type: string pattern: "^[a-z]{2}(-[a-z]{2})?$" language_to: description: "(required for translation projects) Bigram representing a language (ex: en-us). Full list available via API call." type: string pattern: "^[a-z]{2}(-[a-z]{2})?$" name: description: "(required) Name of the Project" type: string options: description: "(required) Options for the Project" type: object properties: expertise: type: string language_level: type: string quality: type: boolean priority: type: boolean specific_attachment: type: boolean uniq_author: type: boolean translation_memory: type: boolean translation_diff: type: boolean required: - language_level project_briefing: description: "(required) 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." type: string project_briefing_is_rich: description: | Specifies if project briefing contains rich formatting (defaults to false). Unless 'true', HTML in briefing is escaped when displayed. Allowed tags (the rest is stipped): div h1 h2 h3 h4 h5 h6 p br a b strong i em u del strike ul ol li type: boolean target_reader_groups: description: | What is the age population target audience of this project? * not_specified (default): Any age * children: 0–13 * teenager: 14–18 * young_adults: 19–29 * adults: 30–59 * old_adults: 60+ type: string textmasters: description: Provide an array with the IDs of the authors you’d like to give the job to. type: array items: type: string vocabulary_type: description: | What style are you expecting your content to be written with? * not_specified (default): Same as "popular" * popular: based on simple, every day words and sentences * technical: focused on precise and specific terms * fictional: writing style amplified, expanded and scripted type: string work_template: description: Select the template that fits your project (defaults to "Libre", no specifications about structure of work). This choice will determine how the content is organized in each Document that will be produced. Full list available via API call. required: - activity_name - category - language_from - name - options - project_briefing required: - project "/v1/clients/projects/filter": get: summary: Filter Projects tags: - Projects security: - oauth2: - project:manage - project:read - project:write parameters: - name: where in: query required: false description: URL encoded JSON selector composed of one or several criteria. schema: type: string - name: order in: query required: false description: Comma separated order list schema: type: string - name: page in: query required: false description: Search results are limited to 100 items. Specify page number to read more than the first page. schema: type: integer responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Lists Projects content: application/json: examples: example_0: value: projects: - id: 61698ac38b81926d91c0ebba name: factory_project language_from: fr language_to: en language_from_code: fr-fr language_to_code: en-us category: C014 vocabulary_type: not_specified target_reader_groups: not_specified grammatical_person: not_specified custom_data: {} project_briefing: Lorem ipsum dolor sit amet, consectetur ... project_briefing_is_rich: false priority: 48.0 status: in_progress total_word_count: 200 documents_statuses: canceled: 0 completed: 0 copyscape: 0 counting_words: 0 in_creation: 0 in_extra_review: 0 in_progress: 0 in_review: 0 incomplete: 0 paused: 0 quality_control: 0 waiting_assignment: 1 progress: 0.0 same_author_must_do_entire_project: false callback: {} external_id: multi_project_id: auto_launch: false project_template_id: finalized: false word_count_error: cost_in_credits: 2000 ctype: translation creation_channel: standard reference: TR-9A6-1792 cost_per_word: currency: credits amount: 10 options: language_level: premium option_values: language_level: premium textmasters: - 61698ac38b81926d91c0ebf8 glossaries: [] cost_in_currency: currency: USD amount: 2.8 api_template_id: created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:55 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:56 UTC launched_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:56 UTC completed_at: work_template: name: factory_template17 description: image_preview_path: ctype: public total_pages: 1 count: 1 page: 1 per_page: 20 previous_page: next_page: schema: type: object properties: total_pages: type: integer count: type: integer page: type: integer per_page: type: integer previous_page: type: integer nullable: true next_page: type: integer nullable: true projects: type: array items: "$ref": "#/components/schemas/Project" "/v1/clients/projects/quotation": get: summary: Get a quotation tags: - Projects security: - oauth2: - project:manage - project:quote - project:read - project:write parameters: - name: project[activity_name] in: query description: "(required) Project type" schema: type: string enum: - copywriting - proofreading - translation - name: project[language_from] in: query required: true description: "(required) Bigram representing a language (ex: en-us). Full list available via API call." schema: type: string pattern: "^[a-z]{2}(-[a-z]{2})?$" - name: project[language_to] in: query required: false description: "(required for translation projects) Bigram representing a language (ex: en-us). Full list available via API call." schema: type: string pattern: "^[a-z]{2}(-[a-z]{2})?$" - name: project[options][expertise] in: query required: false schema: type: string - name: project[options][language_level] in: query required: true schema: type: string - name: project[options][quality] in: query required: false schema: type: boolean - name: project[options][priority] in: query required: false schema: type: boolean - name: project[options][specific_attachment] in: query required: false schema: type: boolean - name: project[total_word_count] in: query required: true description: "(required) Number of words to quote" schema: type: integer responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Gets a quotation content: application/json: examples: example_0: value: id: 61698af18b81926d91c0f397 name: factory_project language_from: fr language_to: en language_from_code: fr-fr language_to_code: en-us category: C014 vocabulary_type: not_specified target_reader_groups: not_specified grammatical_person: not_specified custom_data: tags: - red - soft external_client_id: 1234 project_briefing: Lorem ipsum dolor sit amet, consectetur ... project_briefing_is_rich: false priority: 0.0 status: in_creation total_word_count: 0 documents_statuses: in_creation: 0 waiting_assignment: 0 in_progress: 0 in_review: 0 incomplete: 0 completed: 0 paused: 0 canceled: 0 quality_control: 0 copyscape: 0 counting_words: 0 in_extra_review: 0 progress: 0.0 same_author_must_do_entire_project: false callback: {} external_id: multi_project_id: auto_launch: false project_template_id: finalized: false word_count_error: cost_in_credits: 0 ctype: translation creation_channel: api reference: TR-909-9784 cost_per_word: currency: credits amount: 20 options: expertise: true language_level: premium option_values: expertise: 61698af08b81926d91c0f320 language_level: premium textmasters: [] glossaries: [] total_costs: - currency: USD amount: 0.0 - currency: credits amount: 0 api_template_id: created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:06:42 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:06:42 UTC launched_at: completed_at: work_template: name: factory_template29 description: image_preview_path: ctype: public schema: "$ref": "#/components/schemas/Quotation" "/v1/clients/projects/{project_id}": get: summary: Get a Project tags: - Projects security: - oauth2: - project:manage - project:read - project:write parameters: - name: project_id in: path required: true description: The Project ID. schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Gets the Project content: application/json: examples: example_0: value: id: 61698ac38b81926d91c0ebba name: factory_project language_from: fr language_to: en language_from_code: fr-fr language_to_code: en-us category: C014 vocabulary_type: not_specified target_reader_groups: not_specified grammatical_person: not_specified custom_data: {} project_briefing: Lorem ipsum dolor sit amet, consectetur ... project_briefing_is_rich: false priority: 48.0 status: in_progress total_word_count: 200 documents_statuses: canceled: 0 completed: 0 copyscape: 0 counting_words: 0 in_creation: 0 in_extra_review: 0 in_progress: 0 in_review: 0 incomplete: 0 paused: 0 quality_control: 0 waiting_assignment: 1 progress: 0.0 same_author_must_do_entire_project: false callback: {} external_id: multi_project_id: auto_launch: false project_template_id: finalized: false word_count_error: cost_in_credits: 2000 ctype: translation creation_channel: standard reference: TR-9A6-1792 cost_per_word: currency: credits amount: 10 options: language_level: premium option_values: language_level: premium textmasters: - 61698ac38b81926d91c0ebf8 glossaries: [] cost_in_currency: currency: USD amount: 2.8 api_template_id: created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:55 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:56 UTC launched_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:56 UTC completed_at: work_template: name: factory_template17 description: image_preview_path: ctype: public schema: "$ref": "#/components/schemas/Project" put: summary: Update a Project tags: - Projects security: - oauth2: - project:manage - project:write parameters: - name: project_id in: path required: true description: The Project ID. schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '422': description: Update failed '200': description: Project Updated content: application/json: examples: example_0: value: id: 61698af18b81926d91c0f397 name: factory_project language_from: fr language_to: en language_from_code: fr-fr language_to_code: en-us category: C014 vocabulary_type: not_specified target_reader_groups: not_specified grammatical_person: not_specified custom_data: tags: - red - soft external_client_id: 1234 project_briefing: Lorem ipsum dolor sit amet, consectetur ... project_briefing_is_rich: false priority: 0.0 status: in_creation total_word_count: 0 documents_statuses: in_creation: 1 waiting_assignment: 0 in_progress: 0 in_review: 0 incomplete: 0 completed: 0 paused: 0 canceled: 0 quality_control: 0 copyscape: 0 counting_words: 0 in_extra_review: 0 progress: 0.0 same_author_must_do_entire_project: false callback: {} external_id: multi_project_id: auto_launch: false project_template_id: finalized: false word_count_error: cost_in_credits: 0 ctype: translation creation_channel: api reference: TR-909-9784 cost_per_word: currency: credits amount: 20 options: expertise: true language_level: premium option_values: expertise: 61698af08b81926d91c0f320 language_level: premium textmasters: [] glossaries: [] total_costs: - currency: USD amount: 0.0 - currency: credits amount: 0 api_template_id: created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:06:42 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:06:42 UTC launched_at: completed_at: work_template: name: factory_template29 description: image_preview_path: ctype: public schema: "$ref": "#/components/schemas/Project" requestBody: content: application/json: schema: type: object properties: project: type: object properties: author_should_use_rich_text: description: Enables author to write HTML content and displays it as such (defaults to false). Only applies to Copywriting projects. type: boolean auto_launch: description: Instruct the API to automatically attempt to launch the Project as soon as all asynchronous operations have been completed. Such operations are, for example, counting the number of words on each Document and running the translation memory analysis on the Project and its Documents (defaults to false). type: boolean category: description: 'Code representing a category (eg: "C014"). Full list available via API call.' type: string custom_data: description: Arbitrary structured data to attach to a Project type: object deadline: description: You can add an optional deadline to inform the author when the project should be delivered by. Please note that this deadline is not enforced and serve for informational purposes. Finally, please make sure you provide a realistic deadline in order not to impact negativaly the selection of your project by the authors. Must be a string in "YYYY-MM-DD" or "YYYY-MM-DD hh:mm:ss" format. type: string glossaries: description: An array of IDs listing the Glossaries to add to the project. type: array items: type: string grammatical_person: description: | Which personal pronoun should the content be written with? * not_specified: Same as "first_person_singular" * first_person_singular: I * second_person_singular: You * third_person_singular_masculine: He * third_person_singular_feminine: She * third_person_singular_neuter: It * first_person_plural: We * second_person_plural: You * third_person_plural: They type: string language_from: description: 'Bigram representing a language (ex: en-us). Full list available via API call.' type: string pattern: "^[a-z]{2}(-[a-z]{2})?$" language_to: description: 'Bigram representing a language (ex: en-us). Full list available via API call.' type: string pattern: "^[a-z]{2}(-[a-z]{2})?$" name: description: Name of the Project type: string options: description: Options for the Project type: object properties: expertise: type: string language_level: type: string quality: type: boolean priority: type: boolean specific_attachment: type: boolean uniq_author: type: boolean translation_memory: type: boolean translation_diff: type: boolean project_briefing: description: 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. type: string project_briefing_is_rich: description: | Specifies if project briefing contains rich formatting (defaults to false). Unless 'true', HTML in briefing is escaped when displayed. Allowed tags (the rest is stipped): div h1 h2 h3 h4 h5 h6 p br a b strong i em u del strike ul ol li type: boolean target_reader_groups: description: | What is the age population target audience of this project? * not_specified (default): Any age * children: 0–13 * teenager: 14–18 * young_adults: 19–29 * adults: 30–59 * old_adults: 60+ type: string textmasters: description: Provide an array with the IDs of the authors you’d like to give the job to. type: array items: type: string vocabulary_type: description: | What style are you expecting your content to be written with? * not_specified (default): Same as "popular" * popular: based on simple, every day words and sentences * technical: focused on precise and specific terms * fictional: writing style amplified, expanded and scripted type: string required: - project "/v1/clients/projects/{project_id}/activate_tm_options": put: summary: Activate Translation Memory options on a Project tags: - Projects security: - oauth2: - project:manage - project:write parameters: - name: project_id in: path required: true description: The Project ID. schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez requestBody: content: application/json: schema: type: object properties: project: type: object properties: options: description: "(required) Translation Memory options for the Project" type: object properties: post_editing_machine_translation: type: boolean translation_memory: type: boolean translation_diff: type: boolean required: - options required: - project "/v1/clients/projects/{project_id}/archive": put: summary: Archive a Project tags: - Projects security: - oauth2: - project:manage - project:write parameters: - name: project_id in: path required: true description: The Project ID. schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Archives the Project content: application/json: examples: example_0: value: id: 61698ac38b81926d91c0ebba name: factory_project language_from: fr language_to: en language_from_code: fr-fr language_to_code: en-us category: C014 vocabulary_type: not_specified target_reader_groups: not_specified grammatical_person: not_specified custom_data: {} project_briefing: Lorem ipsum dolor sit amet, consectetur ... project_briefing_is_rich: false priority: 48.0 status: canceled total_word_count: 200 documents_statuses: canceled: 1 completed: 0 copyscape: 0 counting_words: 0 in_creation: 0 in_extra_review: 0 in_progress: 0 in_review: 0 incomplete: 0 paused: 0 quality_control: 0 waiting_assignment: 0 progress: 0.0 same_author_must_do_entire_project: false callback: {} external_id: multi_project_id: auto_launch: false project_template_id: finalized: false word_count_error: cost_in_credits: 2000 ctype: translation creation_channel: standard reference: TR-9A6-1792 cost_per_word: currency: credits amount: 10 options: language_level: premium option_values: language_level: premium textmasters: - 61698ac38b81926d91c0ebf8 glossaries: [] cost_in_currency: currency: USD amount: 2.8 api_template_id: created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:55 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:56 UTC launched_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:56 UTC completed_at: work_template: name: factory_template17 description: image_preview_path: ctype: public schema: "$ref": "#/components/schemas/Project" "/v1/clients/projects/{project_id}/async_launch": post: summary: Launch a Project asynchronously tags: - Projects security: - oauth2: - project:manage - project:launch parameters: - name: project_id in: path required: true description: The Project ID. schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '422': description: Insufficient credits '200': description: Launches the Project content: application/json: examples: example_0: value: id: 61698ac38b81926d91c0ebba name: factory_project language_from: fr language_to: en language_from_code: fr-fr language_to_code: en-us category: C014 vocabulary_type: not_specified target_reader_groups: not_specified grammatical_person: not_specified custom_data: {} project_briefing: Lorem ipsum dolor sit amet, consectetur ... project_briefing_is_rich: false priority: 48.0 status: in_creation total_word_count: 200 documents_statuses: canceled: 0 completed: 0 copyscape: 0 counting_words: 0 in_creation: 0 in_extra_review: 0 in_progress: 0 in_review: 0 incomplete: 0 paused: 0 quality_control: 0 waiting_assignment: 1 progress: 0.0 same_author_must_do_entire_project: false callback: {} external_id: multi_project_id: auto_launch: false project_template_id: finalized: false word_count_error: cost_in_credits: 2000 ctype: translation creation_channel: standard reference: TR-9A6-1792 cost_per_word: currency: credits amount: 10 options: language_level: premium option_values: language_level: premium textmasters: - 61698ac38b81926d91c0ebf8 glossaries: [] cost_in_currency: currency: USD amount: 2.8 api_template_id: created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:55 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:56 UTC launched_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:56 UTC completed_at: work_template: name: factory_template17 description: image_preview_path: ctype: public schema: "$ref": "#/components/schemas/Project" "/v1/clients/projects/{project_id}/cancel": put: summary: Cancels a Project tags: - Projects security: - oauth2: - project:manage - project:write parameters: - name: project_id in: path required: true description: The Project ID. schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Cancels the Project content: application/json: examples: example_0: value: id: 61698ac38b81926d91c0ebba name: factory_project language_from: fr language_to: en language_from_code: fr-fr language_to_code: en-us category: C014 vocabulary_type: not_specified target_reader_groups: not_specified grammatical_person: not_specified custom_data: {} project_briefing: Lorem ipsum dolor sit amet, consectetur ... project_briefing_is_rich: false priority: 48.0 status: canceled total_word_count: 200 documents_statuses: canceled: 0 completed: 0 copyscape: 0 counting_words: 0 in_creation: 0 in_extra_review: 0 in_progress: 0 in_review: 0 incomplete: 0 paused: 1 quality_control: 0 waiting_assignment: 0 progress: 0.0 same_author_must_do_entire_project: false callback: {} external_id: multi_project_id: auto_launch: false project_template_id: finalized: false word_count_error: cost_in_credits: 2000 ctype: translation creation_channel: standard reference: TR-9A6-1792 cost_per_word: currency: credits amount: 10 options: language_level: premium option_values: language_level: premium textmasters: - 61698ac38b81926d91c0ebf8 glossaries: [] cost_in_currency: currency: USD amount: 2.8 api_template_id: created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:55 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:56 UTC launched_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:56 UTC completed_at: work_template: name: factory_template17 description: image_preview_path: ctype: public schema: "$ref": "#/components/schemas/Project" "/v1/clients/projects/{project_id}/duplicate": post: summary: Duplicate a Project tags: - Projects security: - oauth2: - project:manage - project:write parameters: - name: project_id in: path required: true description: The Project ID. schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Project Duplicated content: application/json: examples: example_0: value: id: 61698af18b81926d91c0f397 name: factory_project language_from: fr language_to: en language_from_code: fr-fr language_to_code: en-us category: C014 vocabulary_type: not_specified target_reader_groups: not_specified grammatical_person: not_specified custom_data: tags: - red - soft external_client_id: 1234 project_briefing: Lorem ipsum dolor sit amet, consectetur ... project_briefing_is_rich: false priority: 0.0 status: in_creation total_word_count: 0 documents_statuses: in_creation: 1 waiting_assignment: 0 in_progress: 0 in_review: 0 incomplete: 0 completed: 0 paused: 0 canceled: 0 quality_control: 0 copyscape: 0 counting_words: 0 in_extra_review: 0 progress: 0.0 same_author_must_do_entire_project: false callback: {} external_id: multi_project_id: auto_launch: false project_template_id: finalized: false word_count_error: cost_in_credits: 0 ctype: translation creation_channel: api reference: TR-909-9784 cost_per_word: currency: credits amount: 20 options: expertise: true language_level: premium option_values: expertise: 61698af08b81926d91c0f320 language_level: premium textmasters: [] glossaries: [] total_costs: - currency: USD amount: 0.0 - currency: credits amount: 0 api_template_id: created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:06:42 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:06:42 UTC launched_at: completed_at: work_template: name: factory_template29 description: image_preview_path: ctype: public schema: "$ref": "#/components/schemas/Project" "/v1/clients/projects/{project_id}/finalize": put: summary: Finalize a Project tags: - Projects security: - oauth2: - project:manage - project:launch parameters: - name: project_id in: path required: true description: The Project ID. schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Finalizes the Project content: application/json: examples: example_0: value: id: 61698ac38b81926d91c0ebba name: factory_project language_from: fr language_to: en language_from_code: fr-fr language_to_code: en-us category: C014 vocabulary_type: not_specified target_reader_groups: not_specified grammatical_person: not_specified custom_data: {} project_briefing: Lorem ipsum dolor sit amet, consectetur ... project_briefing_is_rich: false priority: 48.0 status: in_creation total_word_count: 200 documents_statuses: canceled: 0 completed: 0 copyscape: 0 counting_words: 0 in_creation: 0 in_extra_review: 0 in_progress: 0 in_review: 0 incomplete: 0 paused: 0 quality_control: 0 waiting_assignment: 1 progress: 0.0 same_author_must_do_entire_project: false callback: {} external_id: multi_project_id: auto_launch: false project_template_id: finalized: false word_count_error: cost_in_credits: 2000 ctype: translation creation_channel: standard reference: TR-9A6-1792 cost_per_word: currency: credits amount: 10 options: language_level: premium option_values: language_level: premium textmasters: - 61698ac38b81926d91c0ebf8 glossaries: [] cost_in_currency: currency: USD amount: 2.8 api_template_id: created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:55 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:56 UTC launched_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:56 UTC completed_at: work_template: name: factory_template17 description: image_preview_path: ctype: public schema: "$ref": "#/components/schemas/Project" "/v1/clients/projects/{project_id}/launch": put: summary: Launch a Project synchronously tags: - Projects security: - oauth2: - project:manage - project:launch parameters: - name: project_id in: path required: true description: The Project ID. schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '422': description: Insufficient credits '200': description: Launches the Project content: application/json: examples: example_0: value: id: 61698ac38b81926d91c0ebba name: factory_project language_from: fr language_to: en language_from_code: fr-fr language_to_code: en-us category: C014 vocabulary_type: not_specified target_reader_groups: not_specified grammatical_person: not_specified custom_data: {} project_briefing: Lorem ipsum dolor sit amet, consectetur ... project_briefing_is_rich: false priority: 48.0 status: in_creation total_word_count: 200 documents_statuses: canceled: 0 completed: 0 copyscape: 0 counting_words: 0 in_creation: 0 in_extra_review: 0 in_progress: 0 in_review: 0 incomplete: 0 paused: 0 quality_control: 0 waiting_assignment: 1 progress: 0.0 same_author_must_do_entire_project: false callback: {} external_id: multi_project_id: auto_launch: false project_template_id: finalized: false word_count_error: cost_in_credits: 2000 ctype: translation creation_channel: standard reference: TR-9A6-1792 cost_per_word: currency: credits amount: 10 options: language_level: premium option_values: language_level: premium textmasters: - 61698ac38b81926d91c0ebf8 glossaries: [] cost_in_currency: currency: USD amount: 2.8 api_template_id: created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:55 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:56 UTC launched_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:56 UTC completed_at: work_template: name: factory_template17 description: image_preview_path: ctype: public schema: "$ref": "#/components/schemas/Project" "/v1/clients/projects/{project_id}/pause": put: summary: Pause a Project tags: - Projects security: - oauth2: - project:manage - project:write parameters: - name: project_id in: path required: true description: The Project ID. schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Pauses the Project content: application/json: examples: example_0: value: id: 61698ac38b81926d91c0ebba name: factory_project language_from: fr language_to: en language_from_code: fr-fr language_to_code: en-us category: C014 vocabulary_type: not_specified target_reader_groups: not_specified grammatical_person: not_specified custom_data: {} project_briefing: Lorem ipsum dolor sit amet, consectetur ... project_briefing_is_rich: false priority: 48.0 status: paused total_word_count: 200 documents_statuses: canceled: 0 completed: 0 copyscape: 0 counting_words: 0 in_creation: 0 in_extra_review: 0 in_progress: 0 in_review: 0 incomplete: 0 paused: 1 quality_control: 0 waiting_assignment: 0 progress: 0.0 same_author_must_do_entire_project: false callback: {} external_id: multi_project_id: auto_launch: false project_template_id: finalized: false word_count_error: cost_in_credits: 2000 ctype: translation creation_channel: standard reference: TR-9A6-1792 cost_per_word: currency: credits amount: 10 options: language_level: premium option_values: language_level: premium textmasters: - 61698ac38b81926d91c0ebf8 glossaries: [] cost_in_currency: currency: USD amount: 2.8 api_template_id: created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:55 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:56 UTC launched_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:56 UTC completed_at: work_template: name: factory_template17 description: image_preview_path: ctype: public schema: "$ref": "#/components/schemas/Project" "/v1/clients/projects/{project_id}/resume": put: summary: Resume a Project tags: - Projects security: - oauth2: - project:manage - project:write parameters: - name: project_id in: path required: true description: The Project ID. schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Resumes the Project content: application/json: examples: example_0: value: id: 61698ac38b81926d91c0ebba name: factory_project language_from: fr language_to: en language_from_code: fr-fr language_to_code: en-us category: C014 vocabulary_type: not_specified target_reader_groups: not_specified grammatical_person: not_specified custom_data: {} project_briefing: Lorem ipsum dolor sit amet, consectetur ... project_briefing_is_rich: false priority: 48.0 status: paused total_word_count: 200 documents_statuses: canceled: 0 completed: 0 copyscape: 0 counting_words: 0 in_creation: 0 in_extra_review: 0 in_progress: 0 in_review: 0 incomplete: 0 paused: 0 quality_control: 0 waiting_assignment: 1 progress: 0.0 same_author_must_do_entire_project: false callback: {} external_id: multi_project_id: auto_launch: false project_template_id: finalized: false word_count_error: cost_in_credits: 2000 ctype: translation creation_channel: standard reference: TR-9A6-1792 cost_per_word: currency: credits amount: 10 options: language_level: premium option_values: language_level: premium textmasters: - 61698ac38b81926d91c0ebf8 glossaries: [] cost_in_currency: currency: USD amount: 2.8 api_template_id: created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:55 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:56 UTC launched_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:56 UTC completed_at: work_template: name: factory_template17 description: image_preview_path: ctype: public schema: "$ref": "#/components/schemas/Project" "/v1/clients/projects/{project_id}/unarchive": put: summary: Unarchive a Project tags: - Projects security: - oauth2: - project:manage - project:write parameters: - name: project_id in: path required: true description: The Project ID. schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Unarchives the Project content: application/json: examples: example_0: value: id: 61698ac38b81926d91c0ebba name: factory_project language_from: fr language_to: en language_from_code: fr-fr language_to_code: en-us category: C014 vocabulary_type: not_specified target_reader_groups: not_specified grammatical_person: not_specified custom_data: {} project_briefing: Lorem ipsum dolor sit amet, consectetur ... project_briefing_is_rich: false priority: 48.0 status: canceled total_word_count: 200 documents_statuses: canceled: 1 completed: 0 copyscape: 0 counting_words: 0 in_creation: 0 in_extra_review: 0 in_progress: 0 in_review: 0 incomplete: 0 paused: 0 quality_control: 0 waiting_assignment: 0 progress: 0.0 same_author_must_do_entire_project: false callback: {} external_id: multi_project_id: auto_launch: false project_template_id: finalized: false word_count_error: cost_in_credits: 2000 ctype: translation creation_channel: standard reference: TR-9A6-1792 cost_per_word: currency: credits amount: 10 options: language_level: premium option_values: language_level: premium textmasters: - 61698ac38b81926d91c0ebf8 glossaries: [] cost_in_currency: currency: USD amount: 2.8 api_template_id: created_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:55 UTC updated_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:56 UTC launched_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:05:56 UTC completed_at: work_template: name: factory_template17 description: image_preview_path: ctype: public schema: "$ref": "#/components/schemas/Project" "/v1/clients/receipts": get: summary: List Receipts tags: - Receipts description: List available receipts. security: - oauth2: - transaction:manage - transaction:read - transaction:write responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Lists receipts content: application/json: examples: example_0: value: receipts: - receipt_num: 20211015-A44D-FM5 money_amount: 48.0 type: Transaction::ProjectSpending::LaunchingAProject issued_at: day: 15 month: 10 year: 2021 full: 2021-10-15 14:06:53 UTC schema: type: object properties: receipts: type: array items: "$ref": "#/components/schemas/Receipt" minItems: 1 uniqueItems: true "/v1/clients/transactions": get: summary: List Transactions tags: - Transactions description: "\U0001F510 This endpoint requires one of the following scopes:\n\n* transaction:manage\n* transaction:read\n* transaction:write\n" security: - oauth2: - transaction:manage - transaction:read - transaction:write parameters: - name: types[] in: query style: form explode: true required: false description: | Possible values: * Transaction::CreditPurchase::RedeemingAPromoCode * Transaction::ProjectSpending::LaunchingAProject * Transaction::ProjectSpending::CancelingAProject * Transaction::CreditPurchase::BuyingACreditBundle * Transaction::CreditPayment::ModeratingAnApplication * Transaction::CreditPayment::CompletingAJob * Transaction::CashWithdrawal::WithdrawingMoney * Transaction::CreditPayment::EarningFromReferredAuthor * Transaction::CreditPurchase::EarningFromReferredClient * Transaction::ProjectSpending::RepoDocWithCanceledProject * Transaction::CreditPayment::FinancialCompensation * Transaction::CreditPurchase::ExpiringCredits * Transaction::CreditPayment::ExpiringWallet * Transaction::ProjectSpending::AdminProjectRefund * Transaction::ProjectSpending::AdminProjectLevy * Transaction::CreditExchange::GivenToSubordinate * Transaction::CreditExchange::GivenByManager * Transaction::CreditPayment::AdminRefund * Transaction::CreditPurchase::AdminLevy * Transaction::ProjectSpending::EarningFromAProject * Transaction::CreditPurchase::Rollback * Transaction::CashWithdrawal::BundleCancellation schema: type: array items: type: string enum: - Transaction::CreditPurchase::RedeemingAPromoCode - Transaction::ProjectSpending::LaunchingAProject - Transaction::ProjectSpending::CancelingAProject - Transaction::CreditPurchase::BuyingACreditBundle - Transaction::CreditPayment::ModeratingAnApplication - Transaction::CreditPayment::CompletingAJob - Transaction::CashWithdrawal::WithdrawingMoney - Transaction::CreditPayment::EarningFromReferredAuthor - Transaction::CreditPurchase::EarningFromReferredClient - Transaction::ProjectSpending::RepoDocWithCanceledProject - Transaction::CreditPayment::FinancialCompensation - Transaction::CreditPurchase::ExpiringCredits - Transaction::CreditPayment::ExpiringWallet - Transaction::ProjectSpending::AdminProjectRefund - Transaction::ProjectSpending::AdminProjectLevy - Transaction::CreditExchange::GivenToSubordinate - Transaction::CreditExchange::GivenByManager - Transaction::CreditPayment::AdminRefund - Transaction::CreditPurchase::AdminLevy - Transaction::ProjectSpending::EarningFromAProject - Transaction::CreditPurchase::Rollback - Transaction::CashWithdrawal::BundleCancellation - name: page in: query required: false description: Search results are limited to 100 items. Specify page number to read more than the first page. schema: type: integer responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Lists transactions content: application/json: examples: example_0: value: transactions: - invoice_num: 20220102-XXXX-XXX money_value_in_currency: 175.32 type: Transaction::ProjectSpending::LaunchingAProject issued_at: day: 2 month: 1 year: 2022 full: 2022-01-02 01:23:45 UTC - invoice_num: 20220101-XXXX-XXX money_value_in_currency: 8000 invoice: bundle_base_price_in_author_currency: 8000 bundle_price_in_author_currency: 8000 currency: "€ 0.0" currency_code: EUR ordered_credits: 8000000 extra_credits: 0 promo_credits: 0 total_credits: 8000000 real_credit_price_in_ref_cur: 0.001 vat_rate: 0 address: 221B Baker Street legal_mention: "*VAT exemption under Article 283-2 of the General Tax Code" payment_method: wire locale: en bundle: - {} - {} promo_code: {} billing_address: city: Paris address: 55 Rue du Faubourg Saint-Honoré address2: Palais de l’Élysée company: Top Secret country: FR zip_code: '76008' state_region: '' last_name: Wallace first_name: Marsellus type: Transaction::CreditPurchase::BuyingACreditBundle issued_at: day: 1 month: 1 year: 2022 full: 2022-12-01 01:23:45 UTC schema: type: object properties: transactions: type: array items: "$ref": "#/components/schemas/Transaction" minItems: 1 uniqueItems: true "/v1/clients/upload_properties": post: summary: Get Upload Properties tags: - UploadProperties security: - oauth2: [] parameters: [] requestBody: content: application/x-www-form-urlencoded: schema: type: object properties: file_name: type: string description: File name for the uploaded file hashed_payload: type: string description: SHA256 digest of the file content required: - file_name - hashed_payload description: File name for the uploaded file responses: '200': description: File Uploaded content: application/json: examples: example_0: value: url: https://storage-proxy.textmaster.com/api-files/uploads/10922fb8-9265-4ef2-92e8-c4177c3b03da/ef9f1ca8/my-file.pdf headers: x-upload-path: uploads/10922fb8-9265-4ef2-92e8-c4177c3b03da/ef9e1ca8/my-file.pdf x-upload-sha256: f2ca1bb6c7e907d06dafe4687e579fce76b37e4e39b7605022da52e6ccc26fd2 x-upload-date: 20500102T123456Z Authorization: 78ca271e7f6464961ef3db6903da3d2c51cd4156975322ba678840e12a334de3 schema: "$ref": "#/components/schemas/UploadProperties" "/v1/clients/users/me": get: summary: Retrieve my information tags: - Users security: - oauth2: - user:manage - user:read - user:write - user:email responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Gets my information content: application/json: examples: example_0: value: ident: C-982C-FM callback: waiting_assignment: url: http://my.host/waiting_assignment_callback format: json completed: url: http://my.host/completed_callback format: json locale: en email: factory_122@example.com wallet: current_money: 0.0 currency_code: USD id: 61698aff8b81926d91c0f72c contact_information: first_name: john last_name: doe company: company address: 12, street address2: city: Plougasnou zip_code: '29188' state_region: country: FR vat_number: profession: lost website: mother_tongue: schema: "$ref": "#/components/schemas/UserInfo" "/v1/clients/users/{user_id}": put: summary: Update my callback information tags: - Users security: - oauth2: - user:manage - user:write parameters: - name: user_id in: path description: Your own User ID required: true schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '403': description: Forbidden content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Information Updated content: application/json: examples: example_0: value: ident: C-982C-FM callback: waiting_assignment: url: http://my.host/waiting_assignment_callback format: json completed: url: http://my.host/completed_callback format: json locale: en email: factory_122@example.com wallet: current_money: 0.0 currency_code: USD id: 61698aff8b81926d91c0f72c contact_information: first_name: john last_name: doe company: company address: 12, street address2: city: Plougasnou zip_code: '29188' state_region: country: FR vat_number: profession: lost website: mother_tongue: schema: "$ref": "#/components/schemas/UserInfo" requestBody: content: application/json: schema: type: object properties: user: type: object properties: callback: type: object properties: waiting_assignment: "$ref": "#/components/schemas/CallbackUrl" completed: "$ref": "#/components/schemas/CallbackUrl" "/v1/clients/work_templates": get: summary: List Work Templates tags: - Work Templates security: - oauth2: [] parameters: - name: page in: query required: false description: Search results are limited to 100 items. Specify page number to read more than the first page. schema: type: integer responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Lists Work Templates content: application/json: examples: example_0: value: work_templates: - name: 1_title_1_paragraph description: image_preview_path: ctype: public - name: 2_paragraphs description: image_preview_path: ctype: public total_pages: 1 count: 1 page: 1 per_page: 20 previous_page: next_page: schema: type: object properties: total_pages: type: integer count: type: integer page: type: integer per_page: type: integer previous_page: type: integer nullable: true next_page: type: integer nullable: true work_templates: type: array items: "$ref": "#/components/schemas/WorkTemplate" "/v1/clients/work_templates/{work_template_name}": get: summary: Retrieve a Work Templates tags: - Work Templates security: - oauth2: [] parameters: - name: work_template_name in: path required: true description: The Work Template name schema: type: string responses: '401': description: Unauthorized content: application/json: examples: example_0: value: error: invalid_token error_description: The access token is invalid state: unauthorizez '200': description: Gets a Work Templates content: application/json: examples: example_0: value: name: 1_title_1_paragraph description: image_preview_path: ctype: public schema: "$ref": "#/components/schemas/WorkTemplate" "/v1/public/categories": get: summary: List Categories tags: - Categories responses: '200': description: Lists categories content: application/json: examples: example_0: value: categories: - code: C032 value: Adult content - code: C002 value: Aerospace - code: C003 value: Animals/Pets/Plants - code: C004 value: Arts/Culture/Literature schema: type: object properties: categories: type: array items: "$ref": "#/components/schemas/Category" minItems: 1 uniqueItems: true "/v1/public/countries": get: summary: List Countries tags: - Countries parameters: - name: locale in: query required: true description: Locale name. Full list available via the List Locales endpoint. schema: type: string responses: '200': description: Lists countries content: application/json: examples: example_0: value: - id: AD name: Andorra - id: AE name: United Arab Emirates - id: AF name: Afghanistan - id: AG name: Antigua And Barbuda - id: AI name: Anguilla schema: type: array items: "$ref": "#/components/schemas/Country" minItems: 1 uniqueItems: true "/v1/public/expertises": get: summary: List Expertises tags: - Expertises parameters: - name: filter in: query required: true description: | (required) Type of abilities to list. Possible values: * professional * interest schema: type: string enum: - professional - interest - name: locale in: query required: false description: Locale used to translate the expertises name (en by default) schema: type: string responses: '200': description: Lists expertises content: application/json: examples: example_0: value: - id: 596da90cc4f05c000170ffd0 name: Arts & Culture general_label: General code: arts_and_culture kind: professional is_root: true client_pricing: 40 client_pricing_in_currency: 0.04 client_pricings: translation: 40 copywriting: 100 client_pricings_in_currency: translation: 0.04 copywriting: 0.1 - id: 57ce805b39775e0003e221fe name: Economics & Research general_label: General code: economics_and_research kind: professional is_root: true client_pricing: 40 client_pricing_in_currency: 0.04 client_pricings: translation: 40 copywriting: 100 client_pricings_in_currency: translation: 0.04 copywriting: 0.1 schema: type: array items: "$ref": "#/components/schemas/Expertise" minItems: 1 uniqueItems: true "/v1/public/expertises/{expertise_id}/sub_expertises": get: summary: List Sub-Expertises tags: - Expertises parameters: - name: expertise_id in: path required: true description: "(required) The parent Expertise ID" schema: type: string - name: locale in: query required: false description: Locale used to translate the Sub-Expertises name (en by default) schema: type: string responses: '404': description: Not found '200': description: Lists Sub-Expertises content: application/json: examples: example_0: value: - id: 57ce805b39775e0003e221e6 name: Automotive general_label: General code: automotive kind: professional is_root: false client_pricing: 40 client_pricing_in_currency: 0.04 client_pricings: translation: 40 copywriting: 100 client_pricings_in_currency: translation: 0.04 copywriting: 0.1 - id: 57ce805b39775e0003e221ef name: Energy & Natural Resources general_label: General code: energy_and_natural_resources kind: professional is_root: false client_pricing: 40 client_pricing_in_currency: 0.04 client_pricings: translation: 40 copywriting: 100 client_pricings_in_currency: translation: 0.04 copywriting: 0.1 schema: type: array items: "$ref": "#/components/schemas/Expertise" minItems: 1 uniqueItems: true "/v1/public/expertises/{expertise_id}/sub_expertises/{sub_expertise_id}": get: summary: Retrieve a single Sub-Expertise tags: - Expertises parameters: - name: expertise_id in: path required: true description: "(required) The parent Expertise ID" schema: type: string - name: sub_expertise_id in: path required: true description: "(required) The Sub-Expertise ID" schema: type: string - name: locale in: query required: false description: Locale used to translate the Sub-Expertise name (en by default) schema: type: string responses: '404': description: Not found '200': description: Lists Sub-Expertises content: application/json: examples: example_0: value: id: 57ce805b39775e0003e221e6 name: Automotive general_label: General code: automotive kind: professional is_root: false client_pricing: 40 client_pricing_in_currency: 0.04 client_pricings: translation: 40 copywriting: 100 client_pricings_in_currency: translation: 0.04 copywriting: 0.1 schema: "$ref": "#/components/schemas/Expertise" "/v1/public/languages": get: summary: List Languages tags: - Languages responses: '200': description: Lists languages content: application/json: examples: example_0: value: languages: - code: af value: Afrikaans (South Africa) - code: af-za value: Afrikaans (South Africa) - code: am value: Amharic (Ethiopia) - code: am-et value: Amharic (Ethiopia) schema: type: object properties: languages: type: array items: "$ref": "#/components/schemas/Language" "/v1/public/locales": get: summary: List Locales tags: - Locales responses: '200': description: Lists locales content: application/json: examples: example_0: value: - code: de name: German active: true - code: en name: English (US) active: true - code: en-GB name: English (UK) active: true - code: fr name: Français active: true - code: es name: Spanish active: true - code: it name: Italian active: true - code: nl name: Dutch active: true - code: pt name: Portuguese active: true schema: type: array items: "$ref": "#/components/schemas/Locale" minItems: 1 uniqueItems: true components: schemas: Ability: type: object properties: id: type: string level_name: type: string enum: - enterprise - regular - premium language_from: type: string pattern: "^[a-z]{2}(-[a-z]{2})?$" language_to: type: string pattern: "^[a-z]{2}(-[a-z]{2})?$" pricing: type: object properties: enterprise: type: number specific_attachment: type: number priority: type: number quality: type: number translation_memory: type: number ApiTemplate: type: object properties: id: type: string name: type: string description: type: string level_name: type: string enum: - enterprise - regular - premium activity_name: type: string enum: - translation - copywriting - proofreading language_from: type: string language_to: type: string project_briefing: type: string options: type: object properties: language_level: type: string enum: - enterprise - regular - premium textmasters: type: array items: type: string cost_per_word: type: object properties: currency: type: string amount: type: number cost_per_word_in_currency: type: object properties: currency: type: string amount: type: number same_author_must_do_entire_project: type: boolean auto_launch: type: boolean created_at: "$ref": "#/components/schemas/Date" updated_at: "$ref": "#/components/schemas/Date" CallbackUrl: type: object properties: url: type: string format: type: string Category: type: object properties: code: type: string enum: - C001 - C002 - C003 - C004 - C005 - C006 - C007 - C008 - C009 - C010 - C011 - C012 - C013 - C014 - C015 - C016 - C017 - C018 - C019 - C020 - C021 - C022 - C023 - C024 - C025 - C026 - C027 - C028 - C029 - C030 - C031 - C032 - C033 - C034 value: type: string required: - code - value Country: type: object properties: id: type: string name: type: string required: - id - name Date: type: object properties: day: type: integer month: type: integer year: type: integer full: type: string DateOrNull: type: object properties: day: type: integer month: type: integer year: type: integer full: type: string nullable: true Document: type: object properties: language_from: type: string language_to: type: string language_from_code: type: string pattern: "^[a-z]{2}(-[a-z]{2})?$" language_to_code: type: string pattern: "^[a-z]{2}(-[a-z]{2})?$" status: type: string skip_copyscape: type: boolean title: type: string instructions: type: string word_count: type: integer word_count_rule: type: integer keywords_repeat_count: type: integer deliver_work_as_file: type: boolean custom_data: type: object plagiarism_analysis: type: object written_words: type: integer type: type: string id: type: string project_id: type: string callback: type: object properties: canceled: "$ref": "#/components/schemas/CallbackUrl" completed: "$ref": "#/components/schemas/CallbackUrl" copyscape: "$ref": "#/components/schemas/CallbackUrl" counting_words: "$ref": "#/components/schemas/CallbackUrl" in_progress: "$ref": "#/components/schemas/CallbackUrl" in_review: "$ref": "#/components/schemas/CallbackUrl" incomplete: "$ref": "#/components/schemas/CallbackUrl" paused: "$ref": "#/components/schemas/CallbackUrl" quality_control: "$ref": "#/components/schemas/CallbackUrl" waiting_assignment: "$ref": "#/components/schemas/CallbackUrl" reference: type: string ctype: type: string keyword_list: type: string satisfaction: type: integer nullable: true completion: type: number can_post_message_to_author: type: boolean author_work: oneOf: - type: object - type: string author_id: type: string nullable: true author_rating: type: integer original_content: type: string created_at: "$ref": "#/components/schemas/Date" updated_at: "$ref": "#/components/schemas/Date" completed_at: "$ref": "#/components/schemas/DateOrNull" Expertise: type: object properties: id: type: string name: type: string general_label: type: string code: type: string kind: type: string enum: - interest - professional is_root: type: boolean client_pricing: type: number client_pricing_in_currency: type: number client_pricings: type: object properties: translation: type: number copywriting: type: number client_pricings_in_currency: type: object properties: translation: type: number copywriting: type: number Glossary: type: object properties: name: type: string language_codes: type: array items: type: string pattern: "^[a-z]{2}(-[a-z]{2})?$" created_at: type: string file_url: type: string user_id: type: string id: type: string type: type: string links: type: object properties: self: type: string relationships: type: object properties: glossary_holders: type: object properties: links: type: object properties: self: type: string related: type: string Invoice: type: object properties: invoice_num: type: string money_amount: type: number type: type: string url: type: string issued_at: "$ref": "#/components/schemas/Date" required: - invoice_num - money_amount - type - url - issued_at Language: type: object properties: code: type: string pattern: "^[a-z]{2}(-[a-z]{2})?$" value: type: string required: - code - value LanguageLevel: type: object properties: name: type: string required: - name Locale: type: object properties: active: type: boolean code: type: string pattern: "^[a-z]{2}(-[A-Z]{2})?$" name: type: string required: - active - code - name MyAuthor: type: object properties: id: type: string author_id: type: string author_name: type: string author_ref: type: string created_at: "$ref": "#/components/schemas/Date" description: type: string nullable: true latest_activity: type: string status: type: string tags: type: array items: type: string updated_at: "$ref": "#/components/schemas/Date" NegotiatedContract: type: object properties: id: type: string name: type: string client_pricing: type: number client_pricing_in_currency: type: number required: - id - name - client_pricing - client_pricing_in_currency ObjectOrNull: type: object nullable: true PotentialAuthor: type: object properties: id: type: string ident: type: string required: - id - ident Project: type: object properties: id: type: string name: type: string language_from: type: string language_to: type: string language_from_code: type: string pattern: "^[a-z]{2}(-[a-z]{2})?$" language_to_code: type: string pattern: "^[a-z]{2}(-[a-z]{2})?$" category: type: string enum: - C001 - C002 - C003 - C004 - C005 - C006 - C007 - C008 - C009 - C010 - C011 - C012 - C013 - C014 - C015 - C016 - C017 - C018 - C019 - C020 - C021 - C022 - C023 - C024 - C025 - C026 - C027 - C028 - C029 - C030 - C031 - C032 - C033 - C034 vocabulary_type: type: string enum: - not_specified - popular - technical - fictional target_reader_groups: type: string enum: - not_specified - children - teenager - young_adults - adults - old_adults grammatical_person: type: string enum: - 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 custom_data: type: object project_briefing: type: string project_briefing_is_rich: type: boolean priority: type: number status: type: string enum: - in_creation - in_progress - in_review - paused - completed - canceled total_word_count: type: integer documents_statuses: type: object properties: in_creation: type: integer waiting_assignment: type: integer in_progress: type: integer in_review: type: integer incomplete: type: integer completed: type: integer paused: type: integer canceled: type: integer quality_control: type: integer copyscape: type: integer counting_words: type: integer in_extra_review: type: integer progress: type: number same_author_must_do_entire_project: type: boolean callback: "$ref": "#/components/schemas/CallbackUrl" external_id: type: string nullable: true multi_project_id: type: string nullable: true auto_launch: type: boolean project_template_id: type: string nullable: true finalized: type: boolean word_count_error: type: string nullable: true cost_in_credits: type: number ctype: type: string enum: - translation - copywriting - proofreading creation_channel: type: string reference: type: string cost_per_word: type: object properties: currency: type: string amount: type: number required: - currency - amount options: type: object properties: language_level: type: string enum: - enterprise - regular - premium option_values: type: object properties: language_level: type: string enum: - enterprise - regular - premium textmasters: type: array items: type: string glossaries: type: array items: type: string cost_in_currency: type: object properties: currency: type: string amount: type: number required: - currency - amount api_template_id: type: string nullable: true created_at: "$ref": "#/components/schemas/Date" updated_at: "$ref": "#/components/schemas/Date" launched_at: "$ref": "#/components/schemas/DateOrNull" completed_at: "$ref": "#/components/schemas/DateOrNull" work_template: "$ref": "#/components/schemas/WorkTemplate" Quotation: type: object properties: id: type: string name: type: string nullable: true language_from: type: string language_to: type: string language_from_code: type: string pattern: "^[a-z]{2}(-[a-z]{2})?$" language_to_code: type: string pattern: "^[a-z]{2}(-[a-z]{2})?$" category: type: string enum: - C001 - C002 - C003 - C004 - C005 - C006 - C007 - C008 - C009 - C010 - C011 - C012 - C013 - C014 - C015 - C016 - C017 - C018 - C019 - C020 - C021 - C022 - C023 - C024 - C025 - C026 - C027 - C028 - C029 - C030 - C031 - C032 - C033 - C034 vocabulary_type: type: string enum: - not_specified - popular - technical - fictional target_reader_groups: type: string enum: - not_specified - children - teenager - young_adults - adults - old_adults grammatical_person: type: string enum: - 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 custom_data: type: object project_briefing: type: string nullable: true project_briefing_is_rich: type: boolean priority: type: number status: type: string enum: - in_creation - in_progress - in_review - paused - completed - canceled total_word_count: type: integer documents_statuses: type: object properties: in_creation: type: integer waiting_assignment: type: integer in_progress: type: integer in_review: type: integer incomplete: type: integer completed: type: integer paused: type: integer canceled: type: integer quality_control: type: integer copyscape: type: integer counting_words: type: integer in_extra_review: type: integer progress: type: number same_author_must_do_entire_project: type: boolean callback: "$ref": "#/components/schemas/CallbackUrl" external_id: type: string nullable: true multi_project_id: type: string nullable: true auto_launch: type: boolean project_template_id: type: string nullable: true finalized: type: boolean word_count_error: type: string nullable: true cost_in_credits: type: number ctype: type: string enum: - translation - copywriting - proofreading creation_channel: type: string reference: type: string nullable: true cost_per_word: type: object properties: currency: type: string amount: type: number required: - currency - amount options: type: object properties: language_level: type: string enum: - enterprise - regular - premium option_values: type: object properties: language_level: type: string enum: - enterprise - regular - premium textmasters: type: array items: type: string glossaries: type: array items: type: string total_costs: type: array items: type: object properties: currency: type: string amount: type: number required: - currency - amount api_template_id: type: string nullable: true created_at: "$ref": "#/components/schemas/DateOrNull" updated_at: "$ref": "#/components/schemas/DateOrNull" launched_at: "$ref": "#/components/schemas/DateOrNull" completed_at: "$ref": "#/components/schemas/DateOrNull" work_template: "$ref": "#/components/schemas/ObjectOrNull" Receipt: type: object properties: invoice_num: type: string money_amount: type: number type: type: string issued_at: "$ref": "#/components/schemas/Date" required: - invoice_num - money_amount - type - issued_at SupportMessage: type: object properties: content: type: string message: type: string author_id: type: string written_by_you: type: boolean written_by_author: type: boolean author_ref: type: string created_at: "$ref": "#/components/schemas/Date" required: - author_id - author_ref - content - created_at - message - written_by_author - written_by_you Transaction: type: object properties: invoice_num: type: string money_value_in_currency: type: number invoice: type: object properties: bundle_base_price_in_author_currency: type: number bundle_price_in_author_currency: type: number currency: type: string ordered_credits: type: number extra_credits: type: number promo_credits: type: number total_credits: type: number real_credit_price_in_ref_cur: type: number vat_rate: type: number address: type: string legal_mention: type: string payment_method: type: string locale: type: string bundle: type: array items: type: object properties: {} promo_code: type: object properties: {} billing_address: type: object properties: city: type: string address: type: string address2: type: string nullable: true company: type: string country: type: string zip_code: type: string state_region: type: string last_name: type: string first_name: type: string type: type: string issued_at: "$ref": "#/components/schemas/Date" required: - invoice_num - money_value_in_currency - type - issued_at UploadProperties: type: object properties: url: type: string headers: type: object properties: x-upload-path: type: string x-upload-sha256: type: string x-upload-date: type: string pattern: "^\\d{8}T\\d{6}Z$" Authorization: type: string required: - x-upload-path - x-upload-sha256 - x-upload-date - Authorization required: - url - headers UserInfo: type: object properties: id: type: string ident: type: string callback: type: object properties: waiting_assignment: "$ref": "#/components/schemas/CallbackUrl" completed: "$ref": "#/components/schemas/CallbackUrl" locale: type: string email: type: string wallet: type: object properties: currency_code: type: string current_money: type: number contact_information: type: object properties: first_name: type: string last_name: type: string company: type: string address: type: string address2: type: string nullable: true city: type: string zip_code: type: string state_region: type: string nullable: true country: type: string vat_number: type: string nullable: true profession: type: string website: type: string nullable: true mother_tongue: type: string nullable: true WorkTemplate: type: object properties: name: type: string description: type: string nullable: true image_preview_path: type: string nullable: true ctype: type: string enum: - public - private required: - name - ctype securitySchemes: oauth2: type: oauth2 description: OAuth2 Bearer token authentication flows: authorizationCode: authorizationUrl: https://api.textmaster.com/oauth/authorize tokenUrl: https://api.textmaster.com/oauth/token refreshUrl: https://api.textmaster.com/oauth/token scopes: preferred_author:manage: Allow read & write access to My Authors preferred_author:read: Allow read access to My Authors preferred_author:write: Allow write access to My Authors servers: - url: https://api.textmaster.com