APIHub
Back to Explore

AppVeyor REST API

The AppVeyor REST API gives programmatic access to the hosted Windows‑based CI service, allowing you to create, read, update, and delete projects, builds, deployments, environments, and related resources such as artifacts, logs, collaborators, roles, and user invitations, as well as utilities like encrypting stored values.

Development
apiKeyHeader
HTTPS
CORS: Unknown
Description enriched
Visit official documentation

Latency

853ms p95

Uptime

100.0% 30d

Playground

Verified

live

Endpoints

REST · JSON
PUT

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

Update project build number

GET

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

Get project environment variables

POST

/account/encrypt

Encrypt a value for use in StoredValue.

GET

/buildjobs/{jobId}/artifacts

Get build artifacts

GET

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

Download build artifact

GET

/buildjobs/{jobId}/log

Download build log

POST

/builds

Start build of branch most recent commit

PUT

/builds

Re-run build

DELETE

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

Cancel build

GET

/collaborators

Get collaborators

PUT

/collaborators

Update collaborator

DELETE

/collaborators/{userId}

Delete collaborator

GET

/collaborators/{userId}

Get collaborator

POST

/deployments

Start deployment

PUT

/deployments/stop

Cancel deployment

GET

/deployments/{deploymentId}

Get deployment

GET

/environments

Get environments

POST

/environments

Add environment

PUT

/environments

Update environment

DELETE

/environments/{deploymentEnvironmentId}

Delete environment

GET

/environments/{deploymentEnvironmentId}/deployments

Get environment deployments

GET

/environments/{deploymentEnvironmentId}/settings

Get environment settings

PUT

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

Update project environment variables

GET

/projects

Get projects

POST

/projects

Add project

PUT

/projects

Update project

GET

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

Get status badge image for a project with a public repository

  • branch (query) — Repository Branch
  • svg (query) — Return an SVG image instead of PNG? Exclusive with `retina`.
  • retina (query) — Return a larger image suitable for retina displays? Exclusive with `svg`.
  • passingText (query) — Text to show in badge when build is passing.
  • failingText (query) — Text to show in badge when build is failing.
  • pendingText (query) — Text to show in badge when build is pending.
GET

/projects/status/{statusBadgeId}

Get project status badge image

  • svg (query) — Return an SVG image instead of PNG? Exclusive with `retina`.
  • retina (query) — Return a larger image suitable for retina displays? Exclusive with `svg`.
  • passingText (query) — Text to show in badge when build is passing.
  • failingText (query) — Text to show in badge when build is failing.
  • pendingText (query) — Text to show in badge when build is pending.
GET

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

Get project branch status badge image

  • svg (query) — Return an SVG image instead of PNG? Exclusive with `retina`.
  • retina (query) — Return a larger image suitable for retina displays? Exclusive with `svg`.
  • passingText (query) — Text to show in badge when build is passing.
  • failingText (query) — Text to show in badge when build is failing.
  • pendingText (query) — Text to show in badge when build is pending.
DELETE

/projects/{accountName}/{projectSlug}

Delete project

GET

/projects/{accountName}/{projectSlug}

Get project last build

GET

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

Get last successful build artifact

GET

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

Get project settings in YAML

PUT

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

Update project settings in YAML

GET

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

Get project last branch build

GET

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

Get project build by version

DELETE

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

Delete project build cache

GET

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

Get project deployments

GET

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

Get project history

  • recordsNumber (query, required) — 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.
  • startBuildId (query) — Maximum `buildId` to include in the results (exclusive).
  • branch (query) — Repository Branch
GET

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

Get project settings

GET

/roles

Get roles

POST

/roles

Add role

PUT

/roles

Update role

DELETE

/roles/{roleId}

Delete role

GET

/roles/{roleId}

Get role

PUT

/user/join-account

Join Account

GET

/users

Get users

PUT

/users

Update user

GET

/users/invitations

Get user invitations

POST

/users/invitations

Invite user

DELETE

/users/invitations/{userInvitationId}

Cancel user invitation

DELETE

/users/{userId}

Delete user

GET

/users/{userId}

Get user

53 endpoints auto-detected

Authentication

This API uses an API key, passed in the "Authorization" header. No OAuth required.

curl -X PUT \
  "https://ci.appveyor.com/api/projects/{accountName}/{projectSlug}/settings/build-number" \
  -H "Authorization: YOUR_API_KEY"

ci.appveyor.com · HTTPS only