Developer API
Documentação da API Pública

Acesso programático aos metadados dos seus arquivos e pastas.

URL Base

https://cryptfiles.cloud/api/public/v1

Todos os endpoints são vinculados ao proprietário. Um token só pode ler/gravar recursos da conta que criou o token. Nota: Uploads não estão disponíveis na API Pública devido ao modelo Zero-Knowledge.

Início Rápido
  1. Crie um Bearer Token em Dashboard -> Perfil -> Tokens de API Pública.
  2. Armazene o token com segurança. O token em texto puro é exibido apenas uma vez.
  3. Envie requests com `Authorization: Bearer {token}` e `Accept: application/json`.
  4. Conceda apenas os escopos realmente necessários (Privilégio Mínimo).
Códigos de Status Típicos
  • 200 OK - Request bem-sucedido
  • 201 Created - Recurso criado
  • 401 Unauthorized - Token ausente/inválido
  • 403 Forbidden - Escopo ausente ou conta restrita
  • 404 Not Found - Recurso não visível para este proprietário
  • 422 Unprocessable Entity - Erro de validação
  • 429 Too Many Requests - Limite de taxa atingido
Modelo de Segurança
  • Secrets dos tokens nunca são armazenados em texto puro no servidor.
  • Verificações rigorosas de proprietário impedem acesso entre contas em arquivos/pastas.
  • Contas suspensas ou banidas são bloqueadas para a API Pública.
  • Devido ao modelo Zero-Knowledge, endpoints de upload não são possíveis na API Pública.
Headers Obrigatórios
  • Authorization: Bearer {token}
  • Accept: application/json
  • Content-Type: application/json (para body JSON)
Conta

Ler estatísticas de perfil, armazenamento e uso.

GET /account Escopo: account:read Obter dados da conta

Retorna perfil, cotas/uso de armazenamento e estatísticas agregadas do proprietário do token.

Detalhes do Request
Request Notes
  • Nenhum body necessário.
Campos da Response
  • data.id: UUID da conta
  • data.name: Nome de exibição do perfil
  • data.email: E-mail da conta
  • data.account_type: Plano atual
  • data.storage.used_bytes: Bytes armazenados
  • data.storage.pending_bytes: Bytes reservados para uploads em andamento
  • data.storage.quota_bytes: Máximo de bytes permitidos
  • data.storage.available_bytes: Bytes restantes
  • data.storage.usage_percentage: Uso de armazenamento em porcentagem
  • data.stats.uploads_count: Total de uploads bem-sucedidos
  • data.stats.downloads_count: Total de downloads bem-sucedidos
  • data.stats.views_count: Total de eventos de visualização/stream
  • data.stats.shares_count: Total de links de compartilhamento criados
  • data.stats.files_count: Total de arquivos nas estatísticas
  • data.stats.bandwidth_used_bytes: Largura de banda total transferida em bytes
  • data.fair_use.daily_bandwidth_used_bytes: Contador Fair-Use atual do dia em bytes
  • data.fair_use.full_speed_limit_bytes: A partir deste limite diário, o throttling começa
  • data.fair_use.heavy_throttle_from_bytes: A partir deste limite diário, o throttling intenso começa
  • data.fair_use.moderate_delay_ms: Atraso por chunk no throttling moderado
  • data.fair_use.heavy_delay_ms: Atraso por chunk no throttling intenso
  • data.fair_use.current_delay_ms: Atraso por chunk atualmente aplicado
  • data.fair_use.current_state: full_speed|moderate|heavy
Notas
  • Sempre vinculado ao proprietário. Nenhuma consulta entre contas possível.
  • Todos os valores de largura de banda são em bytes.
  • O throttling é baseado nos bytes diários de Fair-Use e no nível da conta.
  • Throttling moderado começa quando daily_bandwidth_used_bytes >= full_speed_limit_bytes; throttling intenso quando >= heavy_throttle_from_bytes.
