Share Documents & Magic Links
Create shareable magic links for documents without requiring authentication.
Overview
Magic links allow you to share documents with anyone, even if they don't have a Scriptix account. Recipients can view and optionally edit documents through the shared link.
Create Magic Link
Generate a shareable link for a document.
Endpoint
POST /api/v3/speech-to-text/session/{sessionId}/document/{documentId}/share
Request
{
"sessionId": "sess_abc123",
"documentId": "doc_xyz789"
}
Optional payload (can also be empty {}).
Response
Status: 200 OK
{
"result": {
"link": "https://app.scriptix.io/shared/transcript/abc123xyz?token=magic_token_here"
}
}
Examples
cURL
curl -X POST https://api.scriptix.io/api/v3/speech-to-text/session/sess_abc123/document/doc_xyz789/share \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Share via Email
Send magic link directly to recipients via email.
Endpoint
POST /api/v3/speech-to-text/session/{sessionId}/document/{documentId}/share/email
Request
{
"emails": ["colleague@example.com", "partner@company.com"],
"message": "Please review this transcript from our meeting."
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
emails | string[] | Yes | Array of recipient email addresses |
message | string | No | Optional personal message to include in email |
Response
Status: 200 OK
{
"result": {
"link": "https://app.scriptix.io/shared/transcript/abc123xyz?token=...",
"emails_sent": ["colleague@example.com", "partner@company.com"],
"success": true
}
}
Examples
cURL
curl -X POST https://api.scriptix.io/api/v3/speech-to-text/session/sess_abc123/document/doc_xyz789/share/email \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"emails": ["colleague@example.com"],
"message": "Please review this transcript."
}'
Access Shared Documents
Recipients access shared documents through the magic link without authentication.
Shared Document Endpoints
Magic links provide access to these endpoints:
Get Shared Session
GET /api/v3/speech-to-text/session/{sessionId}/shared?token={token}
Get Shared Document
GET /api/v3/speech-to-text/session/{sessionId}/shared/document/{documentId}?token={token}
Update Shared Document (if editing allowed)
PUT /api/v3/speech-to-text/session/{sessionId}/shared/document/{documentId}?token={token}
Clear Text in Shared Document
PUT /api/v3/speech-to-text/session/{sessionId}/shared/document/{documentId}/clear_text?token={token}
Reset Shared Document
PUT /api/v3/speech-to-text/session/{sessionId}/shared/document/{documentId}/reset_to_original?token={token}
Finalize Shared Document
PUT /api/v3/speech-to-text/session/{sessionId}/shared/document/{documentId}/finish?token={token}
Example - Access Shared Document
curl "https://api.scriptix.io/api/v3/speech-to-text/session/sess_abc123/shared/document/doc_xyz789?token=magic_token_here"
No Authorization header required - the token grants access.
Magic Link Features
What Recipients Can Do
With a magic link, recipients can:
- ✅ View document content
- ✅ View timestamps and speaker labels
- ✅ Play associated media
- ✅ Export document
- ✅ Edit content (if editing enabled)
What Recipients Cannot Do
- ❌ Access other documents in the account
- ❌ Delete documents
- ❌ Create new documents
- ❌ Change sharing settings
Link Configuration
Magic link behavior is controlled server-side based on session settings:
| Setting | Description |
|---|---|
| Editing | Whether recipients can edit document content |
| Export | Whether recipients can download/export documents |
| Comments | Whether recipients can add comments |
| Expiry | When the link expires (configured per session) |
Check session settings:
curl https://api.scriptix.io/api/v3/speech-to-text/session/sess_abc123 \
-H "Authorization: Bearer YOUR_API_KEY"
Look for allow_magic_link_export and other permission flags.
Use Cases
1. Client Review
Share transcripts with clients for review and approval:
# Generate magic link
response = requests.post(
f'https://api.scriptix.io/api/v3/speech-to-text/session/{session_id}/document/{doc_id}/share',
headers={'Authorization': f'Bearer {api_key}'},
json={}
)
link = response.json()['result']['link']
# Send to client
print(f"Review link for client: {link}")
2. Team Collaboration
Share with team members via email:
requests.post(
f'https://api.scriptix.io/api/v3/speech-to-text/session/{session_id}/document/{doc_id}/share/email',
headers={'Authorization': f'Bearer {api_key}'},
json={
'emails': ['team@company.com'],
'message': 'Please review and add your edits.'
}
)
3. Public Distribution
Share meeting notes or podcasts publicly:
const link = await createMagicLink(sessionId, documentId);
// Share on social media, embed in website, etc.
document.getElementById('share-btn').href = link;
Security Considerations
Best Practices
-
Use Email Sharing for Sensitive Content
- Sends link directly to specific recipients
- Provides audit trail of who received access
-
Monitor Shared Links
- Track which documents are shared
- Revoke access when no longer needed
-
Be Cautious with Public Links
- Anyone with the link can access the document
- Don't share sensitive/confidential content publicly
-
Check Export Permissions
- Disable export if you don't want recipients downloading content
- Configure via session settings
Token Security
- Tokens are included in URL query parameters
- Tokens grant access without authentication
- Tokens may expire based on server configuration
- Don't log or expose tokens unnecessarily
Error Handling
| Status | Description |
|---|---|
| 400 | Invalid request parameters |
| 401 | Unauthorized - invalid API key |
| 403 | Sharing disabled for this document/session |
| 404 | Document or session not found |
| 422 | Validation error (e.g., invalid email addresses) |
| 500 | Internal server error |
Common Errors
Invalid Email Address
{
"detail": [
{
"loc": ["body", "emails", 0],
"msg": "value is not a valid email address",
"type": "value_error.email"
}
]
}
Sharing Not Allowed
{
"error": "Sharing is not enabled for this session",
"message": "Contact the session owner to enable sharing",
"status": 403
}
Limitations
- Maximum 50 email recipients per request
- Links may expire (check session settings)
- Shared documents cannot access private workspace features
- Export capabilities depend on session configuration
Related
- Documents Overview - Complete API reference
- Retrieve Document - Get document content
- Update Document - Edit shared documents
- Export Document - Export shared documents