Ironclad Clickwrap · Capability

Ironclad Clickwrap API

The Ironclad Clickwrap API (formerly PactSafe) lets developers programmatically manage clickwrap and click-through agreements, track user acceptance, and generate audit-ready records of consent for terms, privacy policies, and other legal contracts.

Run with Naftiko IroncladClickwrapAPI

What You Can Do

GET
Listsites — List sites
/sites
GET
Getsite — Get a site
/sites/{siteId}
GET
Listgroups — List clickwrap groups
/groups
GET
Getgroup — Get a clickwrap group
/groups/{groupId}
GET
Listcontracts — List contracts
/contracts
GET
Getcontract — Get a contract
/contracts/{contractId}
GET
Listsigners — List signers
/signers
GET
Getsigner — Get a signer
/signers/{signerId}
POST
Sendagreed — Record an agreement acceptance event
/send/agreed
POST
Senddisplayed — Record a contract display event
/send/displayed
POST
Sendvisited — Record a page visit event
/send/visited
GET
Retrievelatest — Retrieve the latest acceptance state for a signer
/retrieve/latest

MCP Tools

listsites

List sites

read-only idempotent
getsite

Get a site

read-only idempotent
listgroups

List clickwrap groups

read-only idempotent
getgroup

Get a clickwrap group

read-only idempotent
listcontracts

List contracts

read-only idempotent
getcontract

Get a contract

read-only idempotent
listsigners

List signers

read-only idempotent
getsigner

Get a signer

read-only idempotent
sendagreed

Record an agreement acceptance event

senddisplayed

Record a contract display event

sendvisited

Record a page visit event

retrievelatest

Retrieve the latest acceptance state for a signer

read-only idempotent

Capability Spec

