API

From Mission Manager Wiki
Jump to: navigation, search

Mission Manager allows access to certain mission features by a REST API. With this API you can do such things as write your own mobile application for GPS Tracking, posting clues (including pictures) back to the current mission. For a member to use the API they must have an email, login into the system, and possess the API Access login permission or have full system access. If the member meets these requirements they will have a new "API Access" area on the Member screen when their name is selected. Opening this "API Access" area will display their API Key which can be reset, created or cleared with the buttons next to the API Key display. This API Key is required for all API calls. For an example of the API working in JavaScript see the sample code page: apitester.html.

API keys can be created for each member on the Members screen or at a team level in the Configuration screen. Some API calls are available to both team and member APIs, while other calls may only be available to one or the other. This is noted in each API call type.

Only members who have an API Key, and email address and are active can make API calls with a mobile application.

The following are the different types of API calls that can be done:

Other Useful sections:

The general REST API parameters are as follows (note: all parameters are case sensitive):

Parameters
APIKey The member's API Key. This parameter is required for all API Calls and is case sensitive.
MissionID This is what mission the API is posting to. This parameter is required for any calls that post to a mission
SubjectID Identifies what subject you are getting information for.
Get Tells the GET call to get some information about the current mission.See the examples below for the possible values of this parameter.
Post Tells the POST call you are adding something to the mission, Values can be as follows:
Clue Add a clue - see notes below.
Location Add a GPS Location - see notes below.
OutputFormat Specifies the output format returned for such things as MissionsLists and SubjectLists, etc. The value can be one of the following:
Text Returns the list in pure text format, with the fields separated by commas. Fields containing a comma will have that comma replaced with a \, (backslash comma). This is the default format. Looking at the XML or JSON output can be used to identify the order of the fields.
XML Returns the list in XML format.
JSON Returns the list in JSON fomat.
Latitude A GPS location Latitude, this parameter must be passed when adding clues, adding radio log entries or posting GPS locations.
Longitude A GPS location Longitude, this parameter must be passed when adding clues, adding radio log entries or posting GPS locations.
Altitude A GPS location altitude that can be used when posting GPS locations.
ImageURL A URL to a image that can be posted as a clue picture. The size of an image is limited to 2MB.
Image A posted image, this is an image posted via HTML <input type="file" name="Image"> or its equivalent. The size of an image is limited to 2MB.
AreaFilter This parameter can be used when getting map area information with the parameters MissionAreas or TeamAreas. The value for this parameter can be any of the following words separated by a comma: [Area][,Path][,Marker][,Pie][,Circle]
Time A time the clue was found, a radio log was entered, or a GPS location was collected. If this parameter is omitted the current local time will be used. The format of the time is HH:MM:SS.
Date A date the clue was found, a radio log was entered or a GPS location was collected. If this parameter is omitted the current local date will be used. The format of the date is YYYY-MM-DD.


The REST API Reference is as follows:

Getting a List of Active Missions
Gets a list of active missions the member has access to. The list is returned in a comma separated list, with each mission on a new line. This should be the first API call, and the list of missions should be presented to the user so they can select what mission they are currently on. This call is available to both member and team API keys. Member API Keys will only get a list of Active missions, Team API Keys will get a list of Active, Suspended, and Closed missions, but will not get missions marked as Sensitive on the General Screen.
Type GET/POST
URL https://www.missionmanager.net/api.php
Parameters <APIKey=XXXXXXX>,< Get=MissionsList>, [OutputFormat=format]
Return Value <mission id>,<mission date>,<mission name>

[<mission id>,<mission date>,<mission name>]

...

or an Error Code

Example https://www.missionmanager.net/api.php?Get=MissionsList&APIKey=aXdnT45856oKtlOyssl3iHOH8257F4OW9
Getting the Team Calendar as an ICS file
Gets your team's calendar as an ICS file. This file can be used to feed into another program. The user making the call must have Calendar Access permission. This call is available to both member and team API keys.
Type GET/POST
URL https://www.missionmanager.net/api.php
Parameters <APIKey=XXXXXXX>,< Get=calICS>
Return Value Your team's calendar as an ICS file.

