> ## Documentation Index
> Fetch the complete documentation index at: https://docs.groovin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List your pending invitations

> See the invitations waiting for an answer: the ones you sent, the ones you received, or both.

> [!WARNING]
>
> This reads LinkedIn live through your account, and always reads the whole list, at one LinkedIn request per 100 invitations. `limit` shortens the answer but does not reduce the cost.

## What this call does

| | |
| - | - |
| **LinkedIn** | Live read: 1 request per 100 invitations, always the whole list |
| **Your CRM** | None |
| **Also** | `limit` does not reduce the cost |
| **Repeating it** | Each repeat costs LinkedIn requests: wait before trying again. |

## Good to know

* Read this a few times a day at most, at irregular times.

Your AI assistant reaches the same action through the MCP tool `list_linkedin_pending_invitations`.


## OpenAPI

````yaml reference/openapi.json POST /linkedin/pending-invitations
openapi: 3.1.0
info:
  title: Groovin API
  version: 1.0.0
  description: >-
    Connect LinkedIn and your CRM. Every call acts on your real LinkedIn account
    and CRM: there is no test mode.
servers:
  - url: https://api.groovin.ai/functions/v1/api/v1
security:
  - apiKey: []
tags:
  - name: LinkedIn
  - name: CRM contacts and companies
  - name: LinkedIn connections import
paths:
  /linkedin/pending-invitations:
    post:
      tags:
        - LinkedIn
      summary: List your pending invitations
      description: >-
        See the invitations waiting for an answer: the ones you sent, the ones
        you received, or both.
      operationId: list_linkedin_pending_invitations
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                direction:
                  type: string
                  enum:
                    - sent
                    - received
                    - all
                  description: >-
                    `sent` (the default): your invitations. `received`:
                    invitations waiting for your answer. `all`: both, which
                    reads both lists.
                sent_after:
                  type: string
                  description: >-
                    Only invitations sent since this date, such as
                    `"2026-10-01"`.
                sent_before:
                  type: string
                  description: Only invitations sent up to this date.
                org_linkedin_account_id:
                  type: integer
                  description: >-
                    Leave this out to use your own LinkedIn account. Another
                    person's account is refused with a 403.
                limit:
                  type: integer
                  description: >-
                    The most invitations to return. The whole list is read
                    anyway.
              required: []
            examples:
              placeholder:
                summary: Replace every value
                value:
                  direction: sent
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPendingInvitationsResult'
              example:
                org_linkedin_account_id: 4821
                direction: sent
                total_matched: 1
                returned: 1
                truncated: false
                excluded_missing_date: 0
                linkedin_requests: 1
                invitations:
                  - invitation_id: example-invitation-id
                    direction: sent
                    linkedin_profile_id: ACoAAExampleLinkedinProfileId
                    slug: john-smith
                    name: John Smith
                    headline: Founder at Example Co
                    message: null
                    sent_at: '2026-10-30T10:00:00.000Z'
                    already_paired_in_groovin: false
        '400':
          description: 'Something in the request is wrong: `error` says what.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: The API key is missing, wrong or revoked.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: >-
            Your account cannot do this: no CRM connected, inactive
            subscription, Billing admin role, or a teammate's LinkedIn account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: >-
            What you asked for does not exist, or your LinkedIn account is not
            connected.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: LinkedIn or your CRM is slowing you down. Wait at least 5 minutes.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Something failed on our side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '502':
          description: >-
            LinkedIn or your CRM could not be reached or gave an unreadable
            answer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    ListPendingInvitationsResult:
      type: object
      description: Your pending LinkedIn invitations, newest first.
      required:
        - org_linkedin_account_id
        - direction
        - total_matched
        - returned
        - truncated
        - excluded_missing_date
        - linkedin_requests
        - invitations
      properties:
        org_linkedin_account_id:
          type: integer
          description: Groovin's id for the LinkedIn account this answer is about.
        direction:
          type: string
          enum:
            - sent
            - received
            - all
          description: The direction you asked for.
        total_matched:
          type: integer
          description: Invitations passing your date filter, before `limit`.
        returned:
          type: integer
          description: Invitations in this answer.
        truncated:
          type: boolean
          description: '`true` when results were cut.'
        excluded_missing_date:
          type: integer
          description: >-
            Invitations a date filter dropped because LinkedIn gave no readable
            date.
        linkedin_requests:
          type: integer
          description: Live LinkedIn requests this call made.
        invitations:
          type: array
          items:
            $ref: '#/components/schemas/PendingInvitationItem'
          description: The invitations.
    Error:
      type: object
      description: >-
        What every failed request answers, with an HTTP status. The text can
        change: decide what to do from the status, and show the text to a
        person.
      required:
        - error
      properties:
        error:
          type: string
          description: What went wrong, and sometimes what to do next.
    PendingInvitationItem:
      type: object
      description: One pending LinkedIn invitation.
      required:
        - invitation_id
        - direction
        - linkedin_profile_id
        - slug
        - name
        - headline
        - message
        - sent_at
        - already_paired_in_groovin
      properties:
        invitation_id:
          type: string
          description: The invitation's id.
        direction:
          type: string
          enum:
            - sent
            - received
          description: '`sent`: you invited them. `received`: they invited you.'
        linkedin_profile_id:
          type:
            - string
            - 'null'
          description: The other person's LinkedIn profile id.
        slug:
          type:
            - string
            - 'null'
          description: >-
            The public part of the person's LinkedIn URL, as in
            `linkedin.com/in/<slug>`.
        name:
          type:
            - string
            - 'null'
          description: The other person's name.
        headline:
          type:
            - string
            - 'null'
          description: Their LinkedIn headline.
        message:
          type:
            - string
            - 'null'
          description: The invitation note, if any.
        sent_at:
          type:
            - string
            - 'null'
          description: >-
            When it was sent. Usually ISO 8601, but it can be a LinkedIn label
            such as `"Sent 2 weeks ago"`.
        already_paired_in_groovin:
          type: boolean
          description: >-
            `true` when Groovin already links this person to a CRM contact. A
            quick Groovin check, not a live CRM search.
        is_crm_contact_creation_blocked:
          const: true
          description: >-
            Only present, as `true`, when you blocked this person from CRM
            contact creation in Groovin. `crm/contacts` does not enforce the
            block, so check it yourself before creating.
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: >-
        Your Groovin API key (`gv_live_…`), created in the extension under
        Settings, MCP and API.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.