Skip to content

Web API

HarpyWar edited this page Feb 11, 2013 · 6 revisions

Usage of server API controller:

http://example.com/server/api.php?apikey={APIKEY}&do={METHOD}&{PARAMS}

Request type is always GET. The each method returns JSON with response result or error:

{'result':'data'}
or 
{'error':'message'}

serverlist

Get list of installed servers

Return

servers array where each item includes: id, status and name

Example

api.php?do=serverlist

{"result":{"1":{"id":1,"status":true,"hostname":"Server #1"},"2":{"id":2,"status":false,"hostname":"Server #2"}}}

status

Get status of windows service (service can be started but nfk server is not responding)

Parameters

  • id - server id

Return

?bool (true = running | false = stopped | null = pending)

Example

api.php?do=status&id=1

{"result":false}

start

Start server

Parameters

  • id - server id

Return

bool

Example

api.php?do=start&id=1

{"result":true}

stop

Stop server

Parameters

  • id - server id

Return

bool

Example

api.php?do=stop&id=1

{"result":true}

restart

Stop and then start server

Parameters

  • id - server id

Return

bool

Example

api.php?do=restart&id=1

{"result":true}

getfile

Return contents from a specified file.

Allowed files: maplist.txt, server.cfg, message.cfg, startup.cfg, autoexec.cfg, nfkconfig.cfg, nfksetup.ini, ipban.txt

Parameters

  • id - server id
  • file - local server file name

Return

file contents

Example

api.php?do=getfile&id=1&file=maplist.txt

{"result":"pro-dm0 dm\ndm2 dm\ntourney4 dm\ncmp3 dm\ndm13 dm\ndm6 dm\ntourney0 dm\ntourney1 dm\ntourney7 dm\nmdm1 dm\n"}

savefile

Save file contents from url to a specified file.

Allowed files the same as in getfile method.

Note: file ipban.txt is cloned to all servers on the instance!

Parameters

  • id - server id
  • file - local server file name
  • url - (urlencoded) remote url from where the api must download data to save

Return

true

Example

api.php?do=savefile&id=1&file=maplist.txt&url=&url=http%3A//example.com/client/file.php%3Fhash%3Db5639998ca953c6f0870b2cede18488f

{"result":true}

editname

Edit server name in config

Parameters

  • id - server id
  • name - (urlencoded) new server name

Return

edited server name

Example

api.php?do=editname&id=1&name=%5E%21server%20name%20%231

{"result":"^!server name #1"}

getlog

Get realtime.log data from a specified position

Parameters

  • id - server id
  • pos - log file position to start read from (if not passed or equal 0 then read maximum allowed size from the end of log)

Return

array with current pos and data (pos can be used for next method call to get only updated chunk of log)

Example

api.php?do=getlog&id=1&pos=1000

{"result":{"pos":424408,"data":"[1\/24\/2013 3:44:22 AM] console: \"r_wateralpha\" is set t..."}}

scc

Send console command to server

Parameters

  • id - server id
  • cmd - (urlencoded) command text

Return

true

Example

api.php?do=scc&id=1&cmd=say%20hello

{"result":true}
You can’t perform that action at this time.