Integration recipe
Connect a Custom GPT to pixPLace with Actions
Import the OpenAPI spec into a Custom GPT, set Bearer auth and the privacy policy URL, and let it read and reply to your comments.
Who it is for
ChatGPT users who build a Custom GPT that works with their own pixPLace account.
What it automates
Read the new comments under your posts and answer them from the chat, one reply at a time, after you approve the text.
Steps
- In the GPT editor open Configure, then Create new action, then Import from URL, and paste the OpenAPI address.
- Under Authentication choose API Key, then Bearer, and paste your ppk_live_ key. ChatGPT sends it as the Authorization: Bearer header and does not show it to the model.
- In the Privacy policy field of the action enter the pixPLace privacy policy address.
- Paste the instructions below into the GPT Instructions field. They tell the model to ask before it writes and never to repeat a comment after a timeout.
- Test with a question such as "Show my new comments", then approve one reply.
- When you create the key, tick the `read` and `publish` scopes. A key without one of them gets 403 insufficient_scope on these calls.
Examples
Placeholders: ppk_live_XXXXXXXX is your key. The ids and the image address are samples. The API address is always https://pixplace.space/api/v1.
Import from URL
https://pixplace.space/api/v1/openapi.jsonAuthentication
Authentication type: API Key
Auth Type: Bearer
API Key: ppk_live_XXXXXXXX
# ChatGPT sends: Authorization: Bearer <your key>Privacy policy
https://pixplace.space/legal/privacyGPT Instructions
You manage comments on my pixPLace account through the Action.
1. To read news call listCommentsInbox (GET /comments). Show author, post title and text.
2. Draft a short friendly reply and show it to me. Call createComment (POST /posts/{id}/comments) only after I say yes.
Use the comment postId as the path id and the comment id as parentId.
3. createComment has no Idempotency-Key: after a timeout or a 5xx do NOT repeat it. Call listPostComments first and check.
4. On 429 tell me how many seconds Retry-After says and stop. Before you try createComment again, call listPostComments and check that the reply is not there. On 400 show me the message. Never invent metrics the API does not have.Common errors
| Status | Cause | What to do |
|---|---|---|
| 401 | The API key is missing, malformed, revoked or sent in the wrong header. | In the Action settings re-enter the key under API Key, Bearer. Do not paste the word Bearer into the key field. The header must read Authorization: Bearer followed by your ppk_live_ key. Check the key in Settings → Developer. |
| 403 | The key lacks a scope the call needs: the answer is 403 with error.code insufficient_scope and the missing scope in error.required. | Create a new key in Settings → Developer with the `read` and `publish` scopes ticked and use it instead; repeating the call with the same key fails the same way. |
| 400 | The reply is empty or too long, or parentId is not a comment of that post. | Use the postId and the id from the same inbox item. Shorten the text and ask the model to show it before sending. |
| 404 | The post does not exist, is not yours or is hidden. The API never answers 403 for this. | The Action works only with your own posts. Check the postId that the model took from the inbox. |
| 429 | A per-minute or per-day limit was reached. The Retry-After header and the retryAfter field of the body say how many seconds to wait. | Wait that long. createComment has no Idempotency-Key, so do not repeat it blindly: call listPostComments first and send the comment again only if it is not there. Ask the model to tell you the wait time instead of retrying in a loop. |
The full list of statuses, the retry rules and the limits are in Errors and retries.