Platform API error

client_pending

HTTP 403 with code client_pending means your API key is valid but its client is still waiting for approval. The key starts working the moment the client is approved.

Updated November 6, 2026

HTTP status
403
Code
client_pending
API
Platform API v1

Returned when

What to do

Related errors

What it means

The Platform API read your key and found it in good standing. What failed is the client behind the key: it is not approved yet, so the request is refused with HTTP 403 and the code client_pending.

The error arrives in the standard shape: {"error":{"code":"client_pending","message":"...","hint":"..."}}. Codes are stable; messages and hints are not. Branch on code and your integration keeps working when the wording changes.

Keep it separate from client_suspended and client_rejected. Those two mean the client was stopped or turned down. client_pending means the approval decision has not landed yet and the client is still in the queue.

Why you are seeing it

Clients are approved automatically at signup unless the operator turned the manual queue back on. A 403 with client_pending tells you the manual queue is active for this client and its approval has not happened yet.

That usually means one of two things: you created the client recently and called the API straight away, or the operator re-enabled the manual queue after your client existed. In both cases the key is correct, the request shape is fine, and nothing in your integration is broken.

If you expected automatic approval, look at the client record, not the key. Rotating credentials will not change the outcome: the new key belongs to the same unapproved client and returns the same code.

How to fix it

Wait for approval, or write to support@onelifevibe.com if you need to know where the client stands. The key starts working the moment the client is approved. You do not need to issue a new key, redeploy, or touch your configuration.

Until then, keep the call out of tight retry loops. A 403 returned again and again tells you nothing new and only fills your logs; the code cannot flip to success without an approval behind it.

Once approval lands, the same request with the same credentials succeeds. Send it again as it was.

Handling it in code

Read error.code and check for client_pending before you fall through to generic 403 handling. A missing or bad key is a different failure with a different fix; client_pending means the key was accepted and the client is the blocker. Those two deserve different log lines and different messages for whoever operates the integration.

Do not retry on a short fixed interval. Either pause the job and resume it on a scheduled or manual check, or surface a clear state such as client awaiting approval and stop calling until it clears. When you retry, repeating the original request unchanged is enough.

Log the code rather than the message so your dashboards keep grouping correctly when wording shifts. Handle client_suspended and client_rejected in the same switch, since they share the error shape and reach you through the same path.

Questions

Does client_pending mean my API key is invalid?

No. The key was read and accepted; what is not approved is the client it belongs to. The fix sits on the client record, not on the key, so replacing credentials will not help.

What is the difference between client_pending, client_suspended and client_rejected?

client_pending means the client is still waiting for approval. client_suspended and client_rejected are separate codes for a client that has been stopped or turned down. Match on the code value to tell them apart and apply the matching fix.

Do I need a new API key once my client is approved?

No. The key starts working the moment the client is approved, and the same request succeeds with no changes on your side. Keep the key you have and resend the call.

Keys, plans and usage live in the console: rotate keys, add webhook endpoints, see the last 30 days.

Open the console Plans

Written from the OneLifeVibe tool registry and platform configuration, and checked automatically before publishing. Something wrong? Tell us.