API Access
Integrate LinkedGrow into your workflow with REST API access for managing posts programmatically.
Overview
LinkedGrow provides a REST API that lets you manage your posts programmatically. You can create, read, update, and delete posts through API calls, making it easy to integrate LinkedGrow into your existing tools and workflows.
API access is available exclusively on the Business plan.
What You Can Do with the API
The LinkedGrow API enables you to:
- Create new posts from external tools or scripts
- Retrieve your existing posts and drafts
- Update post content before publishing
- Delete posts you no longer need
- Integrate with automation platforms like Zapier, Make, or n8n
- Build custom dashboards or content pipelines
Creating an API Key
To use the API, you need an API key:
- Go to Settings in the left sidebar
- Click on the API section
- Click Create API Key
- Enter a descriptive Key Name (for example, "Zapier integration" or "Content pipeline")
- Select the scopes you want to grant this key (see below)
- Click Create
- Copy the API key immediately - it will not be shown again
Important: Treat your API key like a password. Do not share it publicly, commit it to version control, or include it in client-side code. If a key is compromised, revoke it immediately and create a new one.
You can create multiple API keys for different integrations. Each key can be revoked independently without affecting others.
Scoped Permissions
When creating an API key, you select which scopes (permissions) the key should have. This lets you follow the principle of least privilege by only granting the access each integration needs.
Available scopes:
- posts:read - Read and list posts
- posts:write - Create and update posts
- posts:delete - Delete posts
- ideas:read - Read and list ideas
- ideas:write - Create and update ideas
- analytics:read - Read analytics data
- profile:read - Read profile information
For example, if you are building a read-only dashboard, you only need posts:read and analytics:read. If you are building a content pipeline that creates posts, you would also need posts:write.
Authentication
All API requests must include your API key in the Authorization header using the Bearer scheme:
Authorization: Bearer your-api-key-here
Requests without a valid API key will receive a 401 Unauthorized response. Requests that attempt actions outside the key's scopes will receive a 403 Forbidden response.
Available Endpoints
Posts
The posts endpoint lets you manage your LinkedIn posts:
Base URL: https://linkedgrow.ai/api/v1/posts
List All Posts
GET /api/v1/posts
Returns a list of all your posts. You can filter by status (draft, scheduled, published).
Required scope: posts:read
Query parameters:
status- filter by post status (draft, scheduled, published)limit- number of posts to return (default: 20, max: 100)offset- pagination offset
Example response:
{
"posts": [
{
"id": "post_abc123",
"content": "Your post content here...",
"status": "draft",
"createdAt": "2025-01-15T10:30:00Z",
"updatedAt": "2025-01-15T10:30:00Z"
}
],
"total": 42,
"limit": 20,
"offset": 0
}
Get a Single Post
GET /api/v1/posts/:id
Returns the full details of a specific post.
Required scope: posts:read
Create a Post
POST /api/v1/posts
Creates a new post. Send the content in the request body:
{
"content": "Your LinkedIn post content here...",
"status": "draft"
}
The status field accepts "draft" or "scheduled". If you set it to "scheduled", you must also include a scheduledAt field with an ISO 8601 datetime.
Required scope: posts:write
Update a Post
PUT /api/v1/posts/:id
Updates an existing post. Send only the fields you want to change:
{
"content": "Updated post content..."
}
Required scope: posts:write
Delete a Post
DELETE /api/v1/posts/:id
Permanently deletes a post. This action cannot be undone.
Required scope: posts:delete
Rate Limits
To ensure fair usage, the API has the following rate limits:
- 60 requests per minute per API key
- 1,000 requests per hour per API key
If you exceed the rate limit, you will receive a 429 Too Many Requests response with a Retry-After header indicating when you can make requests again.
Error Handling
The API uses standard HTTP status codes:
- 200 - Success
- 201 - Created (for new posts)
- 400 - Bad request (invalid parameters)
- 401 - Unauthorized (missing or invalid API key)
- 403 - Forbidden (insufficient scopes)
- 404 - Not found
- 429 - Too many requests (rate limit exceeded)
- 500 - Internal server error
Error responses include a JSON body with details:
{
"error": {
"code": "INVALID_CONTENT",
"message": "Post content cannot be empty"
}
}
Managing API Keys
From Settings > API, you can:
- View all your active API keys and when they were last used
- Create new API keys with descriptive names and scoped permissions
- Revoke API keys that are no longer needed
Revoking an API key is immediate. Any integrations using that key will stop working right away.
Security Best Practices
- Store API keys in environment variables, not in your code
- Use different API keys for different integrations
- Grant only the scopes each integration needs
- Revoke API keys you are no longer using
- Monitor key usage in your API settings
- Never expose API keys in browser-side JavaScript or public repositories
Questions?
For API support or feature requests, contact us at [email protected].