AppVeyor REST API

Base URL: /api, Version: 1.0.0, AppVeyor REST API Documentation

AppVeyor is a hosted continuous integration service which runs on Microsoft Windows. The AppVeyor REST API provides a RESTful way to interact with the AppVeyor service. This includes managing projects, builds, deployments, and the teams that build them.

Additional help and discussion of the AppVeyor REST API is available at http://help.appveyor.com/discussions

This Swagger definition is an unofficial description of the AppVeyor REST API maintained at https://github.com/kevinoid/appveyor-swagger Please report any issues or suggestions for this Swagger definition at https://github.com/kevinoid/appveyor-swagger/issues/new

API Conventions

Fields which are missing from update operations (PUT requests) are typically reset to their default values. So although most fields are not technically required, they should usually be specified in practice.

Default request content-types: application/json
Default response content-types: application/json, application/xml
Schemes: https

Summary

Tag: Collaborator

https://www.appveyor.com/docs/api/team/

Operation Description
GET /collaborators

Get collaborators

POST /collaborators

Add collaborator

PUT /collaborators

Update collaborator

GET /collaborators/{userId}

Get collaborator

DELETE /collaborators/{userId}

Delete collaborator

Tag: Role

https://www.appveyor.com/docs/api/team/

Operation Description
GET /roles

Get roles

POST /roles

Add role

PUT /roles

Update role

GET /roles/{roleId}

Get role

DELETE /roles/{roleId}

Delete role

Tag: User

https://www.appveyor.com/docs/api/team/

Operation Description
GET /users

Get users

POST /users

Add user

PUT /users

Update user

GET /users/{userId}

Get user

DELETE /users/{userId}

Delete user

Tag: Build

https://www.appveyor.com/docs/api/projects-builds/

Operation Description
POST /builds

Start build of branch most recent commit

PUT /builds

Re-run build

DELETE /builds/{accountName}/{projectSlug}/{buildVersion}

Cancel build

GET /buildjobs/{jobId}/artifacts

Get build artifacts

GET /buildjobs/{jobId}/artifacts/{artifactFileName}

Download build artifact

GET /buildjobs/{jobId}/log

Download build log

Tag: Project

https://www.appveyor.com/docs/api/projects-builds/

Operation Description
POST /account/encrypt

Encrypt a value for use in StoredValue.

GET /projects

Get projects

POST /projects

Add project

PUT /projects

Update project

GET /projects/{accountName}/{projectSlug}

Get project last build

DELETE /projects/{accountName}/{projectSlug}

Delete project

GET /projects/{accountName}/{projectSlug}/branch/{buildBranch}

Get project last branch build

GET /projects/{accountName}/{projectSlug}/build/{buildVersion}

Get project build by version

GET /projects/{accountName}/{projectSlug}/history

Get project history

GET /projects/{accountName}/{projectSlug}/artifacts/{artifactFileName}

Get last successful build artifact

GET /projects/{accountName}/{projectSlug}/deployments

Get project deployments

GET /projects/{accountName}/{projectSlug}/settings

Get project settings

GET /projects/{accountName}/{projectSlug}/settings/yaml

Get project settings in YAML

PUT /projects/{accountName}/{projectSlug}/settings/yaml

Update project settings in YAML

PUT /projects/{accountName}/{projectSlug}/settings/build-number

Update project build number

GET /projects/{accountName}/{projectSlug}/settings/environment-variables

Get project environment variables

PUT /projects/{accountName}/{projectSlug}/settings/environment-variables

Update project environment variables

DELETE /projects/{accountName}/{projectSlug}/buildcache

Delete project build cache

GET /projects/status/{statusBadgeId}

Get project status badge image

GET /projects/status/{statusBadgeId}/branch/{buildBranch}

Get project branch status badge image

GET /projects/status/{badgeRepoProvider}/{repoAccountName}/{repoSlug}

Get status badge image for a project with a public repository

Tag: Deployment

https://www.appveyor.com/docs/api/environments-deployments/

Operation Description
GET /deployments/{deploymentId}

Get deployment

POST /deployments

Start deployment

DELETE /deployments/stop

Cancel deployment

Tag: Environment

https://www.appveyor.com/docs/api/environments-deployments/

Operation Description
GET /environments

Get environments

POST /environments

Add environment

PUT /environments

Update environment

GET /environments/{deploymentEnvironmentId}/settings

Get environment settings

GET /environments/{deploymentEnvironmentId}/deployments

Get environment deployments

DELETE /environments/{deploymentEnvironmentId}

Delete environment

Security

apiToken

Type: apiKey
Name:

Authorization

In:

header

Description:

API token can be acquired from https://ci.appveyor.com/api-token This value must be passed to the server in the Authorization header as "Bearer <token>". Since bearer token authentication support is not explicitly supported in OpenAPI 2.0, client code will vary. Clients created with swagger-codegen should set apiKeyPrefix to "Bearer" and set apiKey to the token. Other clients may need to set apiKey to the string "Bearer <token>". Note that this should be fixed in OpenAPI 3.0), whenever that becomes available and supported.

User-Level API Keys

To use a user-level API key (prefixed with "v2."), basePath must be changed to /api/account/{accountName} where {accountName} is the name of the account for which requests will be made.

Paths

Encrypt a value for use in StoredValue.

POST /account/encrypt

Tags: Project

Uses default content-types: application/json

text/plain

200 OK

Success

Example for text/plain
wsnoY4v1v1Uofj0xf8E6FA==
default #/responses/Error

Error

Get build artifacts

GET /buildjobs/{jobId}/artifacts

Tags: Build
https://www.appveyor.com/docs/api/samples/download-artifacts-advanced-ps/
jobId

Build ID (jobId property of BuildJob)

path string #/parameters/jobId

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
[
{
"fileName": "README.md",
"name": "README.md",
"size": 3600,
"type": "File"
},
{
"fileName": "out/example.Release.x64.zip",
"name": "out\\example.zip",
"size": 15600,
"type": "Zip"
}
]
default #/responses/Error

Error

Download build artifact

GET /buildjobs/{jobId}/artifacts/{artifactFileName}

Tags: Build
https://www.appveyor.com/docs/api/samples/download-artifacts-advanced-ps/
jobId

Build ID (jobId property of BuildJob)

path string #/parameters/jobId
artifactFileName

File name (or path) of a build artifact file. Corresponds to the fileName property of ArtifactModel. URL-encoding of slashes in parameter values is optional.

path string (at least 1 chars) #/parameters/artifactFileName

application/octet-stream

200 OK

Success

default #/responses/Error

Error

Download build log

GET /buildjobs/{jobId}/log

Tags: Build
https://www.appveyor.com/docs/api/projects-builds/#download-build-log
jobId

Build ID (jobId property of BuildJob)

path string #/parameters/jobId

application/octet-stream

200 OK

Success

default #/responses/Error

Error

Start build of branch most recent commit

POST /builds

Tags: Build
https://www.appveyor.com/docs/api/projects-builds/#start-build-of-branch-most-recent-commit

Uses default content-types: application/json

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
{
"authorName": "Feodor Fitsner",
"authorUsername": "FeodorFitsner",
"branch": "master",
"buildId": 136709,
"buildNumber": 7,
"commitId": "c2892a70d60c96c1b65a7c665ab806b7731fea8a",
"committed": "2014-08-15T22:05:54+00:00",
"committerName": "Feodor Fitsner",
"committerUsername": "FeodorFitsner",
"created": "2014-08-16T00:40:38.1703914+00:00",
"jobs": [
]
,
"message": "replaced with command [skip ci]",
"messages": [
]
,
"status": "queued",
"version": "1.0.7"
}
default #/responses/Error

Error

Re-run build

PUT /builds

Tags: Build

If reRunIncomplete is true and all jobs in the referenced build completed successfully, a 500 Internal Server Error is returned with the message "No failed or cancelled jobs in build with ID {buildId}".

https://www.appveyor.com/docs/api/projects-builds/#re-run-build

Uses default content-types: application/json

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
{
"authorName": "Feodor Fitsner",
"authorUsername": "FeodorFitsner",
"branch": "master",
"buildId": 136709,
"buildNumber": 7,
"commitId": "c2892a70d60c96c1b65a7c665ab806b7731fea8a",
"committed": "2014-08-15T22:05:54+00:00",
"committerName": "Feodor Fitsner",
"committerUsername": "FeodorFitsner",
"created": "2014-08-16T00:40:38.1703914+00:00",
"jobs": [
]
,
"message": "replaced with command [skip ci]",
"messages": [
]
,
"status": "queued",
"version": "1.0.7"
}
default #/responses/Error

Error

Cancel build

DELETE /builds/{accountName}/{projectSlug}/{buildVersion}

Tags: Build
https://www.appveyor.com/docs/api/projects-builds/#cancel-build
accountName

AppVeyor account name (accountName property of UserAccount)

path string (at least 1 chars) #/parameters/accountName
projectSlug

Project Slug

path string #/parameters/projectSlug
buildVersion

Build Version (version property of Build)

path string #/parameters/buildVersion

Uses default content-types: application/json application/xml

204 No Content

Success

default #/responses/Error

Error

Get collaborators

GET /collaborators

Tags: Collaborator
https://www.appveyor.com/docs/api/team/#get-collaborators

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
[
{
"accountId": 2,
"accountName": "FeodorFitsner",
"created": "2014-02-03T20:29:26.6807307+00:00",
"email": "john@smith.com",
"failedBuildNotification": "all",
"fullName": "John Smith",
"isCollaborator": true,
"isOwner": false,
"notifyWhenBuildStatusChangedOnly": true,
"roleId": 3040,
"roleName": "My Role",
"successfulBuildNotification": "all",
"updated": "2014-03-07T04:26:09.1051534+00:00",
"userId": 2018
}
]
default #/responses/Error

Error

Add collaborator

POST /collaborators

Tags: Collaborator
Update collaborator

PUT /collaborators

Tags: Collaborator
Delete collaborator

DELETE /collaborators/{userId}

Tags: Collaborator
https://www.appveyor.com/docs/api/team/#delete-collaborator
userId

User ID

path integer , { x ∈ ℤ | x ≥ 0 } #/parameters/userId

Uses default content-types: application/json application/xml

204 No Content

Success

default #/responses/Error

Error

Get collaborator

GET /collaborators/{userId}

Tags: Collaborator
https://www.appveyor.com/docs/api/team/#get-collaborator
userId

User ID

path integer , { x ∈ ℤ | x ≥ 0 } #/parameters/userId

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
{
"roles": [
{
"created": "2013-09-26T19:23:39.3615105+00:00",
"isSystem": true,
"name": "Administrator",
"roleId": 4
},
{
"created": "2013-09-26T19:23:39.3645117+00:00",
"isSystem": true,
"name": "User",
"roleId": 5
},
{
"created": "2014-03-18T20:12:08.4749886+00:00",
"isSystem": false,
"name": "My Role",
"roleId": 3040,
"updated": "2014-03-18T20:16:06.8803375+00:00"
}
]
,
"user": {
"accountId": 2,
"accountName": "FeodorFitsner",
"created": "2014-02-03T20:29:26.6807307+00:00",
"email": "john@smith.com",
"failedBuildNotification": "all",
"fullName": "John Smith",
"isCollaborator": true,
"isOwner": false,
"notifyWhenBuildStatusChangedOnly": true,
"roleId": 3040,
"roleName": "My Role",
"successfulBuildNotification": "all",
"updated": "2014-03-07T04:26:09.1051534+00:00",
"userId": 2018
}
}
default #/responses/Error

Error

Start deployment

POST /deployments

Tags: Deployment
https://www.appveyor.com/docs/api/environments-deployments/#start-deployment

