Api Endpoint

Tanod imagepeek

imagepeek (Tanod) perceptual hashes: aHash, dHash, pHash, wHash, optionally compared. Use when images must be compared for near-duplicates with perceptual hashes.

Open interactive test console

Offering

Provider
tanod.dev
Method
POST
Offering type
Api Endpoint
Transport type
http
Category
Creative
Delivery
Not provided
Pricing model
Not provided
x402 version
2

Endpoint context

URL
https://tanod.dev/v1/image/hash
MIME type
application/json
First seen
2026-10-16T01:50:24.663Z
Last seen
Tags
perceptual-hash, phash, image-similarity, image, imagepeek, hash, image-resize, exif

Payment pricing

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

Payment option 1
0.002 USDC
Atomic price: 2000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Payment option 2
0.002 USDC
Atomic price: 2000 · Network: eip155:137 · Asset: USDC · Scheme: exact
Payment option 3
0.002 USDC
Atomic price: 2000 · Network: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp · Asset: USDC · Scheme: exact
Payment option 4
0.002 USDC
Atomic price: 2000000000000000 · Network: eip155:56 · Asset: USDC · Scheme: exact
Payment option 5
0.002 USDC
Atomic price: 2000 · Network: eip155:42161 · Asset: USDC · Scheme: exact
Payment option 6
0.002 USDC
Atomic price: 2000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Payment option 7
0.002 USDC
Atomic price: 2000 · Network: eip155:137 · Asset: USDC · Scheme: exact
Raw x402 terms
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "2000",
    "payTo": "0x593857A4a4F619543ea12394137C3004ce841720"
  },
  {
    "scheme": "exact",
    "network": "eip155:137",
    "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
    "amount": "2000",
    "payTo": "0x593857A4a4F619543ea12394137C3004ce841720"
  },
  {
    "scheme": "exact",
    "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
    "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "amount": "2000",
    "payTo": "RMk9k3VC8dr4hhjgFh88rGhjAbzfBzHxJJ5n2fTcqus"
  },
  {
    "scheme": "exact",
    "network": "eip155:56",
    "asset": "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",
    "amount": "2000000000000000",
    "payTo": "0x593857A4a4F619543ea12394137C3004ce841720"
  },
  {
    "scheme": "exact",
    "network": "eip155:42161",
    "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
    "amount": "2000",
    "payTo": "0x593857A4a4F619543ea12394137C3004ce841720"
  },
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "2000",
    "payTo": "0x593857A4a4F619543ea12394137C3004ce841720"
  },
  {
    "scheme": "exact",
    "network": "eip155:137",
    "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
    "amount": "2000",
    "payTo": "0x593857A4a4F619543ea12394137C3004ce841720"
  }
]

Observed health

Status
Healthy
Latest latency
2285 ms
Average latency
946 ms
HTTP status
204
Last checked
Reachability
100% over 13 checks

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

Input schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "const": "http"
    },
    "method": {
      "type": "string",
      "enum": [
        "POST"
      ]
    },
    "bodyType": {
      "type": "string",
      "enum": [
        "json",
        "form-data",
        "text"
      ]
    },
    "body": {
      "additionalProperties": false,
      "properties": {
        "url": {
          "anyOf": [
            {
              "maxLength": 2048,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Public http(s) URL of the image (at most 10 MB; private, internal and IP-literal hosts are refused); or use image_base64."
        },
        "image_base64": {
          "anyOf": [
            {
              "maxLength": 13333464,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The image as standard or url-safe base64 (at most 10 MB decoded; a data:image/...;base64, prefix is fine); or use url."
        },
        "algorithms": {
          "anyOf": [
            {
              "items": {
                "enum": [
                  "ahash",
                  "dhash",
                  "phash",
                  "whash"
                ],
                "type": "string"
              },
              "maxItems": 4,
              "minItems": 1,
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Default: all four."
        },
        "hash_size": {
          "default": 8,
          "description": "Hash grid: 8 (64-bit hashes, default) or 16 (256-bit).",
          "enum": [
            8,
            16
          ],
          "type": "integer"
        },
        "compare_url": {
          "anyOf": [
            {
              "maxLength": 2048,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A second image to compare (or compare_base64)."
        },
        "compare_base64": {
          "anyOf": [
            {
              "maxLength": 13333464,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A second image as base64 (at most 10 MB decoded; or compare_url)."
        },
        "auto_orient": {
          "default": true,
          "description": "Apply the EXIF orientation first (default true).",
          "type": "boolean"
        }
      },
      "type": "object"
    }
  },
  "required": [
    "type",
    "method",
    "bodyType",
    "body"
  ],
  "additionalProperties": false
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "body": {
          "additionalProperties": false,
          "properties": {
            "algorithms": {
              "anyOf": [
                {
                  "items": {
                    "enum": [
                      "ahash",
                      "dhash",
                      "phash",
                      "whash"
                    ],
                    "type": "string"
                  },
                  "maxItems": 4,
                  "minItems": 1,
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Default: all four."
            },
            "auto_orient": {
              "default": true,
              "description": "Apply the EXIF orientation first (default true).",
              "type": "boolean"
            },
            "compare_base64": {
              "anyOf": [
                {
                  "maxLength": 13333464,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "A second image as base64 (at most 10 MB decoded; or compare_url)."
            },
            "compare_url": {
              "anyOf": [
                {
                  "maxLength": 2048,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "A second image to compare (or compare_base64)."
            },
            "hash_size": {
              "default": 8,
              "description": "Hash grid: 8 (64-bit hashes, default) or 16 (256-bit).",
              "enum": [
                8,
                16
              ],
              "type": "integer"
            },
            "image_base64": {
              "anyOf": [
                {
                  "maxLength": 13333464,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "The image as standard or url-safe base64 (at most 10 MB decoded; a data:image/...;base64, prefix is fine); or use url."
            },
            "url": {
              "anyOf": [
                {
                  "maxLength": 2048,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Public http(s) URL of the image (at most 10 MB; private, internal and IP-literal hosts are refused); or use image_base64."
            }
          },
          "type": "object"
        },
        "bodyType": {
          "enum": [
            "json",
            "form-data",
            "text"
          ],
          "type": "string"
        },
        "method": {
          "enum": [
            "POST"
          ],
          "type": "string"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method",
        "bodyType",
        "body"
      ],
      "type": "object"
    },
    "output": {
      "properties": {
        "example": {
          "properties": {
            "bits": {
              "type": "integer"
            },
            "compare": {
              "properties": {
                "distance": {
                  "type": "object"
                },
                "likely_same": {
                  "type": "boolean"
                },
                "similarity": {
                  "type": "object"
                }
              },
              "type": "object"
            },
            "final_url": {
              "type": "string"
            },
            "hashes": {
              "type": "object"
            },
            "input": {
              "properties": {
                "animated": {
                  "type": "boolean"
                },
                "bytes": {
                  "type": "integer"
                },
                "format": {
                  "type": "string"
                },
                "frames": {
                  "type": "integer"
                },
                "has_alpha": {
                  "type": "boolean"
                },
                "height": {
                  "type": "integer"
                },
                "width": {
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "notes": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "operation": {
              "type": "string"
            },
            "source": {
              "type": "object"
            },
            "source_url": {
              "type": "string"
            }
          },
          "required": [
            "operation",
            "input",
            "notes",
            "bits",
            "hashes"
          ],
          "type": "object"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}