...

or an Error Code

Example https://www.missionmanager.net/api.php?Get=calICS&APIKey=aXdnT45856oKtlOyssl3iHOH8257F4OW9
Getting Team and Member Time Keeping data in CSV files
The API can gain access to your team's Time Keeping totals as well as the current member who's making the API call Time Keeping totals. To access your team's data use the Get=TeamTimeKeepingCSV and the member making the API call must have the Time Keeping - Other's login permission. To access the current members timekeeping CSV file use the Get=TimeKeepingCSV parameter. You must include a StartDate and EndDate parameters to specify the dates range to get. The format of the dates are YYYY-MM-DD. This call is only available to member API keys.
Type GET/POST
URL https://www.missionmanager.net/api.php
Parameters <APIKey=XXXXXXX>,< Get=TeamTimeKeepingCSV | TimeKeepingCSV >,<StartDate=YYYY-MM-DD>,<EndDate=YYYY-MM-DD>
Return Value A CSV (Comma Separated Values) file

...

or an Error Code

Example https://www.missionmanager.net/api.php?Get=TeamTimeKeepingCSV&StartDate=2013-01-01&EndDate=2013-04-01&APIKey=aXdnT45856oKtlOyssl3iHOH8257F4OW9
Create a New Mission
Creates a new mission. The member making this call must have Mission - Active Missions permission or an error will be returned. The app should correctly display a proper message and warn the user they do not have the correct permissions. This call is available to both member and team API keys.
Type GET/POST
URL https://www.missionmanager.net/api.php
Parameters <APIKey=XXXXXXX>,< NewMission=mission name>
Return Value New Mission Number on success

...

or an Error Code

Example https://www.missionmanager.net/api.php?Post=NewMissions&MissionName=John%20Doe&APIKey=aXdnT45856oKtlOyssl3iHOH8257F4OW9
Getting Mission Information
Gets information about a mission. This call is available to both member and team API keys. member level API Keys can only retrieve information about active missions, Team API Keys can retrieve information about Active, Suspended, and Closed Missions, but not missions marked as Sensitive on the General Screen. The parameter type get can be one of the the following values:
MissionName Returns the mission's name.
MissionDescription Returns the mission description.
CommandPostName Returns the command post name.
CommandPostLocation Returns the command post location.
CommandPostGPSLocation Returns the command post GPS location.
RadioCommandChannel Returns the current radio command channel.
RadioTacticalChannel Returns the current radio tactical channel.
MissionAreas Returns a detailed list of all the mission areas as drawn on the mission map. The parameter AreaFilter can be used to filter the retuned area types.
MissionInformation Returns a list of all the mission information. Respects the OutputFormat parameter.
Type GET/POST
URL https://www.missionmanager.net/api.php
Parameters <Get=type>>, <APIKey=XXXXXXX>, <MissionID=##>
Return Value The string value requested

...

or an Error Code

Example https://www.missionmanager.net/api.php?Get=MissionName&APIKey=aXdnT45856oKtlOyssl3iHOH8257F4OW9&MissionID=1
Getting a Team GUID
The API allows you to query a team's GUID or Unique Identifier. This value will be unique for every team and will never change. This TeamGUID can be used if the application needs to compare and see if two different application users are part of the same team. The team GUID is a 36 character string. This is an advanced feature and will not be needed by most API developers. This call is available to both member and team API keys. This call is available to both member and team API keys.
Type GET
URL https://www.missionmanager.net/api.php
Parameters <APIKey=XXXXXXX>,< Get=TeamGUID>
Return Value teamguid on success

...

or an Error Code

Example https://www.missionmanager.net/api.php?Get=TeamGUID&APIKey=aXdnT45856oKtlOyssl3iHOH8257F4OW9
Adding a Team's GPS Location
Posts a GPS Location of a mobile device. The location will be added to a teams track. Only members currently on a team that is "On Assignment" will accept GPS locations. The API will identify what team the posting person is on and add the location to that team's track. A Date and Time can be posted along with the location, if these are not posted the current date and time will be used. Note that you must pass both Date and Time, or the current time will be used. If an application is going to post a date and time, it should do so for all points. An application can continue to collect GPS locations if the mobile phone goes out of service range, then when the phone is back in a service area, post all the collected locations. This call is only available to member API keys.
Type POST
URL https://www.missionmanager.net/api.php
Parameters <Post=Location>, <APIKey=XXXXXXX>, <MissionID=##>, <Latitude=###.###>, <Longitude=###.###>, [Altitude=###], [Date=date], [Time=time]
Return Value <0> on success

