Start importing
Imports the file with the checked settings. 409 `profile_import_not_checked` without a check of the settings; 422 `profile_import_nothing_to_import` when the check found nothing to import.
Imports the file with the checked settings. 409 profile_import_not_checked without a check of the settings; 422 profile_import_nothing_to_import when the check found nothing to import.
apiKey writeAuthorizationBearer <token>A workspace API key (pf_…), created under Developers → API keys.
Scope: write
id*stringuuididempotency-key?stringRun this write once: a retry with the same key gets the first answer (24 hours).
1 <= length <= 255OK
application/json- response
id*stringuuidname*stringstatus*string"uploading""ready""checking""importing""completed""failed""cancelled"format*|"csv""json"nulldelimiter*string|nullbytes*integer|nullcolumns*array<>previewRows*array<>mapping*array<>items <= 500options*consent*|nullcheck*|nullcheckedAt*|date-timecounts*|nullerror*|"unreadable""not_utf8""row_too_long""too_large""no_rows""too_many_columns""file_missing""timed_out""import_failed"nullcreatedBy*createdAt*stringdate-timestartedAt*|date-timecompletedAt*|date-timecurl -X POST 'https://api.postforge.dev/v1/profile-imports/497f6eca-6276-4993-bfeb-53cbbbba6f08/start'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "status": "uploading", "format": "csv", "delimiter": "string", "bytes": 0, "columns": [ { "name": "string", "samples": [ "string" ], "suggested": { "kind": "email" }, "suggestedType": "text", "refusedByType": { "text": 0, "number": 0, "boolean": 0, "date": 0, "list": 0, "json": 0 }, "sampled": 0 } ], "previewRows": [ { "property1": "string", "property2": "string" } ], "mapping": [ { "column": "string", "target": { "kind": "email" } } ], "options": { "matchOn": "email", "mode": "create_and_update", "blanks": "keep", "startAutomations": true }, "consent": { "method": "string", "declaredBy": { "kind": "user", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string" }, "declaredAt": "2019-08-24T14:15:22Z" }, "check": { "rows": 0, "created": 0, "updated": 0, "unchanged": 0, "skipped": 0, "skipReasons": { "no_match_value": 0, "invalid_email": 0, "invalid_phone": 0, "invalid_external_id": 0, "not_found": 0, "exists": 0, "two_profiles": 0, "other_id": 0, "not_utf8": 0, "unreadable": 0 }, "refused": [ { "column": "string", "count": 0, "reason": "string" } ], "subscribed": 0, "unsubscribed": 0, "consentKept": { "unsubscribed": 0, "suppressed": 0, "no_declaration": 0, "no_email": 0, "invalid": 0, "invalid_date": 0 } }, "checkedAt": "2019-08-24T14:15:22Z", "counts": { "rows": 0, "created": 0, "updated": 0, "unchanged": 0, "skipped": 0, "skipReasons": { "no_match_value": 0, "invalid_email": 0, "invalid_phone": 0, "invalid_external_id": 0, "not_found": 0, "exists": 0, "two_profiles": 0, "other_id": 0, "not_utf8": 0, "unreadable": 0 }, "refused": [ { "column": "string", "count": 0, "reason": "string" } ], "subscribed": 0, "unsubscribed": 0, "consentKept": { "unsubscribed": 0, "suppressed": 0, "no_declaration": 0, "no_email": 0, "invalid": 0, "invalid_date": 0 } }, "error": "unreadable", "createdBy": { "user": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string" }, "apiKey": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string" } }, "createdAt": "2019-08-24T14:15:22Z", "startedAt": "2019-08-24T14:15:22Z", "completedAt": "2019-08-24T14:15:22Z"}Check a profile import POST
Reads the whole file with the settings, writing nothing: profiles it would create, update or leave unchanged, rows it would skip and why, values refused per column. Runs as a job: the import is `checking`, then `ready` with `check`.
Cancel a profile import POST
Stops it before the next batch of rows; what was imported stays. The file is deleted.