Exemplo
curl -X GET "https://cryptfiles.cloud/api/public/v1/account" \
  -H "Authorization: Bearer {token}" \
  -H "Accept: application/json"
Arquivos

Listar, ler, atualizar, compartilhar e excluir metadados de arquivos.

GET /files Escopo: files:read Listar metadados de arquivos

Retorna metadados paginados de arquivos da conta do proprietário.

Detalhes do Request
Query Parameters
  • folder_id (uuid opcional)
  • status (uploading|processing|available|deleted opcional)
  • is_video (boolean opcional)
  • share_type (public|private opcional)
  • per_page (integer 1-200 opcional)
Campos da Response
  • data.items[].id
  • data.items[].folder_id, original_file_id, reference_count
  • data.items[].status, share_type, is_video, mime_type
  • data.items[].file_size, file_size_encrypted, chunk_size, chunk_count
  • data.items[].download_count, stream_count
  • data.items[].metadata, thumbnail_path, thumbnail_nonce
  • data.items[].created_at, updated_at, expires_at
  • data.pagination.current_page, last_page, per_page, total
Notas
  • Sem filtro de status, o padrão é status=available.
Exemplo
curl -X GET "https://cryptfiles.cloud/api/public/v1/files?per_page=50" \
  -H "Authorization: Bearer {token}"
GET /files/{fileId} Escopo: files:read Ler metadados de um arquivo

Retorna metadados de um único arquivo do proprietário.

Detalhes do Request
Path Parameters
  • fileId (uuid)
Campos da Response
  • data.id
  • data.folder_id, original_file_id, reference_count
  • data.status, share_type, is_video, mime_type
  • data.file_size, file_size_encrypted, chunk_size, chunk_count
  • data.download_count, stream_count
  • data.metadata, thumbnail_path, thumbnail_nonce
  • data.created_at, updated_at, expires_at
Notas
  • 404 se o arquivo não pertence ao proprietário do token.
Exemplo
curl -X GET "https://cryptfiles.cloud/api/public/v1/files/{file_id}" \
  -H "Authorization: Bearer {token}"
PATCH /files/{fileId} Escopo: files:write Atualizar metadados do arquivo (sem conteúdo)

Atualiza metadados visíveis ao proprietário, como atribuição de pasta, tipo de compartilhamento, data de expiração e metadados.

Detalhes do Request
Path Parameters
  • fileId (uuid)
Body Parameters (JSON)
  • folder_id (uuid|null opcional)
  • share_type (public|private opcional)
  • is_video (boolean opcional)
  • expires_at (date|null opcional)
  • metadata (string|null opcional)
Campos da Response
  • Mesmo objeto de arquivo que em GET /files/{fileId}
Notas
  • folder_id deve pertencer ao mesmo proprietário.
  • O conteúdo do arquivo não é alterado por este endpoint.
  • Se nenhum campo editável for enviado, o endpoint retorna 422.
Exemplo
curl -X PATCH "https://cryptfiles.cloud/api/public/v1/files/{file_id}" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"share_type":"private"}'
DELETE /files/{fileId} Escopo: files:write Excluir arquivo

Exclui um arquivo com autorização do proprietário e lógica de exclusão segura existente.

Detalhes do Request
Path Parameters
  • fileId (uuid)
Campos da Response
  • success
  • message
Notas
  • 404 para recursos não visíveis/que não pertencem ao proprietário.
Exemplo
curl -X DELETE "https://cryptfiles.cloud/api/public/v1/files/{file_id}" \
  -H "Authorization: Bearer {token}"
POST /files/{fileId}/share Escopo: files:write Criar link de compartilhamento do arquivo

Cria um token de compartilhamento para um arquivo do proprietário.

Detalhes do Request
Path Parameters
  • fileId (uuid)
Body Parameters (JSON)
  • password (string min 4 opcional)
  • max_downloads (integer >= 1 opcional)
  • expires_in_days (integer 1-365 opcional)
