View .md

Blocked Email Domains endpoints (Admin API)

6 FeatherPanel Admin API endpoints from admin/blocked-email-domains.php: methods, paths, auth, permissions, rate limits, parameters and responses.

Last synced from FeatherPanel 15b94e9 on .

On this page

Defined in backend/app/routes/admin/blocked-email-domains.php. Authentication used here: Admin. Read Authentication for how to send credentials and Rate limits and errors for the response envelope.

Paths, methods, permissions and rate limits come from the route file. Summaries, parameters and response codes come from the OpenAPI annotations on the controllers; endpoints without annotations show only what the route file declares.

Endpoints

GET/api/admin/blocked-email-domains

Auth: AdminPermission: admin.settings.viewRoute name: admin-blocked-email-domainsController: BlockedEmailDomainsController::indexroute source

List blocked email domains

ParameterInTypeRequiredDescription
pagequeryintegerno
limitqueryintegerno
searchquerystringno
curl -X GET "$PANEL_URL/api/admin/blocked-email-domains" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Responses: 200 OK · 401 Unauthorized

PUT/api/admin/blocked-email-domains

Auth: AdminPermission: admin.settings.editRoute name: admin-blocked-email-domains-createController: BlockedEmailDomainsController::createroute source

Add a blocked domain

Body fieldTypeRequiredDescription
domainstringyesexample.com or [email protected]
curl -X PUT "$PANEL_URL/api/admin/blocked-email-domains" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"domain":""}'

Responses: 201 Created · 400 Validation error · 409 Duplicate

POST/api/admin/blocked-email-domains/import-preset

Auth: AdminPermission: admin.settings.editRoute name: admin-blocked-email-domains-import-presetController: BlockedEmailDomainsController::importPresetroute source

Import bundled disposable-domain list into the database

curl -X POST "$PANEL_URL/api/admin/blocked-email-domains/import-preset" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Responses: 200 Import finished · 500 Preset file missing or import failed

POST/api/admin/blocked-email-domains/import-url

Auth: AdminPermission: admin.settings.editRoute name: admin-blocked-email-domains-import-urlController: BlockedEmailDomainsController::importFromUrlroute source

Import blocked domains from a plain-text URL (one domain per line)

Body fieldTypeRequiredDescription
urlstring (uri)yes
curl -X POST "$PANEL_URL/api/admin/blocked-email-domains/import-url" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"url":""}'

Responses: 200 Import finished · 400 Invalid URL · 502 Fetch failed

POST/api/admin/blocked-email-domains/import-text

Auth: AdminPermission: admin.settings.editRoute name: admin-blocked-email-domains-import-textController: BlockedEmailDomainsController::importFromTextroute source

Import blocked domains from pasted plain text (one domain per line)

Body fieldTypeRequiredDescription
textstringyes
curl -X POST "$PANEL_URL/api/admin/blocked-email-domains/import-text" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"text":""}'

Responses: 200 Import finished · 400 Body too large or invalid

DELETE/api/admin/blocked-email-domains/{id}

Auth: AdminPermission: admin.settings.editRoute name: admin-blocked-email-domains-deleteController: BlockedEmailDomainsController::deleteroute source

Remove a blocked domain

ParameterInTypeRequiredDescription
idpath-yes
curl -X DELETE "$PANEL_URL/api/admin/blocked-email-domains/$ID" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Responses: 200 Removed · 404 Not found