To create new wiki account, please join us on #znc at Libera.Chat and ask admins to create a wiki account for you. You can say thanks to spambots for this inconvenience.

Api: Difference between revisions

From ZNC
Jump to navigation Jump to search
Strugee (talk | contribs)
Document errors
Strugee (talk | contribs)
Document NULL
Line 34: Line 34:
== Types ==
== Types ==


Scalar types are returned without any special syntax.
Scalar types are returned preceded by the string <code>VALUE</code>, or <code>NULL</code> if the result was empty.


Lists of scalar types are returned one element per IRC message, preceded by the string <code>LIST</code> and ended by the string <code>LISTEND</code>.
Lists of scalar types are returned one element per IRC message, preceded by the string <code>LIST</code> and ended by the string <code>LISTEND</code>. Queries that return lists will never return <code>NULL</code>.


Lists of n-tuples are returned one tuple element per IRC message and in order, preceded by the string <code>TUPLELIST <n></code> and ended by the string <code>TUPLELISTEND</code> where <code><n></code> is the arity of the tuples in the list.
Lists of n-tuples are returned one tuple element per IRC message and in order, preceded by the string <code>TUPLELIST <n></code> and ended by the string <code>TUPLELISTEND</code> where <code><n></code> is the arity of the tuples in the list.

Revision as of 02:44, 6 August 2021

Commands

PING Unconditionally returns PONG. Exists primarily for testing things, or may be used to probe for API availability without making any calls.
HELP Returns informational text about the API's self-documentation.
COMMANDS Returns a list of available commands.
QUERYSCOPES Returns a list of available QUERY scopes. See below.
QUERY Used to query information. See below.

QUERY command

The QUERY command is organized into scopes. The scope specifies where to query for the information. Here are the available scopes:

ZNC Static, ZNC-wide readonly information about the ZNC binary.
USER Information about the currently authenticated user.

TODO document parameters

Types

Scalar types are returned preceded by the string VALUE, or NULL if the result was empty.

Lists of scalar types are returned one element per IRC message, preceded by the string LIST and ended by the string LISTEND. Queries that return lists will never return NULL.

Lists of n-tuples are returned one tuple element per IRC message and in order, preceded by the string TUPLELIST <n> and ended by the string TUPLELISTEND where <n> is the arity of the tuples in the list.

For example, here is a list of the numbers 1, 2, and 3:

LIST
1
2
3
LISTEND

And here is a list of the 2-tuples (A, 1), (B, 2), and (C, 3):

TUPLELIST 2
A
1
B
2
C
3
TUPLELISTEND

Errors

Each error consists of a general code followed by a space and a more specific, human-readable string. Here are all the error codes you may encounter:


EINVAL Invalid command or argument
EACCES Permission denied

Here's an example of an error returned after trying to QUERY a property that doesn't exist in the USER scope:

EINVAL Unknown query in scope USER

Here EINVAL is the general code and Unknown query in scope USER is the human-readable-string. Both elements of these errors will be kept stable over time.