APRS.me API Documentation
RESTful JSON API for accessing APRS packet data and station information.
Overview
The APRS.me API provides programmatic access to Amateur Radio APRS (Automatic Packet Reporting System) data. All API endpoints return JSON data and follow RESTful conventions.
Base URL
https://aprs.me/api/v1
Content Type
application/json
Rate Limiting
Get Latest Packet by Callsign
GETEndpoint
GET /api/v1/callsign/{callsign}
Description
Retrieves the most recent APRS packet for the specified callsign. The callsign can include an SSID (e.g., N0CALL-9) or just the base callsign (e.g., N0CALL).
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
callsign | string | Yes | Amateur radio callsign with optional SSID (e.g., N0CALL or N0CALL-9) |
Example Request
curl -X GET "https://aprs.me/api/v1/callsign/N0CALL-9" \
-H "Accept: application/json"
Response Format
Success Response (200 OK)
{
"data": {
"id": 12345,
"callsign": "N0CALL-9",
"base_callsign": "N0CALL",
"ssid": "9",
"sender": "N0CALL-9",
"destination": "APRS",
"path": "WIDE1-1,WIDE2-1",
"data_type": "position",
"information_field": "!4740.00N/12200.00W>Mobile Station",
"raw_packet": "N0CALL-9>APRS,WIDE1-1,WIDE2-1:!4740.00N/12200.00W>Mobile Station",
"received_at": "2024-01-15T10:30:45.123456Z",
"region": "US-West",
"position": {
"latitude": 47.666667,
"longitude": -122.0,
"course": 90,
"speed": 35.5,
"altitude": 152.4
},
"symbol": {
"code": ">",
"table_id": "/"
},
"comment": "Mobile Station",
"timestamp": null,
"aprs_messaging": false,
"weather": null,
"equipment": {
"manufacturer": "Kenwood",
"equipment_type": "TM-D710"
},
"message": null,
"has_position": true,
"inserted_at": "2024-01-15T10:30:45.123456Z",
"updated_at": "2024-01-15T10:30:45.123456Z"
}
}
Not Found Response (404)
{
"data": null,
"message": "No packets found for callsign N0CALL-9"
}
Error Response (400)
{
"error": {
"message": "Invalid callsign format",
"code": "bad_request"
}
}
Response Fields
Field | Type | Description |
---|---|---|
id | integer | Unique packet identifier |
callsign | string | Full callsign with SSID (e.g., "N0CALL-9") |
base_callsign | string | Base callsign without SSID |
ssid | string | SSID (Secondary Station Identifier), null if not present |
received_at | datetime | When the packet was received (ISO 8601 format) |
position | object | Position data (latitude, longitude, course, speed, altitude) |
symbol | object | APRS symbol information (code and table_id) |
weather | object | Weather data if present (temperature, humidity, wind, etc.) |
equipment | object | Equipment information (manufacturer, type) |
message | object | Message data if the packet is a message |
raw_packet | string | Original raw APRS packet as received |
HTTP Status Codes
Status Code | Description |
---|---|
200 OK | Request successful, packet data returned |
400 Bad Request | Invalid callsign format or malformed request |
404 Not Found | No packets found for the specified callsign |
408 Request Timeout | Request took too long to process |
500 Internal Server Error | Server error occurred while processing the request |
Planned Endpoints
The following endpoints are planned for future releases:
GET /api/v1/callsign/{callsign}/history
Get historical packets for a callsign
GET /api/v1/packets/recent
Get recent packets with filtering options
GET /api/v1/packets/area
Get packets within a geographic area
GET /api/v1/weather/{callsign}
Get weather data from weather stations
Test the API
Try the API directly from this page. Enter a callsign to see the most recent packet data.
Support
This API is provided free of charge for amateur radio and educational purposes. If you encounter issues or have suggestions for improvements, please reach out.
Guidelines
- • Use reasonable request rates to avoid overwhelming the service
- • Cache responses when appropriate to reduce server load
- • Include a User-Agent header identifying your application
- • This service is for amateur radio and educational use