Post Lifecycle
Endpoints:
POST /posts
Token:
Scope:
Create a post.
On creation, you can automatically update the "personal" stream marker to the post's ID by including update_marker=1
in the query string.
Posts from the same human- or feed-type user cannot contain the same text
within 120 seconds.
An application/json
Content-Type is preferred over form. Normal links and markdown links are parsed by the server by default.
POST Body Data
Name | Description |
---|---|
text |
Required 256 character-limited string |
entities.parse_links |
Boolean whether the links should be parsed by the server. Default true |
entities.parse_markdown_links |
Boolean whether the markdown links should be parsed by the server. Default true |
is_nsfw |
Boolean whether the post should be marked as "NSFW" (Not Safe For Work/mature/offensive). Including the tag #nsfw in the post body will mark a post NSFW unless overridden by this. |
raw |
Embedded raw values. |
reply_to |
ID of another post to reply to |
Example
curl "https://api.pnut.io/v1/posts" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d "{\"text\": \"The people here are not shy.\"}" \
-X POST \
-H "X-Pretty-Json: 1"
Returns the created post.
{
"meta": {
"code": 201
},
"data": {"....Post Object..."}
}
PUT /posts/{post_id}
Token:
Scope:
Edit or "revise" a post.
- Can only be done within 300 seconds of the original post's creation
- Can only be done once to a post
- Must contain the same entities that were in the original post (Positions can change. Links can be formatted in any way, but the URLs have to be the same)
Once a revision has been made, the original post can still be retrieved from the Revisions endpoint.
Reposts made before the revision will continue to point at the original post.
URL Parameters
Name | Description |
---|---|
post_id |
ID of the post to revise |
The POST body can be the same as when creating a post. is_nsfw
can be changed from an initial post to a revision.
Example
curl "https://api.pnut.io/v1/posts/2392" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d "{\"text\": \"system of a down\"}" \
-X PUT \
-H "X-Pretty-Json: 1"
Returns the revised post.
{
"meta": {
"code": 201
},
"data": {"...Post Object..."}
}
DELETE /posts/{post_id}
Token:
Scope:
Delete a post.
URL Parameters
Name | Description |
---|---|
post_id |
ID of the post to delete |
Example
curl "https://api.pnut.io/v1/posts/2392" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-X DELETE \
-H "X-Pretty-Json: 1"
Returns the deleted post.
{
"meta": {
"code": 200
},
"data": {"...Post Object...."}
}