Uses default content-types: application/json

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
{
"build": {
"authorName": "Feodor Fitsner",
"authorUsername": "FeodorFitsner",
"branch": "master",
"buildId": 132746,
"buildNumber": 38,
"commitId": "c397ba5d17dd17b994375405f560e4922207da1e",
"committed": "2014-08-12T22:56:00+00:00",
"committerName": "Feodor Fitsner",
"committerUsername": "FeodorFitsner",
"created": "2014-08-12T22:56:09.9208493+00:00",
"finished": "2014-08-12T22:58:05.7595508+00:00",
"jobs": [
]
,
"message": "Removed Start-Website",
"messages": [
]
,
"started": "2014-08-12T22:56:25.8575967+00:00",
"status": "success",
"updated": "2014-08-12T22:58:05.7595508+00:00",
"version": "1.0.38"
}
,
"created": "2014-08-12T23:06:07.9009315+00:00",
"deploymentId": 19475,
"environment": {
"created": "2014-04-01T17:56:41.30982+00:00",
"deploymentEnvironmentId": 27,
"name": "agent test",
"provider": "Agent",
"updated": "2014-08-12T22:35:51.9723883+00:00"
}
,
"finished": "2014-08-12T23:06:25.0502019+00:00",
"jobs": [
{
"created": "2014-08-12T23:06:07.9009315+00:00",
"finished": "2014-08-12T23:06:24.3361102+00:00",
"jobId": "jnpbcc77s4w278e4",
"messagesCount": 0,
"name": "Deployment",
"started": "2014-08-12T23:06:10.8776088+00:00",
"status": "success",
"updated": "2014-08-12T23:06:24.9390847+00:00"
}
]
,
"started": "2014-08-12T23:06:10.8776088+00:00",
"status": "success",
"updated": "2014-08-12T23:06:25.0502019+00:00"
}
default #/responses/Error

Error

Cancel deployment

DELETE /deployments/stop

Tags: Deployment
Get deployment

GET /deployments/{deploymentId}

Tags: Deployment
https://www.appveyor.com/docs/api/environments-deployments/#get-deployment
deploymentId

Deployment ID (deploymentId property of Deployment)

path integer , { x ∈ ℤ | x ≥ 0 } #/parameters/deploymentId

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
{
"deployment": {
"build": {
"authorName": "Feodor Fitsner",
"authorUsername": "FeodorFitsner",
"branch": "master",
"buildId": 132746,
"buildNumber": 38,
"commitId": "c397ba5d17dd17b994375405f560e4922207da1e",
"committed": "2014-08-12T22:56:00+00:00",
"committerName": "Feodor Fitsner",
"committerUsername": "FeodorFitsner",
"created": "2014-08-12T22:56:09.9208493+00:00",
"finished": "2014-08-12T22:58:05.7595508+00:00",
"jobs": [
]
,
"message": "Removed Start-Website",
"messages": [
]
,
"started": "2014-08-12T22:56:25.8575967+00:00",
"status": "success",
"updated": "2014-08-12T22:58:05.7595508+00:00",
"version": "1.0.38"
}
,
"created": "2014-08-12T23:06:07.9009315+00:00",
"deploymentId": 19475,
"environment": {
"created": "2014-04-01T17:56:41.30982+00:00",
"deploymentEnvironmentId": 27,
"name": "agent test",
"provider": "Agent",
"updated": "2014-08-12T22:35:51.9723883+00:00"
}
,
"finished": "2014-08-12T23:06:25.0502019+00:00",
"jobs": [
{
"created": "2014-08-12T23:06:07.9009315+00:00",
"finished": "2014-08-12T23:06:24.3361102+00:00",
"jobId": "jnpbcc77s4w278e4",
"messagesCount": 0,
"name": "Deployment",
"started": "2014-08-12T23:06:10.8776088+00:00",
"status": "success",
"updated": "2014-08-12T23:06:24.9390847+00:00"
}
]
,
"started": "2014-08-12T23:06:10.8776088+00:00",
"status": "success",
"updated": "2014-08-12T23:06:25.0502019+00:00"
}
,
"project": {
"accountId": 2,
"accountName": "appvyr",
"builds": [
]
,
"created": "2014-05-08T18:38:57.9163293+00:00",
"isPrivate": false,
"name": "simple-web",
"projectId": 22321,
"repositoryName": "AppVeyor/simple-web",
"repositoryScm": "git",
"repositoryType": "gitHub",
"securityDescriptor": {
}
,
"skipBranchesWithoutAppveyorYml": false,
"slug": "simple-web",
"updated": "2014-07-14T10:16:26.9351867+00:00"
}
}
default #/responses/Error

Error

Get environments

GET /environments

Tags: Environment
https://www.appveyor.com/docs/api/environments-deployments/#get-environments

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
[
{
"deploymentEnvironmentId": 14,
"name": "azure-blob-1",
"provider": "AzureBlob"
},
{
"deploymentEnvironmentId": 12,
"name": "azure-deploy-test",
"provider": "AzureCS"
}
]
default #/responses/Error

Error

Add environment

POST /environments

Tags: Environment
https://www.appveyor.com/docs/api/environments-deployments/#add-environment

Uses default content-types: application/json

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
{
"created": "2014-08-15T23:57:16.1585268+00:00",
"deploymentEnvironmentId": 3018,
"environmentAccessKey": "gi3ttevuk7a123",
"name": "production",
"provider": "FTP",
"settings": {
"environmentVariables": [
{
"name": "my-var",
"value": {
"isEncrypted": false,
"value": "123"
}
}
]
,
"providerSettings": [
{
"name": "server",
"value": {
"isEncrypted": false,
"value": "ftp.myserver.com"
}
},
{
"name": "username",
"value": {
"isEncrypted": false,
"value": "ftp-user"
}
},
{
"name": "password",
"value": {
"isEncrypted": true,
"value": "password"
}
}
]
}
}
default #/responses/Error

Error

Update environment

PUT /environments

Tags: Environment
https://www.appveyor.com/docs/api/environments-deployments/#update-environment

Uses default content-types: application/json

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
{
"created": "2014-08-15T23:57:16.1585268+00:00",
"deploymentEnvironmentId": 3018,
"environmentAccessKey": "gi3ttevuk7123",
"name": "production",
"provider": "FTP",
"settings": {
"environmentVariables": [
{
"name": "my-var",
"value": {
"isEncrypted": false,
"value": "123"
}
}
]
,
"providerSettings": [
{
"name": "server",
"value": {
"isEncrypted": false,
"value": "ftp.myserver.com"
}
},
{
"name": "username",
"value": {
"isEncrypted": false,
"value": "ftp-user"
}
},
{
"name": "password",
"value": {
"isEncrypted": true,
"value": "password"
}
}
]
}
,
"updated": "2014-08-16T00:00:37.6079863+00:00"
}
default #/responses/Error

Error

Delete environment

DELETE /environments/{deploymentEnvironmentId}

Tags: Environment
https://www.appveyor.com/docs/api/environments-deployments/#delete-environment
deploymentEnvironmentId

Deployment Environment ID (deploymentEnvironmentId property of DeploymentEnvironment)

path integer , { x ∈ ℤ | x ≥ 0 } #/parameters/deploymentEnvironmentId

Uses default content-types: application/json application/xml

204 No Content

Success

default #/responses/Error

Error

Get environment deployments

GET /environments/{deploymentEnvironmentId}/deployments

Tags: Environment
https://www.appveyor.com/docs/api/environments-deployments/#get-environment-deployments
deploymentEnvironmentId

Deployment Environment ID (deploymentEnvironmentId property of DeploymentEnvironment)

path integer , { x ∈ ℤ | x ≥ 0 } #/parameters/deploymentEnvironmentId

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
{
"deployments": [
{
"deployment": {
"build": {
"authorName": "Feodor Fitsner",
"authorUsername": "FeodorFitsner",
"branch": "master",
"buildId": 18665,
"buildNumber": 25,
"commitId": "ed40bd27f732d162b2185d75921b1cd57191f83b",
"committed": "2014-05-08T19:11:38+00:00",
"committerName": "Feodor Fitsner",
"committerUsername": "FeodorFitsner",
"created": "2014-05-22T20:09:53.759355+00:00",
"finished": "2014-05-22T20:12:33.7806881+00:00",
"jobs": [
]
,
"message": "Merge pull request #3 from FeodorFitsner/master",
"messageExtended": "Changes to AccountController",
"messages": [
]
,
"started": "2014-05-22T20:12:11.4475134+00:00",
"status": "success",
"updated": "2014-05-22T20:12:33.7806881+00:00",
"version": "1.0.25"
}
,
"created": "2014-06-02T18:20:07.2833871+00:00",
"deploymentId": 4120,
"environment": {
"created": "2014-01-23T18:13:52.2268502+00:00",
"deploymentEnvironmentId": 14,
"name": "azure-blob-1",
"provider": "AzureBlob",
"updated": "2014-06-02T18:13:32.5106126+00:00"
}
,
"finished": "2014-06-02T18:20:25.11916+00:00",
"jobs": [
{
"created": "2014-07-27T09:59:57.0171035+00:00",
"finished": "2014-07-27T10:00:11.5995296+00:00",
"jobId": "1696fh3a2w5ng99y",
"messagesCount": 0,
"name": "Deployment",
"started": "2014-07-27T09:59:58.3955159+00:00",
"status": "success",
"updated": "2014-07-27T10:00:16.163082+00:00"
}
]
,
"started": "2014-06-02T18:20:07.9871288+00:00",
"status": "success",
"updated": "2014-06-02T18:20:25.11916+00:00"
}
,
"project": {
"accountId": 2,
"accountName": "FeodorFitsner",
"builds": [
]
,
"created": "2014-05-06T16:38:14.7788393+00:00",
"isPrivate": false,
"name": "simple-web",
"projectId": 15072,
"repositoryName": "AppVeyor/simple-web",
"repositoryScm": "git",
"repositoryType": "gitHub",
"securityDescriptor": {
}
,
"skipBranchesWithoutAppveyorYml": false,
"slug": "simple-web",
"updated": "2014-06-02T21:37:30.9378043+00:00"
}
}
]
,
"environment": {
"created": "2014-01-23T18:13:52.2268502+00:00",
"deploymentEnvironmentId": 14,
"name": "azure-blob-1",
"provider": "AzureBlob",
"updated": "2014-06-02T18:13:32.5106126+00:00"
}
}
default #/responses/Error

Error

Get environment settings

GET /environments/{deploymentEnvironmentId}/settings

Tags: Environment
https://www.appveyor.com/docs/api/environments-deployments/#get-environment-settings
deploymentEnvironmentId

Deployment Environment ID (deploymentEnvironmentId property of DeploymentEnvironment)

path integer , { x ∈ ℤ | x ≥ 0 } #/parameters/deploymentEnvironmentId

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
{
"environment": {
"created": "2014-01-23T18:13:52.2268502+00:00",
"deploymentEnvironmentId": 14,
"environmentAccessKey": "aaabbb12345",
"name": "azure-blob-1",
"provider": "AzureBlob",
"settings": {
"environmentVariables": [
]
,
"providerSettings": [
{
"name": "storage_account_name",
"value": {
"isEncrypted": false,
"value": "myaccount"
}
},
{
"name": "storage_access_key",
"value": {
"isEncrypted": true,
"value": "4sc1c7/Qp5buQcZ8N486Ks46mLFbXJVqcJjyv98w=="
}
},
{
"name": "container",
"value": {
"isEncrypted": false,
"value": "test"
}
},
{
"name": "folder",
"value": {
"isEncrypted": false,
"value": "$(appveyor_build_version)"
}
},
{
"name": "artifact",
"value": {
"isEncrypted": false
}
}
]
}
,
"updated": "2014-06-02T18:13:32.5106126+00:00"
}
}
default #/responses/Error

