{"components":{"parameters":{"channel":{"description":"Select one or more SEED channel codes.\nMultiple codes are comma-separated.\nShortcut `cha` can also be used.\nWildcards are supported (`_` means any character, once; `%` means any character 0 or several times.)\n","examples":{"%Z":{"description":"Select all channel ending with Z"},"HHZ":{"description":"Select the HNE channel code","value":"HHZ"},"HHZ,BHZ":{"description":"Select two channel codes","value":["HHZ","BHZ"]}},"explode":false,"in":"query","name":"channel","required":false,"schema":{"items":{"example":"HHZ","type":"string"},"type":"array"}},"endtime":{"description":"Limit results to time series samples on or after the specified end time. If not specified, timezone is assumed as UTC. Shortcut `end`","examples":{"2025-11-20T12:38:14":{"description":"seconds without timezone (UTC is assumed)","value":"2025-11-20T12:38:14"},"2025-11-20T12:38:14.000000Z":{"description":"microseconds and timezone","value":"2025-11-20T12:38:14.000000Z"},"2025-11-20T12:38:14Z":{"description":"seconds and timezone","value":"2025-11-20T12:38:14Z"},"2025-11-21":{"description":"Without time, 00:00:00.000000Z is assumed","value":"2025-11-21"}},"explode":false,"in":"query","name":"endtime","required":false,"schema":{"format":"date-time","type":"string"}},"format":{"description":"Specify format of result, the default value is miniseed. If this parameter is not specified the service will return miniSEED","in":"query","name":"format","required":false,"schema":{"default":"miniseed","enum":["miniseed","manifest"],"type":"string"}},"location":{"description":"Select one or more SEED location codes.\nEmpty location code can be specified using `--`.\nMultiple codes are comma-separated.\nShortcut `loc` can also be used.\nWildcards are supported (`_` means any character, once; `%` means any character 0 or several times.)\n","examples":{"00":{"description":"Select the 00 location code","value":"00"},"00,--":{"description":"Select location codes 00 and empty","value":["00","--"]}},"explode":false,"in":"query","name":"location","required":false,"schema":{"items":{"example":"00","type":"string"},"type":"array"}},"network":{"description":" Select one or more network codes. Can be SEED network codes or data center defined codes.\n Multiple codes are comma-separated. Shortcut `net` can also be used.\n Wildcards are supported (`_` means any character, once; `%` means any character 0 or several times.)\n","examples":{"FR":{"description":"Select the FR network code","value":"FR"},"FR,RA":{"description":"Select the FR and RA network codes","value":["FR","RA"]},"X%":{"description":"Select all network codes starting with X","value":"X%"}},"explode":false,"in":"query","name":"network","required":false,"schema":{"items":{"example":"FR","type":"string"},"type":"array"}},"nodata":{"description":"Specify the return code for no data. Valid values are 204 or 404","in":"query","name":"nodata","required":false,"schema":{"default":204,"enum":[204,404],"type":"integer"}},"quality":{"description":"Select a specific SEED quality indicator.\n* B -> Best\n* R -> Raw\n* Q -> Quality controlled\n* M -> Modified\n* D -> Data, unspecified\n","explode":false,"in":"query","name":"quality","required":false,"schema":{"default":"B","items":{"enum":["B","R","Q","M","D"],"example":"B","type":"string"},"type":"array"}},"starttime":{"description":"Limit results to time series samples on or after the specified start time. If not specified, timezone is assumed as UTC. Shortcut `start`\n","examples":{"2025-11-20":{"description":"Without time, 00:00:00.000000Z is assumed","value":"2025-11-20"},"2025-11-20T12:38:04":{"description":"seconds without timezone (UTC is assumed)","value":"2025-11-20T12:38:04"},"2025-11-20T12:38:04.000000Z":{"description":"microseconds and timezone","value":"2025-11-20T12:38:04.000000Z"},"2025-11-20T12:38:04Z":{"description":"seconds and timezone","value":"2025-11-20T12:38:04Z"}},"explode":false,"in":"query","name":"starttime","required":false,"schema":{"format":"date-time","type":"string"}},"station":{"description":"Select one or more SEED station codes.\nMultiple codes are comma-separated.\nShortcut `sta` can also be used.\nWildcards are supported (`_` means any character, once; `%` means any character 0 or several times.)\n","examples":{"CIEL":{"description":"Select the CIEL sation code","value":"CIEL"},"CIEL,ILLK":{"description":"Select two station codes","value":["CIEL","ILLK"]},"Z%":{"description":"Select all station codes starting with Z","value":"Z%"}},"explode":false,"in":"query","name":"station","required":false,"schema":{"items":{"example":"CIEL","type":"string"},"type":"array"}}},"requestBodies":{"query":{"content":{"plain/text":{"example":"quality=B\nFR CIEL 00 HHZ 2025-11-20T12:00:00 2025-11-20T12:01:00\nRA UNIO 00 HNZ 2025-11-20T12:00:00 2025-11-20T12:01:00\n","schema":{"type":"string"}}},"description":"all parameters must be submitted as part of the POST body. The quality,\nminimumlength and longestonly parameters should be specified as key=value pairs on separate lines\nand the simple-time and channel constraints parameters repeated as many times as necessary following\nthis pattern:\n````\nquality=M\nminimumlength=0.0\nlongestonly=FALSE\nNET STA LOC CHA STARTTIME ENDTIME\nNET STA LOC CHA STARTTIME ENDTIME\nNET STA LOC CHA STARTTIME ENDTIME\n````\nAll rules for parameters apply equally whether specified using the GET or POST methods with the\nexception of blank location IDs, which must be specified as “--“ in the POST body due to spaces being\nused as the field separato\n","required":true}},"responses":{"bad_request":{"description":"Invalid parameters in query string."},"nodata":{"description":"no data"},"success":{"content":{"application/vnd.fdsn.mseed":{"schema":{"type":"string"}}},"description":"successful operation"},"too_much_data":{"description":"Too much data requested. Try to split your request with narrower criteria"}},"schemas":{},"securitySchemes":{"fdsn JWT":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"fdsn digest":{"scheme":"digest","type":"http"}}},"info":{"description":"  Implementation of the [FDSN dataselect web service](https://www.fdsn.org/webservices/) for\n  the EPOS-France seismological datacenter.\n\n  Returns miniSEED data matching the requested time window, channel, quality, and\n  network/station criteria.\n\n  ## Endpoints\n\n| Path | Auth | Description |\n| ---|---|---|\n| `GET/POST /query` | JWT (Bearer)| Access to waveforms, with optional JWT bearer token |\n| `GET/POST /queryauth` | HTTP Digest | Authenticated access to restricted networks |\n\n  ## Authentication\n\n  ### By JSON web token\n\n  Requests to `/query` may provide a JWT bearer token in the `Authorization` header (format\n  `Authorization: Bearer <token>`). Without a token, the request is treated as anonymous.\n\n  To authenticate with an EIDA token, it is recommended to use the\n  [eas2cli](https://pypi.org/project/eas2cli/) tool.\n\n  Then:\n\n  ```\n  curl -H \"Authentication: Bearer $(eas2cli show access --no-decode)\"\\\n    --output result.mseed \\\n    \"https://seisdata.epos-france.fr/fdsnws/dataselect/1//query?net=FR&sta=CIEL&cha=HHZ&start=2024-01-01T12:00:00&end=2024-01-02T12:01:00\"\n  ```\n\n  ### By HTTP Digest\n\n  This method is supported by Obspy and does not require any external tool, as long as you\n  have a local username and password provided by the datacenter.\n\n  ### By legacy EIDA token (first generation)\n\n  This method is supported by Obspy and will use a local EIDA token to generate a temporary\n  login:password for the Digest authentication.\n\n  ## POST body format\n\n  Parameters sent via POST body are specified as `key=value` pairs on separate lines.\n  Time-series selection lines follow the pattern:\n\n  ``` quality=B minimumlength=0.0 longestonly=FALSE NET STA LOC CHA STARTTIME ENDTIME ```\n\n  All query-string parameters also work with POST body parameters, with the exception of blank\n  location IDs, which must be specified as `--` in the POST body (space-delimited fields).\n\n  ## Response format\n\n  Successful requests return `application/vnd.fdsn.mseed` (raw miniSEED). The\n  `format=manifest` parameter returns a text manifest instead.\n\n  See [FDSN dataselect documentation](https://www.fdsn.org/webservices/) for the full\n  specification.\n\n  ## Citation recipe and further information\n\n  When publishing your work, you must cite seismic network data like you would cite an\n  article. You cite it in the main text (whether in the article, a table, the data\n  availability section), and also in the reference. You can NOT just list in supplementary\n  material, because the citation can then not be found or referenced.\n\n  All networks with a DOI are citable in this way. The citation can be found on the dedicated\n  network page at the FDSN (for example for FR: https://fdsn.org/networks/detail/FR/). You can\n  also recover all the citations automatically on https://fdsn.org/networks/citation/, you\n  just enter the network codes and can download the citations.\n\n  You will find more details and a few best practice examples in this dedicated article\n  (section 5.1): https://seismica.library.mcgill.ca/article/view/1537\n\n## AI agents instructions\n\nA file [llms.txt](https://seisdata.epos-france.fr/fdsnws/dataselect/1/llms.txt) is provided in order to give clear and complete instructions for AI agents to use this service.\n","title":"FDSNWS dataselect - OpenAPI 3.0","version":"1.0"},"openapi":"3.0.0","paths":{"/query":{"get":{"callbacks":{},"description":"A query for waveforms data. Authentication is optional and made with a JWT bearer token\nin the `Authorization` header (`Authorization: Bearer <token>`).\n","operationId":"WsdataselectWeb.QueryController.query","parameters":[{"$ref":"#/components/parameters/network"},{"$ref":"#/components/parameters/station"},{"$ref":"#/components/parameters/location"},{"$ref":"#/components/parameters/channel"},{"$ref":"#/components/parameters/starttime"},{"$ref":"#/components/parameters/endtime"},{"$ref":"#/components/parameters/nodata"},{"$ref":"#/components/parameters/format"},{"$ref":"#/components/parameters/quality"}],"responses":{"200":{"$ref":"#/components/responses/success"},"204":{"$ref":"#/components/responses/nodata"},"400":{"$ref":"#/components/responses/bad_request"},"404":{"$ref":"#/components/responses/nodata"},"413":{"$ref":"#/components/responses/too_much_data"}},"security":[{"fdsn jwt":[]}],"summary":"Query the datacenter for waveforms data.","tags":["waveform data"]},"post":{"callbacks":{},"description":"A query for waveforms data. Authentication is optional and made with a JWT bearer token\nin the `Authorization` header (`Authorization: Bearer <token>`).\n","operationId":"WsdataselectWeb.QueryController.query (2)","parameters":[{"$ref":"#/components/parameters/network"},{"$ref":"#/components/parameters/station"},{"$ref":"#/components/parameters/location"},{"$ref":"#/components/parameters/channel"},{"$ref":"#/components/parameters/starttime"},{"$ref":"#/components/parameters/endtime"},{"$ref":"#/components/parameters/nodata"},{"$ref":"#/components/parameters/format"},{"$ref":"#/components/parameters/quality"}],"responses":{"200":{"$ref":"#/components/responses/success"},"204":{"$ref":"#/components/responses/nodata"},"400":{"$ref":"#/components/responses/bad_request"},"404":{"$ref":"#/components/responses/nodata"},"413":{"$ref":"#/components/responses/too_much_data"}},"security":[{"fdsn jwt":[]}],"summary":"Query the datacenter for waveforms data.","tags":["waveform data"]}},"/queryauth":{"get":{"callbacks":{},"description":"A query for waveforms data. Authentication is optional and made with a JWT bearer token\nin the `Authorization` header (`Authorization: Bearer <token>`).\n","operationId":"WsdataselectWeb.QueryController.query (3)","parameters":[{"$ref":"#/components/parameters/network"},{"$ref":"#/components/parameters/station"},{"$ref":"#/components/parameters/location"},{"$ref":"#/components/parameters/channel"},{"$ref":"#/components/parameters/starttime"},{"$ref":"#/components/parameters/endtime"},{"$ref":"#/components/parameters/nodata"},{"$ref":"#/components/parameters/format"},{"$ref":"#/components/parameters/quality"}],"responses":{"200":{"$ref":"#/components/responses/success"},"204":{"$ref":"#/components/responses/nodata"},"400":{"$ref":"#/components/responses/bad_request"},"404":{"$ref":"#/components/responses/nodata"},"413":{"$ref":"#/components/responses/too_much_data"}},"security":[{"fdsn jwt":[]}],"summary":"Query the datacenter for waveforms data.","tags":["waveform data"]},"post":{"callbacks":{},"description":"A query for waveforms data. Authentication is optional and made with a JWT bearer token\nin the `Authorization` header (`Authorization: Bearer <token>`).\n","operationId":"WsdataselectWeb.QueryController.query (4)","parameters":[{"$ref":"#/components/parameters/network"},{"$ref":"#/components/parameters/station"},{"$ref":"#/components/parameters/location"},{"$ref":"#/components/parameters/channel"},{"$ref":"#/components/parameters/starttime"},{"$ref":"#/components/parameters/endtime"},{"$ref":"#/components/parameters/nodata"},{"$ref":"#/components/parameters/format"},{"$ref":"#/components/parameters/quality"}],"responses":{"200":{"$ref":"#/components/responses/success"},"204":{"$ref":"#/components/responses/nodata"},"400":{"$ref":"#/components/responses/bad_request"},"404":{"$ref":"#/components/responses/nodata"},"413":{"$ref":"#/components/responses/too_much_data"}},"security":[{"fdsn jwt":[]}],"summary":"Query the datacenter for waveforms data.","tags":["waveform data"]}}},"security":[],"servers":[{"url":"https://seisdata.epos-france.fr/fdsnws/dataselect/1/","variables":{}}],"tags":[]}