Manage your CRM contacts (leads). Search, create, update, and organize contacts across lists and pipeline stages.
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.
All requests require a Bearer token in the Authorization header.
- Log in at leadgen.grinfi.io
- Go to Settings → API Keys
- Copy your key and pass it as:
Authorization: Bearer YOUR_API_KEY
List endpoints support limit (default 20) and offset (default 0) query parameters. Responses include total count and has_more boolean.
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: =, !=, <, <=, >, >=, <>
Request
Retrieve LinkedIn messages from your unified inbox. Filter by contact, sender profile, conversation, message type (inbox/outbox), and status.
- Productionhttps://leadgen.grinfi.io/flows/api/linkedin-messages
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://leadgen.grinfi.io/flows/api/linkedin-messages?limit=20&offset=0&order_field=created_at&order_type=asc&filter%5Bq%5D=string&filter%5Blead_uuid%5D=string&filter%5Bsender_profile_uuid%5D=string&filter%5Btype%5D=string&filter%5Bstatus%5D=string' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'{ "data": [ { … } ], "limit": 0, "offset": 0, "total": 0, "has_more": true }
Request
Send a LinkedIn message to a contact through a sender profile. The message will be queued and sent via the linked LinkedIn account.
- Productionhttps://leadgen.grinfi.io/flows/api/linkedin-messages
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://leadgen.grinfi.io/flows/api/linkedin-messages \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"sender_profile_uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"lead_uuid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"text": "Hi John, thanks for connecting!"
}'{ "uuid": "string", "team_id": 0, "sender_profile_uuid": "string", "linkedin_account_uuid": "string", "linkedin_conversation_uuid": "string", "lead_uuid": "string", "task_pipeline_uuid": "string", "template_uuid": "string", "message_hash": "string", "text": "Hi John, thanks for connecting!", "custom_content": [], "attachments": [], "type": "outbox", "automation": "string", "status": "sent", "fail_reason": "string", "read_at": "2019-08-24T14:15:22Z", "sent_at": "2019-08-24T14:15:22Z", "user_id": 0 }
- Productionhttps://leadgen.grinfi.io/flows/api/linkedin-messages/{uuid}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
'https://leadgen.grinfi.io/flows/api/linkedin-messages/{uuid}' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'