@generaltranslation/api 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/spec/openapi.json CHANGED
@@ -2,8 +2,42 @@
2
2
  "openapi": "3.1.0",
3
3
  "info": {
4
4
  "title": "General Translation API",
5
- "version": "2026-03-06.v1"
5
+ "version": "2026-03-06.v1",
6
+ "description": "The public General Translation API. Use it to upload source content and translated files, download translations, queue and translate content, create projects, manage branches and tags, and read project and job status.\n\nMost endpoints operate on a single project. All endpoints live under `https://api.gtx.dev`.\n\nAuthenticate every request with an API key as a bearer token in the standard `Authorization: Bearer <key>` header. Project keys (`gtx-api-`, `gtx-dev-`) are bound to one project. Organization keys (`gtx-org-`) work across projects but must include the target project in the `gt-project-id` header for project-scoped routes. Organization-scoped routes, such as `POST /v2/projects`, derive the organization from the key and do not use a `gt-project-id` header.",
7
+ "contact": {
8
+ "name": "General Translation Support",
9
+ "email": "support@generaltranslation.com",
10
+ "url": "https://generaltranslation.com"
11
+ }
6
12
  },
13
+ "servers": [
14
+ {
15
+ "url": "https://api.gtx.dev",
16
+ "description": "General Translation API"
17
+ }
18
+ ],
19
+ "tags": [
20
+ {
21
+ "name": "Files",
22
+ "description": "Upload, download, publish, move, and inspect project files."
23
+ },
24
+ {
25
+ "name": "Context",
26
+ "description": "Generate translation context such as glossaries and instructions."
27
+ },
28
+ {
29
+ "name": "Translation",
30
+ "description": "Translate content, queue files for translation, and read translation job status."
31
+ },
32
+ {
33
+ "name": "Project",
34
+ "description": "Create and manage projects, assets, branches, and file version tags."
35
+ },
36
+ {
37
+ "name": "CLI Wizard",
38
+ "description": "Create and manage internal CLI wizard sessions."
39
+ }
40
+ ],
7
41
  "components": {
8
42
  "securitySchemes": {
9
43
  "BearerAuth": {
@@ -262,7 +296,8 @@
262
296
  "/v2/projects": {
263
297
  "post": {
264
298
  "operationId": "createProject",
265
- "tags": ["Projects"],
299
+ "summary": "Create a Project",
300
+ "description": "Create a Project in the Organization associated with an Organization API key. The key must have the `org:projects:create` permission. Project keys cannot use this endpoint. Enabling CDN delivery also requires `project:write`.",
266
301
  "security": [
267
302
  {
268
303
  "BearerAuth": []
@@ -446,13 +481,15 @@
446
481
  }
447
482
  }
448
483
  }
449
- }
484
+ },
485
+ "tags": ["Project"]
450
486
  }
451
487
  },
452
488
  "/v2/project/files/upload-files": {
453
489
  "post": {
454
490
  "operationId": "uploadSourceFiles",
455
- "tags": ["Files"],
491
+ "summary": "Upload source files",
492
+ "description": "Upload one or more source files to the project. Max 100 files per request.",
456
493
  "security": [
457
494
  {
458
495
  "BearerAuth": []
@@ -474,6 +511,16 @@
474
511
  "description": "API contract version. Defaults to the oldest supported version.",
475
512
  "name": "gt-api-version",
476
513
  "in": "header"
514
+ },
515
+ {
516
+ "schema": {
517
+ "type": "string",
518
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key)."
519
+ },
520
+ "required": false,
521
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key).",
522
+ "name": "gt-project-id",
523
+ "in": "header"
477
524
  }
478
525
  ],
479
526
  "requestBody": {
@@ -746,13 +793,15 @@
746
793
  }
747
794
  }
748
795
  }
749
- }
796
+ },
797
+ "tags": ["Files"]
750
798
  }
751
799
  },
