Skip to content
ProspectAPIs

API reference / Connected account

Connect another account

Written and maintained by The ProspectAPIs team

POST/v1/accounts

POST /v1/accounts is the ProspectAPIs operation addConnectedAccount, in the Connected account group of the REST API. Connect another of your own accounts to this key, alongside the ones already connected, with a session string or a sign-in. The account_id exists from the start, so a sign-in that asks for a code or a check answers 409 with account_id and challenge_id; finish it at POST /v1/accounts/{account_id}/checkpoint. Refused with 409 account_already_connected (and that account's account_id) when the same account is already connected, and 409 account_limit at 50 accounts. Free. Cost: free; connect another account (a session or a sign-in) and get its account_id. Send your API key as a Bearer token in the Authorization header.

How this fits with the rest of the connected account API, with worked examples, is in the connected accounts guide.

Parameters

Parameters of POST /v1/accounts
NameInTypeDescription
Idempotency-KeyheaderstringOptional, 1 to 255 printable ASCII characters. A retry with the same key and body within 24 hours gets the first answer back with Idempotent-Replayed: true and is never charged again. The same key with a different body is 422; a retry while the first call is still running is 409.

Request body

JSON (AddAccountRequest). Either a signed-in session (as POST /v1/accounts/session takes) or a sign-in (as POST /v1/accounts/login takes).

Request body of POST /v1/accounts
FieldTypeDescription
Example body
{}

Responses

Response codes of POST /v1/accounts
StatusMeaning
201Connected.
400Invalid request.
401The API key is missing or invalid.
409A code or a check is needed (account_id and challenge_id in the body), account_already_connected, or account_limit.
410The sign-in challenge expired.
422The session is signed out, or the sign-in was not accepted.
429Too many connect attempts.
501Connecting is not available yet.
503Temporarily unavailable. Nothing was stored.

Every error answers with the same JSON body, an error string and sometimes a code; the errors page lists each status and when it happens. A per-key 429 carries Retry-After; see rate limits.

201 response fields

Connected. The body is a ConnectedAccount.

Fields of the 201 response
FieldTypeDescription
connected requiredbooleantrue when an account is connected.
statusstring: active, dead, connectingactive; connecting while a sign-in waits for a code or a check; or dead when the session has signed out and needs connecting again. Absent when nothing is connected.
accountobjectThe connected account as the platform names it.
account.handlestring or nullThe account's public handle.
account.namestring or nullThe account's display name.
egressstring: dedicated, shared_fallback, customer_proxy, noneHow the account reaches the platform. Every connected account acts through its own dedicated IP unless you bring your own proxy: dedicated (an IP leased to this account alone), shared_fallback (a shared IP, used only while every dedicated IP is taken), customer_proxy (your own proxy_url) or none.
created_atstring (date-time) or null
updated_atstring (date-time) or null
last_used_atstring (date-time) or nullWhen an action last ran on it.
account_idstring or nullThis account's id. Name it with account_id on any route that acts on a connected account; optional while the key has exactly one.
Response headers
HeaderMeaning
RateLimit-LimitRequests this API key may make per minute.
RateLimit-RemainingRequests left in the current one-minute window.
RateLimit-ResetSeconds until the current window resets.

Code samples

Each sample sends the same request. Set PROSPECTAPIS_KEY in your environment first. Values come from the spec's examples; replace them with your own.

curl
curl -X POST https://api.prospectapis.com/v1/accounts \
  -H "Authorization: Bearer $PROSPECTAPIS_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
JavaScript (fetch)
const res = await fetch("https://api.prospectapis.com/v1/accounts", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.PROSPECTAPIS_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({}),
});
if (!res.ok) throw new Error(`${res.status}: ${(await res.json().catch(() => ({}))).error ?? res.statusText}`);
const data = await res.json();
console.log(data);
Python (requests)
import os, requests

res = requests.post(
    "https://api.prospectapis.com/v1/accounts",
    headers={"Authorization": f"Bearer {os.environ['PROSPECTAPIS_KEY']}"},
    json={},
    timeout=30,
)
res.raise_for_status()
data = res.json()
print(data)

Billing

The call itself is free, and what it sets up is billed as it runs: connect another account (a session or a sign-in) and get its account_id. Metered spend on the same key is reported after each response in X-Credits-Remaining, and GET /v1/account shows the balance at any time.

The connected accounts guide covers this area end to end. Previous operation: List connected accounts. Next operation: Get one connected account. Every operation, grouped by area, is on the API reference index.

Create a free account to get a key, then run the samples above with your own values (this call acts for real, so use real inputs).

Was this page helpful?