Argo Applications API

Operations for creating, querying, syncing, and deleting Argo CD GitOps applications.

OpenAPI Specification

argo-applications-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Argo CD Applications 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
servers:
- url: https://localhost/api/v1
  description: Argo CD Server (default in-cluster address)
security:
- bearerAuth: []
tags:
- name: Applications
  description: Operations for creating, querying, syncing, and deleting Argo CD GitOps applications.
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
components:
  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
  schemas:
    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.
    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'
    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 updates through delete and recreate.
            hook:
              type: object
              description: Use hook-based sync strategy.
              properties:
                force:
                  type: boolean
                  description: Force resource updates.
        resources:
          type: array
          description: Specific resources to sync (partial sync).
          items:
            type: object
            properties:
              group:
                type: string
                description: Kubernetes API group.
              kind:
                type: string
                description: Resource kind.
              name:
                type: string
                description: Resource name.
              namespace:
                type: string
                description: Resource namespace.
    ApplicationList:
      type: object
      description: A list of Argo CD applications.
      properties:
        items:
          type: array
          description: Array of application objects.
          items:
            $ref: '#/components/schemas/Application'
    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.
    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.
    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.
  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.
externalDocs:
  description: Argo CD API Documentation
  url: https://argo-cd.readthedocs.io/en/stable/developer-guide/api-docs/