ironclad-clickwrap-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Ironclad Clickwrap API
  description: The Ironclad Clickwrap API (formerly PactSafe) lets developers programmatically manage clickwrap and click-through
    agreements, track user acceptance, and generate audit-ready records of consent for terms, privacy policies, and other
    legal contracts.
  tags:
  - Ironclad
  - Clickwrap
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: ironclad-clickwrap
    baseUri: https://pactsafe.io
    description: Ironclad Clickwrap API HTTP API.
    authentication:
      type: bearer
      token: '{{IRONCLAD_CLICKWRAP_TOKEN}}'
    resources:
    - name: sites
      path: /sites
      operations:
      - name: listsites
        method: GET
        description: List sites
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: sites-siteid
      path: /sites/{siteId}
      operations:
      - name: getsite
        method: GET
        description: Get a site
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: groups
      path: /groups
      operations:
      - name: listgroups
        method: GET
        description: List clickwrap groups
        inputParameters:
        - name: sid
          in: query
          type: integer
          description: Site ID filter.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: groups-groupid
      path: /groups/{groupId}
      operations:
      - name: getgroup
        method: GET
        description: Get a clickwrap group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: contracts
      path: /contracts
      operations:
      - name: listcontracts
        method: GET
        description: List contracts
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: contracts-contractid
      path: /contracts/{contractId}
      operations:
      - name: getcontract
        method: GET
        description: Get a contract
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: signers
      path: /signers
      operations:
      - name: listsigners
        method: GET
        description: List signers
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: signers-signerid
      path: /signers/{signerId}
      operations:
      - name: getsigner
        method: GET
        description: Get a signer
        inputParameters:
        - name: signerId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: send-agreed
      path: /send/agreed
      operations:
      - name: sendagreed
        method: POST
        description: Record an agreement acceptance event
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: send-displayed
      path: /send/displayed
      operations:
      - name: senddisplayed
        method: POST
        description: Record a contract display event
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: send-visited
      path: /send/visited
      operations:
      - name: sendvisited
        method: POST
        description: Record a page visit event
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: retrieve-latest
      path: /retrieve/latest
      operations:
      - name: retrievelatest
        method: GET
        description: Retrieve the latest acceptance state for a signer
        inputParameters:
        - name: sig
          in: query
          type: string
          required: true
          description: Signer identifier.
        - name: gkey
          in: query
          type: string
          description: Group key.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: ironclad-clickwrap-rest
    description: REST adapter for Ironclad Clickwrap API.
    resources:
    - path: /sites
      name: listsites
      operations:
      - method: GET
        name: listsites
        description: List sites
        call: ironclad-clickwrap.listsites
        outputParameters:
        - type: object
          mapping: $.
    - path: /sites/{siteId}
      name: getsite
      operations:
      - method: GET
        name: getsite
        description: Get a site
        call: ironclad-clickwrap.getsite
        outputParameters:
        - type: object
          mapping: $.
    - path: /groups
      name: listgroups
      operations:
      - method: GET
        name: listgroups
        description: List clickwrap groups
        call: ironclad-clickwrap.listgroups
        outputParameters:
        - type: object
          mapping: $.
    - path: /groups/{groupId}
      name: getgroup
      operations:
      - method: GET
        name: getgroup
        description: Get a clickwrap group
        call: ironclad-clickwrap.getgroup
        outputParameters:
        - type: object
          mapping: $.
    - path: /contracts
      name: listcontracts
      operations:
      - method: GET
        name: listcontracts
        description: List contracts
        call: ironclad-clickwrap.listcontracts
        outputParameters:
        - type: object
          mapping: $.
    - path: /contracts/{contractId}
      name: getcontract
      operations:
      - method: GET
        name: getcontract
        description: Get a contract
        call: ironclad-clickwrap.getcontract
        outputParameters:
        - type: object
          mapping: $.
    - path: /signers
      name: listsigners
      operations:
      - method: GET
        name: listsigners
        description: List signers
        call: ironclad-clickwrap.listsigners
        outputParameters:
        - type: object
          mapping: $.
    - path: /signers/{signerId}
      name: getsigner
      operations:
      - method: GET
        name: getsigner
        description: Get a signer
        call: ironclad-clickwrap.getsigner
        with:
          signerId: rest.signerId
        outputParameters:
        - type: object
          mapping: $.
    - path: /send/agreed
      name: sendagreed
      operations:
      - method: POST
        name: sendagreed
        description: Record an agreement acceptance event
        call: ironclad-clickwrap.sendagreed
        outputParameters:
        - type: object
          mapping: $.
    - path: /send/displayed
      name: senddisplayed
      operations:
      - method: POST
        name: senddisplayed
        description: Record a contract display event
        call: ironclad-clickwrap.senddisplayed
        outputParameters:
        - type: object
          mapping: $.
    - path: /send/visited
      name: sendvisited
      operations:
      - method: POST
        name: sendvisited
        description: Record a page visit event
        call: ironclad-clickwrap.sendvisited
        outputParameters:
        - type: object
          mapping: $.
    - path: /retrieve/latest
      name: retrievelatest
      operations:
      - method: GET
        name: retrievelatest
        description: Retrieve the latest acceptance state for a signer
        call: ironclad-clickwrap.retrievelatest
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: ironclad-clickwrap-mcp
    transport: http
    description: MCP adapter for Ironclad Clickwrap API for AI agent use.
    tools:
    - name: listsites
      description: List sites
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: ironclad-clickwrap.listsites
      outputParameters:
      - type: object
        mapping: $.
    - name: getsite
      description: Get a site
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: ironclad-clickwrap.getsite
      outputParameters:
      - type: object
        mapping: $.
    - name: listgroups
      description: List clickwrap groups
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: ironclad-clickwrap.listgroups
      with:
        sid: tools.sid
      inputParameters:
      - name: sid
        type: integer
        description: Site ID filter.
      outputParameters:
      - type: object
        mapping: $.
    - name: getgroup
      description: Get a clickwrap group
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: ironclad-clickwrap.getgroup
      outputParameters:
      - type: object
        mapping: $.
    - name: listcontracts
      description: List contracts
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: ironclad-clickwrap.listcontracts
      outputParameters:
      - type: object
        mapping: $.
    - name: getcontract
      description: Get a contract
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: ironclad-clickwrap.getcontract
      outputParameters:
      - type: object
        mapping: $.
    - name: listsigners
      description: List signers
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: ironclad-clickwrap.listsigners
      outputParameters:
      - type: object
        mapping: $.
    - name: getsigner
      description: Get a signer
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: ironclad-clickwrap.getsigner
      with:
        signerId: tools.signerId
      inputParameters:
      - name: signerId
        type: string
        description: signerId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: sendagreed
      description: Record an agreement acceptance event
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: ironclad-clickwrap.sendagreed
      outputParameters:
      - type: object
        mapping: $.
    - name: senddisplayed
      description: Record a contract display event
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: ironclad-clickwrap.senddisplayed
      outputParameters:
      - type: object
        mapping: $.
    - name: sendvisited
      description: Record a page visit event
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: ironclad-clickwrap.sendvisited
      outputParameters:
      - type: object
        mapping: $.
    - name: retrievelatest
      description: Retrieve the latest acceptance state for a signer
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: ironclad-clickwrap.retrievelatest
      with:
        sig: tools.sig
        gkey: tools.gkey
      inputParameters:
      - name: sig
        type: string
        description: Signer identifier.
        required: true
      - name: gkey
        type: string
        description: Group key.
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    IRONCLAD_CLICKWRAP_TOKEN: IRONCLAD_CLICKWRAP_TOKEN