Campos da Response
  • data.share_id, share_token, share_url
  • data.expires_at, has_password
  • message
Notas
  • Endpoint exclusivo do proprietário.
Exemplo
curl -X POST "https://cryptfiles.cloud/api/public/v1/files/{file_id}/share" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"max_downloads":25}'
Pastas

Criar e gerenciar a estrutura de pastas conforme o sistema existente.

GET /folders Escopo: folders:read Listar pastas

Retorna pastas no formato plano ou em árvore.

Detalhes do Request
Query Parameters
  • format (flat|tree opcional padrão flat)
Campos da Response
  • data[].id, parent_folder_id, name, display_order
  • data[].created_at, updated_at, deleted_at
  • data[].file_count, subfolder_count, object_count
  • data[].children[] (apenas com format=tree, mesmos campos recursivamente)
Notas
  • Resultados são sempre vinculados ao proprietário.
  • Valores inválidos de format retornam erro de validação 422.
Exemplo
curl -X GET "https://cryptfiles.cloud/api/public/v1/folders?format=tree" \
  -H "Authorization: Bearer {token}"
GET /folders/{folderId} Escopo: folders:read Ler detalhes da pasta

Retorna metadados da pasta mais o caminho de breadcrumb.

Detalhes do Request
Path Parameters
  • folderId (uuid)
Campos da Response
  • data.folder.id, parent_folder_id, name, display_order
  • data.folder.created_at, updated_at, deleted_at
  • data.folder.file_count, subfolder_count, object_count
  • data.breadcrumbs[] com os mesmos campos de pasta
Notas
  • 404 para pastas que não pertencem ao proprietário.
Exemplo
curl -X GET "https://cryptfiles.cloud/api/public/v1/folders/{folder_id}" \
  -H "Authorization: Bearer {token}"
POST /folders Escopo: folders:write Criar pasta

Cria uma nova pasta na hierarquia existente.

Detalhes do Request
Body Parameters (JSON)
  • name (obrigatório
  • string não vazia)
  • parent_folder_id (uuid|null opcional)
  • display_order (integer >= 0 opcional)
Campos da Response
  • data.id, parent_folder_id, name, display_order
  • data.created_at, updated_at, deleted_at
  • data.file_count, subfolder_count, object_count
Notas
  • parent_folder_id deve pertencer à conta do proprietário.
Exemplo
curl -X POST "https://cryptfiles.cloud/api/public/v1/folders" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"name":"Projeto Alpha"}'
PATCH /folders/{folderId} Escopo: folders:write Atualizar metadados da pasta

Renomeia, move ou reordena uma pasta existente.

Detalhes do Request
Path Parameters
  • folderId (uuid)
Body Parameters (JSON)
  • name (string não vazia
  • opcional)
  • parent_folder_id (uuid|null opcional)
  • display_order (integer >= 0 opcional)
Campos da Response
  • data.id, parent_folder_id, name, display_order
  • data.created_at, updated_at, deleted_at
  • data.file_count, subfolder_count, object_count
Notas
  • O destino de movimentações deve pertencer ao proprietário.
  • Se nenhum campo editável for enviado, o endpoint retorna 422.
  • Movimentações inválidas (para si mesmo/descendentes) retornam 422.
Exemplo
curl -X PATCH "https://cryptfiles.cloud/api/public/v1/folders/{folder_id}" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"display_order":3}'
DELETE /folders/{folderId} Escopo: folders:write Excluir pasta

Exclui uma pasta.

Detalhes do Request
Path Parameters
  • folderId (uuid)
Campos da Response
  • success
  • message
Notas
  • 404 para pastas que não pertencem ao proprietário.
Exemplo
curl -X DELETE "https://cryptfiles.cloud/api/public/v1/folders/{folder_id}" \
  -H "Authorization: Bearer {token}"

Utilizamos cookies tecnicamente necessários para a segurança e funcionalidade da plataforma. Mais informações na nossa Política de Privacidade.