...

or an Error Code

Example https://www.missionmanager.net/api.php?APIKey=aXdnT45856oKtlOyssl3iHOH8257F4OW9&MissionID=1 &Post=Location&Latitude=32.95500888763828&Longitude=-116.96466252343748
Getting Clue Information
Gets information about the team the member making the API calls is on or information about other teams on the Mission. Presenting this information on a mobile application can lessen the need for a paper team assignment to be given to teams. This call is available to both member and team API keys, although when calling from a Team API Key the TeamGet parameter must be supplied. The parameter type get can be one of the the following values:
CluesList Returns a list of clues in the following format:

<clue ID>,<name>,<description>,<date found>,

...

Respects the OutputFormat parameter. Once you have the list of clue IDs you can use those numbers to retrieve more specific information about clues using the ClueID parameter.

ClueID This is an optional parameter that will specify the clue ID of the clue you want to get the below Get information for. This parameter must be set to request any of the specific variables below.
ClueName Returns the clue name. ClueID variable must be set to retrieve this variable.
ClueDescription Returns the clue description. ClueID variable must be set to retrieve this variable.
ClueFoundDate Returns the clue found date. ClueID variable must be set to retrieve this variable.
ClueFoundTime Returns the clue found time. ClueID variable must be set to retrieve this variable.
ClueLocation Returns the clue location. ClueID variable must be set to retrieve this variable.
ClueGPSLocation Returns the clue GPS location. ClueID variable must be set to retrieve this variable.
ClueInstructions Returns the clue instructions given to the team. ClueID variable must be set to retrieve this variable.
Type GET/POST
URL https://www.missionmanager.net/api.php
Parameters <Get=type>>, <APIKey=XXXXXXX>, <MissionID=##>, [ClueID=clue ID], [OutputFormat=format]
Return Value The string, XML, or JSON values requested

...

or an Error Code

Example https://www.missionmanager.net/api.php?Get=ClueList&APIKey=aXdnT45856oKtlOyssl3iHOH8257F4OW9&MissionID=1
Getting Team Information
Gets information about the team the member making the API calls is on or information about other teams on the Mission. Presenting this information on a mobile application can lessen the need for a paper team assignment to be given to teams. This call is available to both member and team API keys, although when calling from a Team API Key the TeamGet parameter must be supplied. The parameter type get can be one of the the following values:
TeamsList Returns a list of teams in the following format:

<team number>,<team status> [<team number>,<team status>] ...

Respects the OutputFormat parameter. Once you have the list of team numbers you can use those numbers to retrieve more information about other teams using the TeamGet parameter.

TeamGet This is an optional parameter that will specify the team number of the team you want to get the below Get information for. If this parameter is omitted the information returned will be for the team the member getting the information is currently assigned to.
TeamMembers Returns a list of the members teammates. This will be a list of names separated by commas, the first name will be the team leader. Respects the OutputFormat parameter.
TeamInformation Returns a list of all the team information. Respects the OutputFormat parameter.
TeamObjectives Returns the test describing the teams current objectives.
TeamNotes Returns any notes assigned to the team assignment
TeamType Returns the team name
TeamName Returns the team name
TeamNumber Returns the team number
TeamAreas Returns a detailed list of all the mission areas the members team is assigned to. The parameter AreaFilter can be used to filter the retuned area types.
TeamsGPSLocations Returns a list GPS locations for the other teams on the current mission. This will return nothing if there are no teams On Assignment, or there are no GPS locations for teams.
Type GET/POST
URL https://www.missionmanager.net/api.php
Parameters <Get=type>, <APIKey=XXXXXXX>, <MissionID=##>, [TeamGet=Team Number], [OutputFormat=format], [AreaFilter=type,type,...]
Return Value The string, XML, or JSON values requested

