Integrator account
Your integrator account: names, sign-in email and password, and your EU responsible person. Integrators only, from a signed-in dashboard session.
The eu responsible person object
A GPSR EU responsible person record. Records are never edited: replacing one disables it and adds a new one.
Attributes
- idstring
Unique identifier of the eu responsible person, prefixed with
erp_. Treat it as an opaque string: store it and compare it, never parse it. - objectstring
Names the type of this object. Always
eu_responsible_person. - company_namestring or null
The responsible person, a company established in the EU or UK.
- emailstring or null
Where authorities and buyers can reach it.
- addressstring or null
Its postal address.
- countrystring or null
ISO 3166-1 alpha-2 country code: an EU member state or
GB(United Kingdom). - activeboolean
Whether it is the current responsible person. At most one is active; the others are history.
- created_attimestamp
Point in time, ISO 8601 in UTC.
- disabled_attimestamp or null
When it stopped being the responsible person (replaced or removed). Null while active.
nullGet your account settings
GET/
- Credentials
- A signed-in dashboard session only; API keys are refused.
- For
- Integrators
- Operation id
get_integrator_account
Returns your account id, sign-in email (and a new one waiting for confirmation), company and contact name, and when the account was created.
Integrators only, and only with a signed-in dashboard session (credential_not_allowed with an API key).
Returns200 OK
Your account settings.
Responses
- 200
Your account settings.
- 401
Credentials are missing (
missing_credentials), the API key is unknown or inactive (invalid_api_key), the session expired (invalid_session), or both a key and a session were sent (ambiguous_credentials). - 403
The credentials are valid but not allowed to do this: a scope is missing (
missing_scope), the endpoint is for another kind of account (actor_not_allowed) or another kind of credential (credential_not_allowed), the account may no longer use the API (account_blacklisted), or the account must change something first, in which casedetails.fix_urllinks to the dashboard page that fixes it. - 429
Too many requests (
rate_limited): the limit is 500 per minute per API key (or signed-in user). Wait for the number of seconds in theRetry-Afterheader, then retry;detailshaslimit,window_seconds,reset_atandretry_after_seconds.
Errors use the error object.
curl "https://public-api.dapi.digital/v2/integrator/account" \
-H "x-api-key: $DAPI_API_KEY"{
"id": "itg_bfP0GSqKoZFrD72H5Os0rc7HV9XP6eQJu",
"object": "integrator_account_settings",
"email": "dev@acme.example",
"pending_email": null,
"company_name": "Acme Prints",
"contact_name": "Ada Lovelace",
"created_at": "2026-10-20T09:00:00Z"
}Update your company or contact name
PATCH/
- Credentials
- A signed-in dashboard session only; API keys are refused.
- For
- Integrators
- Operation id
update_integrator_account
Changes only the fields sent. Billing details and the sign-in email have their own operations.
Integrators only, and only with a signed-in dashboard session (credential_not_allowed with an API key).
Request body
- company_namestring
Your company name, shown in the dashboard and to 3DAPI staff. Omit to keep it.
- contact_namestring or null
Null or an empty string clears it.
Returns200 OK
Saved. Your account settings.
Responses
- 200
Saved. Your account settings.
- 400
The request is invalid.
details.errorslists each problem (validation_failed), or anexpand[]path is unknown (invalid_expand). - 401
Credentials are missing (
missing_credentials), the API key is unknown or inactive (invalid_api_key), the session expired (invalid_session), or both a key and a session were sent (ambiguous_credentials). - 403
The credentials are valid but not allowed to do this: a scope is missing (
missing_scope), the endpoint is for another kind of account (actor_not_allowed) or another kind of credential (credential_not_allowed), the account may no longer use the API (account_blacklisted), or the account must change something first, in which casedetails.fix_urllinks to the dashboard page that fixes it. - 429
Too many requests (
rate_limited): the limit is 500 per minute per API key (or signed-in user). Wait for the number of seconds in theRetry-Afterheader, then retry;detailshaslimit,window_seconds,reset_atandretry_after_seconds.
Errors use the error object.
curl -X PATCH "https://public-api.dapi.digital/v2/integrator/account" \
-H "x-api-key: $DAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contact_name": "Ada Lovelace"
}'{
"id": "itg_bfP0GSqKoZFrD72H5Os0rc7HV9XP6eQJu",
"object": "integrator_account_settings",
"email": "dev@acme.example",
"pending_email": null,
"company_name": "Acme Prints",
"contact_name": "Ada Lovelace",
"created_at": "2026-10-20T09:00:00Z"
}Change your password
POST/
- Credentials
- A signed-in dashboard session only; API keys are refused.
- For
- Integrators
- Operation id
change_integrator_password
Sets a new sign-in password after checking the current one, and emails your sign-in address that it changed. Sessions already open stay signed in.
Integrators only, and only with a signed-in dashboard session (credential_not_allowed with an API key).
Request body
- current_passwordstringRequired
The password you sign in with now.
- new_passwordstringRequired
The new password, 8 to 72 characters.
Returns204 No Content
The password was changed.
Responses
- 204
The password was changed.
- 400
The request is invalid (
validation_failed), the new password is the current one (same_password), or the sign-in service refused it as too weak (weak_password). - 401
Credentials are missing (
missing_credentials), the API key is unknown or inactive (invalid_api_key), the session expired (invalid_session), or both a key and a session were sent (ambiguous_credentials). - 403
The credentials are valid but not allowed to do this: a scope is missing (
missing_scope), the endpoint is for another kind of account (actor_not_allowed) or another kind of credential (credential_not_allowed), the account may no longer use the API (account_blacklisted), or the account must change something first, in which casedetails.fix_urllinks to the dashboard page that fixes it. - 422
The current password is not correct (
current_password_incorrect). - 429
Too many requests (
rate_limited): the limit is 500 per minute per API key (or signed-in user). Wait for the number of seconds in theRetry-Afterheader, then retry;detailshaslimit,window_seconds,reset_atandretry_after_seconds. - 503
Sign-in details cannot be changed right now (
account_service_unavailable).
Errors use the error object.
curl -X POST "https://public-api.dapi.digital/v2/integrator/account/password" \
-H "x-api-key: $DAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"current_password": "correct-horse-battery",
"new_password": "staple-violet-orbit"
}'nullChange your sign-in email
POST/
- Credentials
- A signed-in dashboard session only; API keys are refused.
- For
- Integrators
- Operation id
request_integrator_email_change
Emails a confirmation link to the new address, and to your current address when the sign-in service asks both to confirm (confirm_current_email). Nothing changes until the links are opened; until then the account signs in with its current email and shows the new one as pending_email. Asking again replaces the earlier links.
Integrators only, and only with a signed-in dashboard session (credential_not_allowed with an API key).
Request body
- emailstringRequired
The address to sign in with from now on.
Returns202 Accepted
The confirmation email(s) were sent.
Responses
- 202
The confirmation email(s) were sent.
- 400
The request is invalid (
validation_failed), or the address is the one you already sign in with (email_unchanged). - 401
Credentials are missing (
missing_credentials), the API key is unknown or inactive (invalid_api_key), the session expired (invalid_session), or both a key and a session were sent (ambiguous_credentials). - 403
The credentials are valid but not allowed to do this: a scope is missing (
missing_scope), the endpoint is for another kind of account (actor_not_allowed) or another kind of credential (credential_not_allowed), the account may no longer use the API (account_blacklisted), or the account must change something first, in which casedetails.fix_urllinks to the dashboard page that fixes it. - 409
Another account uses this address (
email_taken). - 429
Too many requests (
rate_limited): the limit is 500 per minute per API key (or signed-in user). Wait for the number of seconds in theRetry-Afterheader, then retry;detailshaslimit,window_seconds,reset_atandretry_after_seconds. - 503
Sign-in details cannot be changed right now (
account_service_unavailable), or the confirmation email could not be sent (email_not_sent).
Errors use the error object.
curl -X POST "https://public-api.dapi.digital/v2/integrator/account/email-change" \
-H "x-api-key: $DAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "ops@acme.example"
}'{
"object": "email_change",
"new_email": "ops@acme.example",
"confirm_current_email": true
}Get your EU responsible person
GET/
- Credentials
- A signed-in dashboard session only; API keys are refused.
- For
- Integrators
- Operation id
get_eu_responsible_person
Returns your EU responsible person, earlier ones, and whether you need one. Under the GPSR, products sold to buyers in the EU or UK need a responsible person established there. A business billed outside the EU and UK needs one before its checkout orders can ship to EU or UK addresses; orders to other countries, and wallet orders, do not.
Integrators only, and only with a signed-in dashboard session (credential_not_allowed with an API key).
Returns200 OK
Your EU responsible person status.
Responses
- 200
Your EU responsible person status.
- 401
Credentials are missing (
missing_credentials), the API key is unknown or inactive (invalid_api_key), the session expired (invalid_session), or both a key and a session were sent (ambiguous_credentials). - 403
The credentials are valid but not allowed to do this: a scope is missing (
missing_scope), the endpoint is for another kind of account (actor_not_allowed) or another kind of credential (credential_not_allowed), the account may no longer use the API (account_blacklisted), or the account must change something first, in which casedetails.fix_urllinks to the dashboard page that fixes it. - 429
Too many requests (
rate_limited): the limit is 500 per minute per API key (or signed-in user). Wait for the number of seconds in theRetry-Afterheader, then retry;detailshaslimit,window_seconds,reset_atandretry_after_seconds.
Errors use the error object.
curl "https://public-api.dapi.digital/v2/integrator/eu-responsible-person" \
-H "x-api-key: $DAPI_API_KEY"{
"object": "eu_responsible_person_status",
"required": true,
"billing_country": "US",
"status": "active",
"active": {
"id": "erp_bfP0GSqKoZFrD72H5Os0rc7HV9XP6eQJu",
"object": "eu_responsible_person",
"company_name": "EU Rep GmbH",
"email": "contact@eurep.example",
"address": "Hauptstr. 1, 10115 Berlin",
"country": "DE",
"active": true,
"created_at": "2026-10-20T09:00:00Z",
"disabled_at": null
},
"previous": []
}Add or replace your EU responsible person
PUT/
- Credentials
- A signed-in dashboard session only; API keys are refused.
- For
- Integrators
- Operation id
set_eu_responsible_person
Makes this company your active EU responsible person. A current one is disabled and kept in previous; records are never edited. Takes effect at once for new orders.
Integrators only, and only with a signed-in dashboard session (credential_not_allowed with an API key).
Request body
- company_namestringRequired
Legal name of the EU responsible person, a company established in the EU.
- emailstringRequired
Email where authorities can reach the EU responsible person.
- addressstringRequired
Street, number, postal code and city.
- countrystringRequired
ISO 3166-1 alpha-2 code of an EU member state, or
GB. Any other country is refused.
Returns200 OK
Saved. Your EU responsible person status.
Responses
- 200
Saved. Your EU responsible person status.
- 400
The request is invalid.
details.errorslists each problem (validation_failed), or anexpand[]path is unknown (invalid_expand). - 401
Credentials are missing (
missing_credentials), the API key is unknown or inactive (invalid_api_key), the session expired (invalid_session), or both a key and a session were sent (ambiguous_credentials). - 403
The credentials are valid but not allowed to do this: a scope is missing (
missing_scope), the endpoint is for another kind of account (actor_not_allowed) or another kind of credential (credential_not_allowed), the account may no longer use the API (account_blacklisted), or the account must change something first, in which casedetails.fix_urllinks to the dashboard page that fixes it. - 422
The country is not an EU member state or the United Kingdom (
country_not_eu_or_uk). Nothing was saved. - 429
Too many requests (
rate_limited): the limit is 500 per minute per API key (or signed-in user). Wait for the number of seconds in theRetry-Afterheader, then retry;detailshaslimit,window_seconds,reset_atandretry_after_seconds.
Errors use the error object.
curl -X PUT "https://public-api.dapi.digital/v2/integrator/eu-responsible-person" \
-H "x-api-key: $DAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"company_name": "EU Rep GmbH",
"email": "contact@eurep.example",
"address": "Hauptstr. 1, 10115 Berlin",
"country": "DE"
}'{
"object": "eu_responsible_person_status",
"required": true,
"billing_country": "US",
"status": "active",
"active": {
"id": "erp_bfP0GSqKoZFrD72H5Os0rc7HV9XP6eQJu",
"object": "eu_responsible_person",
"company_name": "EU Rep GmbH",
"email": "contact@eurep.example",
"address": "Hauptstr. 1, 10115 Berlin",
"country": "DE",
"active": true,
"created_at": "2026-10-20T09:00:00Z",
"disabled_at": null
},
"previous": []
}Remove your EU responsible person
DELETE/
- Credentials
- A signed-in dashboard session only; API keys are refused.
- For
- Integrators
- Operation id
remove_eu_responsible_person
Disables your active EU responsible person. It stays in previous and cannot be re-enabled; add it again to use it again. While you need one, checkout orders to EU or UK addresses are refused from this moment.
Integrators only, and only with a signed-in dashboard session (credential_not_allowed with an API key).
Returns200 OK
Removed.
Responses
- 200
Removed.
- 401
Credentials are missing (
missing_credentials), the API key is unknown or inactive (invalid_api_key), the session expired (invalid_session), or both a key and a session were sent (ambiguous_credentials). - 403
The credentials are valid but not allowed to do this: a scope is missing (
missing_scope), the endpoint is for another kind of account (actor_not_allowed) or another kind of credential (credential_not_allowed), the account may no longer use the API (account_blacklisted), or the account must change something first, in which casedetails.fix_urllinks to the dashboard page that fixes it. - 404
You have no active EU responsible person (
eu_responsible_person_not_found). - 429
Too many requests (
rate_limited): the limit is 500 per minute per API key (or signed-in user). Wait for the number of seconds in theRetry-Afterheader, then retry;detailshaslimit,window_seconds,reset_atandretry_after_seconds.
Errors use the error object.
curl -X DELETE "https://public-api.dapi.digital/v2/integrator/eu-responsible-person" \
-H "x-api-key: $DAPI_API_KEY"{
"id": "erp_bfP0GSqKoZFrD72H5Os0rc7HV9XP6eQJu",
"object": "eu_responsible_person",
"deleted": true
}