Skip to main content
POST
/
api
/
v2
/
browser-profiles
/
{profile_id}
/
complete-upload
Complete a profile upload
curl --request POST \
  --url https://agp.eu.hcompany.ai/api/v2/browser-profiles/{profile_id}/complete-upload \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "browser_name": "<string>",
  "browser_version": "<string>",
  "description": "<string>",
  "labels": {}
}
'
Finalizes a profile after you have uploaded its archive to the presigned target from Initiate upload. The platform verifies the uploaded archive and records the profile metadata. Returns 201 with the created profile object (see Retrieve for the full field list).

Path parameters

profile_id
string
required
The profile_id returned by Initiate upload.

Request body

name
string
required
Human-readable label for the profile.
browser_name
string
required
Browser the profile was captured with (for example chromium, firefox, webkit, or selenium). Validated against the set of supported browsers.
browser_version
string
required
Browser version string the profile was captured with (for example 131).
description
string
Optional free-text description.
labels
object
Optional key-value metadata for your own bookkeeping.

Examples

curl -X POST "https://agp.eu.hcompany.ai/api/v2/browser-profiles/a1b2c3d4-5678-90ab-cdef-1234567890ab/complete-upload" \
  -H "Authorization: Bearer $HAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "acme-prod-login",
    "browser_name": "chromium",
    "browser_version": "131",
    "labels": {"team": "qa"}
  }'
Response
{
  "id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
  "name": "acme-prod-login",
  "description": null,
  "browser_name": "chromium",
  "browser_version": "131",
  "s3_path": "browser-profiles/finished/org_123/a1b2c3d4-5678-90ab-cdef-1234567890ab/profile.zip",
  "file_size_bytes": 102400,
  "checksum": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
  "usage_count": 0,
  "last_used_at": null,
  "labels": {"team": "qa"},
  "created_at": "2026-06-16T14:30:00Z",
  "updated_at": "2026-06-16T14:30:00Z"
}

Errors

StatusCause
404No pending upload found for this profile_id, or you don’t have access.
422Body failed validation (for example an unsupported browser_name), or the archive was not found in storage.