TeamCity REST API Reference 2025.11 Help

PermissionRestriction

When issuing access tokens, users can grant them the same permissions they have or restrict them to specific actions within selected projects. PermissionRestriction objects define these project-level permissions for tokens with reduced access (compared to the issuing user). To issue a personal token with limited access via REST API, send a POST request to the /app/rest/users//tokens endpoint and specify the PermissionRestrictions collection in the request body.

Properties

isGlobalScope

Returns false if the permission was granted to an access token for a specific project only. Returns true for global permissions (for example, the change_own_profile permission) and project-specific permissions that were assigned globally (for example, the authorize_agent permission is granted on the Root project level).

project

The project where a client authorized with this token can perform the actions allowed by permission. Returns null if the isGlobalScope is true (that is, if the granted permission applies to all projects on a TeamCity server).

permission

The permission that defines a set of actions available to a client who accesses TeamCity via this access token.

Schema

Below, you can find a full schema of this object, in XML and JSON formats. You can choose what fields to submit depending on your current needs. Different methods might expect different fields: the best approach is to request this entity via GET and use the response as a base for the following POST request.

A link to another object implies that you can substitute it with the schema of the linked object, if it is required for your call.

<permissionRestriction isGlobalScope="true"> <project archived="false" description="This subproject contains configurations that carry out delivery jobs" href="/app/rest/projects/id:BuildCacheNodeJS" id="BuildCacheNodeJS" internalId="project302" locator="string" name="Build Cache — NodeJS" parentProjectId="S3BucketsTest" parentProjectInternalId="project82" parentProjectName="S3 Buckets Test" uuid="37dccab8-ddf9-4f81-a1ad-7815f0e841e1" virtual="false" webUrl="https://localhost:8111/project.html?projectId=BuildAndDeploy"> <links>[[[links...|links.html]]]</links> <parentProject>[[[project...|project.html]]]</parentProject> <readOnlyUI>[[[StateField...|statefield.html]]]</readOnlyUI> <defaultTemplate>[[[buildType...|buildtype.html]]]</defaultTemplate> <buildTypes>[[[buildTypes...|buildtypes.html]]]</buildTypes> <templates>[[[buildTypes...|buildtypes.html]]]</templates> <deploymentDashboards>[[[deploymentDashboards...|deploymentdashboards.html]]]</deploymentDashboards> <parameters>[[[properties...|properties.html]]]</parameters> <vcsRoots>[[[vcs-roots...|vcsroots.html]]]</vcsRoots> <projectFeatures>[[[projectFeatures...|projectfeatures.html]]]</projectFeatures> <projects>[[[projects...|projects.html]]]</projects> <cloudProfiles>[[[cloudProfiles...|cloudprofiles.html]]]</cloudProfiles> <ancestorProjects>[[[projects...|projects.html]]]</ancestorProjects> </project> <permission global="true" id="run_build, view_project, manage_build_problems" name="Configure server data cleanup"/> </permissionRestriction>
{ "project" : { "virtual" : false, "parentProjectName" : "S3 Buckets Test", "vcsRoots" : { "count" : 10, "vcs-root" : [ "[[[vcs-root...|vcsroot.html]]]" ], "prevHref" : "/app/rest/vcs-roots?locator=count:10,start:90", "href" : "/app/rest/vcs-roots?locator=count:10,start:100", "nextHref" : "/app/rest/vcs-roots?locator=count:10,start:110" }, "projects" : { "count" : 39, "project" : [ "[[[project...|project.html]]]" ], "prevHref" : "/app/rest/projects?locator=count:10,start:0", "href" : "/app/rest/projects?locator=count:30,start:10", "nextHref" : "/app/rest/projects?locator=count:30,start:40" }, "defaultTemplate" : { "template" : "[[[buildType...|buildtype.html]]]", "paused" : false, "output-parameters" : "[[[properties...|properties.html]]]", "description" : "Deploys artifacts to the public registry", "project" : "[[[project...|project.html]]]", "investigations" : "[[[investigations...|investigations.html]]]", "templateFlag" : false, "type" : "regular", "uuid" : "8e7eafb8-321b-456e-84db-e73714c8fa3f", "projectInternalId" : "project762", "internalId" : "bt1057", "features" : "[[[features...|features.html]]]", "builds" : "[[[builds...|builds.html]]]", "links" : "[[[links...|links.html]]]", "id" : "Deployments_DeployToGlobal", "href" : "/app/rest/buildTypes/id:Deployments_DeployToGlobal", "compatibleCloudImages" : "[[[cloudImages...|cloudimages.html]]]", "settings" : "[[[properties...|properties.html]]]", "vcsRootInstances" : "[[[vcs-root-instances...|vcsrootinstances.html]]]", "templates" : "[[[buildTypes...|buildtypes.html]]]", "artifact-dependencies" : "[[[artifact-dependencies...|artifactdependencies.html]]]", "compatibleAgents" : "[[[agents...|agents.html]]]", "pauseComment" : "[[[comment...|comment.html]]]", "triggers" : "[[[triggers...|triggers.html]]]", "branches" : "[[[branches...|branches.html]]]", "steps" : "[[[steps...|steps.html]]]", "externalStatusAllowed" : false, "agent-requirements" : "[[[agent-requirements...|agentrequirements.html]]]", "webUrl" : "https://localhost:8111/buildConfiguration/Deployments_DeployToGlobal?mode=builds", "inherited" : false, "snapshot-dependencies" : "[[[snapshot-dependencies...|snapshotdependencies.html]]]", "name" : "Deploy To Global", "vcs-root-entries" : "[[[vcs-root-entries...|vcsrootentries.html]]]", "projectName" : "Deployments", "projectId" : "Deployments", "parameters" : "[[[properties...|properties.html]]]", "locator" : "locator" }, "description" : "This subproject contains configurations that carry out delivery jobs", "uuid" : "37dccab8-ddf9-4f81-a1ad-7815f0e841e1", "parentProjectInternalId" : "project82", "cloudProfiles" : { "count" : 4, "prevHref" : "/app/rest/cloud/profiles?locator=count:50,start:0", "href" : "/app/rest/cloud/profiles", "cloudProfile" : [ "[[[cloudProfile...|cloudprofile.html]]]" ], "nextHref" : "/app/rest/cloud/profiles?locator=count:200,start:250" }, "internalId" : "project302", "archived" : false, "parentProjectId" : "S3BucketsTest", "deploymentDashboards" : { "count" : 7, "deploymentDashboard" : [ "[[[deploymentDashboard...|deploymentdashboard.html]]]" ], "prevHref" : "prevHref", "href" : "href", "nextHref" : "nextHref" }, "links" : { "link" : [ "[[[link...|link.html]]]" ], "count" : 4 }, "id" : "BuildCacheNodeJS", "href" : "/app/rest/projects/id:BuildCacheNodeJS", "parentProject" : { "virtual" : false, "parentProjectName" : "S3 Buckets Test", "vcsRoots" : "[[[vcs-roots...|vcsroots.html]]]", "projects" : "[[[projects...|projects.html]]]", "defaultTemplate" : "[[[buildType...|buildtype.html]]]", "description" : "This subproject contains configurations that carry out delivery jobs", "uuid" : "37dccab8-ddf9-4f81-a1ad-7815f0e841e1", "parentProjectInternalId" : "project82", "cloudProfiles" : "[[[cloudProfiles...|cloudprofiles.html]]]", "internalId" : "project302", "archived" : false, "parentProjectId" : "S3BucketsTest", "deploymentDashboards" : "[[[deploymentDashboards...|deploymentdashboards.html]]]", "links" : "[[[links...|links.html]]]", "id" : "BuildCacheNodeJS", "href" : "/app/rest/projects/id:BuildCacheNodeJS", "parentProject" : "[[[project...|project.html]]]", "templates" : "[[[buildTypes...|buildtypes.html]]]", "readOnlyUI" : "[[[StateField...|statefield.html]]]", "webUrl" : "https://localhost:8111/project.html?projectId=BuildAndDeploy", "buildTypes" : "[[[buildTypes...|buildtypes.html]]]", "name" : "Build Cache — NodeJS", "ancestorProjects" : "[[[projects...|projects.html]]]", "parameters" : "[[[properties...|properties.html]]]", "projectFeatures" : "[[[projectFeatures...|projectfeatures.html]]]", "locator" : "locator" }, "templates" : { "buildType" : [ "[[[buildType...|buildtype.html]]]" ], "count" : 30, "prevHref" : "/app/rest/vcs-roots?locator=count:20,start:0", "href" : "/app/rest/vcs-roots?locator=count:30,start:20", "nextHref" : "/app/rest/vcs-roots?locator=count:30,start:50" }, "readOnlyUI" : { "inherited" : true, "value" : true }, "webUrl" : "https://localhost:8111/project.html?projectId=BuildAndDeploy", "buildTypes" : { "buildType" : [ "[[[buildType...|buildtype.html]]]" ], "count" : 30, "prevHref" : "/app/rest/vcs-roots?locator=count:20,start:0", "href" : "/app/rest/vcs-roots?locator=count:30,start:20", "nextHref" : "/app/rest/vcs-roots?locator=count:30,start:50" }, "name" : "Build Cache — NodeJS", "ancestorProjects" : { "count" : 39, "project" : [ "[[[project...|project.html]]]" ], "prevHref" : "/app/rest/projects?locator=count:10,start:0", "href" : "/app/rest/projects?locator=count:30,start:10", "nextHref" : "/app/rest/projects?locator=count:30,start:40" }, "parameters" : { "count" : 1, "property" : [ { "inherited" : true, "name" : "name", "type" : "[[[type...|type.html]]]", "value" : "value" } ], "href" : "href" }, "projectFeatures" : { "projectFeature" : [ "[[[projectFeature...|projectfeature.html]]]" ], "count" : 9, "href" : "href" }, "locator" : "locator" }, "permission" : { "name" : "Configure server data cleanup", "global" : true, "id" : "run_build, view_project, manage_build_problems" }, "isGlobalScope" : true }
Last modified: 02 December 2025