REST API for clients
This document summarises the RESTful API to the Polaric-aprsd backend server. This is used by clients running in standard web-browsers. By default it accepts HTTP requests on port 8081. It is also possible to configure a frontend webserver to act as a proxy for this, so that all HTTP requests to the server-side can go through the standard HTTP port (80). Servers where this is done do therefore not normally need to expose port 8081 externally. A HMAC-based scheme is used for authentication of each request. This means that if a user logs on a server a key is returned that will used for subsequent REST requests. For security it is recommended to always use HTTPS if clients and servers are on different LANs. Cross-site requests are possible within certain limits. CORS is supported.
The URL identifies the resource (or service) to be invoked. For REST APIs, the URL identifies the resource and the operation to be performed on it is determined by the HTTP method: GET (read object), PUT (update), POST (add, post), DELETE (remove it). Where a representation of the state is required or returned, the JSON format is used. Some operations that perform search expect query parameters.
Most services will require authorization: O=open, L=login, S=SAR, A=admin.
See more info on Client Authentication To access ‘L’, ‘S’ or ‘A’ services, requests must be authenticated. To access ‘O’ services, we do not use authentication.
System services
Source: AdminApi.java and ShellScriptApi.java
/authStatus |
GET |
L |
Get authorization info. Returns AuthInfo object |
/authStatus2 |
GET |
O |
Open version of authStatus. Returns AuthInfo object |
/system/tags |
GET |
O |
Get tags used |
/system/ownpos |
GET |
A |
Get position of this server (symbol, latlong pos) |
PUT |
A |
Update position of this server (symbol, latlong pos) |
|
/system/icons/{dir} |
GET |
O |
List of icons available in a subdirectory |
/scripts |
GET |
A |
Get list of available commands/scripts |
/scripts/{script-id} |
POST |
A |
Execute a script/command |
- GET /authStatus
Returns AuthInfo object with authorization info about current session
- Status Codes:
200 OK – Ok
- Response JSON Object:
userid (string) – Userid if logged in
groupid (string) – Current role (group)
callsign (string) – HAM radio callsign (can be null)
servercall (string) – Identfier (callsign) of the server
admin (boolean) – True if admin privileges
sar (boolean) – True if SAR privileges (derived from role)
tagsAuth (string) – What tags that authorize you (regular expression)
services (string[]) – List of services of server instance
- GET /system/tags
Get list of all tags used on the system
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
- Response JSON Array of Objects:
tag (string) – Tag used
- GET /system/ownpos
Get position of this server (symbol, latlong pos)
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
403 Forbidden – Forbidden
- Response JSON Object:
sym (string) – Symbol
symtab (string) – Symbol table
pos (double[]) – Position (longitude, latitude);
- PUT /system/ownpos
Aet position of this server (symbol, latlong pos)
- Status Codes:
200 OK – Ok
400 Bad Request – Couldn’t parse input
401 Unauthorized – Authentication failed
403 Forbidden – Forbidden
- Response JSON Object:
sym (string) – Symbol
symtab (string) – Symbol table
pos (double[]) – Position (longitude, latitude);
- GET /system/icons/(dir)
List of icons available in a subdirectory
- Parameters:
userid – Unique indentifier of user
- Status Codes:
200 OK – Ok
500 Internal Server Error – Invalid file subdirectory for icons
- Response JSON Array of Objects:
icon (string) – Filename of icon
- GET /system/scripts
Get list of available commands/scripts
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
403 Forbidden – Forbidden
- Response JSON Array of Objects:
name (string) – Name (id) of script/command
descr (string) – Description
- GET /system/scripts/(script-id)
Execute a command/scripts
- Parameters:
script-id – Script identifier (name)
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
403 Forbidden – Forbidden
400 Bad Request – Couldn’t parse input
404 Not Found – Script xxx not found
400 Bad Request – Script xxx: Missing arguments
400 Bad Request – Script xxx: Expected m arguments, got n
500 Internal Server Error – Script xxx: Exceeded max time. Killed!
500 Internal Server Error – Script xxx: (error-message from script)
- Response JSON Object:
args (string[]) – Arguments to be passed to the script
System admin services
Source: ´SysAdminApi.java´
/system/adm/restart |
PUT |
A |
Restart polaric aprsd |
/system/adm/status |
GET |
A |
Get status info. |
/system/adm/clients |
GET |
A |
Get list of clients connected |
/system/adm/server |
GET |
A |
Get server config |
PUT |
A |
Update server config |
|
/system/adm/ownpos |
GET |
A |
Get server’s own position (if set) |
PUT |
A |
Update server’s own position |
|
/system/adm/channels |
GET |
A |
Get config of channels |
POST |
A |
Add channel |
|
/system/adm/channels/{id} |
GET |
A |
Get a specific channel config |
PUT |
A |
Update a channel |
|
DELETE |
A |
DELETE a channel |
- PUT /system/adm/restart
Restart the aprsd daemon.
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
403 Forbidden – Forbidden
- GET /system/adm/status
Get status information.
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
403 Forbidden – Forbidden
- Response JSON Object:
runsince (Date) – time when server was last started
version (string) – version of software
items (int) – number of items
ownobj (int) – number of APRS objects
clients (int) – number of clients
loggedin (int) – number of logged in clients
usedmem (long) – used memory
plugins[] (string) – List of plugins
channels[] (Channel) – List of channels (ident, name)
remotectl (string) – Remote servers
- GET /system/adm/clients
Get list of clients connected
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
403 Forbidden – Forbidden
- Response JSON Array of Objects:
created (Date) – time when connection was established
cid (string) – client identifier (ip:port)
in (long) – number of incoming messages
out (long) – number of outgoing messages (map updates)
userid (string) – User name if logged in
mobile (boolean) – True if connection from mobile app
- GET /system/adm/server
Get server config information
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
403 Forbidden – Forbidden
- Response JSON Object:
mycall (string) – Callsign of the server
igate (boolean) – Activate igate
rfigate (boolean) – Allow igating to RF
objigate (boolean) – Allow igating object-info (to RF)
radius (int) – Radius in km where objects are igated.
path_igate (string) – Digipath for igate
path_messages (string) – Digipath for messaging
path_objects (string) – Digipath for objects
always_rf (string) – What DESTs to always be sent on RF (regex)
remotectl (boolean) – Activate remote control protocol
remote_radius (int) – Radius in km to receive item-updates
rc_server – Remote control server to connect to
authkey – Authentication key to be used in remote control
- PUT /system/adm/server
Update server config.
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
403 Forbidden – Forbidden
- Request JSON Object:
mycall (string) – Callsign of the server
igate (boolean) – Activate igate
rfigate (boolean) – Allow igating to RF
objigate (boolean) – Allow igating object-info (to RF)
radius (int) – Radius in km where objects are igated.
path_igate (string) – Digipath for igate
path_messages (string) – Digipath for messaging
path_objects (string) – Digipath for objects
always_rf (string) – What DESTs to always be sent on RF (regex)
remotectl (boolean) – Activate remote control protocol
remote_radius (int) – Radius in km to receive item-updates
rc_server – Remote control server to connect to
authkey – Authentication key to be used in remote control
- GET /system/adm/ownpos
Get server’s own position.
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
403 Forbidden – Forbidden
- Response JSON Object:
txon (boolean) – Activate transmitting of own position
allowrf (boolean) – Allow transmitting pos on RF
compress (boolean) – Use compressed report format
symbol (string) – APRS symbol (2 characters)
rfpath (string) – Digipath for RF transmissions
comment (string) – Comment string to be used in reports
pos[] (double) – Position (long, lat)
gpson (boolean) – Use GPS
adjustclock (boolean) – Adjust local clock from GPS
gpsport (string) – Serial port for GPS
baud (string) – Baud rate for GPS
minpause (int) – Minimum pause between transmissions
maxpause (int) – Maximum pause between transmissions
mindist (int) – Minimum distance (meters) moved before transmitting
maxturn (int) – Maximum change in direction (degrees) before transmitting
- PUT /system/adm/ownpos
Update server’s own position
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
403 Forbidden – Forbidden
- Request JSON Object:
txon (boolean) – Activate transmitting of own position
allowrf (boolean) – Allow transmitting pos on RF
compress (boolean) – Use compressed report format
symbol (string) – APRS symbol (2 characters)
rfpath (string) – Digipath for RF transmissions
comment (string) – Comment string to be used in reports
pos[] (double) – Position (long, lat)
gpson (boolean) – Use GPS
adjustclock (boolean) – Adjust local clock from GPS
gpsport (string) – Serial port for GPS
baud (string) – Baud rate for GPS
minpause (int) – Minimum pause between transmissions
maxpause (int) – Maximum pause between transmissions
mindist (int) – Minimum distance (meters) moved before transmitting
maxturn (int) – Maximum change in direction (degrees) before transmitting
- GET /system/adm/channels
Get config of channels (list of channels).
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
403 Forbidden – Forbidden
- Response JSON Array of Objects:
ident (string) – Identifier of channel
name (string) – Name of channel
active (boolean) – True if the channel is active
rfchan (boolean) – True if primary RF channel
inetchan (boolean) – True if primary APRS/IS channel
isrf (boolean) – True if the channel is on radio (RF)
isaprs (boolean) – True if channel is for APRS traffic
generic (GenChanInfo) – Should be null
specific (Channel.JsConfig) – Should be null
- POST /system/adm/channels
Add channel config.
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
403 Forbidden – Forbidden
200 OK – Ok
401 Unauthorized – Authentication failed
403 Forbidden – Forbidden
- Request JSON Object:
ident (string) – (ignored)
name (string) – Name of channel
active (boolean) – True if the channel is active
rfchan (boolean) – True if primary RF channel
inetchan (boolean) – True if primary APRS/IS channel
isrf (boolean) – True if the channel is on radio (RF)
isaprs (boolean) – True if channel is for APRS traffic
generic (GenChanInfo) – Generic channel config
specific (Channel.JsConfig) – Type specific channel config
- GET /system/adm/channels/{id}
Get a specific channel config.
- Parameters:
id – Channel identifier
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
403 Forbidden – Forbidden
- Response JSON Object:
ident (string) – Channel identifier
name (string) – Name of channel
active (boolean) – True if the channel is active
rfchan (boolean) – True if primary RF channel
inetchan (boolean) – True if primary APRS/IS channel
isrf (boolean) – True if the channel is on radio (RF)
isaprs (boolean) – True if channel is for APRS traffic
generic (GenChanInfo) – Generic channel config
specific (Channel.JsConfig) – Type specific channel config
- PUT /system/adm/channels/{id}
Update a specific channel config.
- Parameters:
id – Channel identifier
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
403 Forbidden – Forbidden
- Request JSON Object:
ident (string) – (ignored)
name (string) – Name of channel
active (boolean) – True if the channel is active
rfchan (boolean) – True if primary RF channel
inetchan (boolean) – True if primary APRS/IS channel
isrf (boolean) – True if the channel is on radio (RF)
isaprs (boolean) – True if channel is for APRS traffic
generic (GenChanInfo) – Generic channel config
specific (Channel.JsConfig) – Type specific channel config
- DELETE /system/adm/channels/{id}
Delete a channel.
- Parameters:
id – Channel identifier
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
403 Forbidden – Forbidden
Users and clients
Source: UserApi.java
/filters |
GET |
O |
Get filters available for you (open version) |
/myfilters |
GET |
L |
Get filters available for you (login version) |
/mypasswd |
PUT |
L |
Change your own password |
/wsclients |
GET |
A |
Get (websocket) clients |
/loginusers |
GET |
A |
Get logged in users (list of userids) |
/groups |
GET |
L |
Get available groups (roles) |
/mygroup |
PUT |
L |
Change your own group/role |
/usernames |
GET |
L |
Get list of all users (userids only) |
/users |
GET |
A |
Get list of all users |
POST |
A |
Add a user |
|
/users/{id} |
GET |
A |
Get info about a given user |
PUT |
A |
Update a user |
|
DELETE |
A |
Remove a user |
- GET /myfilters
Returns a list of filters available for you as a logged in user.
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
- Response JSON Array of Objects:
filter (string[]) – Pair - filter name, description
- PUT /mypasswd
Change your own password. If you are Admin, you can change other’s passwords as well.
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
404 Not Found – Unknown user
- Request JSON Object:
passwd (string) – New password
- GET /wsclients
Get currently active clients to (the websocket interface)
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
403 Forbidden – Forbidden
- Response JSON Array of Objects:
uid (string) – User id (IP-address:port)
username (string) – Login name (if logged in)
created (Date) – Time when client connection was created
- GET /groups
Get groups (roles) available for logged in user
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
- Response JSON Array of Objects:
gid (string) – Group id
- GET /usernames
Return a list of usernames (userids only)
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
- Response JSON Array of Objects:
uid (string) – User id
- GET /users
Return a list of users of the system
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
403 Forbidden – Forbidden
- Response JSON Array of Objects:
ident (string) – User id
name (string) – Name
callsign (string) – HAM radio callsign (can be null)
lastused (Date) – Time when last logged in
group (string) – Primary group (role)
altgroup (string) – Secondary group (role)
sar (boolean) – True if SAR user (derived from primary group)
admin (boolean) – True if admin user
suspend (boolean) – True if suspended
passwd (string) – Always null
- POST /users
Add a new user to the system
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
403 Forbidden – Forbidden
400 Bad Request – Probable cause: User already exists
- Request JSON Array of Objects:
ident (string) – User id
name (string) – Name
callsign (string) – HAM radio callsign (can be null)
lastused (Date) – Time when last logged in
group (string) – Primary group (role)
altgroup (string) – Secondary group (role)
sar (boolean) – True if SAR user (derived from primary group)
admin (boolean) – True if admin user
suspend (boolean) – True if suspended
passwd (string) – Password for login
- GET /users/(userid)
Return info about a particular user
- Parameters:
userid – Unique indentifier of user
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
403 Forbidden – Forbidden
404 Not Found – Unknown user
- Response JSON Array of Objects:
ident (string) – User id
name (string) – Name
callsign (string) – HAM radio callsign (can be null)
lastused (Date) – Time when last logged in
group (string) – Primary group (role)
altgroup (string) – Secondary group (role)
sar (boolean) – True if SAR user (derived from primary group)
admin (boolean) – True if admin user
suspend (boolean) – True if suspended
passwd (string) – Always null
- PUT /users/(userid)
Update a user
- Parameters:
userid – Unique indentifier of user
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
403 Forbidden – Forbidden
404 Not Found – Unknown user
400 Bad Request – Cannot parse input
404 Not Found – Unknown group
404 Not Found – Unknown alt group
- Request JSON Array of Objects:
ident (string) – User id
name (string) – Name
callsign (string) – HAM radio callsign (can be null)
lastused (Date) – Time when last logged in
group (string) – Primary group (role)
altgroup (string) – Secondary group (role)
sar (boolean) – True if SAR user (derived from primary group)
admin (boolean) – True if admin user
suspend (boolean) – True if suspended
passwd (string) – Password for login
- DELETE /users/(userid)
Remove a user
- Parameters:
userid – Unique indentifier of user
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
403 Forbidden – Forbidden
Items (tracker objects)
Source: ItemApi.java
/item/{id}/info |
GET |
O |
Get info about an item (open version) |
/item/{id}/xinfo |
GET |
L |
Get info about an item |
/item/{id}/pos |
GET |
O |
Get position of an item (open version) |
/item/{id}/xpos |
GET |
L |
Get position of an item |
/item/{id}/trail |
GET |
O |
Get trail of moving item. List of points (open) |
/item/{id}/xtrail |
GET |
L |
Get trail of moving item. List of points. |
/item/{id}/reset |
PUT |
S |
Reset trail and other info about item |
/item/{id}/chcolor |
PUT |
S |
Change color of trail. |
/item{id}/tags |
GET |
L |
Get list of tags set on an item |
POST |
S |
Add a tag to an item |
|
/item/{id}/tags/{tag} |
DELETE |
S |
Remove a tag from an item |
/items |
GET |
O |
Search items (query parameters, open version) |
/xitems |
GET |
L |
Search items (query parameters) |
/item/{id}/alias |
GET |
S |
Alias for tracker with id (callsign). |
PUT |
S |
Set alias for tracker with id (callsign). |
- GET /item/(id)/xinfo
Returns info about a item (tracker). The full set of returned attributes depend on the type of item. Here we show what all items will have.
- Parameters:
id – Identifier of tracker item (callsign)
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
404 Not Found – Unknown tracker item
403 Forbidden – Not authorized for access to item
500 Internal Server Error – Error
- Response JSON Object:
type (string) – Type of item
ident (string) – Ident of item (callsign, etc)
descr – Description text
source (string) – Name of source
pos[] (double) – Position of item (lon, lat)
- GET /item/(id)/xpos
Returns position of an item (tracker).
- Parameters:
id – Identifier of tracker item (callsign)
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
404 Not Found – Unknown tracker item
403 Forbidden – Not aauthorized for access to item
500 Internal Server Error – Error
- Response JSON Object:
pos[] (double) – Position of item (lon, lat)
- GET /item/(id)/xtrail
Returns a trail of moving tracker. List of points.
- Parameters:
id – Identifier of tracker item (callsign)
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
404 Not Found – Unknown tracker item
403 Forbidden – Not aauthorized for access to item
500 Internal Server Error – Error
- Response JSON Array of Objects:
time (Date) – Time of point
speed (int) – Speed of tracker at point (km/h)
course (int) – Course of tracker at point (0-360 degrees)
dist (int) – Distance from previous point (meters)
path (string) – Digipeating path of APRS report
- PUT /item/(id)/reset
Reset trail and other info about item
- Status Codes:
401 Unauthorized – Authentication failed
404 Not Found – Unknown tracker item
403 Forbidden – Not authorized for access to item
- PUT /item/(id)/chcolor
Change colour of trail
- Status Codes:
401 Unauthorized – Authentication failed
404 Not Found – Unknown tracker item
401 Unauthorized – Unauthorized for access to item
- GET /item/(id)/tags
Returns list of tags set on the item
- Parameters:
id – Identifier of tracker item (callsign)
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
404 Not Found – Unknown tracker item
403 Forbidden – Not authorized for access to item
- Response JSON Array of Objects:
tag (string) – Tag
- POST /item/(id)/tags
Add tags to the item
- Parameters:
id – Identifier of tracker item (callsign)
tag – The tag to be added
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
404 Not Found – Unknown tracker item
403 Forbidden – Not authorized for access to item
- Request JSON Array of Objects:
tag (string) – Tag to be added
- DELETE /item/(id)/tags/(tag)
Remove a tag from the item
- Parameters:
id – Identifier of tracker item (callsign)
tag – The tag to be removed
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
404 Not Found – Unknown tracker item
403 Forbidden – Forbidden (or not authorized for access to item)
- GET /items
Search items. Takes two query parameters: A search expression and a list of tags. The search return items where the search expression matches callsign, name or description and where tags matches.
- Form Parameters:
src – Search expression for matching ident/callsign and comment
tags – Comma separated list of tags
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
- Response JSON Array of Objects:
ident (string) – Ident or callsign for the item
name – Name of the item
alias – Alias of the item if set
pos[] (double) – Position of item (lon, lat)
updated (Date) – Time when item was last updated
descr (string) – Description
speed (int) – Moving speed (km/h)
course (int) – Moving course (degrees)
- GET /item/(id)/alias
Returns alias (and alternative icon) set on the item
- Parameters:
id – Identifier of tracker item (callsign)
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
404 Not Found – Unknown tracker item
403 Forbidden – Not authorized for access to item
- Response JSON Object:
alias (string) – Alias (null if not set)
icon (string) – Alternative icon (null if not set)
- PUT /item/(id)/alias
Set alias (and alternative icon) on the item
- Parameters:
id – Identifier of tracker item (callsign)
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
404 Not Found – Unknown tracker item
401 Unauthorized – Not authorized for access to item
401 Unauthorized – Alias can only be set by owner
400 Bad Request – Cannot parse input
- Request JSON Object:
alias (string) – Alias (null if not set)
icon (string) – Alternative icon (null if not set)
APRS Telemetry
Source: ItemApi.java
/telemetry/{id}/descr |
GET |
O |
Get telemetry description for a given item |
/telemetry/{id}/meta |
GET |
O |
Get telemetry metadata for a given item |
/telemetry/{id}/current |
GET |
O |
Get telemetry current report for a given item |
/telemetry/{id}/history |
GET |
O |
Get telemetry history report for a given item |
- GET /telemetry/(id)/descr
Returns a description for the given item
- Parameters:
id – Identifier of item (callsign)
- Status Codes:
200 OK – Ok
404 Not Found – Unknown tracker item
404 Not Found – No telemetry found
404 Not Found – Telemetry is invalid
- Response JSON Object:
descr (string) – Description text
- GET /telemetry/(id)/meta
Returns telemetry metadata for the given item
- Parameters:
id – Identifier of item (callsign)
- Status Codes:
200 OK – Ok
404 Not Found – Unknown tracker item
404 Not Found – No telemetry found
404 Not Found – Telemetry is invalid
- Response JSON Object:
num (NumChannelMeta[]) – Metadata for numerical channels (string param, string unit, float[] eqns)
bin (BinChannelMeta[]) – Metadata for binary channels (string param, string unit, boolean bit, boolean use)
- GET /telemetry/(id)/current
Returns current telemetry data (last reported) for the given item
- Parameters:
id – Identifier of item (callsign)
- Status Codes:
200 OK – Ok
404 Not Found – Unknown tracker item
404 Not Found – No telemetry found
404 Not Found – Telemetry is invalid
- Response JSON Object:
seq (int) – sequence number?
time (Date) – Reported time
num (float[]) – Numeric data values
bin (boolean[]) – Binary data values
- GET /telemetry/(id)/history
Returns list of telemetry data reported earlier for the given item
- Parameters:
id – Identifier of item (callsign)
- Status Codes:
200 OK – Ok
404 Not Found – Unknown tracker item
404 Not Found – No telemetry found
404 Not Found – Telemetry is invalid
- Response JSON Array of Objects:
seq (int) – sequence number?
time (Date) – Reported time
num (float[]) – Numeric data values
bin (boolean[]) – Binary data values
Own APRS objects
Source: AprsObjectApi.java
/aprs/objects |
GET |
S |
Get the list of active objects (owned by this server) |
POST |
S |
Add an object |
|
/aprs/objects/{id} |
PUT |
S |
Update an object |
DELETE |
S |
Remove an object |
- GET /aprs/objects
Returns a list of active APRS objects owned by this server.
- Status Codes:
200 OK – Ok
- Response JSON Array of Objects:
ident (string) – Identifier (callsign) of APRS objects
- POST /aprs/objects
Add an APRS object to this server
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
400 Bad Request – Object already exists
400 Bad Request – Invalid object. Couldn’t post
500 Internal Server Error – Couldn’t post object
- Request JSON Object:
ident (string) – Identifier (callsign) of APRS object
pos (double[]) – Position of APRS object (longitude, latitude)
sym (char) – Symbol
symtab (char) – Symbol table
comment (string) – Comment text
perm (boolean) – True if permanent;
- PUT /aprs/objects
Update an APRS object on this server
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
400 Bad Request – Object not found
- Request JSON Object:
pos (double[]) – Position of APRS object (longitude, latitude)
sym (char) – Symbol
symtab (char) – Symbol table
comment (string) – Comment text
- DELETE /aprs/objects/(id)
Delete an APRS object from this server
- Parameters:
id – Identifier of item (callsign)
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
400 Bad Request – Object not found
500 Internal Server Error – Couldn’t delete object
Short messages
Source: MailBoxApi.java Se also info about asynchrounous events
/mailbox |
GET |
L |
Get content of mailbox (list of messages) |
POST |
L |
Post a message |
|
/mailbox/{msg-id} |
DELETE |
L |
Delete a message from mailbox |
- GET /mailbox
Returns the content of the user’s mailbox (list of messsages)
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
401 Unauthorized – No mailbox available
- Response JSON Array of Objects:
msgId (long) – Unique identifier of message;
status (int) – Delievery status -1=failure, 1=success
time (Date) – Time of posting
from (string) – Sender (userid@node or callsign@APRS)
to (string) – Recipient (userid@node or callsign@APRS)
read (boolean) – True if messsage is read by recipient
outgoing (boolean) – True if outgoing
text (string) – Content of messsage
- POST /mailbox
Post a message to another user (or to APRS)
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
400 Bad Request – Cannot parse input
404 Not Found – Unknown from-address
404 Not Found – Callsign is needed for raw APRS messages
404 Not Found – Couldn’t deliver message
- Request JSON Object:
msgId (long) – Unique identifier of message;
status (int) – ignored
time (Date) – Time of posting or null to use time now
from (string) – Should be null or match user that is posting
to (string) – Recipient (userid@node or callsign@APRS)
read (boolean) – ignored
outgoing (boolean) – ignored
text (string) – Content of messsage
- DELETE /mailbox/(msgid)
Delete an IPP
- Parameters:
msgid – Unique indentifier of message
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
400 Bad Request – Message id must be a number
APRS Bulletins
Source: BullBoardApi.java
/bullboard/groups |
GET |
L |
List of active bulletin groups |
/bullboard/{groupid}/senders |
GET |
L |
List of callsigns of senders to a given group |
/bullboard/{groupid}/messages |
GET |
L |
Get all messages in a group |
POST |
L |
Submit a bulletin |
|
/bullboard/{groupid}/messages/{sender} |
GET |
L |
Bulletins from a given sender in a group |
- GET /bullboard/groups
Returns a list of active bulleti groups
- Status Codes:
401 Unauthorized – Authentication failed
200 OK – Ok
- Response JSON Array of Objects:
id (string) – Group id
- GET /bullboard/(groupid)/senders
Returns a list of callsigns that have posted messages to the group
- Parameters:
groupid – Unique indentifier of group
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
404 Not Found – Group not found.
- Response JSON Array of Objects:
id (string) – Callsign of sender
- GET /bullboard/(groupid)/messages
Returns all messages in a group. Note that this returns a list of lists
- Parameters:
groupid – Unique indentifier of group
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
404 Not Found – Group not found.
- Response JSON Array of Objects:
id (string) – Callsign of sender
Bulletin[] – List of bulletins (several attributes)
- POST /bullboard/(groupid)/messages
Post a bulletin to a group
- Parameters:
groupid – Unique indentifier of group
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
403 Forbidden – No callsign registered for user.
400 Bad Request – Cannot parse input
- Request JSON Object:
bullid (string) – Index for bulletin
groupid (string) – Group identifier
text (string) – Text of bulletin
- GET /bullboard/(groupid)/messages/(sender)
Returns messages in a group posted by a specific sender. Note that this returns a list of lists
- Parameters:
groupid – Unique indentifier of group
sender – Callsign of sender
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
404 Not Found – Group not found.
- Response JSON Array of Objects:
id (string) – Callsign of sender
Bulletin[] – List of bulletins (several attributes)
SAR (Search and Rescue)
Source: SarApi.java
/sar/ipp |
GET |
L |
Get a list of IPPs (with distance rings) for user |
POST |
L |
Add a IPP (with distance rings) |
|
/sar/ipp/{id} |
GET |
L |
Get a specific IPP |
PUT |
L |
Update a specific IPP |
|
DELETE |
L |
Remove a IPP |
- GET /sar/ipp
Returns a list of IPPs for the given user.
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
500 Internal Server Error – No authorization info found.
- Response JSON Array of Objects:
id (string) – Unique identifier
descr (string) – Descripttion of IPP
pos (double[]) – Position of IPP (longitude, latitude)
p25 (float) – Radius (meters) of 25% distance ring
p50 (float) – Radius (meters) of 50% distance ring
p75 (float) – Radius (meters) of 75% distance ring
p95 (float) – Radius (meters) of 95% distance ring
- POST /sar/ipp
Add a IPP
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
500 Internal Server Error – No authorization info found.
400 Bad Request – Cannot parse input
- Request JSON Object:
id (string) – Unique identifier for ipp
descr (string) – Description of IPP
pos (double[]) – Position of IPP (longitude, latitude)
p25 (float) – Radius (meters) of 25% distance ring
p50 (float) – Radius (meters) of 50% distance ring
p75 (float) – Radius (meters) of 75% distance ring
p95 (float) – Radius (meters) of 95% distance ring
- GET /sar/ipp/(id)
Returns a specific IPP
- Parameters:
id – Unique indentifier of IPP
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
500 Internal Server Error – No authorization info found.
404 Not Found – Not found.
- Response JSON Object:
id (string) – Unique identifier
descr (string) – Descripttion of IPP
pos (double[]) – Position of IPP (longitude, latitude)
p25 (float) – Radius (meters) of 25% distance ring
p50 (float) – Radius (meters) of 50% distance ring
p75 (float) – Radius (meters) of 75% distance ring
p95 (float) – Radius (meters) of 95% distance ring
- PUT /sar/ipp/(id)
Update a specific IPP
- Parameters:
id – Unique indentifier of IPP
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
500 Internal Server Error – No authorization info found.
400 Bad Request – Cannot parse input
404 Not Found – Not found.
- Request JSON Object:
id (string) – Unique identifier
descr (string) – Descripttion of IPP
pos (double[]) – Position of IPP (longitude, latitude)
p25 (float) – Radius (meters) of 25% distance ring
p50 (float) – Radius (meters) of 50% distance ring
p75 (float) – Radius (meters) of 75% distance ring
p95 (float) – Radius (meters) of 95% distance ring
- DELETE /sar/ipp/(id)
Delete an IPP
- Parameters:
id – Unique indentifier of IPP
- Status Codes:
200 OK – Ok
401 Unauthorized – Authentication failed
500 Internal Server Error – No authorization info found.