> For the complete documentation index, see [llms.txt](https://skymerse.gitbook.io/notamify-api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://skymerse.gitbook.io/notamify-api/historical-notams-endpoint.md).

# NOTAMs Archive endpoint

The following document contains details about NOTAMs archive endpoint. **Please note that archive endpoint availability is limited to the Notamify's historical NOTAM availability. For more details, contact <hello@notamify.com>**

If none of locations provided in the query are not available in Notamify Database, the service responds with 404 message, without charging credits.

**Limits:**

> The endpoint accepts 5 ICAO codes and 1 archive date per call.

**Example param setup in the URL:**

```url
https://api.notamify.com/api/v2/notams/archive?location=EDDM&location=EGLL&valid_at=2024-09-20
```

#### Python SDK Example

```python
from datetime import date
from notamify_sdk import NotamifyClient, HistoricalNotamsQuery

client = NotamifyClient(token="YOUR_API_KEY")

query = HistoricalNotamsQuery(
    location=["EDDM", "EGLL"],
    valid_at=date(2025, 9, 20),
)

result = client.get_historical_notams(query)

for notam in result.notams:
    print(f"{notam.notam_number}: {notam.interpretation.excerpt}")
```

## GET /notams/archive

>

```json
{"openapi":"3.1.1","info":{"title":"Notamify API V2","version":"0.0.11"},"servers":[{"url":"https://api.notamify.com/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"NotamListResult":{"properties":{"notams":{"items":{"$ref":"#/components/schemas/NotamDTO"},"type":"array","title":"Notams"},"total_count":{"type":"integer","title":"Total Count"},"page":{"type":"integer","title":"Page"},"per_page":{"type":"integer","title":"Per Page"}},"type":"object","required":["notams","total_count","page","per_page"],"title":"NotamListResult"},"NotamDTO":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique identifier for the NOTAM."},"notam_number":{"type":"string","title":"Notam Number","description":"NOTAM number or identifier."},"location":{"type":"string","title":"Location","description":"Location where the NOTAM is applicable."},"icao_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icao Code","description":"ICAO code for the airport or facility."},"classification":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Classification","description":"Classification of the NOTAM: DOM, FDC, INTL, or MIL."},"starts_at":{"type":"string","format":"date-time","title":"Starts At","description":"Start datetime of NOTAM validity."},"ends_at":{"type":"string","format":"date-time","title":"Ends At","description":"End datetime of NOTAM validity."},"issued_at":{"type":"string","format":"date-time","title":"Issued At","description":"Datetime when the NOTAM was issued."},"is_estimated":{"type":"boolean","title":"Is Estimated","description":"Indicates if the NOTAM times are estimated (EST)."},"is_permanent":{"type":"boolean","title":"Is Permanent","description":"Indicates if the NOTAM is permanen (PERM)t."},"message":{"type":"string","title":"Message","description":"Only the message of the NOTAM."},"icao_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icao Message","description":"Only the ICAO formatted message of the NOTAM."},"qcode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Qcode","description":"Raw 5-letter Q-code extracted from the NOTAM message (e.g., QMRLC)."},"interpretation":{"anyOf":[{"$ref":"#/components/schemas/NotamInterpretationDTO"},{"type":"null"}],"description":"Interpretation details of the NOTAM."}},"type":"object","required":["id","notam_number","location","starts_at","ends_at","issued_at","is_estimated","is_permanent","message"],"title":"NotamDTO","description":"Data Transfer Object (DTO) for a NOTAM (Notice to Air Missions).\n\nAttributes:\n    notam_number (str): The unique identifier for the NOTAM\n    location (str): The facility designator/location identifier this NOTAM applies to\n    starts_at (datetime): When this NOTAM becomes active\n    ends_at (datetime): When this NOTAM expires\n    message (str): The human-readable traditional format message\n    icao_message (str): The ICAO format message\n    interpretation (Optional[NotamInterpretationDTO]): Optional interpretation of the NOTAM content"},"NotamInterpretationDTO":{"properties":{"description":{"type":"string","title":"Description","description":"Detailed description of the NOTAM interpretation."},"excerpt":{"type":"string","title":"Excerpt","description":"Brief excerpt summarizing the interpretation."},"category":{"type":"string","title":"Category","description":"Interpretation category."},"subcategory":{"type":"string","title":"Subcategory","description":"Interpretation subcategory."},"map_elements":{"anyOf":[{"items":{"$ref":"#/components/schemas/NotamMapElementDTO"},"type":"array"},{"type":"null"}],"title":"Map Elements","description":"List of map elements extracted from the interpretation."},"affected_elements":{"items":{"$ref":"#/components/schemas/AffectedElementDTO"},"type":"array","title":"Affected Elements","description":"List of affected elements described in the NOTAM."},"schedules":{"items":{"$ref":"#/components/schemas/NotamScheduleInterpretationDTO"},"type":"array","title":"Schedules","description":"List of schedule interpretations for the NOTAM."},"schedule_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Description","description":"Human-readable schedule description."}},"type":"object","required":["description","excerpt","category","subcategory"],"title":"NotamInterpretationDTO"},"NotamMapElementDTO":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id","description":"Unique identifier of the persisted map element."},"element_type":{"type":"string","title":"Element Type","description":"Type of the map element (e.g., line, polygon, point)."},"coordinates":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Coordinates","description":"Coordinates of the map element."},"description":{"type":"string","title":"Description","description":"Description of the map element."},"area_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Area Number","description":"Optional area number identifier for the element."},"geojson":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Geojson","description":"GeoJSON representation of the map element."},"bottom":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Bottom","description":"Lower vertical limit with value, unit, reference, value_ft, and raw_string."},"top":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Top","description":"Upper vertical limit with value, unit, reference, value_ft, raw_string, and optional embedded height data."}},"type":"object","required":["element_type","coordinates","description"],"title":"NotamMapElementDTO","description":"Data Transfer Object for NOTAM map elements."},"AffectedElementDTO":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the affected element."},"identifier":{"type":"string","title":"Identifier","description":"Identifier of the affected element."},"effect":{"type":"string","title":"Effect","description":"Effect experienced by the element."},"details":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Details","description":"Additional details regarding the effect, if any."},"subtype":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtype","description":"Optional more specific subtype of the affected element."},"semantics":{"anyOf":[{"$ref":"#/components/schemas/AffectedElementSemanticsDTO"},{"type":"null"}],"description":"Machine-readable operational semantics for the statement."}},"type":"object","required":["type","identifier","effect"],"title":"AffectedElementDTO"},"AffectedElementSemanticsDTO":{"properties":{"conditions":{"items":{"$ref":"#/components/schemas/AffectedElementClauseDTO"},"type":"array","title":"Conditions","description":"Machine-readable conditions, including stand or gate subsets when explicitly stated."},"exceptions":{"items":{"$ref":"#/components/schemas/AffectedElementClauseDTO"},"type":"array","title":"Exceptions","description":"Machine-readable exceptions."},"changes":{"items":{"$ref":"#/components/schemas/AffectedElementChangeDTO"},"type":"array","title":"Changes","description":"Machine-readable changes."},"references":{"items":{"$ref":"#/components/schemas/AffectedElementReferenceDTO"},"type":"array","title":"References","description":"References to related objects."}},"type":"object","title":"AffectedElementSemanticsDTO"},"AffectedElementClauseDTO":{"properties":{"dimension":{"type":"string","title":"Dimension","description":"Clause dimension."},"operator":{"type":"string","title":"Operator","description":"Clause operator."},"value":{"anyOf":[{"$ref":"#/components/schemas/ScalarMeasurementValueDTO"},{"$ref":"#/components/schemas/FractionalMeasurementValueDTO"},{"$ref":"#/components/schemas/GroupedMeasurementValueDTO"},{"$ref":"#/components/schemas/ProcedureCapabilityDTO"},{"items":{"type":"string","enum":["TAKEOFF","LANDING","APPROACH","ARRIVAL","DEPARTURE","TAXIING","LOCAL_FLIGHT","TRAINING_FLIGHT","CIRCUIT","INTERNATIONAL_FLIGHT","FIXED_WING","HELICOPTER","GLIDER","GENERAL_AVIATION","NON_SCHEDULED","NON_COMMERCIAL","SCHEDULED","IFR","VFR","STATE","MILITARY","A","B","C","D","E","F","H","LIGHT","MEDIUM","HEAVY","SUPER","ALTERNATE","DIVERSION","DESTINATION","AVGAS_100LL","AVGAS_100","AVGAS_B_91_115","AVGAS_UL91","AVGAS_UL94","AVGAS_UL85","AVGAS_82UL","AVGAS_91_96UL","AVGAS_80_87","AVGAS_115_145","JET_A","JET_A1","JET_B","JP_1","JP_4","JP_5","JP_8","TS_1","MOGAS","HYDRANT","BOWSER","TANKER","FOLLOW_ME","MARSHALLER","PPR","EMERGENCY_FLIGHT","MEDICAL_FLIGHT","SAR_FLIGHT","STATE_FLIGHT","CUSTOMS_OFFICIAL_TRAFFIC","ALS","ALSF_2","SDF","ATIS","DATALINK_CLEARANCE","VGSI","PAPI","VASI","GLIDEPATH","GLIDESLOPE","LOCALIZER","RVR_MEASURING_EQUIPMENT","INNER_MARKER","DME","RADIO_ALTIMETER","RNAV_GPS","RADAR","AUTOPILOT","AIRSHOW","MILITARY_ACTIVITY","BLASTING_ACTIVITY","ROCKET_LAUNCH","UAS_ACTIVITY"]},"type":"array","minItems":1},{"items":{"type":"string"},"type":"array","minItems":1},{"items":{"anyOf":[{"$ref":"#/components/schemas/AircraftDesignatorValueDTO"},{"type":"string"}]},"type":"array","minItems":1}],"title":"Value","description":"Typed clause value. Use comparable measurement objects for quantified values. For non-measurement clause values, always emit a list and use normalized literal tokens or justified raw strings inside that list."},"unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit","description":"Optional unit."},"details":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Details","description":"Optional human-readable clarification."},"schedule":{"anyOf":[{"items":{"$ref":"#/components/schemas/NotamScheduleInterpretationDTO"},"type":"array"},{"type":"null"}],"title":"Schedule","description":"Parsed schedule items that qualify this clause."}},"type":"object","required":["dimension","operator","value"],"title":"AffectedElementClauseDTO"},"ScalarMeasurementValueDTO":{"properties":{"kind":{"type":"string","const":"MEASUREMENT","title":"Kind","default":"MEASUREMENT"},"raw_string":{"type":"string","title":"Raw String"},"value":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Value"},"unit":{"type":"string","title":"Unit"}},"type":"object","required":["raw_string","value","unit"],"title":"ScalarMeasurementValueDTO"},"FractionalMeasurementValueDTO":{"properties":{"kind":{"type":"string","const":"FRACTIONAL_MEASUREMENT","title":"Kind","default":"FRACTIONAL_MEASUREMENT"},"raw_string":{"type":"string","title":"Raw String"},"numerator":{"type":"integer","title":"Numerator"},"denominator":{"type":"integer","title":"Denominator"},"unit":{"type":"string","title":"Unit"}},"type":"object","required":["raw_string","numerator","denominator","unit"],"title":"FractionalMeasurementValueDTO"},"GroupedMeasurementValueDTO":{"properties":{"kind":{"type":"string","const":"MEASUREMENTS","title":"Kind","default":"MEASUREMENTS"},"raw_string":{"type":"string","title":"Raw String"},"values":{"items":{"$ref":"#/components/schemas/MeasurementComponentValueDTO"},"type":"array","title":"Values"}},"type":"object","required":["raw_string"],"title":"GroupedMeasurementValueDTO"},"MeasurementComponentValueDTO":{"properties":{"type":{"type":"string","enum":["ALTITUDE","HEIGHT"],"title":"Type"},"value":{"type":"integer","title":"Value"},"unit":{"type":"string","title":"Unit"}},"type":"object","required":["type","value","unit"],"title":"MeasurementComponentValueDTO"},"ProcedureCapabilityDTO":{"properties":{"scheme":{"type":"string","const":"ILS_CATEGORY","title":"Scheme"},"category":{"anyOf":[{"type":"string","enum":["CAT_I","CAT_II","CAT_IIIA","CAT_IIIB","CAT_IIIC"]},{"type":"null"}],"title":"Category"},"level":{"anyOf":[{"type":"string","enum":["LVL_1","LVL_2","LVL_3"]},{"type":"null"}],"title":"Level"},"classification":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Classification"},"source_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Label"}},"type":"object","required":["scheme"],"title":"ProcedureCapabilityDTO"},"AircraftDesignatorValueDTO":{"properties":{"kind":{"type":"string","enum":["family","variant"],"title":"Kind"},"designator":{"type":"string","title":"Designator"},"source":{"type":"string","title":"Source"}},"type":"object","required":["kind","designator","source"],"title":"AircraftDesignatorValueDTO"},"NotamScheduleInterpretationDTO":{"properties":{"source":{"type":"string","title":"Source","description":"Source of the schedule interpretation."},"description":{"type":"string","title":"Description","description":"Description of the schedule interpretation."},"rrule":{"type":"string","title":"Rrule","description":"Recurrence rule for the schedule."},"duration_hrs":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Hrs","description":"Duration of each recurrence of the schedule period in hours."},"is_sunrise_sunset":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Sunrise Sunset","description":"Indicates if the schedule is based on sunrise/sunset timings."}},"type":"object","required":["source","description","rrule"],"title":"NotamScheduleInterpretationDTO"},"AffectedElementChangeDTO":{"properties":{"subject":{"type":"string","title":"Subject","description":"Structured subject of the change."},"from":{"items":{"anyOf":[{"$ref":"#/components/schemas/ProcedureCapabilityDTO"},{"$ref":"#/components/schemas/ValueDTO"}]},"type":"array","title":"From","description":"Previous or superseded structured operands."},"to":{"items":{"anyOf":[{"$ref":"#/components/schemas/ProcedureCapabilityDTO"},{"$ref":"#/components/schemas/ValueDTO"}]},"type":"array","title":"To","description":"Current or replacement structured operands."},"details":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Details","description":"Optional human-readable clarification."},"schedule":{"anyOf":[{"items":{"$ref":"#/components/schemas/NotamScheduleInterpretationDTO"},"type":"array"},{"type":"null"}],"title":"Schedule","description":"Parsed schedule items that qualify this change."}},"type":"object","required":["subject"],"title":"AffectedElementChangeDTO"},"ValueDTO":{"properties":{"kind":{"type":"string","const":"VALUE","title":"Kind","default":"VALUE"},"raw_string":{"type":"string","title":"Raw String"},"values":{"items":{"$ref":"#/components/schemas/ValueComponentDTO"},"type":"array","title":"Values"}},"type":"object","required":["raw_string"],"title":"ValueDTO"},"ValueComponentDTO":{"properties":{"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"value":{"anyOf":[{"type":"integer"},{"type":"string"}],"title":"Value"},"unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit"}},"type":"object","required":["value"],"title":"ValueComponentDTO"},"AffectedElementReferenceDTO":{"properties":{"relation":{"type":"string","title":"Relation","description":"Relation to the referenced object."},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"Type of the referenced object when available."},"identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Identifier","description":"Identifier of the referenced object when available."},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role","description":"Role of this referenced object inside an ordered route when available."},"sequence":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sequence","description":"One-based order of this referenced object inside an ordered route when available."}},"type":"object","required":["relation"],"title":"AffectedElementReferenceDTO"}}},"paths":{"/notams/archive":{"get":{"parameters":[{"description":"Date to check NOTAM validity (YYYY-MM-DD). Cannot be in the future.","required":true,"deprecated":false,"schema":{"type":"string","format":"date","title":"Valid At","description":"Date to check NOTAM validity (YYYY-MM-DD). Cannot be in the future."},"name":"valid_at","in":"query","allowEmptyValue":false,"allowReserved":false},{"description":"List of NOTAM IDs","required":false,"deprecated":false,"schema":{"items":{"type":"string"},"type":"array","title":"Notam Ids","description":"List of NOTAM IDs"},"name":"notam_ids","in":"query","allowEmptyValue":false,"allowReserved":false},{"description":"Whether to always include EST times in the window, even if the notam already expired.","required":false,"deprecated":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Always Include Est","description":"Whether to always include EST times in the window, even if the notam already expired.","default":true},"name":"always_include_est","in":"query","allowEmptyValue":false,"allowReserved":false},{"description":"Page number to retrieve. Defaults to 1.","required":false,"deprecated":false,"schema":{"type":"integer","title":"Page","description":"Page number to retrieve. Defaults to 1.","default":1},"name":"page","in":"query","allowEmptyValue":false,"allowReserved":false},{"description":"Number of NOTAMs per page. Defaults to 30.","required":false,"deprecated":false,"schema":{"type":"integer","maximum":30,"minimum":1,"title":"Per Page","description":"Number of NOTAMs per page. Defaults to 30.","default":30},"name":"per_page","in":"query","allowEmptyValue":false,"allowReserved":false},{"description":"List of 4-character ICAO airport codes or 3-character domestic airport codes. Maximum 5 locations.","required":false,"deprecated":false,"schema":{"items":{"type":"string","maxLength":4,"minLength":3,"pattern":"^[A-Za-z0-9]{3,4}$"},"type":"array","maxItems":5,"minItems":1,"title":"Location","description":"List of 4-character ICAO airport codes or 3-character domestic airport codes. Maximum 5 locations."},"name":"location","in":"query","allowEmptyValue":false,"allowReserved":false},{"description":"Filter by interpretation category(ies). Valid values: ALL, AERODROME, AIRSPACE, NAVIGATION, COMMUNICATION, OPERATIONS, OBSTACLES, ADMINISTRATIVE, WEATHER, SAFETY, OTHER. When 'ALL' is provided, no category filtering is applied. Note: Filtering happens after interpretation; total_count reflects pre-filter count and results may be fewer than per_page.","required":false,"deprecated":false,"schema":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Category","description":"Filter by interpretation category(ies). Valid values: ALL, AERODROME, AIRSPACE, NAVIGATION, COMMUNICATION, OPERATIONS, OBSTACLES, ADMINISTRATIVE, WEATHER, SAFETY, OTHER. When 'ALL' is provided, no category filtering is applied. Note: Filtering happens after interpretation; total_count reflects pre-filter count and results may be fewer than per_page."},"name":"category","in":"query","allowEmptyValue":false,"allowReserved":false},{"description":"Filter by interpretation subcategory(ies). Returns only NOTAMs with matching subcategories. Note: Filtering happens after interpretation; total_count reflects pre-filter count and results may be fewer than per_page.","required":false,"deprecated":false,"schema":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Subcategory","description":"Filter by interpretation subcategory(ies). Returns only NOTAMs with matching subcategories. Note: Filtering happens after interpretation; total_count reflects pre-filter count and results may be fewer than per_page."},"name":"subcategory","in":"query","allowEmptyValue":false,"allowReserved":false},{"description":"Filter by affected element effect and/or type. Format: 'effect:closed,type:runway' or 'closed runway' or 'closed' or 'runway'. Valid effects: CLOSED, RESTRICTED, HAZARD, UNSERVICEABLE, WORK_IN_PROGRESS, CAUTION. Valid types: AERODROME, RUNWAY, TAXIWAY, APPROACH, NAVAID, AIRSPACE, ROUTE, APRON, LIGHTING, SERVICE, PROCEDURE, OTHER. Note: Filtering happens after interpretation; total_count reflects pre-filter count and results may be fewer than per_page.","required":false,"deprecated":false,"schema":{"anyOf":[{"items":{"$ref":"#/components/schemas/AffectedElementFilter"},"type":"array"},{"type":"null"}],"title":"Affected Element","description":"Filter by affected element effect and/or type. Format: 'effect:closed,type:runway' or 'closed runway' or 'closed' or 'runway'. Valid effects: CLOSED, RESTRICTED, HAZARD, UNSERVICEABLE, WORK_IN_PROGRESS, CAUTION. Valid types: AERODROME, RUNWAY, TAXIWAY, APPROACH, NAVAID, AIRSPACE, ROUTE, APRON, LIGHTING, SERVICE, PROCEDURE, OTHER. Note: Filtering happens after interpretation; total_count reflects pre-filter count and results may be fewer than per_page."},"name":"affected_element","in":"query","allowEmptyValue":false,"allowReserved":false}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotamListResult"}}}},"404":{"description":"Archive snapshot not found for the requested search. Credits were not deducted for this request.","content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}}}},"deprecated":false}}}}
```