752
800
  "/v2/project/files/upload-translations": {
753
801
  "post": {
754
802
  "operationId": "uploadTranslations",
755
- "tags": ["Files"],
803
+ "summary": "Upload translated files",
804
+ "description": "Upload translated files linked to their source files. Max 100 files per request.",
756
805
  "security": [
757
806
  {
758
807
  "BearerAuth": []
@@ -774,6 +823,16 @@
774
823
  "description": "API contract version. Defaults to the oldest supported version.",
775
824
  "name": "gt-api-version",
776
825
  "in": "header"
826
+ },
827
+ {
828
+ "schema": {
829
+ "type": "string",
830
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key)."
831
+ },
832
+ "required": false,
833
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key).",
834
+ "name": "gt-project-id",
835
+ "in": "header"
777
836
  }
778
837
  ],
779
838
  "requestBody": {
@@ -1113,13 +1172,15 @@
1113
1172
  }
1114
1173
  }
1115
1174
  }
1116
- }
1175
+ },
1176
+ "tags": ["Files"]
1117
1177
  }
1118
1178
  },
1119
1179
  "/v2/project/assets": {
1120
1180
  "post": {
1121
1181
  "operationId": "uploadAssets",
1122
- "tags": ["Assets"],
1182
+ "summary": "Upload Project assets",
1183
+ "description": "Upload OpenType or TrueType fonts through a Project and make them available to Lottie translation workflows across its Organization. Each font is keyed by a normalized identity derived from its family, weight, and italic style (from the supplied `family` and `style`, or from the font metadata and file name). Re-uploading the same identity overwrites the existing asset, so complete retries after a `500` response are safe.",
1123
1184
  "security": [
1124
1185
  {
1125
1186
  "BearerAuth": []
@@ -1141,6 +1202,16 @@
1141
1202
  "description": "API contract version. Defaults to the oldest supported version.",
1142
1203
  "name": "gt-api-version",
1143
1204
  "in": "header"
1205
+ },
1206
+ {
1207
+ "schema": {
1208
+ "type": "string",
1209
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key)."
1210
+ },
1211
+ "required": false,
1212
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key).",
1213
+ "name": "gt-project-id",
1214
+ "in": "header"
1144
1215
  }
1145
1216
  ],
1146
1217
  "requestBody": {
@@ -1167,7 +1238,7 @@
1167
1238
  "type": "string",
1168
1239
  "minLength": 1,
1169
1240
  "maxLength": 255,
1170
- "pattern": "\\.(ttf|otf)$/i"
1241
+ "pattern": "\\.([tT][tT][fF]|[oO][tT][fF])$"
1171
1242
  },
1172
1243
  "family": {
1173
1244
  "type": "string",
@@ -1332,13 +1403,15 @@
1332
1403
  }
1333
1404
  }
1334
1405
  }
1335
- }
1406
+ },
1407
+ "tags": ["Project"]
1336
1408
  }
1337
1409
  },
1338
1410
  "/v2/project/files/diffs": {
1339
1411
  "post": {
1340
1412
  "operationId": "submitUserEditDiffs",
1341
- "tags": ["Files"],
1413
+ "summary": "Submit translation diffs",
1414
+ "description": "Overwrite translations with user-provided localized content.",
1342
1415
  "security": [
1343
1416
  {
1344
1417
  "BearerAuth": []
@@ -1360,6 +1433,16 @@
1360
1433
  "description": "API contract version. Defaults to the oldest supported version.",
1361
1434
  "name": "gt-api-version",
1362
1435
  "in": "header"
1436
+ },
1437
+ {
1438
+ "schema": {
1439
+ "type": "string",
1440
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key)."
1441
+ },
1442
+ "required": false,
1443
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key).",
1444
+ "name": "gt-project-id",
1445
+ "in": "header"
1363
1446
  }
1364
1447
  ],
