> 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>**

{% hint style="info" %}
**Semantics output** is available as an additional feature. To request access, contact <hello@notamify.com>.
{% endhint %}

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.14"},"servers":[{"url":"https://api.notamify.com/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"AffectedElementFilter":{"properties":{"effect":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Effect"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"}},"type":"object","title":"AffectedElementFilter","description":"Represents an affected element filter with optional effect and type."},"NotamListResult":{"properties":{"notams":{"items":{"$ref":"#/components/schemas/Notam"},"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"},"Notam":{"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 permanent (PERM)."},"message":{"type":"string","title":"Message","description":"NOTAM message body."},"icao_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icao Message","description":"ICAO-formatted NOTAM message, when available."},"qcode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Qcode","description":"5-letter Q-code from the NOTAM message (e.g., QMRLC)."},"interpretation":{"anyOf":[{"$ref":"#/components/schemas/NotamInterpretation"},{"type":"null"}],"description":"Structured enrichment for the NOTAM, when available."}},"type":"object","required":["id","notam_number","location","starts_at","ends_at","issued_at","is_estimated","is_permanent","message"],"title":"Notam","description":"NOTAM response model."},"NotamInterpretation":{"properties":{"description":{"type":"string","title":"Description","description":"Detailed description of the NOTAM."},"excerpt":{"type":"string","title":"Excerpt","description":"Short summary of the NOTAM."},"category":{"type":"string","title":"Category","description":"NOTAM category."},"subcategory":{"type":"string","title":"Subcategory","description":"NOTAM subcategory."},"map_elements":{"anyOf":[{"items":{"$ref":"#/components/schemas/NotamMapElement"},"type":"array"},{"type":"null"}],"title":"Map Elements","description":"Map elements associated with the NOTAM."},"affected_elements":{"items":{"$ref":"#/components/schemas/AffectedElement"},"type":"array","title":"Affected Elements","description":"Affected elements described in the NOTAM."},"schedules":{"items":{"$ref":"#/components/schemas/NotamScheduleInterpretation"},"type":"array","title":"Schedules","description":"Schedule items 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":"NotamInterpretation"},"NotamMapElement":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id","description":"Unique identifier of the 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 for the map element, when available."},"top":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Top","description":"Upper vertical limit for the map element, when available."}},"type":"object","required":["element_type","coordinates","description"],"title":"NotamMapElement","description":"Map geometry associated with a NOTAM."},"AffectedElement":{"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":{"type":"null"}},"type":"object","required":["type","identifier","effect"],"title":"AffectedElement"},"NotamScheduleInterpretation":{"properties":{"source":{"type":"string","title":"Source","description":"Source text for the schedule."},"description":{"type":"string","title":"Description","description":"Human-readable schedule description."},"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":"NotamScheduleInterpretation"}}},"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 category. Valid values: ALL, AERODROME, AIRSPACE, NAVIGATION, COMMUNICATION, OPERATIONS, OBSTACLES, ADMINISTRATIVE, WEATHER, SAFETY, OTHER. When 'ALL' is provided, no category filtering is applied. Filtered results may be fewer than per_page; total_count reflects the unfiltered match count.","required":false,"deprecated":false,"schema":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Category","description":"Filter by category. Valid values: ALL, AERODROME, AIRSPACE, NAVIGATION, COMMUNICATION, OPERATIONS, OBSTACLES, ADMINISTRATIVE, WEATHER, SAFETY, OTHER. When 'ALL' is provided, no category filtering is applied. Filtered results may be fewer than per_page; total_count reflects the unfiltered match count."},"name":"category","in":"query","allowEmptyValue":false,"allowReserved":false},{"description":"Filter by subcategory. Returns only NOTAMs with matching subcategories. Filtered results may be fewer than per_page; total_count reflects the unfiltered match count.","required":false,"deprecated":false,"schema":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Subcategory","description":"Filter by subcategory. Returns only NOTAMs with matching subcategories. Filtered results may be fewer than per_page; total_count reflects the unfiltered match count."},"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. Filtered results may be fewer than per_page; total_count reflects the unfiltered match count.","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. Filtered results may be fewer than per_page; total_count reflects the unfiltered match count."},"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}}}}
```