...

or an Error Code

Example https://www.missionmanager.net/api.php?Get=TeamMembers&APIKey=aXdnT45856oKtlOyssl3iHOH8257F4OW9&MissionID=1
Getting Subject Information
Gets a list of subjects for a mission. An application should request a list of subjects to retrieve the subject IDs needed when making requests about particular subjects. This call is available to both member and team API keys. The parameter type get can be one of the the following values:
SubjectsList Returns a list of the subjects and the information about those subjects. Respects the OutputFormat parameter.
SubjectImage Returns a image of the specified subject. This is returned in the HTML <img> element with the image itself as base64 in place, element may be directly inserted into an HTML page or app. This requires including the SubjectID parameter to identify what subject image you want.
SubjectField Returns a value for a specific field. This requires including the SubjectID parameter to identify what subject image you want. The member making this call must have Mission - Active Missions permission or an error will be returned. The app should correctly display a proper message and warn the user they do not have the correct permissions. See the Subject Field Names table for valid field names.
Type GET/POST
URL https://www.missionmanager.net/api.php
Parameters <APIKey=XXXXXXX>,< Get=SubjectList>, <MissionID=##>, [OutputFormat=format]

<APIKey=XXXXXXX>,< Get=SubjectImage>, <MissionID=##>, <SubjectID=##>, [OutputFormat=format]

<APIKey=XXXXXXX>,< Get=SubjectField>, <Field=field>, <MissionID=##>, <SubjectID=##>, [OutputFormat=format]

Return Value The string, XML, or JSON values requested

...

or an Error Code

Example https://www.missionmanager.net/api.php?Get=SubjectList&APIKey=aXdnT45856oKtlOyssl3iHOH8257F4OW9
Setting Subject Information
Allows for the remote setting of subject information. This can be used to collect subject information from a mobile app and then set in Mission Manager. The member making this call must have Mission - Active Missions permission or an error will be returned. This call is available to both member and team API keys.
SubjectField Returns a value for a specific field. This requires including the SubjectID parameter to identify what subject image you want. The member making this call must have Mission - Active Missions permission or an error will be returned. The app should correctly display a proper message and warn the user they do not have the correct permissions. See the Subject Field Names table for valid field names.
Value The new value to post into the Subject Field.
Type POST
URL https://www.missionmanager.net/api.php
Parameters <APIKey=XXXXXXX>,< Post=SubjectField>, <Field=field>, <MissionID=##>, <SubjectID=##>, <Value=value>
Return Value The string, XML, or JSON values requested

...

or an Error Code

Example https://www.missionmanager.net/api.php?Set=SubjectField&APIKey=aXdnT45856oKtlOyssl3iHOH8257F4OW9 &MissionID=1&SubjectID=1&Field=SubNickName&Value=Jane%20Doe
Adding a Clue
Posts a new clue to the current mission. This call is available to both member and team API keys. The following parameters are supported, as well as Latitude, Longitude, Date, Time, or ImageURL.
ClueName The name of a clue when a clue is added. This parameter is required when posting a clue.
ClueDescription A description of a clue when a clue is posted. This parameter is optional when posting a clue.
ClueFoundBy The person who found a clue when a clue is posted. This parameter is optional when posting a clue.
ClueLocation A text description of where a clue was found when a clue is posted. This parameter is optional when posting a clue.
Type POST
URL https://www.missionmanager.net/api.php
Parameters <Post=Clue>, <APIKey=XXXXXXX>, <MissionID=##>, <ClueName=name>, [ClueDescription=desc], [ClueFoundBy=by], [ClueLocation=loc], [ImageURL=url], [Latitude=lat], [Longitude=lon], [Date=date], [Time=time]
Return Value <0> on success

...

or an Error Code

