Api Endpoint

Countersignatory

One screened human answers an approval, verification or judgment task: approve or reject, true or false, or a label, with a reason and the responder's disclosed identity. $1.25 at a 24-hour deadline. Answered by hand within the deadline or refunded in full automatically. Refused: CAPTCHAs, logins, third-party contact, medical, legal or financial advice.

Open interactive test console

Offering

Provider
countersignatory.com
Method
POST
Offering type
Api Endpoint
Transport type
http
Category
General Utilities
Delivery
Not provided
Pricing model
Not provided
x402 version
2

Endpoint context

URL
https://countersignatory.com/v1/x402/check
MIME type
Not provided
First seen
2026-10-16T01:50:38.788Z
Last seen
Tags
human-in-the-loop, approval, Verification, judgment

Payment pricing

x402 payment terms are the authoritative price for calling this endpoint.

Payment option 1
1.25 USDC
Atomic price: 1250000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Raw x402 terms
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "1250000",
    "payTo": "0xBA753EbbD6094bF05964171eAaa6393f31641381"
  }
]

Observed health

Status
Healthy
Latest latency
158 ms
Average latency
342 ms
HTTP status
204
Last checked
Reachability
100% over 15 checks

Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.

Input schema

{
  "additionalProperties": false,
  "properties": {
    "body": {
      "additionalProperties": false,
      "oneOf": [
        {
          "properties": {
            "input": {
              "additionalProperties": false,
              "properties": {
                "action": {
                  "description": "The action the responder is asked to approve or reject.",
                  "maxLength": 2000,
                  "minLength": 1,
                  "type": "string"
                },
                "context": {
                  "description": "What the responder needs to know to decide.",
                  "maxLength": 20000,
                  "minLength": 1,
                  "type": "string"
                },
                "policy": {
                  "description": "The policy the action should be judged against.",
                  "maxLength": 20000,
                  "type": "string"
                },
                "urls": {
                  "description": "Up to 5 pages the responder may open.",
                  "items": {
                    "description": "An http or https URL.",
                    "maxLength": 2000,
                    "pattern": "^https?://",
                    "type": "string"
                  },
                  "maxItems": 5,
                  "type": "array"
                }
              },
              "required": [
                "action",
                "context"
              ],
              "type": "object"
            },
            "template": {
              "const": "approval"
            }
          }
        },
        {
          "properties": {
            "input": {
              "additionalProperties": false,
              "properties": {
                "claim": {
                  "description": "The statement to check against the evidence.",
                  "maxLength": 2000,
                  "minLength": 1,
                  "type": "string"
                },
                "evidence": {
                  "description": "A URL, or an uploaded PNG, JPEG, GIF, WebP or PDF of up to 10 MB before base64.",
                  "oneOf": [
                    {
                      "additionalProperties": false,
                      "properties": {
                        "url": {
                          "description": "An http or https URL.",
                          "maxLength": 2000,
                          "pattern": "^https?://",
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "content_type": {
                          "enum": [
                            "image/png",
                            "image/jpeg",
                            "image/gif",
                            "image/webp",
                            "application/pdf"
                          ],
                          "type": "string"
                        },
                        "data_base64": {
                          "minLength": 1,
                          "type": "string"
                        },
                        "filename": {
                          "maxLength": 200,
                          "type": "string"
                        }
                      },
                      "required": [
                        "data_base64",
                        "content_type"
                      ],
                      "type": "object"
                    }
                  ]
                },
                "instructions": {
                  "maxLength": 5000,
                  "type": "string"
                }
              },
              "required": [
                "claim",
                "evidence"
              ],
              "type": "object"
            },
            "template": {
              "const": "verification"
            }
          }
        },
        {
          "properties": {
            "input": {
              "additionalProperties": false,
              "description": "Send exactly one of item or pair. An item needs labels. A pair without labels is judged A or B.",
              "oneOf": [
                {
                  "required": [
                    "item",
                    "labels"
                  ]
                },
                {
                  "required": [
                    "pair"
                  ]
                }
              ],
              "properties": {
                "item": {
                  "description": "The one thing to label.",
                  "maxLength": 20000,
                  "minLength": 1,
                  "type": "string"
                },
                "labels": {
                  "description": "The 2 to 10 labels to choose from.",
                  "items": {
                    "maxLength": 100,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 10,
                  "minItems": 2,
                  "type": "array",
                  "uniqueItems": true
                },
                "pair": {
                  "description": "Two things to compare.",
                  "items": {
                    "maxLength": 10000,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 2,
                  "minItems": 2,
                  "type": "array"
                },
                "rubric": {
                  "maxLength": 5000,
                  "type": "string"
                }
              },
              "type": "object"
            },
            "template": {
              "const": "judgment"
            }
          }
        }
      ],
      "properties": {
        "input": {
          "description": "The task, in the shape its template takes.",
          "type": "object"
        },
        "sla_seconds": {
          "default": 86400,
          "description": "Seconds from payment to answer, at most 86400. 86400, the default, is the base price of $1.25, and a shorter deadline costs more: the 402 states the price for the deadline you send. While the founder answers alone the minimum is 3600, and an order placed between 23:00 and 07:00 Europe/London needs a deadline at or after 08:00 there. Not answered in time is refunded in full.",
          "maximum": 86400,
          "minimum": 1,
          "type": "integer"
        },
        "template": {
          "description": "approval answers approve or reject. verification answers true, false or cannot_tell. judgment answers one label.",
          "enum": [
            "approval",
            "verification",
            "judgment"
          ],
          "type": "string"
        },
        "webhook_url": {
          "description": "An https URL that receives the order on every status change.",
          "maxLength": 2000,
          "pattern": "^https://",
          "type": "string"
        }
      },
      "required": [
        "template",
        "input"
      ],
      "type": "object"
    },
    "bodyType": {
      "enum": [
        "json",
        "form-data",
        "text"
      ],
      "type": "string"
    },
    "method": {
      "enum": [
        "POST",
        "PUT",
        "PATCH"
      ],
      "type": "string"
    },
    "type": {
      "const": "http",
      "type": "string"
    }
  },
  "required": [
    "type",
    "method",
    "bodyType",
    "body"
  ],
  "type": "object"
}

Output schema

{
  "properties": {
    "example": {
      "type": "object"
    },
    "type": {
      "type": "string"
    }
  },
  "required": [
    "type"
  ],
  "type": "object"
}