Skip to content
GAMPEONCreate
New project

Write a post

POST
/v1/posts
curl --request POST \
--url https://api.gampeon.com/v1/posts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "body": "example", "as": "example", "audience": "public", "commentMode": "everyone", "images": [ "example" ], "share": 1, "gif": "example" }'

Text with up to 3 links, up to 4 photos (upload them first with POST /v1/me/post-images), a GIF (gif, from GET /v1/gifs) or a shared post (share). audience sets who sees it (default public, under 16 friends); studio and game posts are always public. commentMode sets who can comment. @handle mentions notify that account (under 16 only from friends). The first link gets a preview card (title and site name). as posts in the name of a studio (owner or admin) or a game (people who can edit it). Control and formatting characters are rejected; more than two empty lines are shortened.

Not available with access tokens.

Rate limit: 10 per hour and 50 per day per account; 3 per day in the first 24 hours of an account; no identical text within 24 hours.

Media typeapplication/json
object
body

Up to 1,000 characters and 3 links. Required unless there are photos, a GIF or a share

string
<= 1000 characters
as

studio:SLUG or project:SLUG. Omit to post as yourself.

string
audience
string
Allowed values: public friends private
commentMode

friends only for your own posts

string
Allowed values: everyone friends off
images
Array<string>
<= 4 items
share

ID of a public post to share. Shares of shares share the original

integer
gif

GIF ID (id from GET /v1/gifs). Not together with photos or a share

string

Created

Media typeapplication/json
object
id
required
integer
body
required

Plain text, up to 1,000 characters. Can be empty for photo and GIF posts and shares.

string
createdAt
required

Unix time in milliseconds

integer format: int64
editedAt
required
One of:

When the text was last changed

integer format: int64
author
required
One of:
object
type
required
Allowed value: user
handle
required
string
displayName
required
string
avatar
required
One of:

Image path relative to the API (/v1/media/…). null without an image.

string
postedBy
required
One of:
object
handle
required

Unique handle

string
/^[a-z0-9_]{3,24}$/
displayName
required
string
avatar
One of:

Image path relative to the API (/v1/media/…). null without an image.

string
audience
required

Who can see it. Studio and game posts are always public

string
Allowed values: public friends private
images
required

Up to 4 photos

Array<object>
object
url
required

Image path relative to the API (/v1/media/…)

string
width
required
integer
height
required
integer
gif
required
One of:
object
id
required

GIF ID at KLIPY

string
title
required

Description from KLIPY, for alt text

string
url
required

Image path relative to the API (/v1/gifs/…/md)

string
width
required
integer
height
required
integer
provider
required

klipy. Show “via KLIPY” on the GIF

string
link
required
One of:
object
url
required
string
domain
required

Host without www.

string
title
required
One of:

Page title (og:title or ), up to 200 characters. <code>null</code> until the preview has been fetched</p> </div><div><span class="sl-openapi-type astro-pjgx37xj">string</span></div></starlight-tab-item><starlight-tab-item data-label="null"><div><span class="sl-openapi-type astro-pjgx37xj">null</span></div></starlight-tab-item>

siteName
required
One of:

Og:site_name

string
youtube
required
One of:

YouTube video ID, for a click-to-play embed

string
mentions
required

Mentioned handles that exist

Array<string>
shared
One of:
object
available
required

False if the original was deleted, removed or isn’t visible to you

boolean
post

The original post (without comments and permissions)

object
commentMode

Who can comment, as it applies (under 16: at most friends)

string
Allowed values: everyone friends off
pinned

Pinned to the top of the timeline

boolean
reactions
required
object
total
required

All reactions together

integer
top
required

Up to three most frequent reactions, most frequent first (for the icons)

Array<string>
Allowed values: like love haha wow sad angry
counts
required

Number per reaction, only reactions that occur

object
key
additional properties
integer
myReaction
required
One of:
string
Allowed values: like love haha wow sad angry
likes
required

All reactions (older field)

integer
liked
required

Whether you reacted (older field)

boolean
commentCount
integer
shareCount
integer
latestComments

The two newest top-level comments, oldest first

Array<object>
object
id
required
integer
postId
required
integer
parentId
required
One of:

Top-level comment this replies to

integer
body
required

Plain text, up to 1,000 characters. Can be empty if there is a GIF

string
gif
required
One of:
object
id
required

GIF ID at KLIPY

string
title
required

Description from KLIPY, for alt text

string
url
required

Image path relative to the API (/v1/gifs/…/md)

string
width
required
integer
height
required
integer
provider
required

klipy. Show “via KLIPY” on the GIF

string
createdAt
required

Unix time in milliseconds

integer format: int64
editedAt
required
One of:

Unix time in milliseconds

integer format: int64
author
required
object
handle
required

Unique handle

string
/^[a-z0-9_]{3,24}$/
displayName
required
string
avatar
One of:

Image path relative to the API (/v1/media/…). null without an image.

string
mentions
required

Mentioned handles that exist (@handle in the text)

Array<string>
reactions
required
object
total
required

All reactions together

integer
top
required

Up to three most frequent reactions, most frequent first (for the icons)

Array<string>
Allowed values: like love haha wow sad angry
counts
required

Number per reaction, only reactions that occur

object
key
additional properties
integer
myReaction
required
One of:
string
Allowed values: like love haha wow sad angry
replyCount
required

Replies (top-level comments only)

integer
canEdit
required
boolean
canDelete
required

You wrote it or manage the post

boolean
removed
object
at
required

Unix time in milliseconds

integer format: int64
reason
required
One of:

Statement of reasons

string
canEdit
boolean
canDelete
required

Whether you may delete it

boolean
canPin
boolean
canComment
boolean
canShare
boolean
removed
object
at
required

Unix time in milliseconds

integer format: int64
reason
required
One of:

Statement of reasons

string

Example

{
"author": {
"type": "user"
},
"audience": "public",
"commentMode": "everyone",
"reactions": {
"top": [
"like"
]
},
"myReaction": "like",
"latestComments": [
{
"reactions": {
"top": [
"like"
]
},
"myReaction": "like"
}
]
}

Error codes: invalid_field, too_many_links, invalid_image_ref, invalid_gif

Media typeapplication/json
object
error
required

Machine-readable error code, for example not_found or rate_limited.

string
message

Human-readable detail. Only present for some errors.

string

Example generated

{
"error": "example",
"message": "example"
}

Error codes: unauthorized

Media typeapplication/json
object
error
required

Machine-readable error code, for example not_found or rate_limited.

string
message

Human-readable detail. Only present for some errors.

string

Example generated

{
"error": "example",
"message": "example"
}

Error codes: token_not_allowed, forbidden, not_shareable

Media typeapplication/json
object
error
required

Machine-readable error code, for example not_found or rate_limited.

string
message

Human-readable detail. Only present for some errors.

string

Example generated

{
"error": "example",
"message": "example"
}

Error codes: not_found

Media typeapplication/json
object
error
required

Machine-readable error code, for example not_found or rate_limited.

string
message

Human-readable detail. Only present for some errors.

string

Example generated

{
"error": "example",
"message": "example"
}

Error codes: duplicate_post

Media typeapplication/json
object
error
required

Machine-readable error code, for example not_found or rate_limited.

string
message

Human-readable detail. Only present for some errors.

string

Example generated

{
"error": "example",
"message": "example"
}

Limit: 10 per hour and 50 per day per account; 3 per day in the first 24 hours of an account; no identical text within 24 hours. Error codes: rate_limited

Media typeapplication/json
object
error
required

Machine-readable error code, for example not_found or rate_limited.

string
message

Human-readable detail. Only present for some errors.

string

Example generated

{
"error": "example",
"message": "example"
}

Error codes: gifs_unavailable

Media typeapplication/json
object
error
required

Machine-readable error code, for example not_found or rate_limited.

string
message

Human-readable detail. Only present for some errors.

string

Example generated

{
"error": "example",
"message": "example"
}

Error codes: gifs_unavailable

Media typeapplication/json
object
error
required

Machine-readable error code, for example not_found or rate_limited.

string
message

Human-readable detail. Only present for some errors.

string

Example generated

{
"error": "example",
"message": "example"
}

Report a problem with this pageOther ways to give feedback