RPC documentation, for alternative implementations, scripting, compatibility checking, etc. Requests are made to https:///rpc/ Signed RPC requests are sent as POST requests with the following fields: data: signature: algorithm: Additionally signed requests must specify their origin node with the X-Thingshare-node HTTP header, for the recipient to look up the public key for signature verification (RPC: rpckey) RPC: thing/ Returns information about the thing by the given ID on this node. Return format: { "id": , "name": , "description": , "date": , "files": [ { "name": , "path": , "preview": , "preview3d": , "type": }, ], "license": { "name": , "simple": }, "by": { "displayname": , "name": } } RPC: search//// Returns an array of at most the requested number of items matching the given search terms Return format: [ { "id": , "name": , "description": , "date": , "preview": , "by": { "displayname": , "name": } }, ] RPC: peers Returns the list of peers a node actively federates with (includes in searches), as well as a list of blacklisted peers that will not be added even if 'automatically follow peers' is enabled Return format: { "peers": [ , ] "blacklist": [ , ] } RPC: rpckey Returns the cryptographic public key the node uses to sign content stored on peers such as messages, comments, and reports, in JSON-encapsulated PEM format Return format: { "public": } RPC: user/ Returns information about the user by the given username on this node. Return format: { "displayname": , "profile": , "things": [ { "id": , "name": , "description": , "date": , "preview": , }, ], "banned": } RPC: comments/ Returns the comments for the given thing on this node. Return format: [ { // Repeated for however many top comments there are "id": , "sender": , "replyto": , "message": , "sent": , "removed": , "replies": [ ] } ] RPC: comments/ Sends a comment for the given thing on this node. Signed request format: { "from": , "message": , "replyto": } Return format: {"status":"OK"} or {"error":} RPC: messages/ Sends a direct message to the user of the given username on this node. Signed request format: { "from": , "subject": , "message": , "chain": } Return format: {"status":"OK"} or {"error":} RPC: report File a report on unfit content. Signed request format: { "user": , "target": , "reason": } Return format: {"status":"OK"} or {"error":} RPC: notification/ Send a notification (about a comment, maybe the only thing notifications will be needed for) Signed request format: { "message": , "link": } Return format: {"status":"OK"} or {"error":}