Uploads a file that can be attached to notes.

Usage Example

Upload a file (multipart/form-data):

POST /api/v1/files HTTP/1.1
Authorization: Bearer {token}
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary...

------WebKitFormBoundary...
Content-Disposition: form-data; name="file"; filename="report.pdf"
Content-Type: application/pdf

[binary file content]
------WebKitFormBoundary...--

Response:

{
  "id": "12345",
  "fileName": "report.pdf",
  "contentType": "application/pdf",
  "contentLength": 245678,
  "uploadedUtc": "2025-10-07T14:30:00Z",
  "url": "/api/v1/files/12345"
}

Then attach to a note:

POST /api/v1/network/contacts/123/notes HTTP/1.1
Content-Type: application/json

{
  "note": "Attached Q4 report for review",
  "fileId": "12345"
}

File Restrictions

  • Max size: 100MB
  • Allowed types: PDF, images (PNG/JPG/GIF), Office documents, text files
  • Naming: Original filename preserved, but stored with unique identifier
  • Access: Files owned by authenticated user, accessible via note associations

Security Notes

  • Files are scanned and validated before storage
  • MIME type verification prevents malicious uploads
  • Files stored with unique identifiers to prevent path traversal attacks
  • Access control enforced on download
Body
required
application/x-www-form-urlencoded

The file to upload (multipart/form-data)

  • ContentDisposition
    Type: string
  • ContentType
    Type: string
  • FileName
    Type: string
  • Headers
    Type: object
  • Length
    Type: string Pattern: ^-?(?:0|[1-9]\d*)$Format: int64
  • Name
    Type: string
Responses
  • application/json
  • application/problem+json
  • application/problem+json
  • application/problem+json
  • application/problem+json
Request Example for post/api/v1/files
curl https://app.propstreet.com/api/v1/files \
  --request POST \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --data-urlencode 'ContentType=' \
  --data-urlencode 'ContentDisposition=' \
  --data-urlencode 'Headers.additionalProperty=' \
  --data-urlencode 'Length=' \
  --data-urlencode 'Name=' \
  --data-urlencode 'FileName='
{
  "id": "string",
  "fileName": "string",
  "contentType": "string",
  "contentLength": "string",
  "uploadedUtc": "2026-04-20T01:14:09.577Z",
  "url": "string"
}