Error

Get projects

GET /projects

Tags: Project
https://www.appveyor.com/docs/api/projects-builds/#get-projects

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
[
{
"accountId": 2,
"accountName": "FeodorFitsner",
"builds": [
{
"authorName": "Feodor Fitsner",
"authorUsername": "FeodorFitsner",
"branch": "master",
"buildId": 23864,
"buildNumber": 3,
"commitId": "c2892a70d60c96c1b65a7c665ab806b7731fea8a",
"committed": "2014-08-15T22:05:54+00:00",
"committerName": "Feodor Fitsner",
"committerUsername": "FeodorFitsner",
"created": "2014-08-15T22:33:15.9833328+00:00",
"finished": "2014-08-15T22:37:00.6171479+00:00",
"jobs": [
]
,
"message": "replaced with command [skip ci]",
"messages": [
]
,
"started": "2014-08-15T22:36:38.1757886+00:00",
"status": "success",
"updated": "2014-08-15T22:37:00.6171479+00:00",
"version": "1.0.3"
}
]
,
"created": "2014-08-15T22:04:19.2868375+00:00",
"isPrivate": false,
"name": "appveyor-artifact-test",
"nuGetFeed": {
"created": "2014-08-15T22:04:21.3111546+00:00",
"id": "appveyor-artifact-test-j8kk0o",
"name": "Project appveyor-artifact-test",
"publishingEnabled": false
}
,
"projectId": 19096,
"repositoryBranch": "master",
"repositoryName": "FeodorFitsner/appveyor-artifact-test",
"repositoryScm": "git",
"repositoryType": "gitHub",
"skipBranchesWithoutAppveyorYml": false,
"slug": "appveyor-artifact-test"
}
]
default #/responses/Error

Error

Add project

POST /projects

Tags: Project
https://www.appveyor.com/docs/api/projects-builds/#add-project

Uses default content-types: application/json

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
{
"accountId": 2,
"accountName": "appvyr",
"builds": [
]
,
"created": "2014-08-16T00:52:15.6604826+00:00",
"isPrivate": false,
"name": "demo-app",
"projectId": 43682,
"repositoryName": "FeodorFitsner/demo-app",
"repositoryScm": "git",
"repositoryType": "gitHub",
"skipBranchesWithoutAppveyorYml": false,
"slug": "demo-app-335"
}
default #/responses/Error

Error

Update project

PUT /projects

Tags: Project
Get status badge image for a project with a public repository

GET /projects/status/{badgeRepoProvider}/{repoAccountName}/{repoSlug}

Tags: Project
https://www.appveyor.com/docs/status-badges/
branch

Repository Branch

query string (at least 1 chars) #/parameters/branch
svg

Return an SVG image instead of PNG? Exclusive with retina.

query boolean #/parameters/svg
retina

Return a larger image suitable for retina displays? Exclusive with svg.

query boolean #/parameters/retina
passingText

Text to show in badge when build is passing.

query string (at least 1 chars) #/parameters/passingText
failingText

Text to show in badge when build is failing.

query string (at least 1 chars) #/parameters/failingText
pendingText

Text to show in badge when build is pending.

query string (at least 1 chars) #/parameters/pendingText
badgeRepoProvider

Repository provider supported for badges

path string , x ∈ { bitBucket , gitHub } #/parameters/badgeRepoProvider
repoAccountName

Account name with repository provider

path string (at least 1 chars) #/parameters/repoAccountName
repoSlug

Slug (URL component) of repository.

path string (at least 1 chars) #/parameters/repoSlug

image/svg+xml image/png

200 OK

Success

default #/responses/Error

Error

Get project status badge image

GET /projects/status/{statusBadgeId}

Tags: Project
https://www.appveyor.com/docs/status-badges/
svg

Return an SVG image instead of PNG? Exclusive with retina.

query boolean #/parameters/svg
retina

Return a larger image suitable for retina displays? Exclusive with svg.

query boolean #/parameters/retina
passingText

Text to show in badge when build is passing.

query string (at least 1 chars) #/parameters/passingText
failingText

Text to show in badge when build is failing.

query string (at least 1 chars) #/parameters/failingText
pendingText

Text to show in badge when build is pending.

query string (at least 1 chars) #/parameters/pendingText
statusBadgeId

ID of the status badge (statusBadgeId from ProjectWithConfiguration).

path string (at least 1 chars) #/parameters/statusBadgeId

image/svg+xml image/png

200 OK

Success

default #/responses/Error

Error

Get project branch status badge image

GET /projects/status/{statusBadgeId}/branch/{buildBranch}

Tags: Project
https://www.appveyor.com/docs/status-badges/
svg

Return an SVG image instead of PNG? Exclusive with retina.

query boolean #/parameters/svg
retina

Return a larger image suitable for retina displays? Exclusive with svg.

query boolean #/parameters/retina
passingText

Text to show in badge when build is passing.

query string (at least 1 chars) #/parameters/passingText
failingText

Text to show in badge when build is failing.

query string (at least 1 chars) #/parameters/failingText
pendingText

Text to show in badge when build is pending.

query string (at least 1 chars) #/parameters/pendingText
statusBadgeId

ID of the status badge (statusBadgeId from ProjectWithConfiguration).

path string (at least 1 chars) #/parameters/statusBadgeId
buildBranch

Build Branch

path string #/parameters/buildBranch

image/svg+xml image/png

200 OK

Success

default #/responses/Error

Error

Delete project

DELETE /projects/{accountName}/{projectSlug}

Tags: Project
https://www.appveyor.com/docs/api/projects-builds/#delete-project
accountName

AppVeyor account name (accountName property of UserAccount)

path string (at least 1 chars) #/parameters/accountName
projectSlug

Project Slug

path string #/parameters/projectSlug

Uses default content-types: application/json application/xml

204 No Content

Success

default #/responses/Error

Error

Get project last build

GET /projects/{accountName}/{projectSlug}

Tags: Project
https://www.appveyor.com/docs/api/projects-builds/#get-project-last-build
accountName

AppVeyor account name (accountName property of UserAccount)

path string (at least 1 chars) #/parameters/accountName
projectSlug

Project Slug

path string #/parameters/projectSlug

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
{
"build": {
"authorName": "Feodor Fitsner",
"authorUsername": "FeodorFitsner",
"branch": "master",
"buildId": 134173,
"buildNumber": 45,
"commitId": "85da1fb810ae89744abad83e75c13483dd740258",
"committed": "2014-07-03T07:56:15+00:00",
"committerName": "Feodor Fitsner",
"committerUsername": "FeodorFitsner",
"created": "2014-08-14T05:39:26.2946368+00:00",
"finished": "2014-08-14T05:42:45.5709599+00:00",
"jobs": [
{
"allowFailure": false,
"artifactsCount": 0,
"compilationErrorsCount": 0,
"compilationMessagesCount": 0,
"compilationWarningsCount": 0,
"created": "2014-08-14T05:39:27.3902557+00:00",
"failedTestsCount": 0,
"finished": "2014-08-14T05:42:45.1102797+00:00",
"jobId": "9r2qufuu8",
"messagesCount": 0,
"name": "",
"passedTestsCount": 0,
"started": "2014-08-14T05:41:49.1061831+00:00",
"status": "success",
"testsCount": 0,
"updated": "2014-08-14T05:42:45.477213+00:00"
}
]
,
"message": "AssemblyInfo patching",
"messages": [
]
,
"started": "2014-08-14T05:41:49.1686804+00:00",
"status": "success",
"updated": "2014-08-14T05:42:45.5709599+00:00",
"version": "1.0.45"
}
,
"project": {
"accountId": 2,
"accountName": "appvyr",
"builds": [
]
,
"created": "2014-07-19T10:23:03.8005134+00:00",
"isPrivate": false,
"name": "nuget-test",
"nuGetFeed": {
"created": "2014-07-19T10:23:05.5160273+00:00",
"id": "nuget-test-23spw2w",
"name": "Project nuget-test",
"publishingEnabled": false
}
,
"projectId": 38907,
"repositoryBranch": "master",
"repositoryName": "FeodorFitsner/nuget-test",
"repositoryScm": "git",
"repositoryType": "gitHub",
"securityDescriptor": {
}
,
"skipBranchesWithoutAppveyorYml": false,
"slug": "nuget-test",
"updated": "2014-08-01T05:25:15.4119745+00:00"
}
}
default #/responses/Error

Error

Get last successful build artifact

GET /projects/{accountName}/{projectSlug}/artifacts/{artifactFileName}

Tags: Project

The job parameter is mandatory if the build contains multiple jobs.

https://www.appveyor.com/docs/packaging-artifacts/#permalink-to-the-last-successful-build-artifact
accountName

AppVeyor account name (accountName property of UserAccount)

path string (at least 1 chars) #/parameters/accountName
projectSlug

Project Slug

path string #/parameters/projectSlug
artifactFileName

File name (or path) of a build artifact file. Corresponds to the fileName property of ArtifactModel. URL-encoding of slashes in parameter values is optional.

path string (at least 1 chars) #/parameters/artifactFileName
branch

Repository Branch

query string (at least 1 chars) #/parameters/branch
tag

A git (or other VCS) tag

query string (at least 1 chars) #/parameters/tag
job

Name of the build job.

query string #/parameters/job
all

Include not only successful, but also jobs with failed, and cancelled status.

query boolean #/parameters/all
pr

Include PR builds in the search results? true - take artifact from PR builds only; false - do not look for artifact in PR builds; default/unspecified - look for artifact in both PR an non-PR builds.

query boolean #/parameters/pr

application/octet-stream

200 OK

Success

default #/responses/Error

Error

Get project last branch build

GET /projects/{accountName}/{projectSlug}/branch/{buildBranch}

Tags: Project
https://www.appveyor.com/docs/api/projects-builds/#get-project-last-branch-build
accountName

AppVeyor account name (accountName property of UserAccount)

path string (at least 1 chars) #/parameters/accountName
projectSlug

Project Slug

path string #/parameters/projectSlug
buildBranch

Build Branch

path string #/parameters/buildBranch

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
{
"build": {
"authorName": "Feodor Fitsner",
"authorUsername": "FeodorFitsner",
"branch": "master",
"buildId": 134173,
"buildNumber": 45,
"commitId": "85da1fb810ae89744abad83e75c13483dd740258",
"committed": "2014-07-03T07:56:15+00:00",
"committerName": "Feodor Fitsner",
"committerUsername": "FeodorFitsner",
"created": "2014-08-14T05:39:26.2946368+00:00",
"finished": "2014-08-14T05:42:45.5709599+00:00",
"jobs": [
{
"allowFailure": false,
"artifactsCount": 0,
"compilationErrorsCount": 0,
"compilationMessagesCount": 0,
"compilationWarningsCount": 0,
"created": "2014-08-14T05:39:27.3902557+00:00",
"failedTestsCount": 0,
"finished": "2014-08-14T05:42:45.1102797+00:00",
"jobId": "9r2qufuu8",
"messagesCount": 0,
"name": "",
"passedTestsCount": 0,
"started": "2014-08-14T05:41:49.1061831+00:00",
"status": "success",
"testsCount": 0,
"updated": "2014-08-14T05:42:45.477213+00:00"
}
]
,
"message": "AssemblyInfo patching",
"messages": [
]
,
"started": "2014-08-14T05:41:49.1686804+00:00",
"status": "success",
"updated": "2014-08-14T05:42:45.5709599+00:00",
"version": "1.0.45"
}
,
"project": {
"accountId": 2,
"accountName": "appvyr",
"builds": [
]
,
"created": "2014-07-19T10:23:03.8005134+00:00",
"isPrivate": false,
"name": "nuget-test",
"nuGetFeed": {
"created": "2014-07-19T10:23:05.5160273+00:00",
"id": "nuget-test-23spw2w",
"name": "Project nuget-test",
"publishingEnabled": false
}
,
"projectId": 38907,
"repositoryBranch": "master",
"repositoryName": "FeodorFitsner/nuget-test",
"repositoryScm": "git",
"repositoryType": "gitHub",
"securityDescriptor": {
}
,
"skipBranchesWithoutAppveyorYml": false,
"slug": "nuget-test",
"updated": "2014-08-01T05:25:15.4119745+00:00"
}
}
default #/responses/Error

