Skip to content

Grinfi.io API (2.0.0)

Complete API reference for Grinfi.io — the all-in-one LinkedIn & email outreach platform. Use this API to manage your CRM contacts, run outreach automations, send messages, and integrate Grinfi with your own tools.

Authentication

All requests require a Bearer token in the Authorization header.

  1. Log in at leadgen.grinfi.io
  2. Go to Settings → API Keys
  3. Copy your key and pass it as:
    Authorization: Bearer YOUR_API_KEY

Pagination

List endpoints support limit (default 20) and offset (default 0) query parameters. Responses include total count and has_more boolean.

Filtering

Most list endpoints accept a filter object. Supported value types: | Type | Example | SQL equivalent | |------|---------|----------------| | Scalar | "status": "ok" | = 'ok' | | Array | "status": ["ok", "pending"] | IN ('ok', 'pending') | | Object | "created_at": {">=": "2024-01-01"} | >= '2024-01-01' | | "is_null" | "email": "is_null" | IS NULL | | "is_not_null" | "email": "is_not_null" | IS NOT NULL | Supported operators: =, !=, <, <=, >, >=, <>

Rate Limits

API requests are rate-limited per account. If you exceed the limit, you'll receive a 429 response. Use exponential backoff when retrying.

Download OpenAPI description
Overview
URL
Grinfi.io Support
License
Languages
Servers
Production
https://leadgen.grinfi.io

Manage your CRM contacts (leads). Search, create, update, and organize contacts across lists and pipeline stages.

Operations

Manage company records in your CRM. Companies can be linked to contacts and enriched with additional data from LinkedIn.

Operations

Organize contacts into lists. Every contact must belong to a list. Use lists to segment your audience for outreach campaigns.

Operations

Label contacts and companies with custom tags for easy filtering and segmentation.

Operations

Define and manage pipeline stages to track where each contact stands in your sales or outreach process.

Operations

Extend contact and company records with custom data fields. Store any additional information relevant to your workflow.

Operations

Add internal notes to contacts or companies for your team's reference.

Operations

Manage outreach automation sequences. Automations define multi-step workflows that send LinkedIn messages, emails, and perform other actions on a schedule.

Operations

Request

Add an existing contact to an automation. The contact will enter the automation from the beginning of the sequence.

Security
bearerAuth
Path
flowUuidstringrequired

Automation UUID.

leadUuidstringrequired

Contact UUID.

curl -i -X POST \
  'https://leadgen.grinfi.io/flows/api/flows/{flowUuid}/leads/{leadUuid}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Contact added.

Create a contact and add to automation

Request

Create a new contact and immediately add them to an automation. The contact is created in the specified list and starts the automation sequence. If skip_if_lead_exists is true, existing contacts won't be added again.

Security
bearerAuth
Path
flowUuidstringrequired

Automation UUID.

Bodyapplication/jsonrequired
leadobjectrequired
lead.​linkedin_idstringrequired

LinkedIn profile URL or member ID.

Example: "john-doe-123456"
lead.​first_namestring
Example: "John"
lead.​last_namestring
Example: "Doe"
lead.​company_namestring
Example: "Acme Inc"
lead.​ln_idstring or null
lead.​sn_idstring or null
lead.​linkedinstring or null
lead.​emailstring(email)
Example: "john@acme.com"
lead.​aboutstring
lead.​domainstring

Company domain for email discovery.

Example: "acme.com"
lead.​headlinestring or null
lead.​positionstring or null
lead.​raw_addressstring or null
custom_fieldsobject

Custom field values.

Example: {"field_position":"CTO"}
list_uuidstringrequired

List UUID for the new contact.

update_lead_if_existsboolean
Default true
move_to_listboolean
Default false
flow_segment_idinteger

Automation segment to enter.

Default 1
skip_if_lead_existsboolean

Skip if contact already exists.

curl -i -X POST \
  'https://leadgen.grinfi.io/flows/api/flows/{flowUuid}/add-new-lead' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "lead": {
      "linkedin_id": "john-doe-123456",
      "first_name": "John",
      "last_name": "Doe",
      "company_name": "Acme Inc"
    },
    "list_uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "skip_if_lead_exists": true
  }'

Responses

Contact skipped (already exists).

Bodyapplication/json
reasonstring
Example: "skipped"
Response
application/json
{ "reason": "skipped" }

Cancel contact from specific automations

Request

Remove a contact from specific automations. The contact's progress in those automations will be cancelled.

Security
bearerAuth
Path
leadUuidstringrequired

Contact UUID.

Bodyapplication/jsonrequired
flow_uuidsArray of stringsrequired

Automation UUIDs to cancel from.

curl -i -X PUT \
  'https://leadgen.grinfi.io/flows/api/flows/leads/{leadUuid}/cancel' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "flow_uuids": [
      "string"
    ]
  }'

Responses

Contact cancelled from specified automations.

Response
No content

Create and manage outreach tasks such as sending LinkedIn messages or emails. Tasks can be created manually or generated by automations.

Operations

Sender profiles represent the LinkedIn and email accounts used to send outreach messages. Each profile links a LinkedIn browser and/or email mailbox.

Operations

Send and retrieve LinkedIn messages through your connected sender profiles.

Operations

Send and retrieve emails through your connected mailboxes.

Operations

Manage email mailboxes (SMTP/IMAP, Gmail, Outlook) used for sending and receiving emails in outreach campaigns.

Operations

Manage AI message templates for generating personalized outreach messages at scale.

Operations