{
  "openapi": "3.0.1",
  "info": {
    "title": "FDSN Seismic Extractor",
    "description": "Point at ANY seismic data center (USGS, INGV, GEOFON, IRIS, GeoNet…) and pull earthquakes or station metadata via the uniform FDSN web-services API. Query one center, a list, or all via the fdsn.org registry. Flat rows + lossless raw. Pay per record.",
    "version": "0.1",
    "x-build-id": "Q3rAmfBTp8JvB2eKy"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/datamule~fdsn-seismic-extractor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-datamule-fdsn-seismic-extractor",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/datamule~fdsn-seismic-extractor/runs": {
      "post": {
        "operationId": "runs-sync-datamule-fdsn-seismic-extractor",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/datamule~fdsn-seismic-extractor/run-sync": {
      "post": {
        "operationId": "run-sync-datamule-fdsn-seismic-extractor",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "dataService": {
            "title": "Data service",
            "enum": [
              "event",
              "station"
            ],
            "type": "string",
            "description": "Which FDSN web service to query: event (earthquakes / seismic events) or station (network / station / channel metadata). Both speak the identical FDSN grammar on every data center.",
            "default": "event"
          },
          "center": {
            "title": "Data center(s)",
            "type": "string",
            "description": "Which seismic data center(s) to query, by name from the fdsn.org registry (case-insensitive; common aliases work — iris, usgs, ingv, geofon, geonet, scedc, ncedc, emsc, isc, auspass…). One name (USGS), a comma-separated list (INGV,GEOFON,EMSC), or all to query every center that offers the chosen service. Leave EMPTY (and leave Service URL empty) to run discovery — list every center + its live service URL. For events, reliable centers include USGS, INGV, GEOFON, EMSC, ISC, GeoNet, SCEDC, NCEDC."
          },
          "serviceUrl": {
            "title": "Explicit service URL (advanced)",
            "type": "string",
            "description": "Bypass the registry and point directly at a center's FDSN service — either a full endpoint (https://earthquake.usgs.gov/fdsnws/event/1/query, trailing /query optional) or a bare host (https://earthquake.usgs.gov), for which the standard /fdsnws/{service}/1/query path is built. Overrides Data center. Use this for a center not in the registry, or a private mirror."
          },
          "listCentersOnly": {
            "title": "List data centers only (discovery)",
            "type": "boolean",
            "description": "When on, the actor ignores the query parameters and only maps the fdsn.org registry — one row per (data center, event|station service) with the center's full name, website and live service URL. This is also the default when both Data center and Service URL are empty. Use it first to discover valid center names, then set Data center to extract.",
            "default": false
          },
          "level": {
            "title": "Station level (station service)",
            "enum": [
              "network",
              "station",
              "channel",
              "response"
            ],
            "type": "string",
            "description": "For the station service only: how much metadata to return — network, station, channel or response. More detail = more columns and more rows (one row per channel epoch at channel level). Ignored for the event service.",
            "default": "station"
          },
          "format": {
            "title": "Event output format",
            "enum": [
              "text",
              "geojson"
            ],
            "type": "string",
            "description": "The wire format to request for the EVENT service: text (the uniform FDSN pipe-delimited format parsed on every center — recommended) or geojson (richer per-event properties from centers that support it, e.g. USGS and INGV). The station service is always fetched as text (no GeoJSON exists for it). QuakeML/StationXML are never requested — this actor returns flat rows.",
            "default": "text"
          },
          "starttime": {
            "title": "Start time",
            "type": "string",
            "description": "FDSN start of the time window (ISO 8601). A bare date (2024-01-01) is expanded to 2024-01-01T00:00:00 automatically (several centers require the full form). For events this bounds origin time; for stations it bounds the metadata epoch."
          },
          "endtime": {
            "title": "End time",
            "type": "string",
            "description": "FDSN end of the time window (ISO 8601). A bare date is expanded to T00:00:00. Keep the window modest for busy catalogs (a global M0+ event query can return millions of rows — combine with Min magnitude and Max records)."
          },
          "minMagnitude": {
            "title": "Min magnitude (event)",
            "type": "string",
            "description": "Only return events at or above this magnitude. Strongly recommended on wide time windows to keep result counts (and cost) sane. Ignored by the station service."
          },
          "maxMagnitude": {
            "title": "Max magnitude (event)",
            "type": "string",
            "description": "Only return events at or below this magnitude (event service only)."
          },
          "minLatitude": {
            "title": "Min latitude (bounding box)",
            "type": "string",
            "description": "Southern edge of a rectangular search area, degrees (-90..90). Combine min/max latitude + longitude for a bounding-box search. Works for both event and station."
          },
          "maxLatitude": {
            "title": "Max latitude (bounding box)",
            "type": "string",
            "description": "Northern edge of a rectangular search area, degrees (-90..90)."
          },
          "minLongitude": {
            "title": "Min longitude (bounding box)",
            "type": "string",
            "description": "Western edge of a rectangular search area, degrees (-180..180)."
          },
          "maxLongitude": {
            "title": "Max longitude (bounding box)",
            "type": "string",
            "description": "Eastern edge of a rectangular search area, degrees (-180..180)."
          },
          "latitude": {
            "title": "Center latitude (radius search)",
            "type": "string",
            "description": "Latitude of the center point for a radial search. Pair with Longitude + Max radius (and optional Min radius) instead of a bounding box."
          },
          "longitude": {
            "title": "Center longitude (radius search)",
            "type": "string",
            "description": "Longitude of the center point for a radial search."
          },
          "maxRadius": {
            "title": "Max radius (degrees)",
            "type": "string",
            "description": "Maximum great-circle distance from the center point, in degrees, for a radial search."
          },
          "minRadius": {
            "title": "Min radius (degrees)",
            "type": "string",
            "description": "Minimum great-circle distance from the center point, in degrees (annular search)."
          },
          "minDepth": {
            "title": "Min depth (km, event)",
            "type": "string",
            "description": "Only return events at or below this depth in kilometres (event service only)."
          },
          "maxDepth": {
            "title": "Max depth (km, event)",
            "type": "string",
            "description": "Only return events at or above this depth in kilometres (event service only)."
          },
          "network": {
            "title": "Network code (station)",
            "type": "string",
            "description": "FDSN network code filter for the station service, e.g. IU, IV, NZ. Comma lists and wildcards (* ?) are supported by most centers. Ignored for events."
          },
          "station": {
            "title": "Station code (station)",
            "type": "string",
            "description": "Station code filter for the station service, e.g. ANMO. Comma lists and wildcards supported. Ignored for events."
          },
          "location": {
            "title": "Location code (station)",
            "type": "string",
            "description": "Location code filter for the station service (e.g. 00, 10, or -- for blank). Ignored for events."
          },
          "channel": {
            "title": "Channel code (station)",
            "type": "string",
            "description": "Channel code filter for the station service, e.g. BHZ, HH?. Comma lists and wildcards supported. Ignored for events."
          },
          "orderBy": {
            "title": "Order by (event)",
            "type": "string",
            "description": "Sort order for the event service — time, time-asc, magnitude or magnitude-asc (accepted values vary slightly by center). Ignored for stations."
          },
          "maxRecords": {
            "title": "Max records (total)",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum total number of records to emit across all queried centers (events, stations or discovery rows). Each emitted record is one billable event. Default 25.",
            "default": 25
          },
          "extraParams": {
            "title": "Extra FDSN query params",
            "type": "object",
            "description": "Any additional FDSN query parameters as a JSON object, passed straight through, e.g. {\"includeallmagnitudes\": \"true\", \"eventtype\": \"earthquake\"} for events or {\"includerestricted\": \"false\"} for stations. Explicit fields above take precedence. Note: some centers reject certain params (GeoNet rejects limit) and will return their own error."
          },
          "bearerToken": {
            "title": "Bearer token (optional)",
            "type": "string",
            "description": "Optional bearer token for a key-gated / restricted FDSN deployment. Sent as Authorization: Bearer *** — NOT needed for the public centers (USGS, INGV, GEOFON, IRIS, …). Never logged."
          },
          "extraHeaders": {
            "title": "Extra request headers",
            "type": "object",
            "description": "Optional extra HTTP headers to send with every request, as a JSON object, e.g. {\"x-api-key\": \"...\"} for a center behind an API gateway. Leave empty for the public centers."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}