1365
1448
  "requestBody": {
@@ -1531,13 +1614,16 @@
1531
1614
  }
1532
1615
  }
1533
1616
  }
1534
- }
1617
+ },
1618
+ "tags": ["Files"]
1535
1619
  }
1536
1620
  },
1537
1621
  "/v2/project/setup/should-generate": {
1538
1622
  "get": {
1539
1623
  "operationId": "shouldGenerateProjectContext",
1540
- "tags": ["Project setup"],
1624
+ "summary": "Check if context generation is needed",
1625
+ "deprecated": true,
1626
+ "description": "Check whether the Project needs translation context generated. This deprecated endpoint is retained for backward compatibility and is no longer called by current clients.",
1541
1627
  "security": [
1542
1628
  {
1543
1629
  "BearerAuth": []
@@ -1559,6 +1645,16 @@
1559
1645
  "description": "API contract version. Defaults to the oldest supported version.",
1560
1646
  "name": "gt-api-version",
1561
1647
  "in": "header"
1648
+ },
1649
+ {
1650
+ "schema": {
1651
+ "type": "string",
1652
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key)."
1653
+ },
1654
+ "required": false,
1655
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key).",
1656
+ "name": "gt-project-id",
1657
+ "in": "header"
1562
1658
  }
1563
1659
  ],
1564
1660
  "responses": {
@@ -1668,13 +1764,15 @@
1668
1764
  }
1669
1765
  }
1670
1766
  }
1671
- }
1767
+ },
1768
+ "tags": ["Context"]
1672
1769
  }
1673
1770
  },
1674
1771
  "/v2/project/setup/generate": {
1675
1772
  "post": {
1676
1773
  "operationId": "generateProjectContext",
1677
- "tags": ["Project setup"],
1774
+ "summary": "Generate translation context",
1775
+ "description": "Generate glossaries and translation instructions for the project.",
1678
1776
  "security": [
1679
1777
  {
1680
1778
  "BearerAuth": []
@@ -1696,6 +1794,16 @@
1696
1794
  "description": "API contract version. Defaults to the oldest supported version.",
1697
1795
  "name": "gt-api-version",
1698
1796
  "in": "header"
1797
+ },
1798
+ {
1799
+ "schema": {
1800
+ "type": "string",
1801
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key)."
1802
+ },
1803
+ "required": false,
1804
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key).",
1805
+ "name": "gt-project-id",
1806
+ "in": "header"
1699
1807
  }
1700
1808
  ],
1701
1809
  "requestBody": {
@@ -1883,13 +1991,16 @@
1883
1991
  }
1884
1992
  }
1885
1993
  }
1886
- }
1994
+ },
1995
+ "tags": ["Context"]
1887
1996
  }
1888
1997
  },
1889
1998
  "/v2/project/setup/status/{jobId}": {
1890
1999
  "get": {
1891
2000
  "operationId": "getProjectContextGenerationStatus",
1892
- "tags": ["Project setup"],
2001
+ "summary": "Get context generation job status",
2002
+ "deprecated": true,
2003
+ "description": "Track a context generation job. This deprecated endpoint is retained for backward compatibility; new integrations should use `POST /v2/project/jobs/info`.",
1893
2004
  "security": [
1894
2005
  {
1895
2006
  "BearerAuth": []
@@ -1920,6 +2031,16 @@
1920
2031
  "description": "API contract version. Defaults to the oldest supported version.",
1921
2032
  "name": "gt-api-version",
1922
2033
  "in": "header"
2034
+ },
2035
+ {
2036
+ "schema": {
2037
+ "type": "string",
2038
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key)."
2039
+ },
2040
+ "required": false,
2041
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key).",
2042
+ "name": "gt-project-id",
2043
+ "in": "header"
1923
2044
  }
1924
2045
  ],
1925
2046
  "responses": {
@@ -2047,13 +2168,15 @@
2047
2168
  }
2048
2169
  }
