---
title: "Get the state of outgoing connection requests"
method: GET
path: "/me/connection-status"
tags: ["profile"]
---

# Get the state of outgoing connection requests

`GET /me/connection-status`

Reports what is happening with connection requests: whether invitations are going out, who is next and roughly when, how many people are still waiting, how many to expect over the next 24 hours, how many sent invitations are still unanswered, and when nothing is going out, what is stopping it and whether it clears on its own. Reported per connected LinkedIn account, since each sends independently. Read-only: it queues nobody and sends nothing.

## Response `200`

Current state of the connection-request lane

- object
  - `success` true, required
  - `accounts` object[], required — One entry per connected LinkedIn account. Accounts send independently and in parallel, each with its own pacing and its own limits.
    - `linkedinCredentialsId` string, required — The LinkedIn account this describes
    - `accountLabel` string, required — Human-readable name of the LinkedIn account
    - `state` 'nothing_queued' | 'sending' | 'spacing' | 'blocked', required — What the account is doing: nothing_queued means nobody is waiting, sending means invitations are going out, spacing means it is between two invitations, blocked means nothing is going out.
    - `upcoming` object[], required — The next few people in line, nearest first
      - `contactId` string, required — Identifier of the person waiting
      - `name` string, nullable, required — The person's name, when known
      - `position` integer, required — Their place in line, counting from 1. A fact about the order, not a promise of a time.
      - `etaDays` number, nullable, required — Rough days until their invitation goes out, estimated from how fast this account has actually been sending. Null when nothing is going out, or when the account has no sending history to estimate from.
    - `nextSendAt` string, nullable, required — When the next invitation can go out, when that instant is actually known. Null when nothing is holding the account back, since there is then no specific moment to name.
    - `blocked` object, nullable, required — Set only while something is stopping this account. Never set for the ordinary spacing between two invitations, which is not a fault: that is state 'spacing'. If this is null, nothing is wrong with the account.
      - `kind` 'paused' | 'session_dead' | 'challenge' | 'rate_limited' | 'invite_cap' | 'no_credit' | 'outside_window' | 'paced', required — Why nothing is going out
      - `message` string, required — A plain sentence explaining it, suitable to show as written
      - `resumesAt` string, nullable, required — When it lifts. Null when it needs a person to act rather than time to pass.
      - `clearsItself` boolean, required — Whether waiting is enough, or somebody has to do something
    - `capProbe` object, nullable, required — Set only while LinkedIn's own invitation ceiling is what stopped this account
      - `nextProbeAt` string, nullable, required — When LinkedIn is asked again
      - `rung` integer, required — How far the wait between checks has widened
      - `finalRung` integer, required — The widest it gets. Checks continue at that spacing until sending is allowed again.
    - `waitingTotal` integer, required — Everyone still to be invited from this account, counted once per person
    - `pausedWaiting` integer, required — People queued on a paused list. They are NOT going out and are not part of waitingTotal, but they are not finished either.
    - `oldestWaitingHours` integer, nullable, required — How long the person waiting longest has been waiting
    - `awaitingResponse` integer, required — Invitations sent from this account that nobody has answered yet
    - `sentLast24h` integer, required — Invitations sent in the last 24 hours
    - `acceptedLast24h` integer, required — Invitations accepted in the last 24 hours
    - `sendsPerDay` number, required — How many a day this account has actually been sending lately
    - `expectedNext24h` integer, nullable, required — How many to expect over the next 24 hours. Null when no honest estimate exists: something is stopping the account, or it has no sending history yet. Ordinary spacing between invitations does NOT suppress it. Never report null as zero.
    - `skipped` object[], required — Why people are set aside right now, and how many for each reason
      - `reason` string, required
      - `count` integer, required
  - `totals` object, nullable, required — Everything summed. Null when no account is connected.
    - `waitingTotal` integer, required
    - `pausedWaiting` integer, required
    - `awaitingResponse` integer, required
    - `sentLast24h` integer, required
    - `acceptedLast24h` integer, required
    - `expectedNext24h` integer, nullable, required
    - `expectedIsPartial` boolean, required — True when some accounts could not be estimated, so the expected figure is a floor rather than a total.
    - `oldestWaitingHours` integer, nullable, required
    - `accountsSending` integer, required
    - `accountsBlocked` integer, required
    - `accountsUnreadable` integer, required
    - `next` object, nullable, required — Who goes next overall, named only when exactly one account is sending. With several sending at once there is no single next person.
      - `contactId` string, required — Identifier of the person waiting
      - `name` string, nullable, required — The person's name, when known
      - `position` integer, required — Their place in line, counting from 1. A fact about the order, not a promise of a time.
      - `etaDays` number, nullable, required — Rough days until their invitation goes out, estimated from how fast this account has actually been sending. Null when nothing is going out, or when the account has no sending history to estimate from.
      - `accountLabel` string, required
  - `creditsUsed` integer, required — Credits consumed by this call. 0 for free endpoints, cached results, duplicates, and for every query that does not touch LinkedIn.
  - `retryAfter` integer, required — Seconds to wait before another call of the same type. 0 means no wait is needed.
  - `_meta` object — Credit balance carried on every response so a caller never has to ask for it separately. Absent when the caller has no connected account.
    - `credits` object, required
      - `current` number, required — Credits spent this period.
      - `limit` number, nullable, required — Period allowance, or null when unlimited.
      - `remaining` number, nullable, required — Allowance left, or null when unlimited.
      - `percentage` number, required — Share of the allowance spent, 0 to 100.
      - `isUnlimited` boolean, required

## Other responses

- `400` — The server cannot or will not process the request due to something that is perceived to be a client error.
- `401` — Although HTTP specifies "unauthorized", this response means "unauthenticated". Authenticate to continue. NOTE: 401 is also returned with code "linkedin_not_connected" when the caller IS authenticated but has no connected LinkedIn account — connect LinkedIn (not re-authenticate) to continue.
- `403` — The client does not have access rights to the content.
- `404` — The server cannot find the requested resource.
- `409` — The request conflicts with the current state of the server.
- `410` — The requested content has been permanently deleted from the server.
- `422` — The request was well-formed but was unable to be followed due to semantic errors.
- `429` — Rate limit exceeded. Read error.retryAfter for the wait time in seconds.
- `500` — The server encountered a situation it does not know how to handle.
- `502` — LinkedIn returned a server error or the proxy connection failed. Retry after a few seconds.
- `503` — Proxy capacity temporarily exceeded. Retry after a few seconds.

---

[API](https://skmtc.dev/berea/apis/bereach-api.md) · [All operations](https://skmtc.dev/berea/apis/bereach-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/berea/bereach-api/revisions/ee1b63eb6645/schema)