Error

Get project build by version

GET /projects/{accountName}/{projectSlug}/build/{buildVersion}

Tags: Project
https://www.appveyor.com/docs/api/projects-builds/#get-project-build-by-version
accountName

AppVeyor account name (accountName property of UserAccount)

path string (at least 1 chars) #/parameters/accountName
projectSlug

Project Slug

path string #/parameters/projectSlug
buildVersion

Build Version (version property of Build)

path string #/parameters/buildVersion

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
{
"build": {
"authorName": "Feodor Fitsner",
"authorUsername": "FeodorFitsner",
"branch": "master",
"buildId": 134173,
"buildNumber": 45,
"commitId": "85da1fb810ae89744abad83e75c13483dd740258",
"committed": "2014-07-03T07:56:15+00:00",
"committerName": "Feodor Fitsner",
"committerUsername": "FeodorFitsner",
"created": "2014-08-14T05:39:26.2946368+00:00",
"finished": "2014-08-14T05:42:45.5709599+00:00",
"jobs": [
{
"allowFailure": false,
"artifactsCount": 0,
"compilationErrorsCount": 0,
"compilationMessagesCount": 0,
"compilationWarningsCount": 0,
"created": "2014-08-14T05:39:27.3902557+00:00",
"failedTestsCount": 0,
"finished": "2014-08-14T05:42:45.1102797+00:00",
"jobId": "9r2qufuu8",
"messagesCount": 0,
"name": "",
"passedTestsCount": 0,
"started": "2014-08-14T05:41:49.1061831+00:00",
"status": "success",
"testsCount": 0,
"updated": "2014-08-14T05:42:45.477213+00:00"
}
]
,
"message": "AssemblyInfo patching",
"messages": [
]
,
"started": "2014-08-14T05:41:49.1686804+00:00",
"status": "success",
"updated": "2014-08-14T05:42:45.5709599+00:00",
"version": "1.0.45"
}
,
"project": {
"accountId": 2,
"accountName": "appvyr",
"builds": [
]
,
"created": "2014-07-19T10:23:03.8005134+00:00",
"isPrivate": false,
"name": "nuget-test",
"nuGetFeed": {
"created": "2014-07-19T10:23:05.5160273+00:00",
"id": "nuget-test-23spw2w",
"name": "Project nuget-test",
"publishingEnabled": false
}
,
"projectId": 38907,
"repositoryBranch": "master",
"repositoryName": "FeodorFitsner/nuget-test",
"repositoryScm": "git",
"repositoryType": "gitHub",
"securityDescriptor": {
}
,
"skipBranchesWithoutAppveyorYml": false,
"slug": "nuget-test",
"updated": "2014-08-01T05:25:15.4119745+00:00"
}
}
default #/responses/Error

Error

Delete project build cache

DELETE /projects/{accountName}/{projectSlug}/buildcache

Tags: Project
https://www.appveyor.com/docs/api/projects-builds/#delete-project-build-cache
accountName

AppVeyor account name (accountName property of UserAccount)

path string (at least 1 chars) #/parameters/accountName
projectSlug

Project Slug

path string #/parameters/projectSlug

Uses default content-types: application/json application/xml

204 No Content

Success

default #/responses/Error

Error

Get project deployments

GET /projects/{accountName}/{projectSlug}/deployments

Tags: Project
https://www.appveyor.com/docs/api/projects-builds/#get-project-deployments
accountName

AppVeyor account name (accountName property of UserAccount)

path string (at least 1 chars) #/parameters/accountName
projectSlug

Project Slug

path string #/parameters/projectSlug
recordsNumber

Number of results to include in the response. getProjectDeployments is documented to have a maximum of 20. It currently returns 500 Internal Server Error for recordsNumber <= 5. In the past it has returned 500 Internal Server Error for many different values which did not match the value used by the ci.appveyor.com web interface at the time. As of 2018-09-08, the value used by the web interface is 10.

query integer , { x ∈ ℤ | x ≥ 0 } #/parameters/recordsNumber

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
{
"deployments": [
{
"deployment": {
"build": {
"authorName": "Feodor Fitsner",
"authorUsername": "FeodorFitsner",
"branch": "master",
"buildId": 132746,
"buildNumber": 38,
"commitId": "c397ba5d17dd17b994375405f560e4922207da1e",
"committed": "2014-08-12T22:56:00+00:00",
"committerName": "Feodor Fitsner",
"committerUsername": "FeodorFitsner",
"created": "2014-08-12T22:56:09.9208493+00:00",
"finished": "2014-08-12T22:58:05.7595508+00:00",
"jobs": [
]
,
"message": "Removed Start-Website",
"messages": [
]
,
"started": "2014-08-12T22:56:25.8575967+00:00",
"status": "success",
"updated": "2014-08-12T22:58:05.7595508+00:00",
"version": "1.0.38"
}
,
"created": "2014-08-12T23:06:07.9009315+00:00",
"deploymentId": 19475,
"environment": {
"created": "2014-04-01T17:56:41.30982+00:00",
"deploymentEnvironmentId": 27,
"name": "agent test",
"provider": "Agent",
"updated": "2014-08-12T22:35:51.9723883+00:00"
}
,
"finished": "2014-08-12T23:06:25.0502019+00:00",
"jobs": [
{
"created": "2014-08-12T23:06:07.9009315+00:00",
"finished": "2014-08-12T23:06:24.3361102+00:00",
"jobId": "jnpbcc77s4w278e4",
"messagesCount": 0,
"name": "Deployment",
"started": "2014-08-12T23:06:10.8776088+00:00",
"status": "success",
"updated": "2014-08-12T23:06:24.9390847+00:00"
},
{
"created": "2014-08-12T23:06:14.8148958+00:00",
"finished": "2014-08-12T23:06:21.9647266+00:00",
"jobId": "nbgyf7pn65d4agyr",
"messagesCount": 0,
"name": "TEST-AGENT-DEPL",
"started": "2014-08-12T23:06:14.8148958+00:00",
"status": "success",
"updated": "2014-08-12T23:06:22.3768791+00:00"
}
]
,
"started": "2014-08-12T23:06:10.8776088+00:00",
"status": "success",
"updated": "2014-08-12T23:06:25.0502019+00:00"
}
,
"environment": {
"created": "2014-04-01T17:56:41.30982+00:00",
"deploymentEnvironmentId": 27,
"name": "agent test",
"provider": "Agent",
"updated": "2014-08-12T22:35:51.9723883+00:00"
}
}
]
,
"project": {
"accountId": 2,
"accountName": "appvyr",
"builds": [
]
,
"created": "2014-05-08T18:38:57.9163293+00:00",
"isPrivate": false,
"name": "simple-web",
"projectId": 22321,
"repositoryName": "AppVeyor/simple-web",
"repositoryScm": "git",
"repositoryType": "gitHub",
"securityDescriptor": {
}
,
"skipBranchesWithoutAppveyorYml": false,
"slug": "simple-web",
"updated": "2014-07-14T10:16:26.9351867+00:00"
}
}
default #/responses/Error

Error

Get project history

GET /projects/{accountName}/{projectSlug}/history

Tags: Project
https://www.appveyor.com/docs/api/projects-builds/#get-project-history
recordsNumber

Number of results to include in the response. getProjectDeployments is documented to have a maximum of 20. It currently returns 500 Internal Server Error for recordsNumber <= 5. In the past it has returned 500 Internal Server Error for many different values which did not match the value used by the ci.appveyor.com web interface at the time. As of 2018-09-08, the value used by the web interface is 10.

query integer , { x ∈ ℤ | x ≥ 0 } #/parameters/recordsNumber
startBuildId

Maximum buildId to include in the results (exclusive).

query integer , { x ∈ ℤ | x ≥ 0 } #/parameters/startBuildId
branch

Repository Branch

query string (at least 1 chars) #/parameters/branch
accountName

AppVeyor account name (accountName property of UserAccount)

path string (at least 1 chars) #/parameters/accountName
projectSlug

Project Slug

path string #/parameters/projectSlug

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
{
"builds": [
{
"authorName": "Feodor Fitsner",
"authorUsername": "FeodorFitsner",
"branch": "master",
"buildId": 134174,
"buildNumber": 5,
"commitId": "d19740243e3ec5497345de0f7d828e66a7cd1a6b",
"committed": "2014-08-10T14:08:16+00:00",
"committerName": "Feodor Fitsner",
"committerUsername": "FeodorFitsner",
"created": "2014-08-14T05:39:30.8845902+00:00",
"finished": "2014-08-14T05:43:47.4732355+00:00",
"jobs": [
]
,
"message": "Enabled diag mode",
"messages": [
]
,
"started": "2014-08-14T05:42:17.2696755+00:00",
"status": "success",
"updated": "2014-08-14T05:43:47.4732355+00:00",
"version": "1.0.5"
},
{
"authorName": "Feodor Fitsner",
"authorUsername": "FeodorFitsner",
"branch": "master",
"buildId": 129289,
"buildNumber": 3,
"commitId": "28c6eec932c0e21eca5bb5571a722f850aa8bf6f",
"committed": "2014-08-09T00:33:34+00:00",
"committerName": "Feodor Fitsner",
"committerUsername": "FeodorFitsner",
"created": "2014-08-09T15:42:38.8315273+00:00",
"finished": "2014-08-09T15:44:15.5828009+00:00",
"jobs": [
]
,
"message": "Added appveyor.yml",
"messages": [
]
,
"started": "2014-08-09T15:42:45.7878479+00:00",
"status": "success",
"updated": "2014-08-09T15:44:15.5828009+00:00",
"version": "1.0.3"
}
]
,
"project": {
"accountId": 2,
"accountName": "appvyr",
"builds": [
]
,
"created": "2014-08-09T00:30:43.3327131+00:00",
"isPrivate": false,
"name": "wix-test",
"projectId": 42438,
"repositoryName": "FeodorFitsner/wix-test",
"repositoryScm": "git",
"repositoryType": "gitHub",
"skipBranchesWithoutAppveyorYml": false,
"slug": "wix-test"
}
}
default #/responses/Error

Error

Get project settings

GET /projects/{accountName}/{projectSlug}/settings

Tags: Project
https://www.appveyor.com/docs/api/projects-builds/#get-project-settings
accountName

AppVeyor account name (accountName property of UserAccount)

path string (at least 1 chars) #/parameters/accountName
projectSlug

Project Slug

