Skip to Content
Pindown.ai is in early alpha - features may change
Pages APIShare Page

Share Page

Update sharing permissions for a page (make public, invite collaborators, etc.).

Endpoint

POST /v1/pages/:pageId/publish POST /v1/pages/:pageId/unpublish POST /v1/pages/:pageId/invitations/send GET /v1/pages/:pageId/invitations DELETE /v1/pages/:pageId/invitations/:email PUT /v1/pages/:pageId/users/:userId/role

Authentication

Requires API key with pages:write scope. You must be the page owner or an editor.

Authorization: Bearer pk_live_your_api_key

Publish Page

Make a page publicly accessible:

import { PindownClient } from '@pindownai/client-js' const client = new PindownClient({ apiKey: process.env.PINDOWN_API_KEY }) await client.pages.publish('pg-abc123') console.log('Page is now public')

Unpublish Page

Make a page private again:

await client.pages.unpublish('pg-abc123') console.log('Page is now private')

Send Invitation

Invite a collaborator to the page:

await fetch('https://api.pindown.ai/v1/pages/pg-abc123/invitations/send', { method: 'POST', headers: { 'Authorization': `Bearer ${process.env.PINDOWN_API_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ email: 'collaborator@example.com', role: 'editor' // or 'viewer' }) })

List Invitations

Get all pending and active invitations:

const response = await fetch('https://api.pindown.ai/v1/pages/pg-abc123/invitations', { headers: { 'Authorization': `Bearer ${process.env.PINDOWN_API_KEY}` } }) const result = await response.json() console.log('Pending invites:', result.data.pending) console.log('Active users:', result.data.active)

Response

{ "success": true, "data": { "pending": [ { "email": "collaborator@example.com", "role": "editor", "invited_at": "2024-11-23T10:00:00Z" } ], "active": [ { "user_id": "user-xyz789", "email": "user@example.com", "role": "viewer", "added_at": "2024-11-23T09:00:00Z" } ] } }

Permission Levels

RoleViewEditInviteDelete
Owner
Editor
Viewer

Next Steps