Example https://www.missionmanager.net/api.php?APIKey=aXdnT45856oKtlOyssl3iHOH8257F4OW9&MissionID=1&Post=Clue&ClueName=Shoe &ClueDescription=Brown%20and%20dirty&ClueFoundBy=Billy%20Bob&ClueLocation=Under%20the%20big%20tree &ImageURL=http://www.missionmanager.net/HelpImages/HelpIcon_Chrome.jpg&Latitude=33.000752&Longitude=-117.010324
Adding a Radio Log Entry
Posts a new radio log entry to the current mission. Log entries can include the message, who the message is to and from, a latitude and longitude, date and time. A message priority can also be included, the values can be high, normal, or low when setting priority. This call is available to both member and team API keys.
Type POST
URL https://www.missionmanager.net/api.php
Parameters <Post=RadioLog>, <APIKey=XXXXXXX>, <MissionID=##>, <RadioMessage=msg>, [RadioTo=to], [RadioFrom=from], [RadioPriority= high/normal/low], [Latitude=lat], [Longitude=lon], [Date=date], [Time=time]
Return Value <0> on success

...

or an Error Code

Example https://www.missionmanager.net/api.php?APIKey=aXdnT45856oKtlOyssl3iHOH8257F4OW9&MissionID=1&Post=RadioLog&RadioMessage=Checking%20In &RadioTo=Command&RadioFrom=Billy&Latitude=33.000752&Longitude=-117.010324
Getting Member Contact Information
Does a search of Members and returns basic contact information for members matching search. If the Search parameter is supplied the first and last name will be searched for a matching string and only those members who match this search will be returned. If the Search perimeter is omitted or blank all the active member contact information for your team will be retuned.
Type POST
URL https://www.missionmanager.net/api.php
Parameters <APIKey=XXXXXXX>,< Get=MemberInfo>, [Search=search val], [OutputFormat=format]
Return Value A list of Member information in the format:
<FirstName>,<LastName>,<HomePhone>,<WorkPhone>,<MobilePhone>,<OtherPhone>,<Email>,<RadioNum>

...

or an Error Code