path string #/parameters/projectSlug

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
{
"images": [
{
"name": "test-win2012-r2"
},
{
"name": "Windows Server 2012"
},
{
"name": "Windows Server 2012 R2"
}
]
,
"project": {
"accountId": 2,
"accountName": "appvyr",
"builds": [
]
,
"created": "2014-05-08T18:38:57.9163293+00:00",
"isPrivate": false,
"name": "simple-web",
"projectId": 22321,
"repositoryName": "AppVeyor/simple-web",
"repositoryScm": "git",
"repositoryType": "gitHub",
"securityDescriptor": {
"accessRightDefinitions": [
{
"description": "View",
"name": "View"
},
{
"description": "Run build",
"name": "RunBuild"
},
{
"description": "Update settings",
"name": "Update"
},
{
"description": "Delete project",
"name": "Delete"
}
]
,
"roleAces": [
{
"accessRights": [
{
"allowed": true,
"name": "View"
},
{
"allowed": true,
"name": "RunBuild"
},
{
"allowed": true,
"name": "Update"
},
{
"allowed": true,
"name": "Delete"
}
]
,
"isAdmin": true,
"name": "Administrator",
"roleId": 4
},
{
"accessRights": [
{
"name": "View"
},
{
"name": "RunBuild"
},
{
"name": "Update"
},
{
"name": "Delete"
}
]
,
"isAdmin": false,
"name": "User",
"roleId": 5
}
]
}
,
"skipBranchesWithoutAppveyorYml": false,
"slug": "simple-web",
"updated": "2014-07-14T10:16:26.9351867+00:00"
}
,
"settings": {
"accountId": 2,
"accountName": "appvyr",
"builds": [
]
,
"configuration": {
"afterBuildScripts": [
]
,
"afterDeployScripts": [
]
,
"afterTestScripts": [
]
,
"artifacts": [
]
,
"assemblyFileVersionFormat": "{version}",
"assemblyInfoFile": "**\\AssemblyInfo.*",
"assemblyInformationalVersionFormat": "{version}",
"assemblyVersionFormat": "{version}",
"beforeBuildScripts": [
]
,
"beforeDeployScripts": [
]
,
"beforeTestScripts": [
]
,
"buildMode": "msbuild",
"buildScripts": [
]
,
"configuration": [
]
,
"deployMode": "providers",
"deployScripts": [
]
,
"deployments": [
]
,
"environmentVariables": [
]
,
"environmentVariablesMatrix": [
]
,
"excludeBranches": [
]
,
"hostsEntries": [
]
,
"includeBranches": [
]
,
"initScripts": [
]
,
"installScripts": [
]
,
"matrixAllowFailures": [
]
,
"matrixFastFinish": false,
"msBuildVerbosity": "minimal",
"notifications": [
]
,
"onBuildErrorScripts": [
]
,
"onBuildSuccessScripts": [
]
,
"operatingSystem": [
]
,
"packageAzureCloudServiceProjects": false,
"packageNuGetProjects": false,
"packageWebApplicationProjects": false,
"packageWebApplicationProjectsXCopy": false,
"patchAssemblyInfo": false,
"platform": [
]
,
"services": [
]
,
"shallowClone": false,
"testAssemblies": [
]
,
"testCategories": [
]
,
"testCategoriesMatrix": [
]
,
"testMode": "auto",
"testScripts": [
]
}
,
"created": "2014-05-08T18:38:57.9163293+00:00",
"ignoreAppveyorYml": false,
"isPrivate": false,
"name": "simple-web",
"nextBuildNumber": 41,
"nuGetFeed": {
"created": "2014-05-08T18:38:59.2455842+00:00",
"id": "simple-web-0r50wgb1st6q",
"name": "Project simple-web",
"publishingEnabled": false
}
,
"projectId": 22321,
"repositoryBranch": "master",
"repositoryName": "AppVeyor/simple-web",
"repositoryScm": "git",
"repositoryType": "gitHub",
"securityDescriptor": {
"accessRightDefinitions": [
{
"description": "View",
"name": "View"
},
{
"description": "Run build",
"name": "RunBuild"
},
{
"description": "Update settings",
"name": "Update"
},
{
"description": "Delete project",
"name": "Delete"
}
]
,
"roleAces": [
{
"accessRights": [
{
"allowed": true,
"name": "View"
},
{
"allowed": true,
"name": "RunBuild"
},
{
"allowed": true,
"name": "Update"
},
{
"allowed": true,
"name": "Delete"
}
]
,
"isAdmin": true,
"name": "Administrator",
"roleId": 4
},
{
"accessRights": [
{
"name": "View"
},
{
"name": "RunBuild"
},
{
"name": "Update"
},
{
"name": "Delete"
}
]
,
"isAdmin": false,
"name": "User",
"roleId": 5
}
]
}
,
"skipBranchesWithoutAppveyorYml": false,
"slug": "simple-web",
"updated": "2014-07-14T10:16:26.9351867+00:00",
"versionFormat": "1.0.{build}",
"webhookId": "k783di7br",
"webhookUrl": "https://ci.appveyor.com/api/github/webhook?id=k783di7br"
}
}
default #/responses/Error

Error

Update project build number

PUT /projects/{accountName}/{projectSlug}/settings/build-number

Tags: Project
https://www.appveyor.com/docs/api/projects-builds/#update-project-build-number

Uses default content-types: application/json

accountName

AppVeyor account name (accountName property of UserAccount)

path string (at least 1 chars) #/parameters/accountName
projectSlug

Project Slug

path string #/parameters/projectSlug

Uses default content-types: application/json application/xml

204 No Content

Success

default #/responses/Error

Error

Get project environment variables

GET /projects/{accountName}/{projectSlug}/settings/environment-variables

Tags: Project
https://www.appveyor.com/docs/api/projects-builds/#get-project-environment-variables
accountName

AppVeyor account name (accountName property of UserAccount)

path string (at least 1 chars) #/parameters/accountName
projectSlug

Project Slug

path string #/parameters/projectSlug

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
[
{
"name": "api_key",
"value": {
"isEncrypted": true,
"value": "very-secret-key-encrypted"
}
},
{
"name": "var1",
"value": {
"isEncrypted": false,
"value": "current-value"
}
}
]
default #/responses/Error

Error

Update project environment variables

PUT /projects/{accountName}/{projectSlug}/settings/environment-variables

Tags: Project
https://www.appveyor.com/docs/api/projects-builds/#update-project-environment-variables

Uses default content-types: application/json

accountName

AppVeyor account name (accountName property of UserAccount)

path string (at least 1 chars) #/parameters/accountName
projectSlug

Project Slug

path string #/parameters/projectSlug

Uses default content-types: application/json application/xml

204 No Content

Success

default #/responses/Error

Error

Get project settings in YAML

GET /projects/{accountName}/{projectSlug}/settings/yaml

Tags: Project
https://www.appveyor.com/docs/api/projects-builds/#get-project-settings-in-yaml
accountName

AppVeyor account name (accountName property of UserAccount)

path string (at least 1 chars) #/parameters/accountName
projectSlug

Project Slug

path string #/parameters/projectSlug

text/plain

200 OK

Success

The schema type of this response could be specified as file to denote opaque binary data. The generated Java code for file saves the response as a temporary file, making it a little more difficult to use and less efficient for common cases. If string causes problems for other generators, can switch to file type.

Example for text/plain
version: 1.0.{build}
build:
project: MySolution.sln
verbosity: minimal
publish_wap: true
...
default #/responses/Error

Error

Update project settings in YAML

PUT /projects/{accountName}/{projectSlug}/settings/yaml

Tags: Project
https://www.appveyor.com/docs/api/projects-builds/#update-project-settings-in-yaml

text/plain

The body of requests should contain YAML data. It is unclear how to specify this since the OpenAPI spec requires schema without type for in: body parameters and does not allow type: file in schema. See https://github.com/OAI/OpenAPI-Specification/issues/326 swagger-codegen (for Java, probably others) allows a binary string body parameter with non-application/json consumes to be passed through in the request body without conversion to JSON.

accountName

AppVeyor account name (accountName property of UserAccount)

path string (at least 1 chars) #/parameters/accountName
projectSlug

Project Slug

path string #/parameters/projectSlug

Uses default content-types: application/json application/xml

204 No Content

Success

default #/responses/Error

Error

Get roles

GET /roles

Tags: Role
https://www.appveyor.com/docs/api/team/#get-roles

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
[
{
"created": "2013-09-26T19:23:39.3615105+00:00",
"isSystem": true,
"name": "Administrator",
"roleId": 4
},
{
"created": "2013-09-26T19:23:39.3645117+00:00",
"isSystem": true,
"name": "User",
"roleId": 5
}
]
default #/responses/Error

Error

Add role

POST /roles

Tags: Role
Update role

PUT /roles

Tags: Role
Delete role

DELETE /roles/{roleId}

Tags: Role
https://www.appveyor.com/docs/api/team/#delete-role
roleId

Role ID

path integer , { x ∈ ℤ | x ≥ 0 } #/parameters/roleId

Uses default content-types: application/json application/xml

204 No Content

Success

default #/responses/Error

Error

Get role

GET /roles/{roleId}

Tags: Role
https://www.appveyor.com/docs/api/team/#get-role
roleId

Role ID

path integer , { x ∈ ℤ | x ≥ 0 } #/parameters/roleId

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
{
"created": "2014-03-18T20:12:08.4749886+00:00",
"groups": [
{
"name": "Projects",
"permissions": [
{
"allowed": false,
"description": "Create, delete projects, update project settings",
"name": "ManageProjects"
},
{
"allowed": false,
"description": "Update project settings",
"name": "UpdateProjectSettings"
},
{
"allowed": false,
"description": "Run project builds",
"name": "RunProjectBuild"
},
{
"allowed": false,
"description": "Delete project builds",
"name": "DeleteProjectBuilds"
}
]
},
{
"name": "Environments",
"permissions": [
{
"allowed": false,
"description": "Create, delete projects, update environment settings",
"name": "ManageEnvironments"
},
{
"allowed": false,
"description": "Update environment settings",
"name": "UpdateEnvironmentSettings"
},
{
"allowed": false,
"description": "Deploy to environment",
"name": "DeployToEnvironment"
}
]
},
{
"name": "Account",
"permissions": [
{
"allowed": false,
"description": "Update account details",
"name": "UpdateAccountDetails"
}
]
},
{
"name": "Users",
"permissions": [
{
"allowed": false,
"description": "Add new user",
"name": "AddUser"
},
{
"allowed": false,
"description": "Update user details",
"name": "UpdateUserDetails"
},
{
"allowed": false,
"description": "Delete user",
"name": "DeleteUser"
}
]
},
{
"name": "Roles",
"permissions": [
{
"allowed": false,
"description": "Add new role",
"name": "AddRole"
},
{
"allowed": false,
"description": "Update role details",
"name": "UpdateRoleDetails"
},
{
"allowed": false,
"description": "Delete role",
"name": "DeleteRole"
}
]
},
{
"name": "User",
"permissions": [
{
"allowed": false,
"description": "Generate API keys",
"name": "ConfigureApiKeys"
}
]
}
]
,
"isSystem": false,
"name": "My Role",
"roleId": 3040
}
default #/responses/Error

Error

Get users

GET /users

Tags: User
https://www.appveyor.com/docs/api/team/#get-users

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
[
{
"accountId": 2,
"accountName": "FeodorFitsner",
"created": "2014-02-12T19:21:15.0618564+00:00",
"email": "nuget@appveyor.com",
"failedBuildNotification": "all",
"fullName": "NuGet",
"isCollaborator": false,
"isOwner": false,
"notifyWhenBuildStatusChangedOnly": true,
"roleId": 5,
"roleName": "User",
"successfulBuildNotification": "all",
"updated": "2014-03-06T22:47:44.9706252+00:00",
"userId": 2019
}
]
default #/responses/Error

Error

Add user

POST /users

Tags: User
https://www.appveyor.com/docs/api/team/#add-user

Uses default content-types: application/json

Uses default content-types: application/json application/xml

204 No Content

Success

default #/responses/Error

Error

Update user

PUT /users

Tags: User
Delete user

DELETE /users/{userId}

Tags: User
https://www.appveyor.com/docs/api/team/#delete-user
userId

User ID

path integer , { x ∈ ℤ | x ≥ 0 } #/parameters/userId

Uses default content-types: application/json application/xml

204 No Content

Success

default #/responses/Error

