Argo CD API
REST API for managing Argo CD GitOps applications, projects, repositories, clusters, and sync operations for Kubernetes declarative continuous delivery. Authentication uses JWT bearer tokens.
REST API for managing Argo CD GitOps applications, projects, repositories, clusters, and sync operations for Kubernetes declarative continuous delivery. Authentication uses JWT bearer tokens.
openapi: 3.1.0
info:
title: Argo CD API
description: >-
The Argo CD API provides REST endpoints for managing GitOps continuous
delivery on Kubernetes. It enables creating and managing applications,
projects, repositories, clusters, and certificates. The API supports
syncing application state to match the desired state declared in Git,
querying health and sync status, managing access control, and
configuring notifications. All operations require authentication via
bearer token obtained from the session endpoint.
version: 'v2.x'
contact:
name: Argo CD Community
url: https://argo-cd.readthedocs.io/en/stable/
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
externalDocs:
description: Argo CD API Documentation
url: https://argo-cd.readthedocs.io/en/stable/developer-guide/api-docs/
servers:
- url: https://localhost/api/v1
description: Argo CD Server (default in-cluster address)
tags:
- name: Applications
description: >-
Operations for creating, querying, syncing, and deleting Argo CD
GitOps applications.
- name: Clusters
description: >-
Operations for registering and managing target Kubernetes clusters
for application deployment.
- name: Projects
description: >-
Operations for managing Argo CD projects that provide governance
and access control for applications.
- name: Repositories
description: >-
Operations for registering and managing Git and Helm chart
repositories used as application sources.
- name: Session
description: >-
Authentication operations for obtaining and invalidating bearer tokens.
- name: Settings
description: >-
Operations for reading Argo CD server configuration and settings.
- name: Version
description: >-
Server version information endpoint.
security:
- bearerAuth: []
paths:
/applications:
get:
operationId: listApplications
summary: Argo CD Argo List Applications
description: >-
Returns a list of all Argo CD applications, optionally filtered by
project, namespace, or name. Each application includes its current
sync status, health status, source configuration, and destination
cluster details.
tags:
- Applications
parameters:
- $ref: '#/components/parameters/projectParam'
- name: name
in: query
description: Filter applications by name.
schema:
type: string
- name: namespace
in: query
description: Filter applications by destination namespace.
schema:
type: string
- name: appNamespace
in: query
description: The application namespace to filter by.
schema:
type: string
responses:
'200':
description: List of applications.
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationList'
'401':
description: Unauthorized. Missing or invalid authentication token.
'403':
description: Forbidden. Insufficient permissions.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
operationId: createApplication
summary: Argo CD Argo Create an Application
description: >-
Creates a new Argo CD application from the provided Application
manifest. The application must reference a valid project, source
repository, and destination cluster. Optionally upsert to update
an existing application with the same name.
tags:
- Applications
parameters:
- name: upsert
in: query
description: >-
If true, perform an upsert rather than a create, updating the
application if it already exists.
schema:
type: boolean
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Application'
responses:
'200':
description: Application created or updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Application'
'400':
description: Bad request. Invalid application specification.
'401':
description: Unauthorized.
'403':
description: Forbidden.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/applications/{name}:
get:
operationId: getApplication
summary: Argo CD Argo Get an Application
description: >-
Returns the full specification and current status of a named Argo
CD application, including sync status, health status, resource tree,
and operation state.
tags:
- Applications
parameters:
- $ref: '#/components/parameters/appNameParam'
- name: appNamespace
in: query
description: Application namespace.
schema:
type: string
responses:
'200':
description: Application details.
content:
application/json:
schema:
$ref: '#/components/schemas/Application'
'401':
description: Unauthorized.
'404':
description: Application not found.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
put:
operationId: updateApplication
summary: Argo CD Argo Update an Application
description: >-
Replaces the specification of an existing Argo CD application with
the provided manifest. Used to update source, destination, sync
policy, or other application configuration.
tags:
- Applications
parameters:
- $ref: '#/components/parameters/appNameParam'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Application'
responses:
'200':
description: Updated application.
content:
application/json:
schema:
$ref: '#/components/schemas/Application'
'400':
description: Bad request.
'401':
description: Unauthorized.
'404':
description: Application not found.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
delete:
operationId: deleteApplication
summary: Argo CD Argo Delete an Application
description: >-
Deletes the named Argo CD application. Optionally cascades deletion
to all managed Kubernetes resources in the destination cluster.
tags:
- Applications
parameters:
- $ref: '#/components/parameters/appNameParam'
- name: cascade
in: query
description: Cascade deletion to managed Kubernetes resources.
schema:
type: boolean
default: true
- name: propagationPolicy
in: query
description: >-
Kubernetes resource deletion propagation policy
(foreground, background, orphan).
schema:
type: string
enum: [foreground, background, orphan]
responses:
'200':
description: Application deleted.
'401':
description: Unauthorized.
'404':
description: Application not found.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/applications/{name}/sync:
post:
operationId: syncApplication
summary: Argo CD Argo Sync an Application
description: >-
Triggers a synchronization of the named Argo CD application,
reconciling the live Kubernetes state with the desired state
from the Git source. Supports selective resource sync, dry-run
mode, force sync, and prune of removed resources.
tags:
- Applications
parameters:
- $ref: '#/components/parameters/appNameParam'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SyncRequest'
responses:
'200':
description: Sync operation initiated.
content:
application/json:
schema:
$ref: '#/components/schemas/Application'
'401':
description: Unauthorized.
'404':
description: Application not found.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/applications/{name}/rollback:
post:
operationId: rollbackApplication
summary: Argo CD Argo Rollback an Application
description: >-
Rolls back the named application to a previous deployed revision.
Requires the ID of a history entry from the application's
deployment history.
tags:
- Applications
parameters:
- $ref: '#/components/parameters/appNameParam'
requestBody:
content:
application/json:
schema:
type: object
properties:
id:
type: integer
format: int64
description: History ID of the revision to roll back to.
prune:
type: boolean
description: Whether to prune resources removed in the target revision.
dryRun:
type: boolean
description: Preview rollback without applying changes.
responses:
'200':
description: Rollback initiated.
content:
application/json:
schema:
$ref: '#/components/schemas/Application'
'401':
description: Unauthorized.
'404':
description: Application not found.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/projects:
get:
operationId: listProjects
summary: Argo CD Argo List Projects
description: >-
Returns all Argo CD projects. Projects provide logical grouping,
access control, and policy enforcement for applications.
tags:
- Projects
responses:
'200':
description: List of projects.
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectList'
'401':
description: Unauthorized.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
operationId: createProject
summary: Argo CD Argo Create a Project
description: >-
Creates a new Argo CD project with the specified source repositories,
destination clusters/namespaces, and resource allow/deny policies.
tags:
- Projects
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AppProject'
responses:
'200':
description: Project created.
content:
application/json:
schema:
$ref: '#/components/schemas/AppProject'
'400':
description: Bad request.
'401':
description: Unauthorized.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/projects/{name}:
get:
operationId: getProject
summary: Argo CD Argo Get a Project
description: Returns the specification and detailed information for a named project.
tags:
- Projects
parameters:
- $ref: '#/components/parameters/projectNameParam'
responses:
'200':
description: Project details.
content:
application/json:
schema:
$ref: '#/components/schemas/AppProject'
'401':
description: Unauthorized.
'404':
description: Project not found.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
delete:
operationId: deleteProject
summary: Argo CD Argo Delete a Project
description: >-
Deletes the named Argo CD project. The project must have no
associated applications before it can be deleted.
tags:
- Projects
parameters:
- $ref: '#/components/parameters/projectNameParam'
responses:
'200':
description: Project deleted.
'401':
description: Unauthorized.
'404':
description: Project not found.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/repositories:
get:
operationId: listRepositories
summary: Argo CD Argo List Repositories
description: >-
Returns all registered Git and Helm chart repositories, including
their connection status and type.
tags:
- Repositories
responses:
'200':
description: List of repositories.
content:
application/json:
schema:
$ref: '#/components/schemas/RepositoryList'
'401':
description: Unauthorized.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
operationId: createRepository
summary: Argo CD Argo Register a Repository
description: >-
Registers a new Git or Helm chart repository with Argo CD. Supports
HTTPS, SSH, and GitHub App authentication methods.
tags:
- Repositories
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Repository'
responses:
'200':
description: Repository registered.
content:
application/json:
schema:
$ref: '#/components/schemas/Repository'
'400':
description: Bad request.
'401':
description: Unauthorized.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/repositories/{repo}:
delete:
operationId: deleteRepository
summary: Argo CD Argo Delete a Repository
description: Removes the named repository registration from Argo CD.
tags:
- Repositories
parameters:
- name: repo
in: path
required: true
description: Repository URL (URL-encoded).
schema:
type: string
responses:
'200':
description: Repository deleted.
'401':
description: Unauthorized.
'404':
description: Repository not found.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/clusters:
get:
operationId: listClusters
summary: Argo CD Argo List Clusters
description: >-
Returns all registered Kubernetes clusters available as deployment
targets for Argo CD applications.
tags:
- Clusters
responses:
'200':
description: List of clusters.
content:
application/json:
schema:
$ref: '#/components/schemas/ClusterList'
'401':
description: Unauthorized.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
operationId: createCluster
summary: Argo CD Argo Register a Cluster
description: >-
Registers a new Kubernetes cluster as a deployment target. The
cluster must be reachable from the Argo CD server and the provided
credentials must have sufficient permissions.
tags:
- Clusters
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Cluster'
responses:
'200':
description: Cluster registered.
content:
application/json:
schema:
$ref: '#/components/schemas/Cluster'
'400':
description: Bad request.
'401':
description: Unauthorized.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/session:
post:
operationId: createSession
summary: Argo CD Argo Create a Session (login)
description: >-
Authenticates with username and password or SSO token and returns
a bearer token for use in subsequent API requests.
tags:
- Session
security: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [username, password]
properties:
username:
type: string
description: Argo CD local user username.
password:
type: string
description: Argo CD local user password.
responses:
'200':
description: Session created. Token returned.
content:
application/json:
schema:
type: object
properties:
token:
type: string
description: Bearer token for subsequent API calls.
'401':
description: Invalid credentials.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
delete:
operationId: deleteSession
summary: Argo CD Argo Delete a Session (logout)
description: Invalidates the current bearer token, logging out the authenticated user.
tags:
- Session
responses:
'200':
description: Session deleted.
'401':
description: Unauthorized.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/version:
get:
operationId: getVersion
summary: Argo CD Argo Get Server Version
description: >-
Returns the Argo CD server version, build date, Git commit SHA,
Go version, and Kubernetes server version.
tags:
- Version
security: []
responses:
'200':
description: Version information.
content:
application/json:
schema:
$ref: '#/components/schemas/VersionMessage'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/settings:
get:
operationId: getSettings
summary: Argo CD Argo Get Server Settings
description: >-
Returns the Argo CD server configuration including OIDC settings,
Helm settings, resource tracking method, and UI customization.
tags:
- Settings
responses:
'200':
description: Server settings.
content:
application/json:
schema:
$ref: '#/components/schemas/Settings'
'401':
description: Unauthorized.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: >-
Bearer token obtained from the POST /session endpoint using
username/password or from an external OIDC provider configured
in Argo CD.
parameters:
appNameParam:
name: name
in: path
required: true
description: The name of the Argo CD application.
schema:
type: string
projectParam:
name: project
in: query
description: Filter by project name.
schema:
type: string
projectNameParam:
name: name
in: path
required: true
description: The name of the Argo CD project.
schema:
type: string
schemas:
Application:
type: object
description: >-
An Argo CD Application represents a deployed set of Kubernetes
resources managed through GitOps.
properties:
apiVersion:
type: string
description: API version, always argoproj.io/v1alpha1.
kind:
type: string
description: Resource kind, always Application.
metadata:
type: object
description: Kubernetes object metadata.
properties:
name:
type: string
description: Application name.
namespace:
type: string
description: Application namespace.
spec:
$ref: '#/components/schemas/ApplicationSpec'
status:
$ref: '#/components/schemas/ApplicationStatus'
ApplicationSpec:
type: object
description: Desired state specification for an Argo CD application.
required: [destination, project, source]
properties:
source:
$ref: '#/components/schemas/ApplicationSource'
destination:
$ref: '#/components/schemas/ApplicationDestination'
project:
type: string
description: Argo CD project this application belongs to.
syncPolicy:
$ref: '#/components/schemas/SyncPolicy'
ignoreDifferences:
type: array
description: Resource fields to ignore when computing sync status.
items:
type: object
properties:
group:
type: string
description: Kubernetes API group.
kind:
type: string
description: Kubernetes resource kind.
jsonPointers:
type: array
items:
type: string
description: JSON Pointer paths to ignore.
ApplicationSource:
type: object
description: Git or Helm chart source for the application manifests.
required: [repoURL]
properties:
repoURL:
type: string
description: URL of the Git repository or Helm chart repository.
format: uri
path:
type: string
description: >-
Path within the repository where manifests are located. Used
for Git repositories.
targetRevision:
type: string
description: >-
Git branch, tag, or commit SHA to deploy. Defaults to HEAD.
chart:
type: string
description: Helm chart name. Used when repoURL points to a Helm registry.
helm:
type: object
description: Helm-specific source configuration.
properties:
valueFiles:
type: array
items:
type: string
description: List of Helm value file paths.
values:
type: string
description: Inline Helm values as a YAML string.
releaseName:
type: string
description: Helm release name override.
kustomize:
type: object
description: Kustomize-specific source configuration.
properties:
namePrefix:
type: string
description: Prefix to append to all resource names.
nameSuffix:
type: string
description: Suffix to append to all resource names.
images:
type: array
items:
type: string
description: List of image overrides in name=tag format.
ApplicationDestination:
type: object
description: Target Kubernetes cluster and namespace for application deployment.
properties:
server:
type: string
description: >-
Kubernetes API server URL of the target cluster. Use
https://kubernetes.default.svc for the in-cluster target.
format: uri
name:
type: string
description: >-
Name of the registered cluster. Mutually exclusive with server.
namespace:
type: string
description: Target namespace in the destination cluster.
SyncPolicy:
type: object
description: Policy controlling how and when the application is synchronized.
properties:
automated:
type: object
description: Configuration for automatic synchronization.
properties:
prune:
type: boolean
description: >-
Automatically delete resources removed from the source.
default: false
selfHeal:
type: boolean
description: >-
Automatically sync when live state drifts from desired state.
default: false
allowEmpty:
type: boolean
description: Allows apps to have an empty source.
default: false
syncOptions:
type: array
description: >-
List of sync option flags (e.g., CreateNamespace=true,
PrunePropagationPolicy=foreground).
items:
type: string
retry:
type: object
description: Retry configuration for failed sync operations.
properties:
limit:
type: integer
format: int64
description: Maximum number of retry attempts. -1 for unlimited.
backoff:
type: object
description: Backoff strategy for retries.
properties:
duration:
type: string
description: Initial retry backoff duration.
factor:
type: integer
format: int64
description: Multiplicative factor applied to duration on each retry.
maxDuration:
type: string
description: Maximum duration between retries.
ApplicationStatus:
type: object
description: Observed state and operational status of an Argo CD application.
properties:
sync:
type: object
description: Current sync status.
properties:
status:
type: string
description: Sync status (Synced, OutOfSync, Unknown).
enum: [Synced, OutOfSync, Unknown]
revision:
type: string
description: Deployed Git revision (commit SHA).
health:
type: object
description: Current health status.
properties:
status:
type: string
description: Health status (Healthy, Progressing, Degraded, Suspended, Missing, Unknown).
enum: [Healthy, Progressing, Degraded, Suspended, Missing, Unknown]
message:
type: string
description: Human-readable health status message.
operationState:
type: object
description: State of the current or most recent operation.
properties:
phase:
type: string
description: Operation phase (Running, Failed, Succeeded, Error, Terminating).
message:
type: string
description: Human-readable operation status message.
startedAt:
type: string
format: date-time
description: When the operation started.
finishedAt:
type: string
format: date-time
description: When the operation finished.
ApplicationList:
type: object
description: A list of Argo CD applications.
properties:
items:
type: array
description: Array of application objects.
items:
$ref: '#/components/schemas/Application'
AppProject:
type: object
description: >-
An Argo CD project providing logical grouping and RBAC for
applications.
properties:
metadata:
type: object
properties:
name:
type: string
description: Project name.
spec:
type: object
description: Project specification.
properties:
description:
type: string
description: Human-readable project description.
sourceRepos:
type: array
description: Allowed source repositories. Use '*' for any.
items:
type: string
destinations:
type: array
description: Allowed destination clusters and namespaces.
items:
type: object
properties:
server:
type: string
description: Cluster server URL.
namespace:
type: string
description: Allowed namespace pattern.
clusterResourceWhitelist:
type: array
description: Allowed cluster-scoped resource types.
items:
type: object
properties:
group:
type: string
kind:
type: string
ProjectList:
type: object
description: A list of Argo CD projects.
properties:
items:
type: array
items:
$ref: '#/components/schemas/AppProject'
Repository:
type: object
description: A registered Git or Helm chart repository.
properties:
repo:
type: string
description: Repository URL.
format: uri
type:
type: string
description: Repository type.
enum: [git, helm]
name:
type: string
description: Human-readable repository name.
connectionState:
type: object
description: Current connection status.
properties:
status:
type: string
description: Connection status (Successful, Failed, Unknown).
message:
type: string
description: Status message.
RepositoryList:
type: object
description: A list of registered repositories.
properties:
items:
type: array
items:
$ref: '#/components/schemas/Repository'
Cluster:
type: object
description: A registered Kubernetes cluster deployment target.
properties:
server:
type: string
description: Kubernetes API server URL.
format: uri
name:
type: string
description: Cluster display name.
config:
type: object
description: Cluster connection configuration.
properties:
bearerToken:
type: string
description: Service account bearer token for cluster access.
tlsClientConfig:
type: object
description: TLS client configuration.
properties:
insecure:
type: boolean
description: Skip TLS verification.
info:
type: object
description: Cluster information.
properties:
serverVersion:
type: string
description: Kubernetes server version.
applicationsCount:
type: integer
description: Number of applications targeting this cluster.
ClusterList:
type: object
description: A list of registered clusters.
properties:
items:
type: array
items:
$ref: '#/components/schemas/Cluster'
SyncRequest:
type: object
description: Request body for triggering an application sync operation.
properties:
revision:
type: string
description: >-
Specific Git revision to sync to. Defaults to the current
target revision.
dryRun:
type: boolean
description: Preview sync without applying changes.
prune:
type: boolean
description: Delete resources no longer defined in the source.
strategy:
type: object
description: Sync strategy configuration.
properties:
apply:
type: object
description: Use kubectl apply sync strategy.
properties:
force:
type: boolean
description: Force resource
# --- truncated at 32 KB (34 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/argo/refs/heads/main/openapi/argo-cd-openapi.yml