Example https://www.missionmanager.net/api.php?APIKey=aXdnT45856oKtlOyssl3iHOH8257F4OW9&Get=MemberInfo&Search=Joe
Subject Field Names Description
SubName Subject Name
SubDOB DOB
SubNickName Nick-Name / Name to Call
SubAddess Home Address
SubAddess2 Home Address 2
SubCity Home City
SubState Home State
SubZip Home Zip or Postal Code
DateLastSeen Date Last Seen
TimeLastSeen Time Last Seen
PLS PLS/LKP
Latitude PLS/LKP GPS Latitude
Longitude PLS/LKP GPS Longitude
FoundLat Found GPS Latitude
FoundLon Found GPS Longitude
DateFound Date Found
TimeFound Time Found
DirOfTravel PLS/LKP Direction of Travel
TravelPlans Travel Plans
SpecialAreas Special Areas / Locations Of Interest For Subject
RadHanded Handed
Handicaps Any Handicaps
SubAge Age
SubSex SubSex
SubRace Race
SubBuild Build
Complexion Complexion
SubSMT Scars/Marks/Tattoos
SubWeight Weight
SubHeight Height
SubEye SubEye
SubHairColor Hair Color
SubHairStyle Hair Style
ShirtType Shirt Type
ShirtSize Shirt Size
ShirtColor Shirt Color
PantsType Pants / Dress Type
PantsSize Pants / Dress Size
PantsColor Pants / Dress Color
JacketType Jacket / Sweater Type
JacketSize Jacket / Sweater Size
JacketColor Jacket / Sweater Color
ShoeType Shoe Type / Brand
ShoeSize Shoe Size
ShoeColor Shoe Color
SocksType Socks Type
SocksSize Socks Size
SocksColor Socks Color
GlovesType Hat / Gloves Type
GlovesSize Hat / Gloves Size
GlovesColor Hat / Gloves Color
Glasses Glasses
Innerwear Innerwear
Outerwear Outerwear
OtherClothing Known Clothing Brands Or Special Markings (Team Logos, Cartoons, Etc)
MedicalHistory Medical History
Medications Medications
LastMedsTime Time Of Last Meds
Allergies Allergies
LastMealTime LastMealTime
LastMeal Last Meal Consisted Of
Smoker Does Subject Smoke?
SmokeBrand Cigarette Brand
ChewGum Chew Gum?
GumBrand GumBrand
Weapon Does The Subject Have A Weapon
WeaponType Type and Description of Weapon
StateOfMind Subject's State of Mind
RunAway History Of Subject Running Away
FamilyProblems Recent Family Problems
FriendProblems Recent Problems With Friends
RespondToStranger How Would Subject Respond To Stranger Calling Them
DrugsAlcohol How Often Does The Subject Use Drugs Or Alcohol
RecentIllnesses Recent Illnesses Or Injuries
PracticalJokes Does The Subject Often Play Practical Jokes
StrangersOK How Would Subject Be Around Other People Or Strangers
Hobbies Any Specific Hobbies Or Skills
Circumstances Possible Circumstances Caused Subject To Be Lost
Profession What Is/Was The Subject's Profession
CriminalRecord Criminal Record
FailureToAppears Failures To Appear
Warrants Wants / Warrants Issued For Subject
AfraidDark Afraid Of Dark
AfraidAnimals Afraid Of Animals
AfraidOther Other Fears
FeelingTowardAdults Feeling Toward Adults
FeelingTowardStrangers Feeling Toward Strangers
HurtReaction Reactions When Hurt
LostTraining Training When Lost
ChildOther Other: (Pet's Name?, Favorite Toy?, Favorite Food?, Being Disciplined At The Time Of Disappearance?)
KnowArea Does The Subject Know The Area
LastTripHere Last Trip Here
HikeAlone Ever Hike Alone
MapTraining Formal Map / Compass / GPS Training
LostBefore Has The Subject Ever Been Lost Before
LostWhen Lost When
FirstAid Formal First Aid Training
FirstAidLevel Level of First Aid
Survival Survival Training
RadHike Hiking Experience
HikeTrain Hiking Training
RadRock Rock Climbing Experience
RockTrain Rock Climbing Training
RadCamp Camping Experience
CampTrain Camping Training
RadHunt Hunting Experience
HuntTrain Hunting Training
RadFish Fishing Experience
FishTrain Fishing Training
RadCave Caving Experience
CaveTrain Caving Training
BelongTo Subject Ever Belong To Group: (i.e. Army Navy Marines Air Force Coast Guard Police Fire Dept, etc.)
VehMake1 Vehicles / Vessels 1 - Make
VehModel1 Vehicles / Vessels 1 - Model
VehYear1 Vehicles / Vessels 1 - Year
VehColor1 Vehicles / Vessels 1 - Color
VehLic1 Vehicles / Vessels 1 - License
VehVin1 Vehicles / Vessels 1 - VIN
VehMake2 Vehicles / Vessels 2 - Make
VehModel2 Vehicles / Vessels 2 - Model
VehYear2 Vehicles / Vessels 2 - Year
VehColor2 Vehicles / Vessels 2 - Color
VehLic2 Vehicles / Vessels 2 - License
VehVin2 Vehicles / Vessels 2 - VIN
KinName Next of Kin Name
KinRelation Next of Kin Relation
KinAddress Next of Kin Address
KinAddress2 Next of Kin Address 2
KinCity Next of Kin
KinState Next of Kin
KinZip Next of Kin
KinHomePhone Next of Kin Home Phone
KinWorkPhone Next of Kin Work Phone
KinCellPhone Next of Kin Cell Phone
KinEmail Next of Kin Email
KinLocation Next of Kin Location
KinActions Next of Kin Actions
Wit1Name Witness 1 - Name
Wit1Relation Witness 1 - Relation
Wit1Address Witness 1 - Address
Wit1Address2 Witness 1 - Address 2
Wit1City Witness 1 - City
Wit1State Witness 1 - State
Wit1Zip Witness 1 - Zip or Postal Code
Wit1HomePhone Witness 1 - Home Phone
Wit1WorkPhone Witness 1 - Work Phone
Wit1CellPhone Witness 1 - Cell Phone
Wit1Location Witness 1 - Location
Wit1Email Witness 1 - Email
Wit1Actions Witness 1 - Actions Taken So Far
Wit2Name Witness 2 - Name
Wit2Relation Witness 2 - Relation
Wit2Address Witness 2 - Address
Wit2Address2 Witness 2 - Address 2
Wit2City Witness 2 - City
Wit2State Witness 2 - State
Wit2Zip Witness 2 - Zip or Postal Code
Wit2HomePhone Witness 2 - Home Phone
Wit2WorkPhone Witness 2 - Work Phone
Wit2CellPhone Witness 2 - Cell Phone
Wit2Location Witness 2 - Location
Wit2Email Witness 2 - Email
Wit2Actions Witness 2 - Actions Taken So Far
ConName Contact Name
ConRelation Contact Relation
ConAddress Contact Address
ConAddress2 Contact Address 2
ConCity Contact City
ConState Contact State
ConZip Contact Zip or Postal Code
ConHomePhone Contact Home Phone
ConWorkPhone Contact Work Phone
ConCellPhone Contact Cell Phone
ConEmail Contact Email
ConLocation Contact Location
ConReason Contact Reason
Frnd1Name Friend 1 - Name
Frnd1Address Friend 1 - Address
Frnd1Address2 Friend 1 - Address 2
Frnd1City Friend 1 - City
Frnd1State Friend 1 - State
Frnd1Zip Friend 1 - Zip or Postal Code
Frnd1HomePhone Friend 1 - Home Phone
Frnd1WorkPhone Friend 1 - Work Phone
Frnd1CellPhone Friend 1 - Cell Phone
Frnd1Email Friend 1 - Email
Frnd1Location Friend 1 - Location
Frnd2Name Friend 2 - Name
Frnd2Address Friend 2 - Address
Frnd2Address2 Friend 2 - Address 2
Frnd2City Friend 2 - City
Frnd2State Friend 2 - State
Frnd2Zip Friend 2 - Zip or Postal Code
Frnd2HomePhone Friend 2 - Home Phone
Frnd2WorkPhone Friend 2 - Work Phone
Frnd2CellPhone Friend 2 - Cell Phone
Frnd2Email Friend 2 - Email
Frnd2Location Friend 2 - Location
Frnd3Name Friend 3 - Name
Frnd3Address Friend 3 - Address
Frnd3Address2 Friend 3 - Address 2
Frnd3City Friend 3 - City
Frnd3State Friend 3 - State
Frnd3Zip Friend 3 - Zip or Postal Code
Frnd3HomePhone Friend 3 - Home Phone
Frnd3WorkPhone Friend 3 - Work Phone
Frnd3CellPhone Friend 3 - Cell Phone
Frnd3Email Friend 3 - Email
Frnd3Location Friend 3 - Location
Frnd4Name Friend 4 - Name
Frnd4Address Friend 4 - Address
Frnd4Address2 Friend 4 - Address 2
Frnd4City Friend 4 - City
Frnd4State Friend 4 - State
Frnd4Zip Friend 4 - Zip or Postal Code
Frnd4HomePhone Friend 4 - Home Phone
Frnd4WorkPhone Friend 4 - Work Phone
Frnd4CellPhone Friend 4 - Cell Phone
Frnd4Email Friend 4 - Email
Frnd4Location Friend 4 - Location
Pic Is A Picture Available
PicNeedRet Need To Return Picture
PicToWho Return Picture to Whom
Scent Has A Scent Article Been Obtained
ScentWhat Scent Article Description
ScentWho Scent Article Obtained By Who
ScentTime Scent Article Obtained Time
Room Has The Room / PLS Been Secured With Access Restricted
RoomWho Room Searched / Secured By Who
RoomTime Room Searched / Secured Time
Mark Has The PLS Been Marked
MarkWho PLS Marked By Who
MarkTime PLS Marked Time
Print Have Any Footprints Been Marked
PrintWho Footprints Marked By Who
PrintTime Footprints Marked Time
Card Has A Footprint Card Been Filled Out
CardWho Footprint Card By Who
CardTime Footprint Card Time
Digital Has A Digital Picture Been Taken Of Any Footprint
DigitalWho Digital Picture By Who
DigitalTime Digital Picture Time
Notes Notes
MPNotes Public Missing Person Notes
Interviewers Interviewer's
InterviewersRank Interviewer's Rank
InterviewDate nterview Date
InterviewTime Interview Time
SubjectOutcome Ultimate Outcome For Subject
REST return Error Codes
<0> Success!
<300> Missing API Key
<301> Bad API Key
<302> No command specified
<303> Member with API access is missing an email address
<304> No member permission to use API Access
<305> No MissionID parameter set
<306> Member doesn't have access to the specified mission
<307> Missing Latitude parameter
<308> Missing Longitude parameter
<309> No active missions available
<310> Invalid Latitude Longitude values
<311> No team assignment - this error will be returned if the member accessing the API is not currently assigned to a team
<312> Invalid Post add value
<314> Missing ClueName parameter
<315> Posted image is too large, Image size is limited to 2MB.
<316> Bad or missing SubjectID parameter
<317> Bad image type, only gif, jpg or png images can be posted
<318> Team member is on is not "On Assignment", "On Scene", "Reassigned", or "Returning"
<319> Failed to open passed image URL
<320> A location point was posted too close in time to another point. Locations can only be posted every 10 seconds.
<321> Member making the API call doesn't have the correct login permissions
<322> A bad or out of range TeamGet number was used
<323> No Radio Log message was supplied
<324> Bad Field name
<325> Member isn't active
<326> Missing Mission Name
<327> Missing Post Value
<328> No Calendar Access Permission
<329> No Time Keeping Access Permission
<330> Missing Date parameter
<331> Not available to member API Keys
<332> Not available to team API Key
<333> Bad or missing ClueID parameter

A couple example things you can do with a team or member level API Keys:

To display your Mission Manager Calendar into Google and display on a webpage:

  1. Copy the calendar URL (https://www.missionmanager.net/api.php?Get=calICS&APIKey=YOUR_API_KEY ).
  2. Go to your Google calendar (https://www.google.com/calendar/).
  3. Click the down arrow to the right of "Other Calendars" and then "Add by URL"
  4. Paste the URL and click OK, but do not check the box.
  5. Click the down arrow to the right of your calendar and then "Calendar settings"
  6. Rename the calendar, then click the "Customize the color, size, and other options" link.
  7. Pick the settings you want.
  8. Copy the HTML code and paste into your webpage.
  9. Be sure to rename the calendar, otherwise you are exposing your API key.

If you don't need to embed it, you can stop after step 4 and still get the calendar on your phone, etc.

Note using the method above runs the risk of exposing your API key. You might want to use a little proxy server on your server to further hide it. Here is a little Perl CGI proxy:

#!/usr/bin/perl

use strict;
use warnings;
use LWP::Simple;

print "Content-Type: text/calendar; charset=utf-8\r\n";
print "Pragma: no-cache\r\n";
print "Cache-Control: no-cache, must-revalidate\r\n";
print "Content-Disposition: inline; filename=calendar.ics\r\n";
print "\r\n";

my $apikey = 'YOUR-API-KEY-GOES-HERE';
my $content = get("https://www.missionmanager.net/api.php?Get=calICS&APIKey=$apikey");
print $content; 

To Show Your Team's Missions on a webpage:

Use the following PHP code on your server

<?php

    $url = "http://www.missionmanager.net/api.php?Get=MissionsList&APIKey=YOUR_API_KEY&OutputFormat=JSON";
    $fileContents = file_get_contents($url);
    if(!$fileContents) {
        echo "Failed to get mission list";
        return;
    }

    $aJson = json_decode( $fileContents );
    if(!$aJson) {
        echo "Failed to decode JSON";
        return;
    }

    echo "<table style='border-width: 1px; border-style: solid;'>";
    echo "<tr><td style='border-width: 1px; border-style: solid;'>Date</td><td style='border-width: 1px; border-style: solid;'>Mission</td></tr>";
    foreach($aJson as $mission) {
        echo "<tr>";
        echo "<td style='border-width: 1px; border-style: solid;'>" . $mission->MissionDate . "</td>";
        echo "<td style='border-width: 1px; border-style: solid;'>" . $mission->MissionName . "</td>";
        echo "</tr>";
    }
    echo "</table>";

?> 

The sky is the limit for things you can do with the Mission manager API!