Error

Get user

GET /users/{userId}

Tags: User
https://www.appveyor.com/docs/api/team/#get-user
userId

User ID

path integer , { x ∈ ℤ | x ≥ 0 } #/parameters/userId

Uses default content-types: application/json application/xml

200 OK

Success

Example for application/json
{
"roles": [
{
"created": "2013-09-26T19:23:39.3615105+00:00",
"isSystem": true,
"name": "Administrator",
"roleId": 4
},
{
"created": "2013-09-26T19:23:39.3645117+00:00",
"isSystem": true,
"name": "User",
"roleId": 5
}
]
,
"user": {
"accountId": 2,
"accountName": "FeodorFitsner",
"created": "2014-02-12T19:21:15.0618564+00:00",
"email": "nuget@appveyor.com",
"failedBuildNotification": "all",
"fullName": "NuGet",
"isCollaborator": false,
"isOwner": false,
"notifyWhenBuildStatusChangedOnly": true,
"roleId": 5,
"roleName": "User",
"successfulBuildNotification": "all",
"updated": "2014-03-06T22:47:44.9706252+00:00",
"userId": 2019
}
}
default #/responses/Error

Error

Parameter definitions

roleId roleId

Role ID

path integer , { x ∈ ℤ | x ≥ 0 }
userId userId

User ID

path integer , { x ∈ ℤ | x ≥ 0 }
accountName accountName

AppVeyor account name (accountName property of UserAccount)

path string (at least 1 chars)
all all

Include not only successful, but also jobs with failed, and cancelled status.

query boolean
artifactFileName artifactFileName

File name (or path) of a build artifact file. Corresponds to the fileName property of ArtifactModel. URL-encoding of slashes in parameter values is optional.

path string (at least 1 chars)
badgeRepoProvider badgeRepoProvider

Repository provider supported for badges

path string , x ∈ { bitBucket , gitHub }
branch branch

Repository Branch

query string (at least 1 chars)
buildBranch buildBranch

Build Branch

path string
buildVersion buildVersion

Build Version (version property of Build)

path string
job job

Name of the build job.

query string
jobId jobId

Build ID (jobId property of BuildJob)

path string
pr pr

Include PR builds in the search results? true - take artifact from PR builds only; false - do not look for artifact in PR builds; default/unspecified - look for artifact in both PR an non-PR builds.

query boolean
projectSlug projectSlug

Project Slug

path string
repoAccountName repoAccountName

Account name with repository provider

path string (at least 1 chars)
repoSlug repoSlug

Slug (URL component) of repository.

path string (at least 1 chars)
recordsNumber recordsNumber

Number of results to include in the response. getProjectDeployments is documented to have a maximum of 20. It currently returns 500 Internal Server Error for recordsNumber <= 5. In the past it has returned 500 Internal Server Error for many different values which did not match the value used by the ci.appveyor.com web interface at the time. As of 2018-09-08, the value used by the web interface is 10.

query integer , { x ∈ ℤ | x ≥ 0 }
startBuildId startBuildId

Maximum buildId to include in the results (exclusive).

query integer , { x ∈ ℤ | x ≥ 0 }
statusBadgeId statusBadgeId

ID of the status badge (statusBadgeId from ProjectWithConfiguration).

path string (at least 1 chars)
tag tag

A git (or other VCS) tag

query string (at least 1 chars)
failingText failingText

Text to show in badge when build is failing.

query string (at least 1 chars)
passingText passingText

Text to show in badge when build is passing.

query string (at least 1 chars)
pendingText pendingText

Text to show in badge when build is pending.

query string (at least 1 chars)
retina retina

Return a larger image suitable for retina displays? Exclusive with svg.

query boolean
svg svg

Return an SVG image instead of PNG? Exclusive with retina.

query boolean
deploymentId deploymentId

Deployment ID (deploymentId property of Deployment)

path integer , { x ∈ ℤ | x ≥ 0 }
deploymentEnvironmentId deploymentEnvironmentId

Deployment Environment ID (deploymentEnvironmentId property of DeploymentEnvironment)

path integer , { x ∈ ℤ | x ≥ 0 }

Response definitions

Error

Error

Schema definitions

AccessRightName: string , x ∈ { Delete , Deploy , RunBuild , Update , View }

AceAccessRight: object

name: AccessRightName
allowed: boolean

AceAccessRightDefinition: object

name: AccessRightName
description: string

Artifact: object

path: string

Path glob of artifact files. Note that updateProject does not require path, but omitting path results in post-build error "Collecting artifacts... Value cannot be null. Parameter name: input"

name: string
type: ArtifactType

ArtifactModel: object

fileName: string
name: string
type: ArtifactType
size: integer , { x ∈ ℤ | x ≥ 0 }
created: string (date-time)
url: string

This property has not been observed in JSON responses, but is present and nil in XML responses.

ArtifactType: string , x ∈ { Auto , AzureCloudService , AzureCloudServiceConfig , ElasticBeanstalkPackage , File , NuGetPackage , OctopusPackage , SsdtPackage , WebDeployPackage , Zip }

Possible values from Push-AppveyorArtifact cmdlet -Type parameter.

The web UI only allows selection of Auto, WebDeployPackage, and unspecified (which it sends as the empty string but functions like omitting the property) for updateProject.

Any string can be sent and will be saved/returned, but only these values have a function (as far as I am aware).

Build:

projectId: integer , { x ∈ ℤ | x ≥ 0 }
jobs: object[]

Always empty in getProjectHistory and startDeployment responses.

buildNumber: integer , { x ∈ ℤ | x ≥ 0 }
messageExtended: string
isTag: boolean
commitId: string
authorName: string
authorUsername: string
committerName: string
committerUsername: string
committed: string (date-time)
pullRequestId: integer , { x ∈ ℤ | x ≥ 1 }
pullRequestName: string
messages: object[]
status: Status
started: string (date-time)
finished: string (date-time)

BuildCloudName: string , x ∈ { azure-westus , gce , pro-ubuntu , pro-ubuntu18 , pro-vs2013 , pro-win2016 , pro-vs2017 , ubuntu }

BuildJob:

osType: OSType
allowFailure: boolean
messagesCount: integer , { x ∈ ℤ | x ≥ 0 }
compilationMessagesCount: integer , { x ∈ ℤ | x ≥ 0 }
compilationErrorsCount: integer , { x ∈ ℤ | x ≥ 0 }
compilationWarningsCount: integer , { x ∈ ℤ | x ≥ 0 }
testsCount: integer , { x ∈ ℤ | x ≥ 0 }
passedTestsCount: integer , { x ∈ ℤ | x ≥ 0 }
failedTestsCount: integer , { x ∈ ℤ | x ≥ 0 }
artifactsCount: integer , { x ∈ ℤ | x ≥ 0 }

BuildLookupModel: object

branch: string
buildId: integer , { x ∈ ℤ | x ≥ 0 }
message: string
version: string

BuildMessage: object

category: BuildMessageCategory
message: string
created: string (date-time)

BuildMessageCategory: string , x ∈ { information , warning }

BuildMode: string , x ∈ { msbuild , none , script }

BuildNotificationFrequency: string , x ∈ { all , myCommits , none }

BuildStartRequest: object

{
"accountName": "your-account-name",
"branch": "master",
"environmentVariables": {
"another_var": "another value",
"my_var": "value"
}
,
"projectSlug": "project-slug-from-url"
}
accountName: string (at least 1 chars)
projectSlug: string (at least 1 chars)
branch: string
commitId: string
pullRequestId: integer , { x ∈ ℤ | x ≥ 1 }

Can not be used with branch or commitId

environmentVariables: object
string

BuildWorkerImage: object

buildWorkerImageId: integer , { x ∈ ℤ | x ≥ 0 }
name: BuildWorkerImageName
buildCloudName: BuildCloudName
osType: OSType

BuildWorkerImageName: string , x ∈ { Previous Ubuntu , Previous Ubuntu1604 , Previous Ubuntu1804 , Previous Visual Studio 2013 , Previous Visual Studio 2015 , Previous Visual Studio 2017 , Ubuntu , Ubuntu1604 , Ubuntu1804 , Visual Studio 2013 , Visual Studio 2015 , Visual Studio 2015 2 , Visual Studio 2017 , Visual Studio 2017 Preview , Visual Studio 2019 Preview , WMF 5 , Windows Server 2019 }

Defines the available build worker image templates used to provision a virtual machine for a build. Images are updated regularly. "Previous" selects the previous version of an image, for use as a temporary workaround for regressions. Ubuntu is the same as Ubuntu1604. Previous Ubuntu is the same as Previous Ubuntu1604. See https://www.appveyor.com/docs/build-environment/#build-worker-images for details.

CollaboratorAddition: object

Technically roleId has default value 0 and is not required, but since role 0 never exists it would always cause a 404 response.

{
"email": "john@smith.com",
"roleId": 3040
}
email: string (email)
roleId: integer , { x ∈ ℤ | x ≥ 0 }

CollaboratorUpdate: object

Technically userId and roleId have default value 0 and are not required, but since user 0 and role 0 never exist it would always cause a 404 response.

{
"roleId": 3040,
"userId": 2018
}
userId: integer , { x ∈ ℤ | x ≥ 0 }
roleId: integer , { x ∈ ℤ | x ≥ 0 }

Deployment:

DeploymentCancellation: object

{
"deploymentId": 123
}
deploymentId: integer , { x ∈ ℤ | x ≥ 0 }

DeploymentEnvironment:

accountId: integer
projectsMode: integer , x ∈ { 0 , 1 , 2 }

0 is "Any project can be deployed to the environment" 1 is "Only selected projects can be deployed to the environment" 2 is "All except selected projects can be deployed to the environment"

securityDescriptor: SecurityDescriptor
tags: string

Comma-separated list of environment tags for dynamic grouping. Appears that any input is accepted. The returned value only contains case-preserving but insensitive unique values where spaces around "," are removed but otherwise preserved. Empty values and items are allowed.

DeploymentEnvironmentAddition: object

{
"name": "production",
"provider": "FTP",
"settings": {
"environmentVariables": [
{
"name": "my-var",
"value": {
"isEncrypted": false,
"value": "123"
}
}
]
,
"providerSettings": [
{
"name": "server",
"value": {
"isEncrypted": false,
"value": "ftp.myserver.com"
}
},
{
"name": "username",
"value": {
"isEncrypted": false,
"value": "ftp-user"
}
},
{
"name": "password",
"value": {
"isEncrypted": true,
"value": "password"
}
}
]
}
}
name: string
provider: DeploymentProviderType
settings: DeploymentEnvironmentSettings

DeploymentEnvironmentDeploymentsResults: object

environment: DeploymentEnvironment
deployments: object[]

DeploymentEnvironmentLookupModel: object

deploymentEnvironmentId: integer , { x ∈ ℤ | x ≥ 0 }
name: string
provider: DeploymentProviderType

DeploymentEnvironmentProject: object

projectId: integer , { x ∈ ℤ | x ≥ 0 }
name: string
isSelected: boolean

DeploymentEnvironmentSettings: object

providerSettings: object[]
environmentVariables: object[]
notifications: object[]

DeploymentEnvironmentSettingsResults: object

DeploymentEnvironmentWithSettings:

{
"deploymentEnvironmentId": 3018,
"environmentAccessKey": "gi3ttevuk7123",
"name": "production",
"settings": {
"environmentVariables": [
{
"name": "my-var",
"value": {
"isEncrypted": false,
"value": "123"
}
}
]
,
"provider": "FTP",
"providerSettings": [
{
"name": "server",
"value": {
"isEncrypted": false,
"value": "ftp.myserver.com"
}
},
{
"name": "username",
"value": {
"isEncrypted": false,
"value": "ftp-user"
}
},
{
"name": "password",
"value": {
"isEncrypted": true,
"value": "password"
}
}
]
}
}
environmentAccessKey: string
settings: DeploymentEnvironmentSettings
selectedProjects: integer[]

