> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crewpass.co.uk/llms.txt
> Use this file to discover all available pages before exploring further.

# Revoke a key (the kill switch), or hard-delete it

> Revoke a key (soft, default) or hard-delete it (``?hard=true``).

Hard-delete removes the row entirely — the console uses it to clean up its
ephemeral preview keys so they never pile up as revoked rows. Operator keys
should always be revoked (soft) so the trail of issued keys survives.



## OpenAPI

````yaml /api-reference/openapi.json delete /api/v2/admin/partners/{partner_id}/keys/{key_id}
openapi: 3.1.0
info:
  title: crewpass-api-v2
  description: >-
    CrewPass V2 Partner API — a scope-gated, consent-intersected, multi-tenant
    front door onto existing CrewPass crew/vessel/compliance data.
  version: 0.1.0
servers: []
security: []
paths:
  /api/v2/admin/partners/{partner_id}/keys/{key_id}:
    delete:
      tags:
        - admin
      summary: Revoke a key (the kill switch), or hard-delete it
      description: >-
        Revoke a key (soft, default) or hard-delete it (``?hard=true``).


        Hard-delete removes the row entirely — the console uses it to clean up
        its

        ephemeral preview keys so they never pile up as revoked rows. Operator
        keys

        should always be revoked (soft) so the trail of issued keys survives.
      operationId: revoke_key_api_v2_admin_partners__partner_id__keys__key_id__delete
      parameters:
        - name: partner_id
          in: path
          required: true
          schema:
            type: string
            title: Partner Id
        - name: key_id
          in: path
          required: true
          schema:
            type: string
            title: Key Id
        - name: hard
          in: query
          required: false
          schema:
            type: boolean
            default: false
            title: Hard
        - name: X-Internal-Auth
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: X-Internal-Auth
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: boolean
                title: >-
                  Response Revoke Key Api V2 Admin Partners  Partner Id  Keys 
                  Key Id  Delete
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError

````