Request Login Link
 Activate Login Link
 Get User Info
 Updating Author's Info
 Logging out
 POSTS
 Get a Single Post
 Get the Homepage Stream of Posts
 Create a New Post
 Update a Post
 Delete a Post
 Undelete a Post
 Show List of Deleted Posts
 SEARCHES
 String Search
 Tag search
Veery API - Short Version
url_to_link=no
Veery is a RESTful web publishing app. The API receives and returns JSON.
Test API server: 
http://veeryapiperl.soupmode.com/api
Test client sites that use the API: 
 http://veeryclientperl.soupmode.com 
 http://veeryclientnodejs.soupmode.com
Example: Get a stream of posts: 
http://veeryapiperl.soupmode.com/api/posts
Example: Get post titled "Info": 
http://veeryapiperl.soupmode.com/api/posts/info
At the moment, the Veery API does not use SSL, and it does not use OAuth.
For GETs that require the user to be logged-in, the URI ends with the query string: 
/?author_name=[author_name]&session_id=[session_id]
For POST and PUT requests that require the user to be logged-in, the author_name and session_id information are included in the JSON that's sent to the API.
USERS
Request Login Link
POST request to: 
/users/login  
Sample JSON sent to the API: 
{ "email" : "x@x.com", "url" : "." }
url field is optional, but it cannot be blank. Normally, the url would point to the client action. The URL would be included in the email sent by the API code. 
For the Perl test client site mentioned above, the JSON would include: 
"url" : "http://veeryclientperl.soupmode.com/nopwdlogin"
In the returned JSON, the session_id_rev is only included when debug_mode equals 1 in the API's YAML config file. session_id_rev is attached to the URL that's emailed to the author.
Activate Login Link
GET request to: 
/api/users/login/?rev=[rev_id]
Get User Info
GET request to: 
/users/[author_name] 
This request returns minimal info, such as a logged-in flag.
To retrieve more info, such as when attempting to update the email address, the author needs to be logged-in. 
/users/[author_name]/?author=[author_name]&session_id=[session_id]
Updating Author's Info
PUT request to: 
/users
At the moment, only the email address can be updated. To update the author's email address, the client would send JSON similar to this:
{
    "author": "MrX", 
    "session_id": "5aabbe7c5d810346cb", 
    "id": "2384849494", 
    "rev": "45454554", 
    "new_email" : "new@new.com", 
    "old_email" : "old@old.com"
}
Logging out
GET request to: 
/users/logout/?author=[author_name]&session_id=[session_id]
POSTS
Get a Single Post
GET request to: 
/posts/[page_id] 
/posts/[page_id]/?text=html 
/posts/[page_id]/?text=markup 
/posts/[page_id]/?text=full  
The _rev data is required for updating a post. To include the _rev data in the returned JSON, the author's logged-in info must be submitted on the query string, along with text=markup.
text=full causes the returned JSON to include the original markup for the post, along with the formatted HTML.
Get the Homepage Stream of Posts
GET request to: 
/posts 
/posts/?page=3
Note: Veery pulls the content from CouchDB, and it returns articles and notes, sorted by updated date from youngest to oldest.
Create a New Post
POST request to: /posts 
Example JSON being submitted:
{
    "author": "MrX", 
    "session_id": "5012344558568686", 
    "submit_type": "Post", 
    "markup": "h1. 13may2015 2059\n\n test post from Perl Veery API"
}
submit_type can be either Post or Preview.
Update a Post
PUT request to: /posts
Example JSON being submitted:
{
    "author": "MrX", 
    "session_id": "50ff8f05c0f5d95aabbe7c5d810323c8", 
    "rev": "1-f6eaf40f56dbb2ccc07919535f891ee1", 
    "post_id": "13may2015-2059", 
    "submit_type": "Update", 
    "markup": "h1. 13may2015 2059\n\n Updated - test post from Perl Veery API"
}
submit_type can be either Update or Preview.
Delete a Post
GET request to: 
/posts/[page_id]/?action=[delete]&author=[author_name]&session_id=[session_id]
Undelete a Post
GET request to: 
/posts/[page_id]/?action=[undelete]&author=[author_name]&session_id=[session_id]
Show List of Deleted Posts
GET request to: 
/posts/?deleted=yes&author=[author_name]&session_id=[session_id]
SEARCHES
String Search
GET request to: 
/searches/string/[string]
Examples: 
/searches/string/beer 
/searches/string/craft%20beer
Note: For string searches, the API code works against Elasticsearch, which returns posts sorted by relevance as determined by Eleasticsearch and not by updated date.
Tag search
GET request to: 
/searches/tag/[tag_name]
Example search on the hashtag "toledo" : 
/searches/tag/toledo
From JR's : articles
540 words - 4378 chars 
 - 3 min read
created on  
 - #
 source
 - versions