Skip to main content
POST
Check a connections import
Safe to try. One exception: asking about a stalled import can start it again, and a real run then carries on writing to your CRM.

What this call does

Your AI assistant reaches the same action through the MCP tool get_linkedin_connections_import.

Authorizations

Authorization
string
header
required

Your Groovin API key (gv_live_…), created in the extension under Settings, MCP and API.

Body

application/json
import_id
string

Which import. Leave it out for your most recent one.

rows
enum<string>

none (the default) gives counts only. needs_attention lists what you must settle yourself. created, skipped and all list the rest.

Available options:
none,
needs_attention,
created,
skipped,
all
limit
integer

Rows per page: 25 by default, 100 at most.

Required range: 1 <= x <= 100
offset
integer

How many rows to skip, to get the next page.

Required range: x >= 0

Response

Success.

The state of an import. Every import route answers with this.

import_id
string
required

The import.

status
string
required

ready or running while it works, then completed, cancelled or failed.

dry_run
boolean
required

true for a preview.

crm_name
string
required

Your CRM: "attio" or "hubspot".

file_name
string | null
required

The name of the result file.

created_at
string
required

When the import was created.

started_at
string | null
required

When it started.

finished_at
string | null
required

When it finished.

total_rows
integer
required

Data rows in the file. Compare this with your file: a mismatch means the file was cut on the way in.

processed_rows
integer
required

Rows done.

pending_rows
integer
required

Rows left.

counts
object
required

The running totals of an import. On a preview, *_would_create says what a real run would create.

lists
object
required

The CRM lists the import adds records to.

column_map
object
required

Which column of the file was read as what.

parse_warnings
string[]
required

What the file reader could not read.

last_error
string | null
required

The latest problem, if any.

is_processing
boolean
required

true while rows are being worked on right now.

cancel_requested_at
string | null
required

When you asked to stop.

rows_purged_at
string | null
required

When the row data was deleted. No row detail and no re-run after that.

finished_notified_at
string | null
required

When you were emailed.

retention_hours
integer
required

How long row data is kept, in hours.

company_domain_credits_remaining
integer | null
required

Your domain credits when this run last looked.

domain_credits_exhausted_at
string | null
required

When credits ran out. Later companies were created with a name but no domain.

on_behalf_of
object | null
required

The teammate whose connections these are. null means your own.

update_recognised_contacts
boolean
required

true when a real run updates the contacts it recognises.

poll_after_seconds
integer | null
required

Wait this long before asking again. null once the import can no longer change.

next_step
string
required

What to do now, in one sentence.

rows_available
boolean
required

false once the row data was deleted: counts only.

rows
object[]

One page of rows, if you asked.

rows_total_matched
integer

Rows matching your filter.

rows_returned
integer

Rows in this answer.

rows_offset
integer

The offset you sent.

rows_truncated
boolean

true when more rows exist: ask with a new offset.