Skip to main content
POST
/
api
/
v1
/
uploads
Create an upload
curl --request POST \
  --url https://api.optimaldial.com/api/v1/uploads \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: multipart/form-data' \
  --form file='@example-file' \
  --form 'phone_column=<string>' \
  --form skip_mobile_lookup=false \
  --form 'filename_override=<string>'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "original_filename": "<string>",
  "storage_path": "<string>",
  "status": "pending_mapping",
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z",
  "organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "file_size_bytes": 123,
  "valid_row_count": 123,
  "invalid_row_count": 123,
  "credits_required": 123,
  "credits_charged": 123,
  "credits_refunded": 123,
  "source": "web",
  "api_key_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "skip_mobile_lookup": true,
  "processed_storage_path": "<string>",
  "processed_filtered_storage_path": "<string>",
  "error_message": "<string>",
  "exceeded_daily_limit": true
}

Authorizations

Authorization
string
header
required

OptimalDial API key, prefixed od_live_, sent as Authorization: Bearer .... Mint keys in the in-app developer panel; they are scoped to a single organization.

Body

file
file
required

CSV file (≤100 MB, must include a header row).

phone_column
string
required

Name of the column containing phone numbers.

skip_mobile_lookup
boolean
default:false
filename_override
string

Override the file's original name.

Response

Upload created, credits charged, ready for processing.

id
string<uuid>
required
user_id
string<uuid>
required
original_filename
string
required
storage_path
string
required

Internal — use the download endpoints.

status
enum<string>
required
Available options:
pending_mapping,
validating,
validation_failed,
awaiting_confirmation,
ready_for_processing,
processing,
completed,
failed,
cancelled
created_at
string<date-time>
required
updated_at
string<date-time>
required
organization_id
string<uuid> | null
file_size_bytes
integer | null
valid_row_count
integer | null
invalid_row_count
integer | null
credits_required
integer | null
credits_charged
integer | null
credits_refunded
integer | null
source
enum<string> | null
Available options:
web,
api,
null
api_key_id
string<uuid> | null
skip_mobile_lookup
boolean | null
processed_storage_path
string | null
processed_filtered_storage_path
string | null
error_message
string | null
exceeded_daily_limit
boolean | null