2049
2170
  }
2050
- }
2171
+ },
2172
+ "tags": ["Context"]
2051
2173
  }
2052
2174
  },
2053
2175
  "/v2/project/translations/enqueue": {
2054
2176
  "post": {
2055
2177
  "operationId": "enqueueFileTranslations",
2056
- "tags": ["Translations"],
2178
+ "summary": "Queue files for translation",
2179
+ "description": "Enqueue uploaded source files for background translation. Max 100 files per request. The response shape depends on the requested `gt-api-version`.",
2057
2180
  "security": [
2058
2181
  {
2059
2182
  "BearerAuth": []
@@ -2075,6 +2198,16 @@
2075
2198
  "description": "API contract version. Defaults to the oldest supported version.",
2076
2199
  "name": "gt-api-version",
2077
2200
  "in": "header"
2201
+ },
2202
+ {
2203
+ "schema": {
2204
+ "type": "string",
2205
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key)."
2206
+ },
2207
+ "required": false,
2208
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key).",
2209
+ "name": "gt-project-id",
2210
+ "in": "header"
2078
2211
  }
2079
2212
  ],
2080
2213
  "requestBody": {
@@ -2477,13 +2610,15 @@
2477
2610
  }
2478
2611
  }
2479
2612
  }
2480
- }
2613
+ },
2614
+ "tags": ["Translation"]
2481
2615
  }
2482
2616
  },
2483
2617
  "/v2/project/files/publish": {
2484
2618
  "post": {
2485
2619
  "operationId": "publishFiles",
2486
- "tags": ["Files"],
2620
+ "summary": "Publish or unpublish files",
2621
+ "description": "Publish or unpublish translated files to the CDN. Requires CDN to be enabled.",
2487
2622
  "security": [
2488
2623
  {
2489
2624
  "BearerAuth": []
@@ -2505,6 +2640,16 @@
2505
2640
  "description": "API contract version. Defaults to the oldest supported version.",
2506
2641
  "name": "gt-api-version",
2507
2642
  "in": "header"
2643
+ },
2644
+ {
2645
+ "schema": {
2646
+ "type": "string",
2647
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key)."
2648
+ },
2649
+ "required": false,
2650
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key).",
2651
+ "name": "gt-project-id",
2652
+ "in": "header"
2508
2653
  }
2509
2654
  ],
2510
2655
  "requestBody": {
@@ -2696,13 +2841,16 @@
2696
2841
  }
2697
2842
  }
2698
2843
  }
2699
- }
2844
+ },
2845
+ "tags": ["Files"]
2700
2846
  }
2701
2847
  },
2702
2848
  "/v2/project/files/download/{fileId}": {
2703
2849
  "get": {
2704
2850
  "operationId": "downloadFile",
2705
- "tags": ["Files"],
2851
+ "summary": "Download a single file",
2852
+ "deprecated": true,
2853
+ "description": "Download a single source or translated file. This deprecated endpoint is retained for backward compatibility; new integrations should use `POST /v2/project/files/download`.",
2706
2854
  "security": [
2707
2855
  {
2708
2856
  "BearerAuth": []
@@ -2757,6 +2905,16 @@
2757
2905
  "description": "API contract version. Defaults to the oldest supported version.",
2758
2906
  "name": "gt-api-version",
2759
2907
  "in": "header"
2908
+ },
2909
+ {
2910
+ "schema": {
2911
+ "type": "string",
2912
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key)."
2913
+ },
2914
+ "required": false,
2915
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key).",
2916
+ "name": "gt-project-id",
2917
+ "in": "header"
2760
2918
  }
2761
2919
  ],
2762
2920
  "responses": {
@@ -2886,13 +3044,15 @@
2886
3044
  }
2887
3045
  }
2888
3046
  }
2889
- }
3047
+ },
3048
+ "tags": ["Files"]
2890
3049
  }
2891
3050
  },