Project IDs of selected projects

integer , { x ∈ ℤ | x ≥ 1 }
projects: object[]

Projects available for selection in UI. Only present in response from getEnvironmentSettings.

DeploymentJob:

messagesCount: integer , { x ∈ ℤ | x ≥ 0 }

DeploymentLookupModel: object

deploymentId: integer , { x ∈ ℤ | x ≥ 0 }
build: BuildLookupModel
status: Status
started: string (date-time)
finished: string (date-time)

DeploymentNotificationFrequency: string , x ∈ { all , none }

DeploymentProvider: object

provider: DeploymentProviderType
providerSettings: object[]
onBranch: object[]
onEnvironmentVariables: object[]

DeploymentProviderType: string , x ∈ { Agent , AzureBlob , AzureCS , AzureWebJob , BinTray , FTP , GitHub , NuGet , S3 , SqlDatabase , WebDeploy , Webhook }

DeploymentStartRequest: object

{
"accountName": "your-account-name",
"buildJobId": "sfke9239ydzf",
"buildVersion": "1.2.0",
"environmentName": "environment-to-deploy",
"environmentVariables": {
"another_var": "another value",
"server": "myserver.com"
}
,
"projectSlug": "project-slug-from-url"
}
environmentName: string (at least 1 chars)
accountName: string (at least 1 chars)
projectSlug: string (at least 1 chars)
buildVersion: string (at least 1 chars)

Build to deploy

buildJobId: string

Optional job id with artifacts if build contains multiple jobs.

environmentVariables: object
string

DeployMode: string , x ∈ { providers , none , script }

EncryptRequest: object

{
"plainValue": "encryptme"
}
plainValue: string

EnvironmentDeploymentModel:

Error: object

Schema of object returned in 4XX and 5XX responses. Note: The name is unfortunate, since it conflicts with java.lang.Error and other generic error classes. It is the name used in XML responses, so it is used for consistency and possible future XML deserialization support.

message: string
modelState: object

When present, this property is a map of property names in the format request.<capitalized name> to an Array of validation error message strings for the property.

string[]
string

GroupName: string , x ∈ { Account , BuildEnvironment , Deny , Environments , Projects , Roles , User , Users }

GroupPermissions: object

name: GroupName
permissions: object[]

HostEntry: object

host: string (at least 1 chars)
ip: string (at least 1 chars)

HttpMethodRestricted: string , x ∈ { GET , POST }

Job:

jobId: string
name: string
status: Status
started: string (date-time)
finished: string (date-time)

MSBuildVerbosity: string , x ∈ { quiet , minimal , normal , detailed }

NotificationProviderSettings: object

NotificationProviderType: string , x ∈ { Campfire , Email , GitHubPullRequest , HipChat , Slack , Webhook , VSOTeamRoom }

NotificationSettings: object

This type is the union of the settings types for each of the various notification types supported by the API. The properties correspond to the following notification types:

All Types

  • onBuildSuccess
  • onBuildFailure
  • onBuildStatusChanged

Campfire

  • account
  • authToken
  • room
  • template

Email

  • subjectTemplate
  • bodyTemplate
  • recipients
  • recipientsValue

GitHubPullRequest

  • authToken
  • template

HipChat

  • authToken
  • from
  • room
  • template
  • serverUrl

Slack

  • incomingWebhookUrl
  • authToken
  • channel
  • template

Webhook

  • method
  • url
  • headers
  • headersValue
  • addCustomRequestBody
  • customRequestBodyContentType
  • customRequestBody

VSOTeamRoom

  • vsoAccount
  • username
  • password
  • room
  • template
$type: NotificationSettingsType
onBuildSuccess: boolean
onBuildFailure: boolean
onBuildStatusChanged: boolean
account: string
authToken: StoredValue
room: string
template: string
subjectTemplate: string
bodyTemplate: string
recipients: object[]
recipientsValue: string
from: string
serverUrl: string (uri)
incomingWebhookUrl: string (uri)
channel: string
method: HttpMethodRestricted
url: string (uri)
headers: object[]
headersValue: string
addCustomRequestBody: boolean
customRequestBodyContentType: string
customRequestBody: string
vsoAccount: string
username: string
password: StoredValue

NotificationSettingsType: string , x ∈ { Appveyor.Models.CampfireNotificationSettings, Appveyor.Models , Appveyor.Models.EmailNotificationSettings, Appveyor.Models , Appveyor.Models.GitHubPullRequestNotificationSettings, Appveyor.Models , Appveyor.Models.HipChatNotificationSettings, Appveyor.Models , Appveyor.Models.SlackNotificationSettings, Appveyor.Models , Appveyor.Models.WebhookNotificationSettings, Appveyor.Models , Appveyor.Models.VSOTeamRoomNotificationSettings, Appveyor.Models }

NuGetFeed:

nuGetFeedId: integer
id: string
name: string
accountId: integer , { x ∈ ℤ | x ≥ 0 }
projectId: integer , { x ∈ ℤ | x ≥ 0 }
isPrivateProject: boolean
publishingEnabled: boolean

OSServiceName: string , x ∈ { iis , mongodb , msmq , mssql2008r2sp2 , mssql2008r2sp2rs , mssql2012sp1 , mssql2012sp1rs , mssql2014 , mssql2014rs , mssql2016 , mysql , postgresql }

OSType: string , x ∈ { Ubuntu , Windows }

PermissionName: string , x ∈ { ManageApplicationAuthorizations , UpdateAccountDetails , UpdateBillingDetails , ConfigureBuildEnvironment , DenyAllProjectsEnvironments , DeployToEnvironment , ManageEnvironments , UpdateEnvironmentSettings , ManageProjects , RunProjectBuild , UpdateProjectSettings , AddRole , DeleteRole , UpdateRoleDetails , ConfigureApiKeys , AddUser , DeleteUser , UpdateUserDetails }

Available permission names. The names correspond to the following groups:

AccountPermission

  • ManageApplicationAuthorizations
  • UpdateAccountDetails
  • UpdateBillingDetails

    BuildEnvironmentPermission

  • ConfigureBuildEnvironment

    DenyPermission

  • DenyAllProjectsEnvironments

    EnvironmentsPermission

  • DeployToEnvironment
  • ManageEnvironments
  • UpdateEnvironmentSettings

    ProjectsPermission

  • ManageProjects
  • RunProjectBuild
  • UpdateProjectSettings

    RolesPermission

  • AddRole
  • DeleteRole
  • UpdateRoleDetails

    UserPermission

  • ConfigureApiKeys

    UsersPermission

  • AddUser
  • DeleteUser
  • UpdateUserDetails

PermissionState: object

name: PermissionName
description: string
allowed: boolean

State of the named permission. true to allow, false to deny, missing to inherit.

PlatformName: string , x ∈ { ARM , Any CPU , x64 , x86 }

Project:

accountId: integer , { x ∈ ℤ | x ≥ 0 }
builds: object[]

Only non-empty for response from getProjects.

currentBuildId: integer , { x ∈ ℤ | x ≥ 0 }
repositoryType: RepositoryProvider
repositoryScm: RepositoryScm
repositoryName: string
repositoryBranch: string

Not present in response from addProject.

isPrivate: boolean
isGitHubApp: boolean
skipBranchesWithoutAppveyorYml: boolean
enableSecureVariablesInPullRequests: boolean
enableSecureVariablesInPullRequestsFromSameRepo: boolean
enableDeploymentInPullRequests: boolean
saveBuildCacheInPullRequests: boolean
rollingBuilds: boolean
rollingBuildsDoNotCancelRunningBuilds: boolean
rollingBuildsOnlyForPullRequests: boolean
alwaysBuildClosedPullRequests: boolean
tags: string

Comma-separated list of project tags for dynamic grouping. Appears that any input is accepted. The returned value only contains case-preserving but insensitive unique values where spaces around "," are removed but otherwise preserved. Empty values and items are allowed.

nuGetFeed: NuGetFeed

Not present in response from addProject.

securityDescriptor: SecurityDescriptor

Not present in response from addProject. Not always present in response from getProjects (only after updateProject or startBuild?).

disablePushWebhooks: boolean
disablePullRequestWebhooks: boolean

ProjectAddition: object

repositoryAuthentication is only used for git, mercurial, subversion repositoryProvider.

{
"repositoryName": "FeodorFitsner/demo-app",
"repositoryProvider": "gitHub"
}
repositoryProvider: RepositoryProvider
repositoryName: string (at least 1 chars)

URL when repositoryProvider is git, mercurial, subversion username/project when repositoryProvider is gitHub

repositoryAuthentication: RepositoryAuthenticationType
repositoryUsername: string

Required if repositoryAuthentication is credentials

repositoryPassword: string (password)

Required if repositoryAuthentication is credentials

ProjectBranchesMode: string , x ∈ { exclude , include }

ProjectBuildNumberUpdate: object

{
"nextBuildNumber": 35
}
nextBuildNumber: integer , { x ∈ ℤ | x ≥ 0 }

ProjectBuildResults: object

project: Project
build: Build

ProjectConfiguration: object

doNotIncrementBuildNumberOnPullRequests: boolean
hotFixScripts: object[]
initScripts: object[]
branchesMode: ProjectBranchesMode
includeBranches: object[]
excludeBranches: object[]
skipTags: boolean
skipNonTags: boolean
skipBranchWithPullRequests: boolean
skipCommitsFiles: object[]
onlyCommitsFiles: object[]
cloneScripts: object[]
onBuildSuccessScripts: object[]
onBuildErrorScripts: object[]
onBuildFinishScripts: object[]
patchAssemblyInfo: boolean
assemblyInfoFile: string
assemblyVersionFormat: string
assemblyFileVersionFormat: string
assemblyInformationalVersionFormat: string
patchDotnetCsproj: boolean
dotnetCsprojFile: string
dotnetCsprojVersionFormat: string
dotnetCsprojAssemblyVersionFormat: string
dotnetCsprojFileVersionFormat: string
dotnetCsprojInformationalVersionFormat: string
dotnetCsprojPackageVersionFormat: string
maxJobs: integer , { x ∈ ℤ | x ≥ 1 }
buildCloud: object[]
operatingSystem: object[]
object
services: object[]
object
value: OSServiceName
stacks: object[]
cloneFolder: string
shallowClone: boolean
forceHttpsClone: boolean
cloneDepth: integer , { x ∈ ℤ | x ≥ 1 }
environmentVariables: object[]
environmentVariablesMatrix: object[]
installScripts: object[]
hostsEntries: object[]
cacheEntries: object[]
configureNuGetProjectSource: boolean
configureNuGetAccountSource: boolean
disableNuGetPublishOnPullRequests: boolean
disableNuGetPublishForOctopusPackages: boolean
buildMode: BuildMode
platform: object[]
object
value: PlatformName
configuration: object[]
msBuildProjectFileName: string
packageWebApplicationProjects: boolean
packageWebApplicationProjectsXCopy: boolean
packageWebApplicationProjectsBeanstalk: boolean
packageWebApplicationProjectsOctopus: boolean
packageAzureCloudServiceProjects: boolean
packageNuGetProjects: boolean
packageNuGetSymbols: boolean
packageAspNetCoreProjects: boolean
packageDotnetConsoleProjects: boolean
includeNuGetReferences: boolean
msBuildInParallel: boolean
msBuildVerbosity: MSBuildVerbosity
buildScripts: object[]

Only set/used when buildMode is script.

