seismic-agent

Real-time global earthquake data from USGS. Track seismic activity, search by region, and get detailed quake reports.

  • 6 Entrypoints
  • v1.0.0 Version
  • Enabled Payments
seismic-agent-production.up.railway.app

Entrypoints

Explore the capabilities exposed by this agent. Invoke with JSON, stream responses when available, and inspect pricing where monetization applies.

overview

Invoke

Free overview - significant earthquakes from the past week. Try before you buy!

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/overview/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://seismic-agent-production.up.railway.app/entrypoints/overview/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {}
    }
  '

lookup

Invoke

Get detailed information about a specific earthquake by its USGS event ID

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/lookup/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "eventId": {
      "type": "string",
      "description": "USGS event ID (e.g., us7000rm3k)"
    }
  },
  "required": [
    "eventId"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://seismic-agent-production.up.railway.app/entrypoints/lookup/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "eventId": "<USGS event ID (e.g., us7000rm3k)>"
      }
    }
  '

search

Invoke

Search earthquakes by magnitude, time range, and geographic bounds

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/search/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "minMagnitude": {
      "default": 4,
      "description": "Minimum magnitude (0-10)",
      "type": "number"
    },
    "maxMagnitude": {
      "description": "Maximum magnitude",
      "type": "number"
    },
    "startTime": {
      "description": "Start date (ISO format, e.g., 2026-01-01)",
      "type": "string"
    },
    "endTime": {
      "description": "End date (ISO format)",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "description": "Max results (1-100)",
      "type": "number"
    },
    "minLatitude": {
      "description": "Southern boundary (-90 to 90)",
      "type": "number"
    },
    "maxLatitude": {
      "description": "Northern boundary",
      "type": "number"
    },
    "minLongitude": {
      "description": "Western boundary (-180 to 180)",
      "type": "number"
    },
    "maxLongitude": {
      "description": "Eastern boundary",
      "type": "number"
    }
  },
  "required": [
    "minMagnitude",
    "limit"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://seismic-agent-production.up.railway.app/entrypoints/search/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "minMagnitude": 0,
        "limit": 0
      }
    }
  '

top

Invoke

Get the strongest earthquakes from the past 30 days, sorted by magnitude

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/top/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "minMagnitude": {
      "default": 5,
      "description": "Minimum magnitude filter",
      "type": "number"
    },
    "limit": {
      "default": 10,
      "description": "Number of results (1-50)",
      "type": "number"
    },
    "period": {
      "default": "month",
      "description": "Time period",
      "type": "string",
      "enum": [
        "day",
        "week",
        "month"
      ]
    }
  },
  "required": [
    "minMagnitude",
    "limit",
    "period"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://seismic-agent-production.up.railway.app/entrypoints/top/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "minMagnitude": 0,
        "limit": 0,
        "period": "day"
      }
    }
  '

nearby

Invoke

Find earthquakes within a radius of a location (lat/lon)

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/nearby/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "latitude": {
      "type": "number",
      "description": "Center latitude (-90 to 90)"
    },
    "longitude": {
      "type": "number",
      "description": "Center longitude (-180 to 180)"
    },
    "radiusKm": {
      "default": 500,
      "description": "Search radius in kilometers (max 20000)",
      "type": "number"
    },
    "minMagnitude": {
      "default": 2.5,
      "description": "Minimum magnitude",
      "type": "number"
    },
    "limit": {
      "default": 20,
      "description": "Max results",
      "type": "number"
    }
  },
  "required": [
    "latitude",
    "longitude",
    "radiusKm",
    "minMagnitude",
    "limit"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://seismic-agent-production.up.railway.app/entrypoints/nearby/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "latitude": 0,
        "longitude": 0,
        "radiusKm": 0,
        "minMagnitude": 0,
        "limit": 0
      }
    }
  '

report

Invoke

Comprehensive seismic activity report for a region with statistics and recent activity

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/report/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "region": {
      "type": "string",
      "enum": [
        "california",
        "alaska",
        "hawaii",
        "japan",
        "indonesia",
        "mediterranean",
        "mexico",
        "south-america",
        "philippines",
        "global"
      ],
      "description": "Predefined region for analysis"
    }
  },
  "required": [
    "region"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://seismic-agent-production.up.railway.app/entrypoints/report/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "region": "california"
      }
    }
  '

Client Example: x402-fetch

Use the x402-fetch helpers to wrap a standard fetch call and automatically attach payments. This script loads configuration from .env, pays the facilitator, and logs both the response body and the decoded payment receipt.

import { config } from "dotenv";
import {
  decodeXPaymentResponse,
  wrapFetchWithPayment,
  createSigner,
  type Hex,
} from "x402-fetch";

config();

const privateKey = process.env.AGENT_WALLET_PRIVATE_KEY as Hex | string;
const agentUrl = process.env.AGENT_URL as string; // e.g. https://agent.example.com
const endpointPath = process.env.ENDPOINT_PATH as string; // e.g. /entrypoints/echo/invoke
const url = `${agentUrl}${endpointPath}`;

if (!agentUrl || !privateKey || !endpointPath) {
  console.error("Missing required environment variables");
  console.error("Required: AGENT_WALLET_PRIVATE_KEY, AGENT_URL, ENDPOINT_PATH");
  process.exit(1);
}

/**
 * Demonstrates paying for a protected resource using x402-fetch.
 *
 * Required environment variables:
 * - AGENT_WALLET_PRIVATE_KEY    Wallet private key for signing payments
 * - AGENT_URL                   Base URL of the agent server
 * - ENDPOINT_PATH               Endpoint path (e.g. /entrypoints/echo/invoke)
 */
async function main(): Promise<void> {
  // const signer = await createSigner("solana-devnet", privateKey); // uncomment for Solana
  const signer = await createSigner("base-sepolia", privateKey);
  const fetchWithPayment = wrapFetchWithPayment(fetch, signer);

  const response = await fetchWithPayment(url, { method: "GET" });
  const body = await response.json();
  console.log(body);

  const paymentResponse = decodeXPaymentResponse(
    response.headers.get("x-payment-response")!
  );
  console.log(paymentResponse);
}

main().catch((error) => {
  console.error(error?.response?.data?.error ?? error);
  process.exit(1);
});

Manifest

Loading…
Fetching agent card…