> ## Documentation Index
> Fetch the complete documentation index at: https://developers.askparable.com/llms.txt
> Use this file to discover all available pages before exploring further.

# unpublishArtifact

> Unpublish a TenantArtifact. Soft-deletes the artifact-derived
TenantConnectorTap and its ConnectorTapContract in a single transaction.
Idempotent: returns 404 ARTIFACT_NOT_PUBLISHED when no active tap exists.
V1: the materialized Delta table in GCS is not removed.



## OpenAPI

````yaml /api-reference/openapi.json post /api/artifacts/unpublish-artifact
openapi: 3.0.3
info:
  title: Parable API
  description: >-
    The REST API for your Parable workspace: manage connectors and taps, explore
    your data catalog, upload artifacts, and administer users and roles.
  version: v1
servers:
  - url: https://api.askparable.com
    description: Production
security: []
paths:
  /api/artifacts/unpublish-artifact:
    post:
      tags:
        - artifacts
      summary: unpublishArtifact
      description: >-
        Unpublish a TenantArtifact. Soft-deletes the artifact-derived

        TenantConnectorTap and its ConnectorTapContract in a single transaction.

        Idempotent: returns 404 ARTIFACT_NOT_PUBLISHED when no active tap
        exists.

        V1: the materialized Delta table in GCS is not removed.
      operationId: ArtifactsUnpublishArtifactHandler
      parameters:
        - description: >-
            Workspace slug. Overrides subdomain-based workspace resolution when
            provided.
          in: header
          name: X-Tenant
          required: false
          schema:
            example: acme
            type: string
        - description: Optional request correlation ID echoed back in the response.
          in: header
          name: X-Request-ID
          required: false
          schema:
            example: 550e8400-e29b-41d4-a716-446655440000
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UnpublishArtifactInput'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/UnpublishArtifactResult'
                  links:
                    $ref: '#/components/schemas/ResponseLinks'
                  meta:
                    $ref: '#/components/schemas/ResponseMeta'
                required:
                  - data
                  - meta
                type: object
          description: Successful response
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad request
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal server error
      security:
        - bearerAuth: []
components:
  schemas:
    UnpublishArtifactInput:
      description: |-
        Input for unpublishing a TenantArtifact. Resolves the artifact-derived
        TenantConnectorTap (and its ConnectorTapContract) via `artifactId` and
        soft-deletes both atomically. Idempotent: a second call returns 404
        ARTIFACT_NOT_PUBLISHED.
      properties:
        artifactId:
          description: UUID v4 with automatic base62 encoding for client-facing APIs
          type: string
      required:
        - artifactId
      type: object
    UnpublishArtifactResult:
      description: |-
        Result of unpublishing a TenantArtifact. Returns the ids of the
        soft-deleted tap and contract for caller bookkeeping.
      properties:
        contractId:
          description: UUID v4 with automatic base62 encoding for client-facing APIs
          type: string
        tapId:
          description: UUID v4 with automatic base62 encoding for client-facing APIs
          type: string
      required:
        - tapId
        - contractId
      type: object
    ResponseLinks:
      properties:
        first:
          nullable: true
          type: string
        last:
          nullable: true
          type: string
        next:
          nullable: true
          type: string
        prev:
          nullable: true
          type: string
      type: object
    ResponseMeta:
      properties:
        requestId:
          description: Unique identifier for the request
          type: string
        totalCount:
          description: Total count of items for paginated responses
          nullable: true
          type: integer
      required:
        - requestId
      type: object
    Error:
      properties:
        error:
          type: string
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http

````