2892
3051
  "/v2/project/files/download": {
2893
3052
  "post": {
2894
3053
  "operationId": "downloadFiles",
2895
- "tags": ["Files"],
3054
+ "summary": "Download multiple files",
3055
+ "description": "Download up to 100 source or translated files in one request.",
2896
3056
  "security": [
2897
3057
  {
2898
3058
  "BearerAuth": []
@@ -2914,6 +3074,16 @@
2914
3074
  "description": "API contract version. Defaults to the oldest supported version.",
2915
3075
  "name": "gt-api-version",
2916
3076
  "in": "header"
3077
+ },
3078
+ {
3079
+ "schema": {
3080
+ "type": "string",
3081
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key)."
3082
+ },
3083
+ "required": false,
3084
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key).",
3085
+ "name": "gt-project-id",
3086
+ "in": "header"
2917
3087
  }
2918
3088
  ],
2919
3089
  "requestBody": {
@@ -3131,13 +3301,15 @@
3131
3301
  }
3132
3302
  }
3133
3303
  }
3134
- }
3304
+ },
3305
+ "tags": ["Files"]
3135
3306
  }
3136
3307
  },
3137
3308
  "/v2/project/branches/info": {
3138
3309
  "post": {
3139
3310
  "operationId": "getBranchInfo",
3140
- "tags": ["Branches"],
3311
+ "summary": "Get branch information",
3312
+ "description": "Return the Project's default branch and any branches requested by name.",
3141
3313
  "security": [
3142
3314
  {
3143
3315
  "BearerAuth": []
@@ -3159,6 +3331,16 @@
3159
3331
  "description": "API contract version. Defaults to the oldest supported version.",
3160
3332
  "name": "gt-api-version",
3161
3333
  "in": "header"
3334
+ },
3335
+ {
3336
+ "schema": {
3337
+ "type": "string",
3338
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key)."
3339
+ },
3340
+ "required": false,
3341
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key).",
3342
+ "name": "gt-project-id",
3343
+ "in": "header"
3162
3344
  }
3163
3345
  ],
3164
3346
  "requestBody": {
@@ -3300,13 +3482,15 @@
3300
3482
  }
3301
3483
  }
3302
3484
  }
3303
- }
3485
+ },
3486
+ "tags": ["Project"]
3304
3487
  }
3305
3488
  },
3306
3489
  "/v2/project/branches/create": {
3307
3490
  "post": {
3308
3491
  "operationId": "createBranch",
3309
- "tags": ["Branches"],
3492
+ "summary": "Create a branch",
3493
+ "description": "Create a new branch, or rename and confirm the default branch.",
3310
3494
  "security": [
3311
3495
  {
3312
3496
  "BearerAuth": []
@@ -3328,6 +3512,16 @@
3328
3512
  "description": "API contract version. Defaults to the oldest supported version.",
3329
3513
  "name": "gt-api-version",
3330
3514
  "in": "header"
3515
+ },
3516
+ {
3517
+ "schema": {
3518
+ "type": "string",
3519
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key)."
3520
+ },
3521
+ "required": false,
3522
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key).",
3523
+ "name": "gt-project-id",
3524
+ "in": "header"
3331
3525
  }
3332
3526
  ],
3333
3527
  "requestBody": {
@@ -3473,13 +3667,15 @@
3473
3667
  }
3474
3668
  }
3475
3669
  }
3476
- }
3670
+ },
3671
+ "tags": ["Project"]
3477
3672
  }
3478
3673
  },
