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/*:

ColumnDescription
TimeWhen the request was received.
Method and pathFor example POST /v1/posts.
TypeThe resource group: Posts, Accounts or Other.
OperationThe operation name, such as createPost, getPost, listPosts, listAccounts or connectBluesky.
PlatformFor createPost, the platform of the first target.
StatusThe HTTP status code.
DurationHow long the API took to respond, in milliseconds.
Access keyThe name and prefix of the key that made the call.
ErrorFor non-2xx responses, the error code and message.
Request IDThe 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 /health and GET /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 201 on createPost means the post was accepted, not that it was published. Check per-platform results on the Posts page or with GET /v1/posts/{id}.

Rate-limited requests (429) are logged, which makes it easy to spot a client that's sending too much.

Filters

FilterOptions
SearchMatches the path, operation name or method.
TypePosts, Accounts, Integrations, Media, Usage, Other
StatusSuccess (2xx), Client error (4xx), Server error (5xx)
PlatformAny supported platform
TimeLast 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:

client.ts
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.

This page is also available as Markdown.