{
  "x402Version": 2,
  "id": 36657,
  "slug": "36657",
  "resource": "https://visionflow-match.saastemly.com/v1/feature-match",
  "description": "Match local features between a pattern image and a larger image: detects ORB or SIFT keypoints in both, matches them with a brute-force matcher and Lowe's ratio test (OpenCV BFMatcher.knnMatch), and returns the good matches as point pairs sorted by distance. Use it to see which parts of a pattern are present and where, even when the pattern is scaled or rotated; for the pattern's outline use /v1/homography.",
  "type": "http",
  "serviceName": "VisionFlow Match",
  "resourceType": "AI Inference",
  "accepts": [
    {
      "scheme": "exact",
      "network": "eip155:8453",
      "payTo": "0x274Ee965605473bC9C70Ec976fA0Dd1DD8bC3A04",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "amount": "4000",
      "amountUsd": 0.004,
      "maxTimeoutSeconds": 300
    }
  ],
  "outputSchema": {
    "properties": {
      "example": {
        "type": "object"
      },
      "type": {
        "type": "string"
      }
    },
    "required": [
      "type"
    ],
    "type": "object"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "body": {
            "detector": "sift",
            "image": "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",
            "max_matches": 10,
            "ratio": 0.75,
            "template": "iVBORw0KGgoAAAANSUhEUgAAAEAAAAAwCAAAAACEICPDAAADAklEQVRIx61UT0gUURz+Znfazdyx0Ex3U1smVqJCKwn6c5FCCaKDoYdOEh7WywQiQh6UisKgS7QgLLSXQrpIdPTPISIiiAqlSHJptbINRTR1E1m3fc0b58/OOjM7rv6YefPmzft9v+/73pvHPIUUftq0ARGYxSjQIHWiysggbRzyyzS2HFJ+twLgzzV9VOlEM/Obo46MOZYKoCjQ5YsS/PYI0Jg0yBc98PvptUHAUsEhCSGqz5dM1MpHctMI6PPhsGl5A0oN+OsA9BYGg1kIJvlmDILShVAoJA+MqW1Alx9grXjfS8Px0Iklgmb3shvJmaqkC31YZV3N6hzmtfEmoPXDV4uc6yvVB98TYKWmdOGL1/2r5zmZiVfe0Cw1YxCWRNytQM9ExWlg+WMxPlV7gZ6TX9NcfcaKqACRtsgmhLT4vPhdENt2rzORLge45JrPM/02DiEa2JjH6vdAr4ZQNgt0uP+tdYj9xflHvg/fLg0nnGyyyEO/hjAk5NoHZcAel/f8C7E7XOsDQ5AACDzK95AeYPEVxqfoBCkIkTrsrr/BqVmkhi4DvoUBYJX0CsLhswKtLugkpH78SU3UyekgjAjBUBHk5e4SvCk8BZS74pUkfq4gLUbKKSiFZYDV/jXHZOJnnSaAofcC8OQWi5Er4kvfkegYCvbh+hLeDTS1btoHgzWB+zeZXsKoHGjM0vXYGOkTV6WppL/Lo3dK9oAk57l5bh2qCYxqJOS/ohtoOVp2OytfYfB5eGnveqqg5TGRUhUeeg6GITM43l7ceeFMZ5VSmqhUwhoHKwCgHvuPZThIMkhYIigAhSfAezXtDKPmh61PGhsnkrUIO0eaghDLF0BGiBki2DtUJQQ+bwmailjeANtaBYVCmDeiwMI+wtYYcAZjvH0AjqOXQcS2ZyJvlwFnqmIThSwT78jPB7TpyncZ5yw1xHIs45x0t/4eaazNayOp1Rtt2ugwyRcPl3GTmrHt/Qt8FglTAFMKvJWJJv4/079eM2dwYCd/51pzG3f0QPkPRu/dDgU3nB4AAAAASUVORK5CYII="
          },
          "bodyType": "json",
          "method": "POST",
          "type": "http"
        },
        "output": {
          "example": {
            "detector": "sift",
            "goodMatches": 21,
            "image": {
              "height": 96,
              "width": 128
            },
            "imageKeypoints": 144,
            "matches": [
              {
                "distance": 48.43,
                "image": {
                  "x": 79.14,
                  "y": 34.19
                },
                "template": {
                  "x": 36.18,
                  "y": 11.07
                }
              },
              {
                "distance": 50.59,
                "image": {
                  "x": 75.49,
                  "y": 35.26
                },
                "template": {
                  "x": 32.93,
                  "y": 11.54
                }
              },
              {
                "distance": 51.06,
                "image": {
                  "x": 65.2,
                  "y": 35.06
                },
                "template": {
                  "x": 23.66,
                  "y": 9.62
                }
              },
              {
                "distance": 58.85,
                "image": {
                  "x": 65.2,
                  "y": 35.06
                },
                "template": {
                  "x": 23.66,
                  "y": 9.62
                }
              },
              {
                "distance": 73.48,
                "image": {
                  "x": 97.28,
                  "y": 61.83
                },
                "template": {
                  "x": 48.35,
                  "y": 38.99
                }
              },
              {
                "distance": 75.19,
                "image": {
                  "x": 87.36,
                  "y": 53.5
                },
                "template": {
                  "x": 40.7,
                  "y": 29.71
                }
              },
              {
                "distance": 85.85,
                "image": {
                  "x": 81.02,
                  "y": 48.02
                },
                "template": {
                  "x": 35.88,
                  "y": 23.88
                }
              },
              {
                "distance": 95.79,
                "image": {
                  "x": 87.36,
                  "y": 53.5
                },
                "template": {
                  "x": 40.7,
                  "y": 29.71
                }
              },
              {
                "distance": 97.09,
                "image": {
                  "x": 50,
                  "y": 40.09
                },
                "template": {
                  "x": 9.2,
                  "y": 11.9
                }
              },
              {
                "distance": 97.2,
                "image": {
                  "x": 88.05,
                  "y": 40.69
                },
                "template": {
                  "x": 43.09,
                  "y": 18.35
                }
              }
            ],
            "ratio": 0.75,
            "template": {
              "height": 48,
              "width": 64
            },
            "templateKeypoints": 33
          },
          "type": "json"
        }
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "input": {
            "additionalProperties": false,
            "properties": {
              "body": {
                "properties": {
                  "detector": {
                    "description": "Keypoint detector and descriptor: orb (default, fast, binary descriptors, Hamming distance) or sift (slower, better with scale changes, L2 distance)",
                    "enum": [
                      "orb",
                      "sift"
                    ],
                    "type": "string"
                  },
                  "image": {
                    "description": "Base64 of a PNG, JPEG, BMP or WebP file (a data: URI also works). At most 4 million pixels and about 2 MB. Alpha is dropped.",
                    "type": "string"
                  },
                  "max_features": {
                    "description": "Most keypoints kept per image, 100-5000 (default 2000)",
                    "type": "integer"
                  },
                  "max_matches": {
                    "description": "Most matches listed, 1-200 (default 50); goodMatches always counts all of them",
                    "type": "integer"
                  },
                  "ratio": {
                    "description": "Lowe's ratio test threshold, 0.5-0.95 (default 0.75): a match is kept when its distance is below ratio times the second-best distance",
                    "type": "number"
                  },
                  "template": {
                    "description": "Base64 of the pattern to find, same formats. At most 1 million pixels and about 1 MB.",
                    "type": "string"
                  }
                },
                "required": [
                  "image",
                  "template"
                ]
              },
              "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": {
            "properties": {
              "example": {
                "type": "object"
              },
              "type": {
                "type": "string"
              }
            },
            "required": [
              "type"
            ],
            "type": "object"
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      }
    }
  },
  "tags": [
    "opencv",
    "template-matching",
    "screenshot",
    "computer-vision",
    "homography",
    "bazaar"
  ],
  "sourceHost": "visionflow-match.saastemly.com",
  "lastUpdated": "2026-10-08T17:30:51.588Z",
  "quality": {
    "calls30d": 4,
    "uniquePayers30d": 4,
    "lastCalledAt": "2026-10-08T17:30:50.85Z"
  },
  "metadata": {
    "serviceName": "VisionFlow Match",
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "detector": "sift",
              "image": "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",
              "max_matches": 10,
              "ratio": 0.75,
              "template": "iVBORw0KGgoAAAANSUhEUgAAAEAAAAAwCAAAAACEICPDAAADAklEQVRIx61UT0gUURz+Znfazdyx0Ex3U1smVqJCKwn6c5FCCaKDoYdOEh7WywQiQh6UisKgS7QgLLSXQrpIdPTPISIiiAqlSHJptbINRTR1E1m3fc0b58/OOjM7rv6YefPmzft9v+/73pvHPIUUftq0ARGYxSjQIHWiysggbRzyyzS2HFJ+twLgzzV9VOlEM/Obo46MOZYKoCjQ5YsS/PYI0Jg0yBc98PvptUHAUsEhCSGqz5dM1MpHctMI6PPhsGl5A0oN+OsA9BYGg1kIJvlmDILShVAoJA+MqW1Alx9grXjfS8Px0Iklgmb3shvJmaqkC31YZV3N6hzmtfEmoPXDV4uc6yvVB98TYKWmdOGL1/2r5zmZiVfe0Cw1YxCWRNytQM9ExWlg+WMxPlV7gZ6TX9NcfcaKqACRtsgmhLT4vPhdENt2rzORLge45JrPM/02DiEa2JjH6vdAr4ZQNgt0uP+tdYj9xflHvg/fLg0nnGyyyEO/hjAk5NoHZcAel/f8C7E7XOsDQ5AACDzK95AeYPEVxqfoBCkIkTrsrr/BqVmkhi4DvoUBYJX0CsLhswKtLugkpH78SU3UyekgjAjBUBHk5e4SvCk8BZS74pUkfq4gLUbKKSiFZYDV/jXHZOJnnSaAofcC8OQWi5Er4kvfkegYCvbh+hLeDTS1btoHgzWB+zeZXsKoHGjM0vXYGOkTV6WppL/Lo3dK9oAk57l5bh2qCYxqJOS/ohtoOVp2OytfYfB5eGnveqqg5TGRUhUeeg6GITM43l7ceeFMZ5VSmqhUwhoHKwCgHvuPZThIMkhYIigAhSfAezXtDKPmh61PGhsnkrUIO0eaghDLF0BGiBki2DtUJQQ+bwmailjeANtaBYVCmDeiwMI+wtYYcAZjvH0AjqOXQcS2ZyJvlwFnqmIThSwT78jPB7TpyncZ5yw1xHIs45x0t/4eaazNayOp1Rtt2ugwyRcPl3GTmrHt/Qt8FglTAFMKvJWJJv4/079eM2dwYCd/51pzG3f0QPkPRu/dDgU3nB4AAAAASUVORK5CYII="
            },
            "bodyType": "json",
            "method": "POST",
            "type": "http"
          },
          "output": {
            "example": {
              "detector": "sift",
              "goodMatches": 21,
              "image": {
                "height": 96,
                "width": 128
              },
              "imageKeypoints": 144,
              "matches": [
                {
                  "distance": 48.43,
                  "image": {
                    "x": 79.14,
                    "y": 34.19
                  },
                  "template": {
                    "x": 36.18,
                    "y": 11.07
                  }
                },
                {
                  "distance": 50.59,
                  "image": {
                    "x": 75.49,
                    "y": 35.26
                  },
                  "template": {
                    "x": 32.93,
                    "y": 11.54
                  }
                },
                {
                  "distance": 51.06,
                  "image": {
                    "x": 65.2,
                    "y": 35.06
                  },
                  "template": {
                    "x": 23.66,
                    "y": 9.62
                  }
                },
                {
                  "distance": 58.85,
                  "image": {
                    "x": 65.2,
                    "y": 35.06
                  },
                  "template": {
                    "x": 23.66,
                    "y": 9.62
                  }
                },
                {
                  "distance": 73.48,
                  "image": {
                    "x": 97.28,
                    "y": 61.83
                  },
                  "template": {
                    "x": 48.35,
                    "y": 38.99
                  }
                },
                {
                  "distance": 75.19,
                  "image": {
                    "x": 87.36,
                    "y": 53.5
                  },
                  "template": {
                    "x": 40.7,
                    "y": 29.71
                  }
                },
                {
                  "distance": 85.85,
                  "image": {
                    "x": 81.02,
                    "y": 48.02
                  },
                  "template": {
                    "x": 35.88,
                    "y": 23.88
                  }
                },
                {
                  "distance": 95.79,
                  "image": {
                    "x": 87.36,
                    "y": 53.5
                  },
                  "template": {
                    "x": 40.7,
                    "y": 29.71
                  }
                },
                {
                  "distance": 97.09,
                  "image": {
                    "x": 50,
                    "y": 40.09
                  },
                  "template": {
                    "x": 9.2,
                    "y": 11.9
                  }
                },
                {
                  "distance": 97.2,
                  "image": {
                    "x": 88.05,
                    "y": 40.69
                  },
                  "template": {
                    "x": 43.09,
                    "y": 18.35
                  }
                }
              ],
              "ratio": 0.75,
              "template": {
                "height": 48,
                "width": 64
              },
              "templateKeypoints": 33
            },
            "type": "json"
          }
        },
        "schema": {
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "properties": {
            "input": {
              "additionalProperties": false,
              "properties": {
                "body": {
                  "properties": {
                    "detector": {
                      "description": "Keypoint detector and descriptor: orb (default, fast, binary descriptors, Hamming distance) or sift (slower, better with scale changes, L2 distance)",
                      "enum": [
                        "orb",
                        "sift"
                      ],
                      "type": "string"
                    },
                    "image": {
                      "description": "Base64 of a PNG, JPEG, BMP or WebP file (a data: URI also works). At most 4 million pixels and about 2 MB. Alpha is dropped.",
                      "type": "string"
                    },
                    "max_features": {
                      "description": "Most keypoints kept per image, 100-5000 (default 2000)",
                      "type": "integer"
                    },
                    "max_matches": {
                      "description": "Most matches listed, 1-200 (default 50); goodMatches always counts all of them",
                      "type": "integer"
                    },
                    "ratio": {
                      "description": "Lowe's ratio test threshold, 0.5-0.95 (default 0.75): a match is kept when its distance is below ratio times the second-best distance",
                      "type": "number"
                    },
                    "template": {
                      "description": "Base64 of the pattern to find, same formats. At most 1 million pixels and about 1 MB.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "image",
                    "template"
                  ]
                },
                "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": {
              "properties": {
                "example": {
                  "type": "object"
                },
                "type": {
                  "type": "string"
                }
              },
              "required": [
                "type"
              ],
              "type": "object"
            }
          },
          "required": [
            "input"
          ],
          "type": "object"
        }
      }
    }
  },
  "liveness": {
    "reliability": null
  },
  "verified": false,
  "featured": false,
  "provider": {
    "host": "visionflow-match.saastemly.com",
    "manifest_name": "visionflow-match.saastemly.com",
    "source": "cdp-mirror",
    "source_manifest_url": "https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources",
    "submitted_at": "2026-10-14T01:15:01.050Z"
  },
  "exampleResponse": {
    "example": {},
    "type": "string"
  }
}