Create a Post API
The Create Post API lets your backend publish a post to the GNet network on behalf of your own company, with a single authenticated call. It produces exactly the same result as creating the post inside the Connect portal — the same validation, plan check, rate limits, trust scoring and moderation routing, in the same order. There is no multi-step handshake: get a token, call the endpoint.Endpoint
POSThttps://dashboard.grdd.net/api/partner/posts
This endpoint lives on the Connect application host
(
dashboard.grdd.net), not on core.grdd.net like the other Content API
endpoints on this page. Use https://dashboard.grdd.dev for the development
environment.Authentication
This endpoint requires a Bearer token issued by GNet core. To obtain one, see the Get Token API. Headers:griddid in the body
must match the GNET ID your token was issued for (or its parent account);
anything else is rejected with 403 not_entitled. There is no impersonation
or act-on-behalf-of mode.
Request Body
Top-level fields
detail fields
Post Types
postType must be one of:
Exceeding a cap returns
429 rate_limited with a Retry-After header.
typed fields
Five post types require a detail.typed object. A missing or invalid typed
block fails validation with 422.
What the Server Overrides
Three fields are required by the schema but decided by the server — send placeholders and read the real values back from the response:status— always recomputed. Companies flagged as post-trusted publish immediately (published); everyone else is queued for moderator review (pending_review). You cannot self-publish by sending"status": "published".slug— always regenerated from yourtitle, scoped to your GNET ID.authorTrustAtPublish— computed from your profile score, partner count, plan tier and account age.
Visibility
If you request"visibility": "public" but your trust score is below the
public-visibility floor, the post is accepted and downgraded to gnet. When
this happens the response includes "visibilityDowngraded": true.
Images
There is no partner image-upload endpoint. Host your images yourself and pass absolute URLs inimageUrls (maximum 4).
Request Example
Response
201 Created — published immediately
202 Accepted — queued for review
ok boolean. Never treat a 2xx-shaped body as
success without checking it.
Error Responses
Retrying Safely
Pass anIdempotency-Key header — any unique string per logical post, such as
a UUID you generate before the first attempt.
- Same key, same body → replays the original response instead of creating a second post.
- Same key, different body →
409 idempotency_conflict. - Keys are scoped to your caller identity and expire after 24 hours.