Api Endpoint

Forest Packages

Fingerprint the normalized metadata state of one public GitHub release and optionally compare it with a caller-provided previous SHA-256 hash. Forest uses the existing bounded release lookup and does not download assets, inspect repository contents or mutate GitHub state. Base mainnet USDC

Open interactive test console

Offering

Provider
http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run
Method
POST
Offering type
Api Endpoint
Transport type
http
Category
Development
Delivery
Not provided
Pricing model
Not provided
x402 version
2

Endpoint context

URL
https://http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/release/changed
MIME type
Not provided
First seen
2026-10-16T01:50:45.949Z
Last seen
Tags
release, GitHub, change-detection

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
Raw x402 terms
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "2000",
    "payTo": "0xb48D918151311F982d542eF5C84cc1cd54CFf7a9"
  }
]

Observed health

Status
Reachable
Latest latency
263 ms
Average latency
502 ms
HTTP status
405
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

{
  "additionalProperties": false,
  "properties": {
    "body": {
      "additionalProperties": false,
      "properties": {
        "allow_prerelease": {
          "description": "Public allow prerelease value used to scope this lookup.",
          "type": "boolean"
        },
        "previous_hash": {
          "description": "Earlier result hash used to detect a material change.",
          "pattern": "^[a-fA-F0-9]{64}$",
          "type": [
            "string",
            "null"
          ]
        },
        "release": {
          "description": "Release identifier used to resolve a public asset.",
          "maxLength": 128,
          "minLength": 1,
          "type": "string"
        },
        "repository": {
          "description": "Public owner/name repository to inspect.",
          "maxLength": 300,
          "minLength": 3,
          "type": "string"
        }
      },
      "required": [
        "repository"
      ],
      "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 schema

{
  "properties": {
    "example": {
      "additionalProperties": false,
      "properties": {
        "capability": {
          "const": "release.changed",
          "description": "Public capability value used to scope this lookup."
        },
        "data": {
          "additionalProperties": false,
          "description": "Public data value used to scope this lookup.",
          "properties": {
            "allow_prerelease": {
              "description": "Public allow prerelease value used to scope this lookup.",
              "type": "boolean"
            },
            "changed": {
              "description": "Public changed value used to scope this lookup.",
              "type": [
                "boolean",
                "null"
              ]
            },
            "fingerprint_fields": {
              "description": "Public fingerprint fields value used to scope this lookup.",
              "items": {
                "enum": [
                  "tag",
                  "name",
                  "draft",
                  "prerelease",
                  "published_at",
                  "asset_count"
                ]
              },
              "maxItems": 6,
              "minItems": 6,
              "type": "array"
            },
            "new_hash": {
              "description": "Public new hash value used to scope this lookup.",
              "pattern": "^[a-fA-F0-9]{64}$",
              "type": "string"
            },
            "previous_hash": {
              "description": "Earlier result hash used to detect a material change.",
              "type": [
                "string",
                "null"
              ]
            },
            "release": {
              "additionalProperties": false,
              "description": "Release identifier used to resolve a public asset.",
              "properties": {
                "asset_count": {
                  "description": "Public asset count value used to scope this lookup.",
                  "minimum": 0,
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "draft": {
                  "description": "Public draft value used to scope this lookup.",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": {
                  "description": "Public DNS hostname to resolve.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "prerelease": {
                  "description": "Public prerelease value used to scope this lookup.",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "published_at": {
                  "description": "Public published at value used to scope this lookup.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "tag": {
                  "description": "Mutable image tag whose current state should be resolved.",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "tag",
                "name",
                "draft",
                "prerelease",
                "published_at",
                "asset_count"
              ],
              "type": "object"
            },
            "repository": {
              "description": "Public owner/name repository to inspect.",
              "type": "string"
            },
            "requested_release": {
              "description": "Public requested release value used to scope this lookup.",
              "type": "string"
            },
            "scope": {
              "const": "github_release_metadata_only_no_asset_download",
              "description": "Public scope value used to scope this lookup."
            }
          },
          "required": [
            "repository",
            "requested_release",
            "allow_prerelease",
            "changed",
            "previous_hash",
            "new_hash",
            "release",
            "fingerprint_fields",
            "scope"
          ],
          "type": "object"
        },
        "meta": {
          "additionalProperties": false,
          "description": "Public meta value used to scope this lookup.",
          "properties": {
            "cache": {
              "description": "Public cache value used to scope this lookup.",
              "enum": [
                "hit",
                "miss",
                "bypass"
              ]
            },
            "checked_at": {
              "description": "Public checked at value used to scope this lookup.",
              "type": "string"
            },
            "duration_ms": {
              "description": "Public duration ms value used to scope this lookup.",
              "minimum": 0,
              "type": "integer"
            },
            "provider": {
              "description": "Public provider value used to scope this lookup.",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "required": [
            "provider",
            "checked_at",
            "cache",
            "duration_ms"
          ],
          "type": "object"
        },
        "ok": {
          "const": true,
          "description": "Public ok value used to scope this lookup."
        },
        "version": {
          "const": "1",
          "description": "Package version whose public metadata should be checked."
        }
      },
      "required": [
        "ok",
        "capability",
        "version",
        "data",
        "meta"
      ],
      "type": "object"
    },
    "type": {
      "type": "string"
    }
  },
  "required": [
    "type"
  ],
  "type": "object"
}