3479
3674
  "/v2/project/tags/create": {
3480
3675
  "post": {
3481
3676
  "operationId": "createTag",
3482
- "tags": ["Tags"],
3677
+ "summary": "Create or update a tag",
3678
+ "description": "Create or upsert a tag that points at a set of file versions.",
3483
3679
  "security": [
3484
3680
  {
3485
3681
  "BearerAuth": []
@@ -3501,6 +3697,16 @@
3501
3697
  "description": "API contract version. Defaults to the oldest supported version.",
3502
3698
  "name": "gt-api-version",
3503
3699
  "in": "header"
3700
+ },
3701
+ {
3702
+ "schema": {
3703
+ "type": "string",
3704
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key)."
3705
+ },
3706
+ "required": false,
3707
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key).",
3708
+ "name": "gt-project-id",
3709
+ "in": "header"
3504
3710
  }
3505
3711
  ],
3506
3712
  "requestBody": {
@@ -3680,13 +3886,15 @@
3680
3886
  }
3681
3887
  }
3682
3888
  }
3683
- }
3889
+ },
3890
+ "tags": ["Project"]
3684
3891
  }
3685
3892
  },
3686
3893
  "/v2/project/info/{projectId}": {
3687
3894
  "get": {
3688
3895
  "operationId": "getProjectInfo",
3689
- "tags": ["Projects"],
3896
+ "summary": "Get Project information",
3897
+ "description": "Read the authenticated Project's name, Organization ID, locale settings, and auto-approval setting.",
3690
3898
  "security": [
3691
3899
  {
3692
3900
  "BearerAuth": []
@@ -3717,6 +3925,16 @@
3717
3925
  "description": "API contract version. Defaults to the oldest supported version.",
3718
3926
  "name": "gt-api-version",
3719
3927
  "in": "header"
3928
+ },
3929
+ {
3930
+ "schema": {
3931
+ "type": "string",
3932
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key)."
3933
+ },
3934
+ "required": false,
3935
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key).",
3936
+ "name": "gt-project-id",
3937
+ "in": "header"
3720
3938
  }
3721
3939
  ],
3722
3940
  "responses": {
@@ -3851,11 +4069,13 @@
3851
4069
  }
3852
4070
  }
3853
4071
  }
3854
- }
4072
+ },
4073
+ "tags": ["Project"]
3855
4074
  },
3856
4075
  "post": {
3857
4076
  "operationId": "updateProjectInfo",
3858
- "tags": ["Projects"],
4077
+ "summary": "Update Project information",
4078
+ "description": "Update the Project's default locale or CDN delivery setting.",
3859
4079
  "security": [
3860
4080
  {
3861
4081
  "BearerAuth": []
@@ -3886,6 +4106,16 @@
3886
4106
  "description": "API contract version. Defaults to the oldest supported version.",
3887
4107
  "name": "gt-api-version",
3888
4108
  "in": "header"
4109
+ },
4110
+ {
4111
+ "schema": {
4112
+ "type": "string",
4113
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key)."
4114
+ },
4115
+ "required": false,
4116
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key).",
4117
+ "name": "gt-project-id",
4118
+ "in": "header"
3889
4119
  }
3890
4120
  ],
3891
4121
  "requestBody": {
@@ -4029,13 +4259,15 @@
4029
4259
  }
4030
4260
  }
4031
4261
  }
4032
- }
4262
+ },
4263
+ "tags": ["Project"]
4033
4264
  }
4034
4265
  },
4035
4266
  "/v2/project/jobs/info": {
4036
4267
  "post": {
4037
4268
  "operationId": "getTranslationJobInfo",
4038
- "tags": ["Jobs"],
4269
+ "summary": "Get translation job status",
4270
+ "description": "Return normalized status information for one or more queued translation or context generation jobs.",
4039
4271
  "security": [
4040
4272
  {
4041
4273
  "BearerAuth": []
@@ -4057,6 +4289,16 @@
4057
4289
  "description": "API contract version. Defaults to the oldest supported version.",
4058
4290
  "name": "gt-api-version",
4059
4291
  "in": "header"
4292
+ },
4293
+ {
4294
+ "schema": {
4295
+ "type": "string",
4296
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key)."
4297
+ },
4298
+ "required": false,
4299
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key).",
4300
+ "name": "gt-project-id",
4301
+ "in": "header"
4060
4302
  }
4061
4303
  ],
