Files

199 lines
3.5 KiB
Markdown
Raw Permalink Normal View History

# Webflow
Visual web design and CMS platform for marketing sites.
## Capabilities
| Integration | Available | Notes |
|-------------|-----------|-------|
| API | ✓ | REST API for sites, CMS, forms |
| MCP | - | Not available |
| CLI | ✓ | Webflow CLI for devlink and apps |
| SDK | ✓ | Official SDK for Node.js |
## Authentication
- **Type**: API Token (Site token or OAuth)
- **Header**: `Authorization: Bearer {api_token}`
- **Get token**: Site Settings > Integrations > API Access
## Common Agent Operations
### List sites
```bash
GET https://api.webflow.com/v2/sites
Authorization: Bearer {api_token}
```
### Get site
```bash
GET https://api.webflow.com/v2/sites/{site_id}
Authorization: Bearer {api_token}
```
### List collections
```bash
GET https://api.webflow.com/v2/sites/{site_id}/collections
Authorization: Bearer {api_token}
```
### List collection items
```bash
GET https://api.webflow.com/v2/collections/{collection_id}/items
Authorization: Bearer {api_token}
```
### Get collection item
```bash
GET https://api.webflow.com/v2/collections/{collection_id}/items/{item_id}
Authorization: Bearer {api_token}
```
### Create collection item
```bash
POST https://api.webflow.com/v2/collections/{collection_id}/items
Authorization: Bearer {api_token}
{
"fieldData": {
"name": "Item Name",
"slug": "item-name",
"custom-field": "value"
}
}
```
### Update collection item
```bash
PATCH https://api.webflow.com/v2/collections/{collection_id}/items/{item_id}
Authorization: Bearer {api_token}
{
"fieldData": {
"custom-field": "new value"
}
}
```
### Publish collection items
```bash
POST https://api.webflow.com/v2/collections/{collection_id}/items/publish
Authorization: Bearer {api_token}
{
"itemIds": ["item_id_1", "item_id_2"]
}
```
### List form submissions
```bash
GET https://api.webflow.com/v2/sites/{site_id}/forms/{form_id}/submissions
Authorization: Bearer {api_token}
```
### Publish site
```bash
POST https://api.webflow.com/v2/sites/{site_id}/publish
Authorization: Bearer {api_token}
{
"publishToWebflowSubdomain": true,
"publishToCustomDomains": true
}
```
## Node.js SDK
```javascript
const Webflow = require('webflow-api');
const webflow = new Webflow({ token: 'api_token' });
// List sites
const sites = await webflow.sites.list();
// Get collection items
const items = await webflow.collections.items.listItems(collectionId);
// Create item
const item = await webflow.collections.items.createItem(collectionId, {
fieldData: {
name: 'New Item',
slug: 'new-item'
}
});
```
## CLI Commands
```bash
# Install
npm install -g @webflow/webflow-cli
# Login
webflow login
# Initialize devlink
webflow devlink init
# Sync components
webflow devlink sync
```
## CMS Structure
- **Collections** - Content types (like blog posts, team members)
- **Items** - Individual entries in a collection
- **Fields** - Data fields on items
## Common Field Types
- `PlainText` - Simple text
- `RichText` - Formatted content
- `Image` - Image upload
- `Link` - URL or page reference
- `Reference` - Link to another collection
- `Multi-Reference` - Multiple collection links
- `Switch` - Boolean toggle
- `Number` - Numeric value
- `Date` - Date/time
## When to Use
- Marketing site CMS management
- Blog/content publishing
- Form submission handling
- Automated content updates
- Programmatic SEO pages
## Rate Limits
- 60 requests/minute (general)
- 10 requests/minute (publishing)
## Relevant Skills
- programmatic-seo
- content-strategy
- page-cro