Dashboard
Request Logs
Inspect every authenticated API request your project made, with status, timing and errors.
The Logs page at https://social-publish-kappa.vercel.app/dashboard/logs lists every API request made with your project's access keys. Use it to debug integrations, see which key is calling what, and find the error behind a failed call.
What's logged
One entry is recorded for each authenticated request to /v1/*:
| Column | Description |
|---|---|
| Time | When the request was received. |
| Method and path | For example POST /v1/posts. |
| Type | The resource group: Posts, Accounts or Other. |
| Operation | The operation name, such as createPost, getPost, listPosts, listAccounts or connectBluesky. |
| Platform | For createPost, the platform of the first target. |
| Status | The HTTP status code. |
| Duration | How long the API took to respond, in milliseconds. |
| Access key | The name and prefix of the key that made the call. |
| Error | For non-2xx responses, the error code and message. |
| Request ID | The request's ID, also returned in the X-Request-Id response header. |
Only metadata is stored. Request and response bodies are not logged, and error text is scrubbed of anything that looks like a credential.
What isn't logged
- Requests without a valid key (
401). There's no project to attach them to. GET /healthandGET /ready.- Dashboard activity, such as posting from the Playground. Posts made there still appear on the Posts page.
- What happens after the request: publishing runs in the background, so a
201oncreatePostmeans the post was accepted, not that it was published. Check per-platform results on the Posts page or withGET /v1/posts/{id}.
Rate-limited requests (429) are logged, which makes it easy to spot a client that's sending too much.
Filters
| Filter | Options |
|---|---|
| Search | Matches the path, operation name or method. |
| Type | Posts, Accounts, Integrations, Media, Usage, Other |
| Status | Success (2xx), Client error (4xx), Server error (5xx) |
| Platform | Any supported platform |
| Time | Last hour, Last 24 hours, Last 7 days, Last 30 days, All time |
Filters are kept in the page URL, so you can bookmark or share a filtered view with a teammate. The list refreshes every 15 seconds, and Load more fetches older entries.
Click an entry to see its details, including the full error message and request ID.
Retention
Logs are kept for 30 days, then deleted automatically.
Debug with request IDs
Every API response includes an X-Request-Id header. Log it in your application next to the error body:
const res = await fetch("https://social-publish-api.onrender.com/v1/posts", { method: "POST", headers, body });
if (!res.ok) {
const { error } = await res.json();
console.error(`Relaycast ${res.status} ${error.code}: ${error.message}`, {
requestId: res.headers.get("x-request-id"),
details: error.details,
});
}Search for the request in the Logs page by its path or operation and match the request ID to find the exact call.
Related
- Errors for every error code
- Rate Limits
- Authentication for managing keys
This page is also available as Markdown.