API changes for third-party developers

With this release, we're introducing API documentation based on OpenAPI. This is available in machine-readable OpenAPI json format, and can be used for automated endpoint discovery.

You can find documents available for the entire RestAPI at: http(s)://<gserver>/docs/<section>, where <gsserver> is the host server and <section> can be:

  • supported - contains all supported endpoints. This is the recommended document for regular use.
  • all - contains all endpoints, including deprecated.
  • V4 - contains only endpoints belonging to version 4.
  • V3 - contains only endpoints belonging to version 3.
  • V2 - contains only endpoints belonging to version 2.
  • V1 - contains only endpoints belonging to version 1. These endpoints are deprecated for project server and management.
You can find specific APIs at the following links:
  • http(s)://<gserver>/docs/projectserver/<section>
  • http(s)://<gserver>/docs/management/<section>
  • http(s)://<gserver>/docs/multiterm/<section>
  • http(s)://<gserver>/docs/authentication/<section>

In the links above:

  • <gserver> is the host server
  • <section> can be all (contains all available endpoints), or supported (contains only non-deprecated endpoints).

Deprecated endpoints

We have marked the following REST API endpoints as deprecated and we plan to remove them in future releases:

HttpMethod Obsolete routes Alternative Reason
GET /api/management/v2/backgroundtasks/{id} /api/management/v2/backgroundtasks-
POST /api/management/v2/organizationcals/{organizationid} /api/management/v2/organizationcals-
PUT /api/management/v2/organizationresources/{id} /api/management/v2/organizationresources-
DELETE /api/management/v2/organizations /api/management/v2/organizations/{id}-
POST /api/management/v2/organizations/{id} /api/management/v2/organizations-
PUT /api/management/v2/organizations/{id} /api/management/v2/organizations-
DELETE /api/management/v2/organizations/{organizationId}/membership /api/management/v2/organizations/{id}-
POST /api/management/v2/organizations/{organizationId}/membership /api/management/v2/organizations-
PUT /api/management/v2/organizations/{organizationId}/membership /api/management/v2/organizations-
POST /api/management/v2/roles/{id} /api/management/v2/roles-
PUT /api/management/v2/roles/{id} /api/management/v2/roles-
DELETE /api/management/v2/roles/{roleId}/membership /api/management/v2/roles/membership-
GET /api/management/v2/roles/{roleId}/membership /api/management/v2/roles/{roleId}/users-
PUT /api/management/v2/roles/{roleId}/membership /api/management/v2/roles/membership-
PUT /api/management/v2/roles/{roleId}/users /api/management/v2/roles/membership-
DELETE /api/management/v2/roles/membership/{id} /api/management/v2/roles/membership-
GET /api/management/v2/roles/membership/{id} /api/management/v2/roles/{roleId}/users-
PUT /api/management/v2/roles/membership/{id} /api/management/v2/roles/membership-
POST /api/management/v2/users/{id} /api/management/v2/users-
PUT /api/management/v2/users/{id} /api/management/v2/users-
DELETE /api/management/v2/users/{name} /api/management/v2/users/{id}-
POST /api/management/v2/users/{name} /api/management/v2/users-
PUT /api/management/v2/users/{name} /api/management/v2/users-
POST /api/management/v3/organizations/{id} /api/management/v3/organizations-
PUT /api/management/v3/organizations/{id} /api/management/v3/organizations-
GET /api/projectserver/v2/dashboard--
GET /api/projectserver/v2/dashboard/projectsPerMonthReporting Service /api/reports/Dashboard/ProjectsPerMonth-
GET /api/projectserver/v2/dashboard/topLanguagePairsReporting Service /api/reports/Dashboard/TopLanguagePairs-
GET /api/projectserver/v2/dashboard/topLanguagePairs/{noOfTopLanguagePairs}Reporting Service /api/reports/Dashboard/TopLanguagePairs-
GET /api/projectserver/v2/dashboard/wordsPerMonthReporting Service /api/reports/Dashboard/WordsPerMonth-
GET /api/projectserver/v2/dashboard/wordsPerOrganizationReporting Service /api/reports/Dashboard/WordsPerOrganization-
GET /api/projectserver/v2/projectPredefinedReportsReporting Service /api/reports/Predefined/Projects-
POST /api/projectserver/v2/projects/{id} /api/projectserver/v2/projects-
DELETE /api/projectserver/v2/projects/{projectId}/changestatus/{status} /api/projectserver/v2/projects/{projectId}/detach[/{deleteProjectTMs}]-
PUT /api/projectserver/v2/projects/{projectId}/detach /api/projectserver/v2/projects/{projectId}/changestatus/{status}-
GET /api/projectserver/v2/tasksReport Reporting Service /api/reports/Predefined/Tasks-
GET /api/projectserver/v2/tmLeverageReport Reporting Service /api/reports/Predefined/TMLeverage-
DELETE /management/api/1.0/Membership /api/management/v2/roles/membership-
PUT /management/api/1.0/Membership /api/management/v2/roles/membership-
DELETE /management/api/1.0/Membership/{id}-Accidental route
PUT /management/api/1.0/Membership/{id}-Accidental route
DELETE /management/api/1.0/Membership/{name}-Accidental route
PUT /management/api/1.0/Membership/{name}-Accidental route
DELETE /management/api/1.0/Organizations /api/management/v2/organizations/{id}-
POST /management/api/1.0/Organizations /api/management/v2/organizations-
GET /management/api/1.0/Organizations /api/management/v2/organizations-
PUT /management/api/1.0/Organizations /api/management/v2/organizations-
DELETE /management/api/1.0/Organizations/{id} /api/management/v2/organizations/{id}-
GET /management/api/1.0/Organizations/{id} /api/management/v2/organizations/{id}-
POST /management/api/1.0/Organizations/{id} -Accidental route
PUT /management/api/1.0/Organizations/{id} -Accidental route
DELETE /management/api/1.0/Organizations/{name}-Accidental route
PUT /management/api/1.0/Organizations/{name}-Accidental route
GET /management/api/1.0/Organizations/{name}-Accidental route
POST /management/api/1.0/Organizations/{name}-Accidental route
GET /management/api/1.0/Permissions /api/management/v2/permissions-
GET /management/api/1.0/Permissions/{id} /api/management/v2/permissions-
GET /management/api/1.0/Permissions/{name} /api/management/v2/permissions-
DELETE /management/api/1.0/Roles /api/management/v2/roles/{id}-
GET /management/api/1.0/Roles /api/management/v2/roles-
POST /management/api/1.0/Roles /api/management/v2/roles-
PUT /management/api/1.0/Roles /api/management/v2/roles-
DELETE /management/api/1.0/Roles/{id} /api/management/v2/roles/{id}-
POST /management/api/1.0/Roles/{id} /api/management/v2/roles-
PUT /management/api/1.0/Roles/{id} /api/management/v2/roles-
GET /management/api/1.0/Roles/{id} /api/management/v2/roles/{id}-
DELETE /management/api/1.0/Roles/{name} /api/management/v2/roles/{id}-
GET /management/api/1.0/Roles/{name} /api/management/v2/roles-
POST /management/api/1.0/Roles/{name} /api/management/v2/roles-
PUT /management/api/1.0/Roles/{name} /api/management/v2/roles-
DELETE /management/api/1.0/roles/{roleId}/membership /api/management/v2/roles/membership-
PUT /management/api/1.0/roles/{roleId}/membership-Accidental route
DELETE /management/api/1.0/roles/membership /api/management/v2/roles/membership-
PUT /management/api/1.0/roles/membership /api/management/v2/roles/membership-
DELETE /management/api/1.0/Users /api/management/v2/users/{id}-
GET /management/api/1.0/Users /api/management/v2/users-
POST /management/api/1.0/Users /api/management/v2/users-
PUT /management/api/1.0/Users /api/management/v2/users-
DELETE /management/api/1.0/Users/{id} /api/management/v2/users/{id} -
GET /management/api/1.0/Users/{id} /api/management/v2/users/{id}-
POST /management/api/1.0/Users/{id} /api/management/v2/users-
PUT /management/api/1.0/Users/{id} /api/management/v2/users-
DELETE /management/api/1.0/Users/{name} /api/management/v2/users/{id}-
GET /management/api/1.0/Users/{name} /api/management/v2/users/{id}-
POST /management/api/1.0/Users/{name} /api/management/v2/users-
PUT /management/api/1.0/Users/{name} /api/management/v2/users-
DELETE /multiterm/api/1.0/termbases/{termbaseId}/concepts-Accidental route
GET /multiterm/api/1.0/termbases/{termbaseId}/concepts-Accidental route
POST /multiterm/api/1.0/termbases/{termbaseId}/concepts/{conceptId}-Accidental route
PUT /multiterm/api/1.0/termbases/{termbaseId}/concepts/{conceptId}-Accidental route
GET /multiterm/api/1.0/termbases/{termbaseId}/multimedia-Accidental route
POST /multiterm/api/1.0/termbases/{termbaseId}/multimedia/{imageId}-Accidental route
POST /projectserver/api/1.0/CreateProject /api/projectserver/v2/projects/{projectId}/create-
GET /projectserver/api/1.0/FileDownload /api/projectserver/v2/projects/{projectId}/download-
GET /projectserver/api/1.0/FileStatus /api/projectserver/v2/projects/{projectId}/files -
GET /projectserver/api/1.0/phases/{projectId} /api/projectserver/v2/phases/{projectId}-
GET /projectserver/api/1.0/Projects /api/projectserver/v2/projects-
POST /projectserver/api/1.0/Projects /api/projectserver/v2/projects-
DELETE /projectserver/api/1.0/projects/{id} /api/projectserver/v2/projects/{id}-
GET /projectserver/api/1.0/projects/{id} /api/projectserver/v2/projects/{id}-
POST /projectserver/api/1.0/projects/{id} /api/projectserver/v2/projects-
DELETE /projectserver/api/1.0/projects/{id}/Delete /api/projectserver/v2/projects/{id}-
GET /projectserver/api/1.0/projects/{id}/Get /api/projectserver/v2/projects/{id}-
GET /projectserver/api/1.0/projects/{id}/GetByResourceGroupPath /api/projectserver/v2/projects/byresourcegroup-
POST /projectserver/api/1.0/projects/{id}/Post /api/projectserver/v2/projects-
POST /projectserver/api/1.0/projects/{projectId}/changeassignment /api/projectserver/v2/projects/{projectId}/changeassignment-
POST /projectserver/api/1.0/projects/{projectId}/changephase /api/projectserver/v2/projects/{projectId}/changephase-
GET /projectserver/api/1.0/projects/{projectId}/download /api/projectserver/v2/projects/{projectId}/download-
GET /projectserver/api/1.0/projects/{projectId}/download/{type} /api/projectserver/v2/projects/{projectId}/download/{type}-
GET /projectserver/api/1.0/projects/{projectId}/filestatus /api/projectserver/v2/projects/{projectId}/files-
GET /projectserver/api/1.0/projects/{projectId}/filestatus/languagefiles /api/projectserver/v2/projects/{projectId}/files-
GET /projectserver/api/1.0/projects/{projectId}/phaseswithassignees/{phaseId} /api/projectserver/v2/projects/{projectId}/phaseswithassignees/{phaseId}-
GET /projectserver/api/1.0/projects/{projectId}/publishingstatus /api/projectserver/v2/projects/{projectId}/publishingstatus-
POST /projectserver/api/1.0/projects/{projectId}/publishpackage /api/projectserver/v2/projects/{projectId}/publishpackage -
GET /projectserver/api/1.0/PublishingStatus /api/projectserver/v2/projects/{projectId}/publishingstatus-
POST /projectserver/api/1.0/PublishPackage /api/projectserver/v2/projects/{projectId}/publishpackage -