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

Currently no rate limiting is enforced, but please be respectful and avoid excessive requests. Rate limiting may be implemented in the future.

Get Latest Packet by Callsign

GET

Endpoint

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

Planned
GET /api/v1/packets/recent

Get recent packets with filtering options

Planned
GET /api/v1/packets/area

Get packets within a geographic area

Planned
GET /api/v1/weather/{callsign}

Get weather data from weather stations

Planned

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