Rails Vault API

Secure document storage, photo management, notes, tasks, contacts, and calendar. Build productivity and storage features into any app.

← All APIs · Auth Pay Media Messaging Location

Base URL

https://vault.railscloud.co/api/v1

Authentication

Include your API key in the Authorization header. All Vault endpoints require both your API key and a user session token.

# API key authentication (all requests)
Authorization: Bearer dk_live_your_api_key

# User session (required for all Vault endpoints)
X-Session-Token: usr_session_token_here

How Vault Works

Rails Vault provides encrypted cloud storage with built-in productivity tools. Each user gets their own isolated vault with documents, photos, notes, tasks, contacts, and calendar.

1 Authenticate a user via Rails Auth to get a session token
2 Upload documents and photos with POST /documents using multipart form data
3 Organize with folders, tags, and albums for structured storage
4 Use notes, tasks, contacts, and calendar to build productivity features

Quick Start

# Upload a document
curl -X POST https://vault.railscloud.co/api/v1/documents \
  -H "Authorization: Bearer dk_live_your_key" \
  -H "X-Session-Token: ACCESS_TOKEN" \
  -F "file=@contract.pdf" \
  -F "folder_id=folder_abc123"

# Response: {"data": {"id": "doc_xyz", "name": "contract.pdf", "size": 245760, ...}}

# Create a note
curl -X POST https://vault.railscloud.co/api/v1/notes \
  -H "Authorization: Bearer dk_live_your_key" \
  -H "X-Session-Token: ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title": "Meeting Notes", "content": "Discussed Q2 roadmap..."}'

# Response: {"data": {"id": "note_abc", "title": "Meeting Notes", ...}}

Endpoints

Documents

POST /documents Upload a document (multipart)
GET /documents List all documents
GET /documents/{id} Get document details
PATCH /documents/{id} Rename or update document metadata
DELETE /documents/{id} Move document to trash
GET /documents/{id}/download Download document file
POST /documents/{id}/share Generate a share link
POST /documents/{id}/move Move to a different folder
GET /documents/{id}/versions List document version history

Folders

POST /folders Create a folder
GET /folders List all folders
GET /folders/{id} Get folder details and contents
PATCH /folders/{id} Rename a folder
DELETE /folders/{id} Delete a folder and its contents

Photos & Albums

POST /photos Upload a photo (multipart)
GET /photos List all photos
GET /photos/{id} Get photo details and metadata
GET /photos/{id}/download Download original photo
DELETE /photos/{id} Delete a photo
POST /albums Create a photo album
GET /albums List all albums
GET /albums/{id} Get album with photos
POST /albums/{id}/photos Add photos to an album
DELETE /albums/{id} Delete an album

Notes

POST /notes Create a note
GET /notes List all notes
GET /notes/{id} Get note content
PATCH /notes/{id} Update note title or content
DELETE /notes/{id} Delete a note
GET /notes/search Search notes by keyword
POST /notes/{id}/pin Pin a note to top
POST /notes/{id}/archive Archive a note

Tasks

POST /tasks Create a task
GET /tasks List all tasks
GET /tasks/{id} Get task details
PATCH /tasks/{id} Update task details or priority
DELETE /tasks/{id} Delete a task
POST /tasks/{id}/complete Mark task as complete
GET /tasks/today Get tasks due today
GET /tasks/overdue Get overdue tasks

Contacts

POST /contacts Create a contact
GET /contacts List all contacts
GET /contacts/{id} Get contact details
PATCH /contacts/{id} Update contact information
DELETE /contacts/{id} Delete a contact
GET /contacts/search Search contacts by name or phone
POST /contacts/import Bulk import contacts (CSV/vCard)
GET /contacts/export Export contacts as vCard

Calendar

POST /calendar/events Create a calendar event
GET /calendar/events List events (with date range filter)
GET /calendar/events/{id} Get event details
PATCH /calendar/events/{id} Update event details
DELETE /calendar/events/{id} Delete an event
GET /calendar/events/today Get today's events
GET /calendar/events/upcoming Get upcoming events
GET /calendar/events/search Search events by title or description

Verification

POST /verify/document Verify a document hash
GET /verify/certificate/{id} Get document certificate of authenticity
POST /verify/asset Verify a digital asset

Storage

GET /storage/usage Get storage usage breakdown
GET /storage/trash List items in trash

Example: Document Versioning

# Upload a new version of an existing document
curl -X POST https://vault.railscloud.co/api/v1/documents \
  -H "Authorization: Bearer dk_live_your_key" \
  -H "X-Session-Token: ACCESS_TOKEN" \
  -F "file=@contract_v2.pdf" \
  -F "parent_document_id=doc_xyz"

# List all versions
curl https://vault.railscloud.co/api/v1/documents/doc_xyz/versions \
  -H "Authorization: Bearer dk_live_your_key" \
  -H "X-Session-Token: ACCESS_TOKEN"

# Response:
# {"data": [
# {"version": 2, "name": "contract_v2.pdf", "size": 256000, "created_at": "..."},
# {"version": 1, "name": "contract.pdf", "size": 245760, "created_at": "..."}
# ]}

Example: Task Management

# Create a task with a due date
curl -X POST https://vault.railscloud.co/api/v1/tasks \
  -H "Authorization: Bearer dk_live_your_key" \
  -H "X-Session-Token: ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Review contract",
    "description": "Review and sign the partnership agreement",
    "due_date": "2026-02-15T17:00:00Z",
    "priority": "high"
  }'

# Mark task as complete
curl -X POST https://vault.railscloud.co/api/v1/tasks/task_abc/complete \
  -H "Authorization: Bearer dk_live_your_key" \
  -H "X-Session-Token: ACCESS_TOKEN"

Rate Limits

File uploads 100 per hour
Max file size 500 MB per file
General API calls Based on your tier (600–1,000 req/min)

Error Responses

All errors follow a standard format.

{
  "error": "file_too_large",
  "message": "File exceeds the 500 MB upload limit"
}
401 Invalid or missing API key / session token
403 No access to this resource
404 Document, folder, or resource not found
413 File exceeds maximum upload size
422 Validation error (check field-level errors)
429 Rate limit exceeded
Get Started with Rails Vault