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

# Claim a duplicate-trigger fingerprint

> Claim a durable fingerprint for an event so local and cloud triggers reacting to the same
signal fire once. The fingerprint derives from `source`, `event_key`, and the optional
`initiative_id`; the first claimant wins until the claim expires or is released. The store
fails closed — when it is unavailable the endpoint returns `503` rather than letting both
triggers proceed.



## OpenAPI

````yaml /openapi/v1.yaml post /live/dedup/claim
openapi: 3.1.0
info:
  title: OrgX REST API v1
  version: '1'
  description: >-
    Build accountable work into your product with OrgX REST API v1.


    Create work with one field, attach evidence when it is complete, and keep
    the receipt. Every authenticated request is scoped to the workspace resolved
    from your credential.


    Start with `POST /work`. Human guide:
    https://docs.useorgx.com/docs/api/quickstart
  contact:
    name: OrgX Support
    url: https://useorgx.com/support
    email: support@useorgx.com
  license:
    name: Proprietary
    url: https://useorgx.com/terms
servers:
  - url: https://useorgx.com/api/v1
    description: Production
security: []
tags:
  - name: Work
    description: Create accountable work and complete it with evidence
  - name: Initiatives
    description: Organize related work around an outcome
  - name: Operating processes
    description: Evidence-backed company workflow/process lifecycle
  - name: Operating map
    description: Derived, rebuildable Operating Map projection over the process ledger
  - name: Discovery runs
    description: Wizard and deep-search workflow discovery over connected company sources
  - name: Handoffs
    description: Ledger-backed stage handoffs between operating-process stages
  - name: Events
    description: Replayable, workspace-scoped accepted ledger events
  - name: Projections
    description: Workspace-scoped, rebuildable read projections over OrgX sources
  - name: Episodes
    description: Mission-compatible Episode read adapters
  - name: Receipt validation
    description: Account-free Agent Work Receipt schema discovery and conformance
  - name: Receipt import
    description: Authenticated, workspace-scoped import into the hosted receipt ledger
  - name: Workload diagnosis
    description: >-
      Account-free evaluation of time, agents, systems, authority, and
      accountability boundaries
  - name: Content Studio
    description: >-
      Estimate, showcase, checkout, and payment event operations for Content
      Studio
  - name: Decisions
    description: Raise decisions for human ruling and read their state
  - name: Artifacts
    description: Register produced work against the entity it belongs to
  - name: Launches
    description: Preview and run an initiative launch through its spend gates
  - name: Runs
    description: Control agent runs with pause, resume, cancel, and rollback
  - name: Lifecycle
    description: Pause, resume, retry, or cancel work hierarchy nodes and runs
  - name: Deduplication
    description: Claim durable event fingerprints so duplicate triggers fire once
  - name: Credential
    description: >-
      Resolve the calling credential, the workspaces it reaches, and what it may
      do
  - name: API discovery
    description: Account-free error codes, request schemas, and closed vocabularies for v1
externalDocs:
  description: Human-readable OrgX REST API v1 reference
  url: https://docs.useorgx.com/docs/api/public-api
paths:
  /live/dedup/claim:
    post:
      tags:
        - Deduplication
      summary: Claim a duplicate-trigger fingerprint
      description: >-
        Claim a durable fingerprint for an event so local and cloud triggers
        reacting to the same

        signal fire once. The fingerprint derives from `source`, `event_key`,
        and the optional

        `initiative_id`; the first claimant wins until the claim expires or is
        released. The store

        fails closed — when it is unavailable the endpoint returns `503` rather
        than letting both

        triggers proceed.
      operationId: claimDedupFingerprint
      parameters:
        - $ref: '#/components/parameters/IdempotencyKeyOptional'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DedupClaimRequest'
            example:
              source: github-webhook
              event_key: pr-2638-merged
              ttl_seconds: 21600
      responses:
        '200':
          description: >-
            Claim outcome — either you hold the fingerprint or another run
            already does
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DedupClaimResponse'
              example:
                ok: true
                deduped: false
                claimed: true
                fingerprint_hash: >-
                  4f1c9a7e2b8d6c3a5e0f7b9d1c4a6e8f2b5d7c9a1e3f5b7d9c1a3e5f7b9d1c4a
                active_run_id: 6e5d4c3b-2a1f-4e9d-8c7b-6a5f4e3d2c1b
                expires_at: '2026-08-19T21:10:00.000Z'
                data:
                  auth_mode: api_key
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      security:
        - bearerAuth: []
components:
  parameters:
    IdempotencyKeyOptional:
      name: Idempotency-Key
      in: header
      required: false
      schema:
        type: string
        minLength: 1
        maxLength: 200
        pattern: ^[A-Za-z0-9][A-Za-z0-9._:/-]{0,199}$
      description: >-
        Accepted for forward compatibility. Replay safety for this operation
        comes from its own state checks, described on the operation.
  schemas:
    DedupClaimRequest:
      type: object
      required:
        - source
        - event_key
      additionalProperties: true
      properties:
        source:
          type: string
          minLength: 1
          maxLength: 120
          description: The trigger family, for example a webhook or scheduler name.
        event_key:
          type: string
          minLength: 1
          maxLength: 500
          description: The stable identity of the event within its source.
        initiative_id:
          type: string
          format: uuid
          description: Optional scope; claims default to organization scope without it.
        ttl_seconds:
          type: integer
          minimum: 60
          maximum: 1209600
          description: Claim lifetime; defaults to six hours.
        active_run_id:
          type: string
          format: uuid
          description: The run asserting the claim; generated when omitted.
    DedupClaimResponse:
      type: object
      required:
        - ok
        - deduped
        - claimed
        - fingerprint_hash
      additionalProperties: true
      properties:
        ok:
          type: boolean
        deduped:
          type: boolean
          description: True when another run already holds the fingerprint.
        claimed:
          type: boolean
          description: True when this request took or extended the claim.
        fingerprint_hash:
          type: string
          description: The derived fingerprint identity.
        active_run_id:
          type:
            - string
            - 'null'
          format: uuid
          description: The run holding the claim.
        expires_at:
          type:
            - string
            - 'null'
          format: date-time
        data:
          type: object
          additionalProperties: true
    ApiError:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
            details:
              type: object
            requestId:
              type: string
            timestamp:
              type: string
              format: date-time
            docsUrl:
              type: string
              format: uri
            retryAfter:
              type: integer
              description: Seconds until rate limit resets
  responses:
    BadRequest:
      description: Request validation failed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    Unauthorized:
      description: Authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    ServiceUnavailable:
      description: Ledger or workspace authorization is unavailable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'OrgX API key, sent as `Authorization: Bearer oxk_...`'

````