beforeBuildScripts: object[]
beforePackageScripts: object[]
afterBuildScripts: object[]
testMode: TestMode
testAssemblies: object[]
testCategoriesMode: string , x ∈ { exclude , include }
testCategories: object[]
testCategoriesMatrix: object[]
object
categories: object[]
testScripts: object[]

Only set/used when testMode is script.

beforeTestScripts: object[]
afterTestScripts: object[]
deployMode: DeployMode
deployments: object[]
deployScripts: object[]
beforeDeployScripts: object[]
afterDeployScripts: object[]
xamarinRegisterAndroidProduct: boolean
xamarinRegisterIosProduct: boolean
matrixFastFinish: boolean
matrixAllowFailures: object[]

Although the names and values are not enforced, the combinations which are meaningful are documented at https://www.appveyor.com/docs/build-configuration/#allow-failing-jobs

matrixExclude: object[]
matrixOnly: object[]
matrixExcept: object[]
artifacts: object[]
notifications: object[]

ProjectDeployment: object

project: Project
deployment: Deployment

ProjectDeploymentModel:

ProjectDeploymentsResults: object

project: Project
deployments: object[]

ProjectHistory: object

project: Project
builds: object[]

ProjectLookupModel: object

projectId: integer , { x ∈ ℤ | x ≥ 0 }
accountName: string
name: string
slug: string

ProjectSettingsResults: object

{
"build": {
"project": "MySolution.sln",
"publish_wap": true,
"verbosity": "minimal"
}
,
"version": "1.0.{build}"
}
project: Project
settings: ProjectWithConfiguration
images: object[]
buildClouds: object[]
defaultImageName: string

ProjectWithConfiguration:

{
"accountId": 2,
"accountName": "appvyr",
"builds": [
]
,
"configuration": {
"afterBuildScripts": [
]
,
"afterDeployScripts": [
]
,
"afterTestScripts": [
]
,
"artifacts": [
]
,
"assemblyFileVersionFormat": "{version}",
"assemblyInfoFile": "**\\AssemblyInfo.*",
"assemblyInformationalVersionFormat": "{version}",
"assemblyVersionFormat": "{version}",
"beforeBuildScripts": [
]
,
"beforeDeployScripts": [
]
,
"beforeTestScripts": [
]
,
"buildMode": "msbuild",
"buildScripts": [
]
,
"configuration": [
]
,
"deployMode": "providers",
"deployScripts": [
]
,
"deployments": [
]
,
"environmentVariables": [
]
,
"environmentVariablesMatrix": [
]
,
"excludeBranches": [
]
,
"hostsEntries": [
]
,
"includeBranches": [
]
,
"initScripts": [
]
,
"installScripts": [
]
,
"matrixAllowFailures": [
]
,
"matrixFastFinish": false,
"msBuildVerbosity": "minimal",
"notifications": [
]
,
"onBuildErrorScripts": [
]
,
"onBuildSuccessScripts": [
]
,
"operatingSystem": [
]
,
"packageAzureCloudServiceProjects": false,
"packageNuGetProjects": false,
"packageWebApplicationProjects": false,
"packageWebApplicationProjectsXCopy": false,
"patchAssemblyInfo": false,
"platform": [
]
,
"services": [
]
,
"shallowClone": false,
"testAssemblies": [
]
,
"testCategories": [
]
,
"testCategoriesMatrix": [
]
,
"testMode": "auto",
"testScripts": [
]
}
,
"created": "2014-08-16T00:52:15.6604826+00:00",
"ignoreAppveyorYml": false,
"isPrivate": false,
"name": "demo-app",
"nextBuildNumber": 1,
"nuGetFeed": {
"created": "2014-08-16T00:52:16.9886427+00:00",
"id": "demo-app-tw5iw2wk3bl1",
"name": "Project demo-app",
"publishingEnabled": false
}
,
"projectId": 43682,
"repositoryBranch": "master",
"repositoryName": "FeodorFitsner/demo-app",
"repositoryScm": "git",
"repositoryType": "gitHub",
"securityDescriptor": {
"accessRightDefinitions": [
{
"description": "View",
"name": "View"
},
{
"description": "Run build",
"name": "RunBuild"
},
{
"description": "Update settings",
"name": "Update"
},
{
"description": "Delete project",
"name": "Delete"
}
]
,
"roleAces": [
{
"accessRights": [
{
"allowed": true,
"name": "View"
},
{
"allowed": true,
"name": "RunBuild"
},
{
"allowed": true,
"name": "Update"
},
{
"allowed": true,
"name": "Delete"
}
]
,
"isAdmin": true,
"name": "Administrator",
"roleId": 4
},
{
"accessRights": [
{
"name": "View"
},
{
"name": "RunBuild"
},
{
"name": "Update"
},
{
"name": "Delete"
}
]
,
"isAdmin": false,
"name": "User",
"roleId": 5
}
]
}
,
"skipBranchesWithoutAppveyorYml": false,
"slug": "demo-app-335",
"versionFormat": "1.0.{build}",
"webhookId": "rca5vb5qqu",
"webhookUrl": "https://ci.appveyor.com/api/github/webhook?id=rca5vb5qqu"
}
versionFormat: string (at least 7 chars) , must match [{]build[}]
nextBuildNumber: integer
scheduleCrontabExpression: string

Build schedule as an NCrontab Expression. See https://github.com/atifaziz/NCrontab/wiki/Crontab-Expression

repositoryAuthentication: RepositoryAuthenticationType
repositoryUsername: string
sshPublicKey: string
webhookId: string
webhookUrl: string (uri)
statusBadgeId: string
buildPriority: integer , { x ∈ ℤ | x ≥ 1 }
ignoreAppveyorYml: boolean
customYmlName: string
configuration: ProjectConfiguration

RepositoryAuthenticationType: string , x ∈ { credentials , ssh }

RepositoryProvider: string , x ∈ { bitBucket , git , gitHub , gitLab , kiln , mercurial , stash , subversion , vso }

RepositoryScm: string , x ∈ { git , mercurial , subversion }

ReRunBuildRequest: object

{
"buildId": 23864,
"reRunIncomplete": true
}
buildId: integer , { x ∈ ℤ | x ≥ 0 }
reRunIncomplete: boolean

Set reRunIncomplete set to false (default value) for full build re-run. Set it set to true to rerun only failed or cancelled jobs in multijob build.

Role:

Technically roleId has default value 0 and is not required, but since role 0 never exists it would always cause a 404 response.

roleId: integer , { x ∈ ℤ | x ≥ 0 }
name: string (at least 1 chars)
isSystem: boolean

RoleAce: object

roleId: integer , { x ∈ ℤ | x ≥ 0 }
name: string
isAdmin: boolean
accessRights: object[]

RoleAddition: object

{
"name": "My Role"
}
name: string (at least 1 chars)

RoleWithGroups:

{
"created": "2014-03-18T20:12:08.4749886+00:00",
"groups": [
{
"name": "Deny",
"permissions": [
{
"allowed": false,
"description": "Deny all projects and environments, unless explicitly allowed",
"name": "DenyAllProjectsEnvironments"
}
]
},
{
"name": "Projects",
"permissions": [
{
"allowed": true,
"description": "Create, delete projects, update project settings",
"name": "ManageProjects"
},
{
"allowed": true,
"description": "Update project settings",
"name": "UpdateProjectSettings"
},
{
"allowed": false,
"description": "Run project builds",
"name": "RunProjectBuild"
},
{
"allowed": false,
"description": "Delete project builds",
"name": "DeleteProjectBuilds"
}
]
},
{
"name": "Environments",
"permissions": [
{
"allowed": false,
"description": "Create, delete projects, update environment settings",
"name": "ManageEnvironments"
},
{
"allowed": false,
"description": "Update environment settings",
"name": "UpdateEnvironmentSettings"
},
{
"allowed": false,
"description": "Deploy to environment",
"name": "DeployToEnvironment"
}
]
},
{
"name": "Account",
"permissions": [
{
"allowed": false,
"description": "Update account details",
"name": "UpdateAccountDetails"
}
]
},
{
"name": "Users",
"permissions": [
{
"allowed": false,
"description": "Add new user",
"name": "AddUser"
},
{
"allowed": false,
"description": "Update user details",
"name": "UpdateUserDetails"
},
{
"allowed": false,
"description": "Delete user",
"name": "DeleteUser"
}
]
},
{
"name": "Roles",
"permissions": [
{
"allowed": false,
"description": "Add new role",
"name": "AddRole"
},
{
"allowed": false,
"description": "Update role details",
"name": "UpdateRoleDetails"
},
{
"allowed": false,
"description": "Delete role",
"name": "DeleteRole"
}
]
},
{
"name": "User",
"permissions": [
{
"allowed": false,
"description": "Generate API keys",
"name": "ConfigureApiKeys"
}
]
}
]
,
"isSystem": false,
"name": "My Role",
"roleId": 3040
}
groups: object[]

Script: object

language: ScriptLanguage
script: string

ScriptLanguage: string , x ∈ { cmd , ps , pwsh , sh }

SecurityDescriptor: object

accessRightDefinitions: object[]
roleAces: object[]

Status: string , x ∈ { cancelled , cancelling , failed , queued , running , starting , success }

StoredNameValue: object

name: string (at least 1 chars)
value: StoredValue

StoredNameValueMatrix: object

variables: StoredNameValue

StoredValue: object

isEncrypted: boolean
value: string

Encrypted values can be created using the encryptValue operation.

Empty environment variables are represented by missing (null) value rather than an empty string.

StringValueObject: object

value: string

TestMode: string , x ∈ { auto , none , script }

Timestamped: object

created: string (date-time)
updated: string (date-time)

UnknownType: string , x ∈ { unknown }

A schema for values which have an undocumented/unknown type.

Although the type of such values could be left unspecified according to JSON Schema (and by extension OpenAPI 2.0), such unspecified types cause tool failures (e.g. swagger-codegen). So this type can be used as a placeholder to prevent errors and document the behavior.

UserAccount:

{
"email": "john@smith.com",
"failedBuildNotification": "all",
"fullName": "John Smith",
"notifyWhenBuildStatusChangedOnly": true,
"roleId": 4,
"successfulBuildNotification": "all",
"userId": 3019
}
accountId: integer , { x ∈ ℤ | x ≥ 0 }
accountName: string
isOwner: boolean
isCollaborator: boolean
userId: integer , { x ∈ ℤ | x ≥ 0 }
fullName: string
email: string (email)
password: string (password) (at least 1 chars)
roleId: integer , { x ∈ ℤ | x ≥ 0 }
roleName: string
twoFactorAuthEnabled: boolean
pageSize: integer , { x ∈ ℤ | x ≥ 0 }

UserAccountRolesResults: object

The roles property contains all roles, not only the role for which the user is a member.

user: UserAccount
roles: object[]

UserAccountSettings: object

successfulBuildNotification: BuildNotificationFrequency
failedBuildNotification: BuildNotificationFrequency
notifyWhenBuildStatusChangedOnly: boolean

Note that this value is true on user creation, but behaves as false when not specified on update.

successfulDeploymentNotification: DeploymentNotificationFrequency
failedDeploymentNotification: DeploymentNotificationFrequency
notifyWhenDeploymentStatusChangedOnly: boolean

Note that this value is true on user creation, but behaves as false when not specified on update.

UserAddition: object

{
"confirmPassword": "password",
"email": "john@smith.com",
"fullName": "John Smith",
"generatePassword": false,
"password": "password",
"roleId": 4
}
fullName: string
email: string (email)
roleId: integer , { x ∈ ℤ | x ≥ 0 }

Technically roleId has default value 0 and is not required, but since role 0 never exists it would always cause a 404 response.

generatePassword: boolean
password: string (password) (at least 1 chars)
confirmPassword: string (password) (at least 1 chars)