4062
4304
  "requestBody": {
@@ -4274,13 +4516,15 @@
4274
4516
  }
4275
4517
  }
4276
4518
  }
4277
- }
4519
+ },
4520
+ "tags": ["Translation"]
4278
4521
  }
4279
4522
  },
4280
4523
  "/v2/translate": {
4281
4524
  "post": {
4282
4525
  "operationId": "translate",
4283
- "tags": ["Translation"],
4526
+ "summary": "Translate content at runtime",
4527
+ "description": "Translate one or more strings or structured content entries with caching and memoization. Development API keys are accepted for this endpoint.",
4284
4528
  "security": [
4285
4529
  {
4286
4530
  "BearerAuth": []
@@ -4302,6 +4546,16 @@
4302
4546
  "description": "API contract version. Defaults to the oldest supported version.",
4303
4547
  "name": "gt-api-version",
4304
4548
  "in": "header"
4549
+ },
4550
+ {
4551
+ "schema": {
4552
+ "type": "string",
4553
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key)."
4554
+ },
4555
+ "required": false,
4556
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key).",
4557
+ "name": "gt-project-id",
4558
+ "in": "header"
4305
4559
  }
4306
4560
  ],
4307
4561
  "requestBody": {
@@ -4455,13 +4709,15 @@
4455
4709
  }
4456
4710
  }
4457
4711
  }
4458
- }
4712
+ },
4713
+ "tags": ["Translation"]
4459
4714
  }
4460
4715
  },
4461
4716
  "/v2/project/files/info": {
4462
4717
  "post": {
4463
4718
  "operationId": "getFileInfo",
4464
- "tags": ["Files"],
4719
+ "summary": "Get file metadata",
4720
+ "description": "Get detailed metadata for specific source and translated files.",
4465
4721
  "security": [
4466
4722
  {
4467
4723
  "BearerAuth": []
@@ -4483,6 +4739,16 @@
4483
4739
  "description": "API contract version. Defaults to the oldest supported version.",
4484
4740
  "name": "gt-api-version",
4485
4741
  "in": "header"
4742
+ },
4743
+ {
4744
+ "schema": {
4745
+ "type": "string",
4746
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key)."
4747
+ },
4748
+ "required": false,
4749
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key).",
4750
+ "name": "gt-project-id",
4751
+ "in": "header"
4486
4752
  }
4487
4753
  ],
4488
4754
  "requestBody": {
@@ -4766,13 +5032,15 @@
4766
5032
  }
4767
5033
  }
4768
5034
  }
4769
- }
5035
+ },
5036
+ "tags": ["Files"]
4770
5037
  }
4771
5038
  },
4772
5039
  "/v2/project/translations/files/status/{fileId}": {
4773
5040
  "get": {
4774
5041
  "operationId": "getTranslationStatus",
4775
- "tags": ["Files"],
5042
+ "summary": "Get translation status for a file",
5043
+ "description": "Return translation progress and availability by locale for one source file, along with its source metadata.",
4776
5044
  "security": [
4777
5045
  {
4778
5046
  "BearerAuth": []
@@ -4819,6 +5087,16 @@
4819
5087
  "description": "API contract version. Defaults to the oldest supported version.",
4820
5088
  "name": "gt-api-version",
4821
5089
  "in": "header"
5090
+ },
5091
+ {
5092
+ "schema": {
5093
+ "type": "string",
5094
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key)."
5095
+ },
5096
+ "required": false,
5097
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key).",
5098
+ "name": "gt-project-id",
5099
+ "in": "header"
4822
5100
  }
4823
5101
  ],
4824
5102
  "responses": {
@@ -5020,13 +5298,15 @@
5020
5298
  }
5021
5299
  }
5022
5300
  }
5023
- }
5301
+ },
5302
+ "tags": ["Files"]
5024
5303
  }
