postevent — The most important mode, this is how a user actually submits a new log entry to the server.

Mode Description

Given all of the require information on a post, optionally adding security or meta data, will create a new entry. Will return the itemid of the new post.


  1. [struct](required)

    Containing keys:

    • username(required):

      • [scalar](required) Username of user logging in.

    • auth_method(optional):

      • [scalar](required) Authentication method used for this request. The default value is "clear", for plain-text authentication. "cookie" and any of the challenge-response methods are also acceptable.

    • password(optional):

      • [scalar](required) Deprecated. Password of user logging in in plaintext. If using the "clear" authentication method, either this or "hpassword" must be present.

    • hpassword(optional):

      • [scalar](required) Deprecated. MD5 digest of user's password. Not much more secure than password, but at least it's not in plain text.

    • auth_challenge(optional):

      • [scalar](required) If using challenge-response authentication, this should be the challenge that was issued to you by the server.

    • auth_response(optional):

      • [scalar](required) If using challenge-response authentication, this should be the response hash that you generate, based on the formula required for your challenge.

    • ver(optional):

      • [scalar](required) Protocol version supported by the client; assumed to be 0 if not specified. See Chapter 27, Protocol Versions for details on the protocol version.

    • event(required):

      • [scalar](required) The event/log text the user is submitting. Carriage returns are okay (0x0A, 0x0A0D, or 0x0D0A), although 0x0D are removed internally to make everything into Unix-style line-endings (just \ns). Posts may also contain HTML, but be aware that the LiveJournal server converts newlines to HTML <BR>s when displaying them, so your client should not try to insert these itself.

    • lineendings(required):

      • [scalar](required) Specifies the type of line-endings you're using. Possible values are unix (0x0A (\n)), pc (0x0D0A (\r\n)), or mac (0x0D (\r) ). The default is not-Mac. Internally, LiveJournal stores all text as Unix-formatted text, and it does the conversion by removing all \r characters. If you're sending a multi-line event on Mac, you have to be sure and send a lineendings value of mac or your line endings will be removed. PC and Unix clients can ignore this setting, or you can send it. It may be used for something more in the future.

    • subject(required):

      • [scalar](required) The subject for this post. Limited to 255 characters. No newlines.

    • security(optional):

      • [scalar](required) Specifies who can read this post. Valid values are public (default), private and usemask. When value is usemask, viewability is controlled by the allowmask.

    • allowmask(optional):

      • [scalar](required) Relevant when security is usemask. A 32-bit unsigned integer representing which of the user's groups of friends are allowed to view this post. Turn bit 0 on to allow any defined friend to read it. Otherwise, turn bit 1-30 on for every friend group that should be allowed to read it. Bit 31 is reserved.

    • year(required):

      • [scalar](required) The current 4-digit year (from the user's local timezone).

    • mon(required):

      • [scalar](required) The current 1- or 2-digit month (from the user's local timezone).

    • day(required):

      • [scalar](required) The current 1- or 2-digit day of the month (from the user's local timezone).

    • hour(required):

      • [scalar](required) The current 1- or 2-digit hour from 0 to 23 (from the user's local timezone).

    • min(required):

      • [scalar](required) The current 1- or 2-digit minute (from the user's local timezone).

    • props(optional): Set arbitrary (but restricted) meta-data properties to this log item. See Chapter 30, Journal Entries Meta-data for the documentation of the keys and value data types.

      Chapter 30, Journal Entries Meta-data
      • [array](required)The following 'struct' should have property names as the keys, and the values should be a scalar data type. Containing items:

        • [struct](optional; multiple allowed)

          Containing keys:

      • usejournal(optional): If posting to a shared journal, include this key and the username you wish to post to. By default, you post to the journal of "user" as specified above.

        • [scalar](required) Journal username that authenticating user has 'usejournal' access in, as given in the 'login' mode.

    Example 29. Sample call to LJ.XMLRPC.postevent

    POST /interface/xmlrpc HTTP/1.0
    User-Agent: XMLRPC Client 1.0
    Content-Type: text/xml
    Content-Length: 927
    <?xml version="1.0"?>
    <value><string>This is a test post.

    Return Values

    1. [struct](required)

      Containing keys:

      • itemid(required):

        • [scalar](required) The unique number the server assigned to this post. Currently nothing else in the protocol requires the use of this number so it's pretty much useless, but somebody requested it be returned, so it is.

      • anum(required):

        • [scalar](required) The authentication number generated for this entry. It can be used by the client to generate URLs, but that is not recommended. (See the returned 'url' element if you want to link to a post.)

      • url(required):

        • [scalar](required) The permanent link address to this post. This is an opaque string--you should store it as is. While it will generally follow a predictable pattern, there is no guarantee of any particular format for these, and it may change in the future.

    Example 30. Sample return value for LJ.XMLRPC.postevent

    HTTP/1.1 200 OK
    Connection: close
    Content-length: 238
    Content-Type: text/xml
    Date: Sat, 13 Jul 2002 23:49:53 GMT
    Server: Apache/1.3.4 (Unix)