5025
5304
  },
5026
5305
  "/v2/project/files/moves": {
5027
5306
  "post": {
5028
5307
  "operationId": "processFileMoves",
5029
- "tags": ["Files"],
5308
+ "summary": "Move or rename files",
5309
+ "description": "Clone source files and their translations under new file IDs.",
5030
5310
  "security": [
5031
5311
  {
5032
5312
  "BearerAuth": []
@@ -5048,6 +5328,16 @@
5048
5328
  "description": "API contract version. Defaults to the oldest supported version.",
5049
5329
  "name": "gt-api-version",
5050
5330
  "in": "header"
5331
+ },
5332
+ {
5333
+ "schema": {
5334
+ "type": "string",
5335
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key)."
5336
+ },
5337
+ "required": false,
5338
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key).",
5339
+ "name": "gt-project-id",
5340
+ "in": "header"
5051
5341
  }
5052
5342
  ],
5053
5343
  "requestBody": {
@@ -5251,13 +5541,15 @@
5251
5541
  }
5252
5542
  }
5253
5543
  }
5254
- }
5544
+ },
5545
+ "tags": ["Files"]
5255
5546
  }
5256
5547
  },
5257
5548
  "/v2/project/files/orphaned": {
5258
5549
  "post": {
5259
5550
  "operationId": "getOrphanedFiles",
5260
- "tags": ["Files"],
5551
+ "summary": "Find orphaned files",
5552
+ "description": "Return files on a branch that are not present in the provided file ID list.",
5261
5553
  "security": [
5262
5554
  {
5263
5555
  "BearerAuth": []
@@ -5279,6 +5571,16 @@
5279
5571
  "description": "API contract version. Defaults to the oldest supported version.",
5280
5572
  "name": "gt-api-version",
5281
5573
  "in": "header"
5574
+ },
5575
+ {
5576
+ "schema": {
5577
+ "type": "string",
5578
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key)."
5579
+ },
5580
+ "required": false,
5581
+ "description": "Target project ID. Required when authenticating with an organization API key; ignored with project-scoped API keys (the project is resolved from the key).",
5582
+ "name": "gt-project-id",
5583
+ "in": "header"
5282
5584
  }
5283
5585
  ],
5284
5586
  "requestBody": {
@@ -5442,12 +5744,16 @@
5442
5744
  }
5443
5745
  }
5444
5746
  }
5445
- }
5747
+ },
5748
+ "tags": ["Files"]
5446
5749
  }
5447
5750
  },
5448
5751
  "/cli/wizard/session": {
5449
5752
  "post": {
5450
5753
  "operationId": "createCliWizardSession",
5754
+ "x-internal": true,
5755
+ "summary": "Create a CLI wizard session",
5756
+ "description": "Create a temporary session for CLI browser authentication.",
5451
5757
  "tags": ["CLI Wizard"],
5452
5758
  "parameters": [
5453
5759
  {
@@ -5554,6 +5860,9 @@
5554
5860
  "/cli/wizard/{sessionId}": {
5555
5861
  "get": {
5556
5862
  "operationId": "getCliWizardSession",
5863
+ "x-internal": true,
5864
+ "summary": "Get a CLI wizard session",
5865
+ "description": "Get credentials for a completed CLI wizard session or its current waiting status.",
5557
5866
  "tags": ["CLI Wizard"],
5558
5867
  "parameters": [
5559
5868
  {
@@ -5682,6 +5991,9 @@
5682
5991
  },
5683
5992
  "delete": {
5684
5993
  "operationId": "deleteCliWizardSession",
5994
+ "x-internal": true,
5995
+ "summary": "Delete a CLI wizard session",
5996
+ "description": "Delete a completed or abandoned CLI wizard session.",
5685
5997
  "tags": ["CLI Wizard"],
5686
5998
  "parameters": [
5687
5999
  {