Not released yet. PeltyCMS is under development and not released yet; these docs describe the upcoming release and may change.
PeltyCMS Developer docs
User docsDevelopers
v0.1.0

Developer docs/Platform reference

HTTP API

795 operations on 602 paths. Every route registered in the router is listed: 638 have a hand-written schema (utoipa) and 157 are marked *registered route* with handler and source only. The OpenAPI 3 document is api.json. Paths are absolute.

Authentication: the browser session cookie pelty_session (with the X-CSRF-Token header on writes) or Authorization: Bearer pelty_… customer API keys for headless routes. Routes under /api/v1/admin need staff, /api/v1/client a customer.

#Groups

#.well-known

GET/.well-known/openid-configurationdiscoveryregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler discovery in crates/pelty-api/src/oidc_provider.rs

#account

GET/api/v1/account/identitieslist identitiesregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler list_identities in crates/pelty-api/src/oauth.rs

DELETE/api/v1/account/identities/{id}unlinkregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler unlink in crates/pelty-api/src/oauth.rs

GET/api/v1/account/oauth-appsmy appsregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler my_apps in crates/pelty-api/src/oidc_provider.rs

DELETE/api/v1/account/oauth-apps/{id}my revokeregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler my_revoke in crates/pelty-api/src/oidc_provider.rs

GET/api/v1/account/tosmy tosregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler my_tos in crates/pelty-api/src/security.rs

POST/api/v1/account/tos/acceptaccept tosregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler accept_tos in crates/pelty-api/src/security.rs

#addons

POST/api/v1/addons/{id}/ui-tokenui tokenregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler ui_token in crates/pelty-api/src/addon_ext.rs

GET/api/v1/addons/{id}/{*rest}dispatchregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler dispatch in crates/pelty-api/src/addon_ext.rs

GET/api/v1/admin/addonslistregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler list in crates/pelty-api/src/addons.rs

GET/api/v1/admin/addons/mixinsmixins listregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler mixins_list in crates/pelty-api/src/addons.rs

GET/api/v1/admin/addons/registryregistry indexregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler registry_index in crates/pelty-api/src/addons.rs

GET/api/v1/admin/addons/registry/settingsregistry settingsregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler registry_settings in crates/pelty-api/src/addons.rs

PUT/api/v1/admin/addons/registry/settingsput registry settingsregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler put_registry_settings in crates/pelty-api/src/addons.rs

POST/api/v1/admin/addons/registry/{id}/installregistry installregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler registry_install in crates/pelty-api/src/addons.rs

POST/api/v1/admin/addons/uploaduploadregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler upload in crates/pelty-api/src/addons.rs

DELETE/api/v1/admin/addons/{id}uninstallregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler uninstall in crates/pelty-api/src/addons.rs

GET/api/v1/admin/addons/{id}detailregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler detail in crates/pelty-api/src/addons.rs

POST/api/v1/admin/addons/{id}/disabledisableregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler disable in crates/pelty-api/src/addons.rs

POST/api/v1/admin/addons/{id}/enableenableregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler enable in crates/pelty-api/src/addons.rs

POST/api/v1/admin/addons/{id}/installinstallregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler install in crates/pelty-api/src/addons.rs

POST/api/v1/admin/addons/{id}/mixinsmixins toggleregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler mixins_toggle in crates/pelty-api/src/addons.rs

GET/api/v1/admin/addons/{id}/settingsget settingsregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler get_settings in crates/pelty-api/src/addons.rs

PUT/api/v1/admin/addons/{id}/settingsput settingsregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler put_settings in crates/pelty-api/src/addons.rs

#announcements

GET/api/v1/public/announcements/rss.xmlrssregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler rss in crates/pelty-api/src/routes/support_ext.rs

#api

GET/api/openapi.jsonspecregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler routes::openapi::spec in crates/pelty-api/src/lib.rs

#auth

GET/api/v1/auth/impersonationimpersonation statusregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler impersonation_status in crates/pelty-api/src/security.rs

POST/api/v1/auth/impersonation/stopstop impersonationregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler stop_impersonation in crates/pelty-api/src/security.rs

GET/api/v1/auth/oauth/providersprovidersregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler providers in crates/pelty-api/src/oauth.rs

GET/api/v1/auth/oauth/{id}/callbackcallbackregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler callback in crates/pelty-api/src/oauth.rs

GET/api/v1/auth/oauth/{id}/startstartregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler start in crates/pelty-api/src/oauth.rs

POST/api/v1/auth/password/changechange passwordregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler change_password in crates/pelty-api/src/routes/admin_security.rs

POST/api/v1/auth/reauthreauthregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler reauth in crates/pelty-api/src/routes/admin_security.rs

POST/api/v1/auth/saml/logoutlogoutregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler logout in crates/pelty-api/src/saml.rs

GET/api/v1/auth/saml/providersprovidersregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler providers in crates/pelty-api/src/saml.rs

#automation

PUT/api/v1/admin/automation/{kind}/settingsput settingregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler put_setting in crates/pelty-api/src/routes/automation.rs

#banned-emails

GET/api/v1/admin/banned-emailslistregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler list in crates/pelty-api/src/routes/banned_emails.rs

POST/api/v1/admin/banned-emailsaddregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler add in crates/pelty-api/src/routes/banned_emails.rs

DELETE/api/v1/admin/banned-emails/{domain}removeregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler remove in crates/pelty-api/src/routes/banned_emails.rs

#captcha

GET/api/v1/captcha/challengechallengeregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler challenge in crates/pelty-api/src/captcha.rs

GET/api/v1/captcha/configpublic configregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler public_config in crates/pelty-api/src/captcha.rs

#client-group-rules

GET/api/v1/admin/client-group-ruleslistregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler list in crates/pelty-api/src/routes/client_group_rules.rs

POST/api/v1/admin/client-group-rulescreateregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler create in crates/pelty-api/src/routes/client_group_rules.rs

POST/api/v1/admin/client-group-rules/applyapplyregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler apply in crates/pelty-api/src/routes/client_group_rules.rs

DELETE/api/v1/admin/client-group-rules/{id}removeregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler remove in crates/pelty-api/src/routes/client_group_rules.rs

PUT/api/v1/admin/client-group-rules/{id}updateregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler update in crates/pelty-api/src/routes/client_group_rules.rs

#compat

POST/api/v1/compat/whmcshandleregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler handle in crates/pelty-api/src/whmcs_api.rs

#contact

POST/api/v1/public/contactcontact submitregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler contact_submit in crates/pelty-api/src/routes/support_ext.rs

#contact-messages

GET/api/v1/admin/contact-messagescontact listregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler contact_list in crates/pelty-api/src/routes/support_ext.rs

DELETE/api/v1/admin/contact-messages/{id}contact delregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler contact_del in crates/pelty-api/src/routes/support_ext.rs

PUT/api/v1/admin/contact-messages/{id}contact statusregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler contact_status in crates/pelty-api/src/routes/support_ext.rs

POST/api/v1/admin/contact-messages/{id}/ticketcontact to ticketregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler contact_to_ticket in crates/pelty-api/src/routes/support_ext.rs

#customers

POST/api/v1/admin/customers/{id}/closeclose customerregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler close_customer in crates/pelty-api/src/security.rs

POST/api/v1/admin/customers/{id}/login-aslogin as customerregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler login_as_customer in crates/pelty-api/src/security.rs

POST/api/v1/admin/customers/{id}/mergemerge customerregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler merge_customer in crates/pelty-api/src/security.rs

#docs

GET/docs{closure}registered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler root_router::{closure} in crates/pelty-api/src/dev_docs.rs

GET/docs/serveregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler serve in crates/pelty-api/src/dev_docs.rs

GET/docs/{*path}serveregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler serve in crates/pelty-api/src/dev_docs.rs

#domains

POST/api/v1/admin/domains/bulkadmin bulkregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_bulk in crates/pelty-api/src/routes/domains.rs

GET/api/v1/admin/domains/{id}/dnsadmin dnsregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_dns in crates/pelty-api/src/routes/domains.rs

PUT/api/v1/admin/domains/{id}/dnsadmin dns putregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_dns_put in crates/pelty-api/src/routes/domains.rs

POST/api/v1/client/domains/bulkclient bulkregistered route

Registered route without a hand-written schema. Access: customer.

Responses: default See handler source

Handler client_bulk in crates/pelty-api/src/routes/domains.rs

PUT/api/v1/client/domains/{id}/addonsclient addonsregistered route

Registered route without a hand-written schema. Access: customer.

Responses: default See handler source

Handler client_addons in crates/pelty-api/src/routes/domains.rs

GET/api/v1/client/domains/{id}/dnsclient dnsregistered route

Registered route without a hand-written schema. Access: customer.

Responses: default See handler source

Handler client_dns in crates/pelty-api/src/routes/domains.rs

PUT/api/v1/client/domains/{id}/dnsclient dns putregistered route

Registered route without a hand-written schema. Access: customer.

Responses: default See handler source

Handler client_dns_put in crates/pelty-api/src/routes/domains.rs

GET/api/v1/public/domains/checkpublic checkregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler public_check in crates/pelty-api/src/routes/domains.rs

GET/api/v1/public/domains/tldspublic tldsregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler public_tlds in crates/pelty-api/src/routes/domains.rs

GET/api/v1/public/domains/whoispublic whoisregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler public_whois in crates/pelty-api/src/routes/domains.rs

#duo

GET/api/v1/admin/security/duo

Responses: 200

Handler admin_get in crates/pelty-api/src/duo.rs

PUT/api/v1/admin/security/duo

Request body application/json: DuoBody

Responses: 200 · 422

Handler admin_put in crates/pelty-api/src/duo.rs

POST/api/v1/admin/security/duo/test

Responses: 200 · 409

Handler admin_test in crates/pelty-api/src/duo.rs

POST/api/v1/auth/duo/finish

Request body application/json: FinishBody

Responses: 200 · 401 · 422

Handler finish in crates/pelty-api/src/duo.rs

POST/api/v1/auth/duo/startSwap the password-step challenge for a Duo authorize URL. Health-checks

Request body application/json: StartBody

Responses: 200 · 409 · 422

Handler start in crates/pelty-api/src/duo.rs

#email-log

GET/api/v1/admin/email-logadmin listregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_list in crates/pelty-api/src/routes/email_log.rs

GET/api/v1/admin/email-log/{id}admin getregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_get in crates/pelty-api/src/routes/email_log.rs

POST/api/v1/admin/email-log/{id}/resendadmin resendregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_resend in crates/pelty-api/src/routes/email_log.rs

#emails

GET/api/v1/client/emailsclient listregistered route

Registered route without a hand-written schema. Access: customer.

Responses: default See handler source

Handler client_list in crates/pelty-api/src/routes/email_log.rs

GET/api/v1/client/emails/{id}client getregistered route

Registered route without a hand-written schema. Access: customer.

Responses: default See handler source

Handler client_get in crates/pelty-api/src/routes/email_log.rs

#headless

POST/api/v1/headless/cartsCreate a server-side cart owned by the key's customer; the response holds

Request body application/json: HeadlessCart

Responses: 200 · 403 · 422

Handler create_cart in crates/pelty-api/src/routes/headless.rs

GET/api/v1/headless/carts/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler get_cart in crates/pelty-api/src/routes/headless.rs

PUT/api/v1/headless/carts/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: HeadlessCart

Responses: 200 · 404 · 409

Handler update_cart in crates/pelty-api/src/routes/headless.rs

POST/api/v1/headless/carts/{id}/checkoutTurn the cart into an order and a finalized invoice (fraud screening,
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404 · 409 · 422

Handler checkout in crates/pelty-api/src/routes/headless.rs

GET/api/v1/headless/catalogCatalog, enabled currencies and payment gateways in one call.

Responses: 200 · 401 · 403

Handler catalog in crates/pelty-api/src/routes/headless.rs

POST/api/v1/headless/invoices/{id}/payStart a payment for an invoice; returns the gateway redirect/action.
ParameterInRequiredDescription
idpathtrue

Request body application/json: PayBody

Responses: 200 · 404 · 422

Handler pay in crates/pelty-api/src/routes/headless.rs

GET/api/v1/headless/orders/{id}Order status with its invoice and provisioned services.
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler order_status in crates/pelty-api/src/routes/headless.rs

#includes

POST/includes/api.phphandleregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler handle in crates/pelty-api/src/whmcs_api.rs

#kb

GET/api/v1/admin/kb/articles/{id}/tagsget tagsregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler get_tags in crates/pelty-api/src/routes/support_ext.rs

PUT/api/v1/admin/kb/articles/{id}/tagsput tagsregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler put_tags in crates/pelty-api/src/routes/support_ext.rs

GET/api/v1/public/kb/tagstag cloudregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler tag_cloud in crates/pelty-api/src/routes/support_ext.rs

GET/api/v1/public/kb/tags/{tag}by tagregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler by_tag in crates/pelty-api/src/routes/support_ext.rs

#oauth

GET/api/v1/oauth/authorizeauthorize inforegistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler authorize_info in crates/pelty-api/src/oidc_provider.rs

POST/api/v1/oauth/authorizeauthorize decideregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler authorize_decide in crates/pelty-api/src/oidc_provider.rs

GET/oauth/jwksjwksregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler jwks in crates/pelty-api/src/oidc_provider.rs

POST/oauth/revokerevokeregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler revoke in crates/pelty-api/src/oidc_provider.rs

POST/oauth/tokentokenregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler token in crates/pelty-api/src/oidc_provider.rs

GET/oauth/userinfouserinforegistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler userinfo in crates/pelty-api/src/oidc_provider.rs

POST/oauth/userinfouserinforegistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler userinfo in crates/pelty-api/src/oidc_provider.rs

#oauth-clients

GET/api/v1/admin/oauth-clientsadmin listregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_list in crates/pelty-api/src/oidc_provider.rs

POST/api/v1/admin/oauth-clientsadmin createregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_create in crates/pelty-api/src/oidc_provider.rs

DELETE/api/v1/admin/oauth-clients/{id}admin deleteregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_delete in crates/pelty-api/src/oidc_provider.rs

PATCH/api/v1/admin/oauth-clients/{id}admin updateregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_update in crates/pelty-api/src/oidc_provider.rs

POST/api/v1/admin/oauth-clients/{id}/secretadmin rotateregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_rotate in crates/pelty-api/src/oidc_provider.rs

#openapi.json

GET/api/v1/openapi.jsonspecregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler spec in crates/pelty-api/src/routes/openapi.rs

#order-forms

GET/api/v1/admin/order-formsadmin listregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_list in crates/pelty-api/src/routes/order_forms.rs

POST/api/v1/admin/order-formsadmin createregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_create in crates/pelty-api/src/routes/order_forms.rs

DELETE/api/v1/admin/order-forms/{id}admin deleteregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_delete in crates/pelty-api/src/routes/order_forms.rs

PUT/api/v1/admin/order-forms/{id}admin updateregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_update in crates/pelty-api/src/routes/order_forms.rs

#plugins

GET/api/v1/plugins/event-logger/recent{closure}registered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler event_logger_routes::{closure} in crates/pelty-api/src/routes/plugins.rs

GET/api/v1/plugins/event-logger/summary{closure}registered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler event_logger_routes::{closure} in crates/pelty-api/src/routes/plugins.rs

#product-groups

PUT/api/v1/admin/product-groups/{id}/order-formadmin set groupregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_set_group in crates/pelty-api/src/routes/order_forms.rs

#products

GET/api/v1/admin/products/{id}/free-domainadmin free getregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_free_get in crates/pelty-api/src/routes/order_forms.rs

PUT/api/v1/admin/products/{id}/free-domainadmin free putregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_free_put in crates/pelty-api/src/routes/order_forms.rs

GET/api/v1/admin/products/{id}/server-groupproduct group getregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler product_group_get in crates/pelty-api/src/routes/provisioning.rs

PUT/api/v1/admin/products/{id}/server-groupproduct group setregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler product_group_set in crates/pelty-api/src/routes/provisioning.rs

#saml

GET/api/v1/admin/saml/idpsadmin listregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_list in crates/pelty-api/src/saml.rs

POST/api/v1/admin/saml/idpsadmin createregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_create in crates/pelty-api/src/saml.rs

DELETE/api/v1/admin/saml/idps/{id}admin deleteregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_delete in crates/pelty-api/src/saml.rs

GET/api/v1/admin/saml/idps/{id}admin getregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_get in crates/pelty-api/src/saml.rs

PUT/api/v1/admin/saml/idps/{id}admin updateregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_update in crates/pelty-api/src/saml.rs

POST/api/v1/admin/saml/idps/{id}/rotate-keyadmin rotate keyregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_rotate_key in crates/pelty-api/src/saml.rs

POST/api/v1/admin/saml/idps/{id}/validateadmin validateregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_validate in crates/pelty-api/src/saml.rs

POST/api/v1/admin/saml/metadataadmin parse metadataregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_parse_metadata in crates/pelty-api/src/saml.rs

#security

GET/api/v1/admin/security/captchaget policyregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler get_policy in crates/pelty-api/src/captcha.rs

PUT/api/v1/admin/security/captchaput policyregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler put_policy in crates/pelty-api/src/captcha.rs

GET/api/v1/admin/security/ip-ruleslist rulesregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler list_rules in crates/pelty-api/src/security.rs

POST/api/v1/admin/security/ip-rulesadd ruleregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler add_rule in crates/pelty-api/src/security.rs

DELETE/api/v1/admin/security/ip-rules/{id}delete ruleregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler delete_rule in crates/pelty-api/src/security.rs

GET/api/v1/admin/security/policyget policyregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler get_policy in crates/pelty-api/src/security.rs

PUT/api/v1/admin/security/policyput policyregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler put_policy in crates/pelty-api/src/security.rs

GET/api/v1/admin/security/toslist tosregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler list_tos in crates/pelty-api/src/security.rs

POST/api/v1/admin/security/tospublish tosregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler publish_tos in crates/pelty-api/src/security.rs

#server-groups

GET/api/v1/admin/server-groupsgroups listregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler groups_list in crates/pelty-api/src/routes/provisioning.rs

POST/api/v1/admin/server-groupsgroups createregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler groups_create in crates/pelty-api/src/routes/provisioning.rs

DELETE/api/v1/admin/server-groups/{id}groups deleteregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler groups_delete in crates/pelty-api/src/routes/provisioning.rs

PUT/api/v1/admin/server-groups/{id}groups updateregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler groups_update in crates/pelty-api/src/routes/provisioning.rs

GET/api/v1/admin/server-groups/{id}/serversgroups membersregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler groups_members in crates/pelty-api/src/routes/provisioning.rs

PUT/api/v1/admin/server-groups/{id}/serversgroups set membersregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler groups_set_members in crates/pelty-api/src/routes/provisioning.rs

#settings

GET/api/v1/admin/settings/ticket-auto-closeauto close getregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler auto_close_get in crates/pelty-api/src/routes/support.rs

PUT/api/v1/admin/settings/ticket-auto-closeauto close putregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler auto_close_put in crates/pelty-api/src/routes/support.rs

#site

GET/api/v1/admin/siteadmin getregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_get in crates/pelty-api/src/routes/site.rs

PUT/api/v1/admin/siteadmin putregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_put in crates/pelty-api/src/routes/site.rs

GET/api/v1/admin/site/pagesadmin pagesregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_pages in crates/pelty-api/src/routes/site.rs

POST/api/v1/admin/site/pagesadmin createregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_create in crates/pelty-api/src/routes/site.rs

DELETE/api/v1/admin/site/pages/{id}admin deleteregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_delete in crates/pelty-api/src/routes/site.rs

GET/api/v1/admin/site/pages/{id}admin pageregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_page in crates/pelty-api/src/routes/site.rs

PUT/api/v1/admin/site/pages/{id}admin updateregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_update in crates/pelty-api/src/routes/site.rs

GET/api/v1/public/sitepublic siteregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler public_site in crates/pelty-api/src/routes/site.rs

GET/api/v1/public/site/pages/{slug}public pageregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler public_page in crates/pelty-api/src/routes/site.rs

#sso

POST/api/v1/sso/saml/{id}/acsacsregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler acs in crates/pelty-api/src/saml.rs

GET/api/v1/sso/saml/{id}/loginloginregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler login in crates/pelty-api/src/saml.rs

GET/api/v1/sso/saml/{id}/metadatametadataregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler metadata in crates/pelty-api/src/saml.rs

GET/api/v1/sso/saml/{id}/slosloregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler slo in crates/pelty-api/src/saml.rs

#store

GET/api/v1/store/groups/{id}/order-formpublic group formregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler public_group_form in crates/pelty-api/src/routes/order_forms.rs

GET/api/v1/store/order-forms/{slug}public formregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler public_form in crates/pelty-api/src/routes/order_forms.rs

#super::account

POST/api/v1/auth/email/resend

Responses: 204 · 401 · 429

Handler resend in crates/pelty-api/src/routes/account.rs

POST/api/v1/auth/email/verify

Request body application/json: TokenBody

Responses: 204 · 422 · 429

Handler verify in crates/pelty-api/src/routes/account.rs

POST/api/v1/auth/password/forgot

Request body application/json: ForgotBody

Responses: 204 Always, whether or not the account exists · 429

Handler forgot in crates/pelty-api/src/routes/account.rs

POST/api/v1/auth/password/reset

Request body application/json: ResetBody

Responses: 204 · 422 Invalid/expired token or weak password · 429

Handler reset in crates/pelty-api/src/routes/account.rs

#super::admin

GET/api/v1/admin/audit-logs
ParameterInRequiredDescription
pagequeryfalse
per_pagequeryfalse
actionqueryfalseAction prefix, e.g. invoice..
actorqueryfalseActor email substring.
targetqueryfalse

Responses: 200 · 401 · 403

Handler list_audit in crates/pelty-api/src/routes/admin.rs

GET/api/v1/admin/users
ParameterInRequiredDescription
pagequeryfalse
per_pagequeryfalse

Responses: 200 · 401 · 403

Handler list_users in crates/pelty-api/src/routes/admin.rs

POST/api/v1/admin/users/{id}/verify-emailMark a user's email address as confirmed (staff override). Idempotent.
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 401 · 403 · 404

Handler verify_email in crates/pelty-api/src/routes/admin.rs

#super::admin-ops

GET/api/v1/admin/backups

Responses: 200 · 403

Handler list_backups in crates/pelty-api/src/routes/admin_ops.rs

POST/api/v1/admin/backups

Responses: 200 · 403

Handler create_backup in crates/pelty-api/src/routes/admin_ops.rs

DELETE/api/v1/admin/backups/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler delete_backup in crates/pelty-api/src/routes/admin_ops.rs

GET/api/v1/admin/backups/{id}/download
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler download_backup in crates/pelty-api/src/routes/admin_ops.rs

GET/api/v1/admin/calendar
ParameterInRequiredDescription
monthquerytrue

Responses: 200 · 422

Handler calendar in crates/pelty-api/src/routes/admin_ops.rs

GET/api/v1/admin/customers/{id}/emails
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler customer_emails in crates/pelty-api/src/routes/admin_ops.rs

POST/api/v1/admin/emails/{job}/resend
ParameterInRequiredDescription
jobpathtrue

Responses: 200 · 404 · 409

Handler resend in crates/pelty-api/src/routes/admin_ops.rs

GET/api/v1/admin/inactive-clients/previewDry run: who would be anonymised with this many days of inactivity.
ParameterInRequiredDescription
daysquerytrue

Responses: 200 · 422

Handler preview_inactive in crates/pelty-api/src/routes/admin_ops.rs

POST/api/v1/admin/inactive-clients/runRun the erasure now with the saved settings (no-op when disabled).

Responses: 200

Handler run_inactive in crates/pelty-api/src/routes/admin_ops.rs

GET/api/v1/admin/login-history
ParameterInRequiredDescription
user_idqueryfalse
limitqueryfalse

Responses: 200 · 403

Handler login_history in crates/pelty-api/src/routes/admin_ops.rs

GET/api/v1/admin/prefs

Responses: 200 · 403

Handler get_prefs in crates/pelty-api/src/routes/admin_ops.rs

PUT/api/v1/admin/prefs

Request body application/json: Prefs

Responses: 200 · 422

Handler put_prefs in crates/pelty-api/src/routes/admin_ops.rs

GET/api/v1/admin/settings/housekeeping

Responses: 200 · 403

Handler get_housekeeping in crates/pelty-api/src/routes/admin_ops.rs

PUT/api/v1/admin/settings/housekeeping

Request body application/json: HousekeepingSettings

Responses: 200 · 422

Handler put_housekeeping in crates/pelty-api/src/routes/admin_ops.rs

GET/api/v1/admin/settings/inactive-clients

Responses: 200

Handler get_inactive in crates/pelty-api/src/routes/admin_ops.rs

PUT/api/v1/admin/settings/inactive-clients

Request body application/json: Settings

Responses: 200 · 422

Handler put_inactive in crates/pelty-api/src/routes/admin_ops.rs

GET/api/v1/admin/settings/proforma

Responses: 200 · 403

Handler get_proforma in crates/pelty-api/src/routes/admin_ops.rs

PUT/api/v1/admin/settings/proforma

Request body application/json: Proforma

Responses: 200 · 422

Handler put_proforma in crates/pelty-api/src/routes/admin_ops.rs

GET/api/v1/admin/staff-online

Responses: 200 · 403

Handler staff_online in crates/pelty-api/src/routes/admin_ops.rs

#super::admin-tools

GET/api/v1/admin/customers/{id}/summaryClient summary page (all tabs) for one customer.
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 403 · 404

Handler customer_summary in crates/pelty-api/src/routes/admin_tools.rs

GET/api/v1/admin/my-notes

Responses: 200 · 403

Handler get_notes in crates/pelty-api/src/routes/admin_tools.rs

PUT/api/v1/admin/my-notes

Request body application/json: NotesBody

Responses: 200 · 422

Handler put_notes in crates/pelty-api/src/routes/admin_tools.rs

GET/api/v1/admin/noticeboard

Responses: 200 · 403

Handler list_notices in crates/pelty-api/src/routes/admin_tools.rs

POST/api/v1/admin/noticeboard

Request body application/json: NoticeBody

Responses: 200 · 422

Handler create_notice in crates/pelty-api/src/routes/admin_tools.rs

DELETE/api/v1/admin/noticeboard/{id}Authors delete their own notices; staff with settings access can delete any.
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler delete_notice in crates/pelty-api/src/routes/admin_tools.rs

GET/api/v1/admin/notification-rules

Responses: 200 · 403

Handler list_rules in crates/pelty-api/src/routes/admin_tools.rs

POST/api/v1/admin/notification-rules

Request body application/json: RuleBody

Responses: 200 · 422

Handler create_rule in crates/pelty-api/src/routes/admin_tools.rs

POST/api/v1/admin/notification-rules/previewPayload that would be POSTed for an event (no network call).

Request body application/json: PreviewBody

Responses: 200

Handler preview in crates/pelty-api/src/routes/admin_tools.rs

DELETE/api/v1/admin/notification-rules/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler delete_rule in crates/pelty-api/src/routes/admin_tools.rs

PUT/api/v1/admin/notification-rules/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: RuleBody

Responses: 200 · 404 · 422

Handler update_rule in crates/pelty-api/src/routes/admin_tools.rs

GET/api/v1/admin/notification-rules/{id}/deliveriesDelivery log for one rule (latest 100 attempts' outcome).
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 403

Handler rule_deliveries in crates/pelty-api/src/routes/admin_tools.rs

DELETE/api/v1/admin/notification-rules/{id}/secretStop signing a webhook.
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler clear_secret in crates/pelty-api/src/routes/admin_tools.rs

POST/api/v1/admin/notification-rules/{id}/secretRotate the HMAC signing secret of a generic webhook; returned once.
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404 · 422

Handler rotate_secret in crates/pelty-api/src/routes/admin_tools.rs

POST/api/v1/admin/notification-rules/{id}/testQueue a test delivery through the real channel.
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler test_rule in crates/pelty-api/src/routes/admin_tools.rs

GET/api/v1/admin/searchGlobal search across clients, invoices, services, tickets, domains, orders.
ParameterInRequiredDescription
qquerytrue

Responses: 200 · 403 · 422

Handler search in crates/pelty-api/src/routes/admin_tools.rs

GET/api/v1/admin/system-health

Responses: 200 · 403

Handler health in crates/pelty-api/src/routes/admin_tools.rs

GET/api/v1/client/searchClient-area search over the caller's own invoices, services, tickets, domains, plus public KB.
ParameterInRequiredDescription
qquerytrue

Responses: 200 · 401 · 422

Handler client_search in crates/pelty-api/src/routes/admin_tools.rs

#super::affiliate-extras

GET/api/v1/admin/affiliates/materials

Responses: 200

Handler materials_list in crates/pelty-api/src/routes/affiliate_extras.rs

POST/api/v1/admin/affiliates/materials

Request body application/json: MaterialInput

Responses: 200 · 422

Handler materials_create in crates/pelty-api/src/routes/affiliate_extras.rs

DELETE/api/v1/admin/affiliates/materials/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 204 · 404

Handler materials_delete in crates/pelty-api/src/routes/affiliate_extras.rs

PUT/api/v1/admin/affiliates/materials/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: MaterialInput

Responses: 200 · 404 · 422

Handler materials_update in crates/pelty-api/src/routes/affiliate_extras.rs

GET/api/v1/admin/affiliates/product-rates

Responses: 200

Handler rates_list in crates/pelty-api/src/routes/affiliate_extras.rs

PUT/api/v1/admin/affiliates/product-rates

Request body application/json: ProductRate

Responses: 204 · 422

Handler rates_set in crates/pelty-api/src/routes/affiliate_extras.rs

DELETE/api/v1/admin/affiliates/product-rates/{product_id}
ParameterInRequiredDescription
product_idpathtrue

Responses: 204 · 404

Handler rates_delete in crates/pelty-api/src/routes/affiliate_extras.rs

GET/api/v1/admin/affiliates/tiers

Responses: 200

Handler tiers_list in crates/pelty-api/src/routes/affiliate_extras.rs

POST/api/v1/admin/affiliates/tiers

Request body application/json: TierInput

Responses: 200 · 409 · 422

Handler tiers_create in crates/pelty-api/src/routes/affiliate_extras.rs

DELETE/api/v1/admin/affiliates/tiers/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 204 · 404

Handler tiers_delete in crates/pelty-api/src/routes/affiliate_extras.rs

GET/api/v1/client/affiliate/materialsActive materials plus the caller's effective commission percent and tiers.

Responses: 200 · 404

Handler client_materials in crates/pelty-api/src/routes/affiliate_extras.rs

#super::affiliates

GET/api/v1/admin/affiliates

Responses: 200 · 403

Handler admin_list in crates/pelty-api/src/routes/affiliates.rs

GET/api/v1/admin/affiliates/payouts

Responses: 200 · 403

Handler admin_payouts in crates/pelty-api/src/routes/affiliates.rs

POST/api/v1/admin/affiliates/payouts/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: ProcessBody

Responses: 200 · 409 · 422

Handler admin_process in crates/pelty-api/src/routes/affiliates.rs

PUT/api/v1/admin/affiliates/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: AffiliateUpdate

Responses: 200 · 404 · 422

Handler admin_update in crates/pelty-api/src/routes/affiliates.rs

GET/api/v1/affiliates/r/{code}Referral link: remembers the code for 30 days, then sends the visitor to signup.
ParameterInRequiredDescription
codepathtrue

Responses: 303

Handler track in crates/pelty-api/src/routes/affiliates.rs

POST/api/v1/affiliates/trackSPA landing (`/r/:code`): validates the code and sets the tracking cookie.

Request body application/json: TrackBody

Responses: 200

Handler track_json in crates/pelty-api/src/routes/affiliates.rs

GET/api/v1/client/affiliate

Responses: 200 · 401

Handler client_get in crates/pelty-api/src/routes/affiliates.rs

POST/api/v1/client/affiliate

Responses: 200 · 401

Handler client_enroll in crates/pelty-api/src/routes/affiliates.rs

POST/api/v1/client/affiliate/payouts

Request body application/json: PayoutBody

Responses: 200 · 403 · 422

Handler client_payout in crates/pelty-api/src/routes/affiliates.rs

#super::api-keys

GET/api/v1/admin/api-keys
ParameterInRequiredDescription
pagequeryfalse
per_pagequeryfalse
activequeryfalseOnly keys that are neither revoked nor expired.
user_idqueryfalse
qqueryfalseMatches owner email, key name or exact prefix.

Responses: 200 · 403

Handler admin_list in crates/pelty-api/src/routes/api_keys.rs

DELETE/api/v1/admin/api-keys/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 204 · 404

Handler admin_revoke in crates/pelty-api/src/routes/api_keys.rs

POST/api/v1/admin/users/{id}/api-keys/revoke-all
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 403

Handler admin_revoke_all in crates/pelty-api/src/routes/api_keys.rs

GET/api/v1/api-keys

Responses: 200 · 401

Handler list in crates/pelty-api/src/routes/api_keys.rs

POST/api/v1/api-keys

Request body application/json: CreateKey

Responses: 200 · 422

Handler create in crates/pelty-api/src/routes/api_keys.rs

DELETE/api/v1/api-keys/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 204 · 404

Handler revoke in crates/pelty-api/src/routes/api_keys.rs

#super::auth

PUT/api/v1/auth/locale

Request body application/json: LocaleBody

Responses: 204 · 422

Handler set_locale in crates/pelty-api/src/routes/auth.rs

POST/api/v1/auth/login

Request body application/json: LoginBody

Responses: 200 MeResponse, or `{mfa_required, challenge}` when 2FA is on · 401 · 429

Handler login in crates/pelty-api/src/routes/auth.rs

POST/api/v1/auth/logout

Responses: 204 · 401 · 403

Handler logout in crates/pelty-api/src/routes/auth.rs

GET/api/v1/auth/me

Responses: 200 · 401

Handler me in crates/pelty-api/src/routes/auth.rs

POST/api/v1/auth/register

Request body application/json: RegisterBody

Responses: 201 · 409 · 422 · 429

Handler register in crates/pelty-api/src/routes/auth.rs

DELETE/api/v1/auth/sessionsSign out every other device; the calling session stays valid.

Responses: 200 · 401 · 403

Handler revoke_other_sessions in crates/pelty-api/src/routes/auth.rs

GET/api/v1/auth/sessions

Responses: 200 · 401

Handler list_sessions in crates/pelty-api/src/routes/auth.rs

DELETE/api/v1/auth/sessions/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 204 · 404

Handler revoke_session in crates/pelty-api/src/routes/auth.rs

#super::automation

GET/api/v1/admin/automation

Responses: 200 · 403

Handler overview in crates/pelty-api/src/routes/automation.rs

POST/api/v1/admin/automation/{kind}/run
ParameterInRequiredDescription
kindpathtrue

Responses: 200 · 404

Handler run_now in crates/pelty-api/src/routes/automation.rs

#super::avatars

DELETE/api/v1/auth/avatar

Responses: 204

Handler remove in crates/pelty-api/src/routes/avatars.rs

PUT/api/v1/auth/avatar

Request body image/png: integer[]

Responses: 200 · 413 · 422

Handler upload in crates/pelty-api/src/routes/avatars.rs

GET/api/v1/avatars/{id}Any signed-in user may view avatars (staff lists, ticket threads).
ParameterInRequiredDescription
squeryfalse64 for the small variant; anything else serves 256px.
vqueryfalseCache-busting version; when it matches, the response is cacheable for a day.
idpathtrue

Responses: 200 · 404

Handler serve in crates/pelty-api/src/routes/avatars.rs

#super::billable

GET/api/v1/admin/billable-items
ParameterInRequiredDescription
customer_idqueryfalse

Responses: 200

Handler list in crates/pelty-api/src/routes/billable.rs

POST/api/v1/admin/billable-items

Request body application/json: BillableInput

Responses: 200 · 404 · 422

Handler create in crates/pelty-api/src/routes/billable.rs

DELETE/api/v1/admin/billable-items/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler remove in crates/pelty-api/src/routes/billable.rs

GET/api/v1/admin/catalog/products/{id}/billing
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler product_billing in crates/pelty-api/src/routes/billable.rs

PUT/api/v1/admin/catalog/products/{id}/billing
ParameterInRequiredDescription
idpathtrue

Request body application/json: ProductBilling

Responses: 200 · 404 · 422

Handler set_product_billing in crates/pelty-api/src/routes/billable.rs

GET/api/v1/admin/catalog/products/{id}/fixed-term
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler product_fixed_term in crates/pelty-api/src/routes/billable.rs

PUT/api/v1/admin/catalog/products/{id}/fixed-term
ParameterInRequiredDescription
idpathtrue

Request body application/json: FixedTerm

Responses: 200 · 404 · 422

Handler set_product_fixed_term in crates/pelty-api/src/routes/billable.rs

PUT/api/v1/admin/catalog/products/{id}/stock
ParameterInRequiredDescription
idpathtrue

Request body application/json: ProductStock

Responses: 200 · 404 · 422

Handler set_product_stock in crates/pelty-api/src/routes/billable.rs

POST/api/v1/admin/customers/{id}/billable-items/invoice
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler invoice_pending in crates/pelty-api/src/routes/billable.rs

POST/api/v1/admin/invoices/{id}/items
ParameterInRequiredDescription
idpathtrue

Request body application/json: LinesBody

Responses: 200 · 404 · 409 · 422

Handler add_lines in crates/pelty-api/src/routes/billable.rs

#super::billing

GET/api/v1/admin/dashboard

Responses: 200 · 403

Handler admin_dashboard in crates/pelty-api/src/routes/billing.rs

GET/api/v1/admin/invoices
ParameterInRequiredDescription
pagequeryfalse
per_pagequeryfalse
qqueryfalse
statusqueryfalse

Responses: 200 · 403

Handler admin_invoices in crates/pelty-api/src/routes/billing.rs

POST/api/v1/admin/invoices

Request body application/json: CreateInvoice

Responses: 200 · 422

Handler admin_create_invoice in crates/pelty-api/src/routes/billing.rs

GET/api/v1/admin/invoices/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler admin_invoice in crates/pelty-api/src/routes/billing.rs

POST/api/v1/admin/invoices/{id}/credit-note
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 409

Handler admin_credit_note in crates/pelty-api/src/routes/billing.rs

POST/api/v1/admin/invoices/{id}/debit-noteIssue a debit note (extra charge) against an unpaid or paid invoice.
ParameterInRequiredDescription
idpathtrue

Request body application/json: DebitNoteBody

Responses: 200 · 404 · 409 · 422

Handler admin_debit_note in crates/pelty-api/src/routes/billing.rs

POST/api/v1/admin/invoices/{id}/finalize
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 409

Handler admin_finalize in crates/pelty-api/src/routes/billing.rs

POST/api/v1/admin/invoices/{id}/paymentsRecord a manual payment (bank transfer…). Idempotent.
ParameterInRequiredDescription
idpathtrue

Request body application/json: RecordPayment

Responses: 200 · 404 · 409 · 422

Handler admin_record_payment in crates/pelty-api/src/routes/billing.rs

POST/api/v1/admin/invoices/{id}/void
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 409

Handler admin_void in crates/pelty-api/src/routes/billing.rs

GET/api/v1/admin/jobs
ParameterInRequiredDescription
pagequeryfalse
per_pagequeryfalse
qqueryfalse
statusqueryfalse

Responses: 200 · 403

Handler admin_jobs in crates/pelty-api/src/routes/billing.rs

POST/api/v1/admin/jobs/recurringEnqueue a recurring-billing run now (deduplicated per minute).

Responses: 200 · 403

Handler admin_run_recurring in crates/pelty-api/src/routes/billing.rs

POST/api/v1/admin/jobs/{id}/retry
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 409

Handler admin_retry_job in crates/pelty-api/src/routes/billing.rs

GET/api/v1/admin/orders
ParameterInRequiredDescription
pagequeryfalse
per_pagequeryfalse
qqueryfalse
statusqueryfalse

Responses: 200 · 403

Handler admin_orders in crates/pelty-api/src/routes/billing.rs

DELETE/api/v1/admin/orders/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404 · 409

Handler admin_delete_order in crates/pelty-api/src/routes/billing.rs

GET/api/v1/admin/orders/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler admin_order in crates/pelty-api/src/routes/billing.rs

POST/api/v1/admin/orders/{id}/approve
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404 · 409

Handler admin_approve in crates/pelty-api/src/routes/billing.rs

POST/api/v1/admin/orders/{id}/cancel
ParameterInRequiredDescription
idpathtrue

Request body application/json: CancelBody

Responses: 200 · 409

Handler admin_cancel in crates/pelty-api/src/routes/billing.rs

POST/api/v1/admin/orders/{id}/pending
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 409

Handler admin_pending_order in crates/pelty-api/src/routes/billing.rs

GET/api/v1/admin/services
ParameterInRequiredDescription
pagequeryfalse
per_pagequeryfalse
qqueryfalse
statusqueryfalse

Responses: 200 · 403

Handler admin_services in crates/pelty-api/src/routes/billing.rs

GET/api/v1/admin/services/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler admin_service in crates/pelty-api/src/routes/billing.rs

POST/api/v1/admin/services/{id}/action
ParameterInRequiredDescription
idpathtrue

Request body application/json: ServiceAction

Responses: 200 · 404 · 409 · 422

Handler admin_service_action in crates/pelty-api/src/routes/billing.rs

GET/api/v1/client/dashboard

Responses: 200 · 401

Handler client_dashboard in crates/pelty-api/src/routes/billing.rs

GET/api/v1/client/gatewaysEnabled payment gateways (ids only; never config or secrets). With
ParameterInRequiredDescription
invoice_idqueryfalseOnly gateways that accept this invoice's balance and currency.

Responses: 200

Handler client_gateways in crates/pelty-api/src/routes/billing.rs

GET/api/v1/client/invoices
ParameterInRequiredDescription
pagequeryfalse
per_pagequeryfalse
qqueryfalse
statusqueryfalse

Responses: 200 · 401

Handler client_invoices in crates/pelty-api/src/routes/billing.rs

GET/api/v1/client/invoices/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler client_invoice in crates/pelty-api/src/routes/billing.rs

POST/api/v1/client/invoices/{id}/payStart paying an invoice with a gateway: redirect (Stripe) or manual
ParameterInRequiredDescription
idpathtrue

Request body application/json: PayBody

Responses: 200 · 404 · 409

Handler client_pay in crates/pelty-api/src/routes/billing.rs

GET/api/v1/client/orders
ParameterInRequiredDescription
pagequeryfalse
per_pagequeryfalse
qqueryfalse
statusqueryfalse

Responses: 200 · 401

Handler client_orders in crates/pelty-api/src/routes/billing.rs

POST/api/v1/client/orders

Request body application/json: PlaceOrder

Responses: 200 · 401 · 422

Handler client_place_order in crates/pelty-api/src/routes/billing.rs

GET/api/v1/client/services
ParameterInRequiredDescription
pagequeryfalse
per_pagequeryfalse
qqueryfalse
statusqueryfalse

Responses: 200 · 401

Handler client_services in crates/pelty-api/src/routes/billing.rs

GET/api/v1/client/services/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler client_service in crates/pelty-api/src/routes/billing.rs

#super::bulk

POST/api/v1/admin/invoices/bulkApply one action to many invoices; returns a per-invoice result.

Request body application/json: InvoicesBulk

Responses: 200 · 403 · 422

Handler invoices_bulk in crates/pelty-api/src/routes/bulk.rs

GET/api/v1/admin/orders/approval-queue

Responses: 200 · 403

Handler queue in crates/pelty-api/src/routes/bulk.rs

POST/api/v1/admin/orders/bulk

Request body application/json: OrdersBulk

Responses: 200 · 403 · 422

Handler orders_bulk in crates/pelty-api/src/routes/bulk.rs

GET/api/v1/admin/settings/due-reminders

Responses: 200 · 403

Handler due_get in crates/pelty-api/src/routes/bulk.rs

PUT/api/v1/admin/settings/due-reminders

Request body application/json: DueReminderSettings

Responses: 200 · 422

Handler due_put in crates/pelty-api/src/routes/bulk.rs

GET/api/v1/admin/settings/order-approval

Responses: 200 · 403

Handler rules_get in crates/pelty-api/src/routes/bulk.rs

PUT/api/v1/admin/settings/order-approval

Request body application/json: ApprovalRules

Responses: 200 · 422

Handler rules_put in crates/pelty-api/src/routes/bulk.rs

POST/api/v1/client/invoices/mass-payPay several of my unpaid invoices from account credit, oldest due first.

Request body application/json: MassPay

Responses: 200 · 401 · 422

Handler mass_pay in crates/pelty-api/src/routes/bulk.rs

#super::bundles

GET/api/v1/admin/bundles

Responses: 200 · 403

Handler admin_list in crates/pelty-api/src/routes/bundles.rs

POST/api/v1/admin/bundles

Request body application/json: BundleInput

Responses: 200 · 422

Handler admin_create in crates/pelty-api/src/routes/bundles.rs

DELETE/api/v1/admin/bundles/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler admin_delete in crates/pelty-api/src/routes/bundles.rs

PUT/api/v1/admin/bundles/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: BundleInput

Responses: 200 · 404 · 422

Handler admin_update in crates/pelty-api/src/routes/bundles.rs

GET/api/v1/admin/catalog/products/{id}/recommendations
ParameterInRequiredDescription
idpathtrue

Responses: 200

Handler admin_recs in crates/pelty-api/src/routes/bundles.rs

PUT/api/v1/admin/catalog/products/{id}/recommendations
ParameterInRequiredDescription
idpathtrue

Request body application/json: Recommendations

Responses: 200 · 422

Handler admin_set_recs in crates/pelty-api/src/routes/bundles.rs

GET/api/v1/catalog/bundles

Responses: 200

Handler public_bundles in crates/pelty-api/src/routes/bundles.rs

GET/api/v1/catalog/products/{id}/recommendations
ParameterInRequiredDescription
idpathtrue

Responses: 200

Handler public_recs in crates/pelty-api/src/routes/bundles.rs

#super::campaigns

GET/api/v1/admin/campaigns

Responses: 200 · 403

Handler list in crates/pelty-api/src/routes/campaigns.rs

POST/api/v1/admin/campaigns

Request body application/json: CampaignInput

Responses: 200 · 422

Handler create in crates/pelty-api/src/routes/campaigns.rs

POST/api/v1/admin/campaigns/preview

Request body application/json: Segment

Responses: 200

Handler preview in crates/pelty-api/src/routes/campaigns.rs

DELETE/api/v1/admin/campaigns/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 409

Handler remove in crates/pelty-api/src/routes/campaigns.rs

GET/api/v1/admin/campaigns/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler detail in crates/pelty-api/src/routes/campaigns.rs

PUT/api/v1/admin/campaigns/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: CampaignInput

Responses: 200 · 409

Handler update in crates/pelty-api/src/routes/campaigns.rs

POST/api/v1/admin/campaigns/{id}/cancel
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 409

Handler cancel in crates/pelty-api/src/routes/campaigns.rs

DELETE/api/v1/admin/campaigns/{id}/schedule
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 409

Handler unschedule in crates/pelty-api/src/routes/campaigns.rs

POST/api/v1/admin/campaigns/{id}/scheduleHold a draft until `send_at`; the worker snapshots recipients then.
ParameterInRequiredDescription
idpathtrue

Request body application/json: ScheduleBody

Responses: 200 · 409 · 422

Handler schedule in crates/pelty-api/src/routes/campaigns.rs

POST/api/v1/admin/campaigns/{id}/send
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 409

Handler send in crates/pelty-api/src/routes/campaigns.rs

GET/api/v1/client/marketing

Responses: 200

Handler my_pref in crates/pelty-api/src/routes/campaigns.rs

PUT/api/v1/client/marketing

Request body application/json: PrefBody

Responses: 200

Handler set_pref in crates/pelty-api/src/routes/campaigns.rs

GET/api/v1/unsubscribe/{token}Lookup only: link scanners prefetching the URL never unsubscribe anyone.
ParameterInRequiredDescription
tokenpathtrue

Responses: 200 · 404

Handler unsub_lookup in crates/pelty-api/src/routes/campaigns.rs

POST/api/v1/unsubscribe/{token}No CSRF/session: the unguessable token is the credential.
ParameterInRequiredDescription
tokenpathtrue

Responses: 200 · 404

Handler unsub_apply in crates/pelty-api/src/routes/campaigns.rs

#super::catalog

GET/api/v1/admin/catalog/addons

Responses: 200 · 403

Handler admin_addons in crates/pelty-api/src/routes/catalog.rs

POST/api/v1/admin/catalog/addons

Request body application/json: AddonInput

Responses: 200 · 422

Handler create_addon in crates/pelty-api/src/routes/catalog.rs

PUT/api/v1/admin/catalog/addons/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: AddonInput

Responses: 200 · 404 · 422

Handler update_addon in crates/pelty-api/src/routes/catalog.rs

GET/api/v1/admin/catalog/groups

Responses: 200 · 403

Handler admin_groups in crates/pelty-api/src/routes/catalog.rs

POST/api/v1/admin/catalog/groups

Request body application/json: GroupBody

Responses: 200 · 409 · 422

Handler create_group in crates/pelty-api/src/routes/catalog.rs

GET/api/v1/admin/catalog/products

Responses: 200 · 403

Handler admin_products in crates/pelty-api/src/routes/catalog.rs

POST/api/v1/admin/catalog/products

Request body application/json: ProductInput

Responses: 200 · 409 · 422

Handler create_product in crates/pelty-api/src/routes/catalog.rs

PATCH/api/v1/admin/catalog/products/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: ProductInput

Responses: 200 · 404 · 422

Handler update_product in crates/pelty-api/src/routes/catalog.rs

GET/api/v1/admin/catalog/products/{id}/fields
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 403

Handler admin_fields in crates/pelty-api/src/routes/catalog.rs

POST/api/v1/admin/catalog/products/{id}/fields
ParameterInRequiredDescription
idpathtrue

Request body application/json: FieldInput

Responses: 200 · 404 · 422

Handler create_field in crates/pelty-api/src/routes/catalog.rs

DELETE/api/v1/admin/catalog/products/{id}/fields/{field}
ParameterInRequiredDescription
idpathtrue
fieldpathtrue

Responses: 200 · 404

Handler delete_field in crates/pelty-api/src/routes/catalog.rs

PUT/api/v1/admin/catalog/products/{id}/fields/{field}
ParameterInRequiredDescription
idpathtrue
fieldpathtrue

Request body application/json: FieldInput

Responses: 200 · 404 · 422

Handler update_field in crates/pelty-api/src/routes/catalog.rs

POST/api/v1/admin/catalog/products/{id}/options
ParameterInRequiredDescription
idpathtrue

Request body application/json: OptionInput

Responses: 200 · 422

Handler add_option in crates/pelty-api/src/routes/catalog.rs

DELETE/api/v1/admin/catalog/products/{id}/options/{option}
ParameterInRequiredDescription
idpathtrue
optionpathtrue

Responses: 200 · 404

Handler delete_option in crates/pelty-api/src/routes/catalog.rs

PUT/api/v1/admin/catalog/products/{id}/prices
ParameterInRequiredDescription
idpathtrue

Request body application/json: PricesBody

Responses: 200 · 404 · 422

Handler set_prices in crates/pelty-api/src/routes/catalog.rs

GET/api/v1/catalog

Responses: 200

Handler public_catalog in crates/pelty-api/src/routes/catalog.rs

GET/api/v1/catalog/products/{id}/extrasAddons and customer-visible custom fields offered for one product.
ParameterInRequiredDescription
idpathtrue

Responses: 200

Handler product_extras in crates/pelty-api/src/routes/catalog.rs

GET/api/v1/currencies

Responses: 200

Handler list_currencies in crates/pelty-api/src/routes/catalog.rs

#super::client-extras

GET/api/v1/admin/client-fields

Responses: 200

Handler list_fields in crates/pelty-api/src/routes/client_extras.rs

POST/api/v1/admin/client-fields

Request body application/json: FieldInput

Responses: 200 · 422

Handler create_field in crates/pelty-api/src/routes/client_extras.rs

DELETE/api/v1/admin/client-fields/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler delete_field in crates/pelty-api/src/routes/client_extras.rs

PUT/api/v1/admin/client-fields/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: FieldInput

Responses: 200 · 404 · 422

Handler update_field in crates/pelty-api/src/routes/client_extras.rs

GET/api/v1/admin/customers/{id}/fields
ParameterInRequiredDescription
idpathtrue

Responses: 200

Handler admin_values in crates/pelty-api/src/routes/client_extras.rs

PUT/api/v1/admin/customers/{id}/fields
ParameterInRequiredDescription
idpathtrue

Request body application/json: ValuesBody

Responses: 200 · 422

Handler admin_set_values in crates/pelty-api/src/routes/client_extras.rs

GET/api/v1/admin/customers/{id}/notes
ParameterInRequiredDescription
idpathtrue

Responses: 200

Handler list_notes in crates/pelty-api/src/routes/client_extras.rs

POST/api/v1/admin/customers/{id}/notes
ParameterInRequiredDescription
idpathtrue

Request body application/json: NoteInput

Responses: 200 · 404 · 422

Handler add_note in crates/pelty-api/src/routes/client_extras.rs

DELETE/api/v1/admin/customers/{id}/notes/{note}
ParameterInRequiredDescription
idpathtrue
notepathtrue

Responses: 200 · 404

Handler delete_note in crates/pelty-api/src/routes/client_extras.rs

PUT/api/v1/admin/customers/{id}/notes/{note}
ParameterInRequiredDescription
idpathtrue
notepathtrue

Request body application/json: NoteInput

Responses: 200 · 404

Handler update_note in crates/pelty-api/src/routes/client_extras.rs

GET/api/v1/admin/todos
ParameterInRequiredDescription
statusqueryfalseopen | pending | in_progress | done (omit for all)

Responses: 200

Handler list_todos in crates/pelty-api/src/routes/client_extras.rs

POST/api/v1/admin/todos

Request body application/json: TodoInput

Responses: 200 · 422

Handler create_todo in crates/pelty-api/src/routes/client_extras.rs

DELETE/api/v1/admin/todos/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler delete_todo in crates/pelty-api/src/routes/client_extras.rs

PUT/api/v1/admin/todos/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: TodoInput

Responses: 200 · 404 · 422

Handler update_todo in crates/pelty-api/src/routes/client_extras.rs

GET/api/v1/client/fields

Responses: 200 · 401

Handler client_values in crates/pelty-api/src/routes/client_extras.rs

PUT/api/v1/client/fields

Request body application/json: ValuesBody

Responses: 200 · 422

Handler client_set_values in crates/pelty-api/src/routes/client_extras.rs

#super::client-groups

GET/api/v1/admin/client-groups

Responses: 200 · 403

Handler list in crates/pelty-api/src/routes/client_groups.rs

POST/api/v1/admin/client-groups

Request body application/json: GroupBody

Responses: 200 · 409 · 422

Handler create in crates/pelty-api/src/routes/client_groups.rs

DELETE/api/v1/admin/client-groups/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 204 · 404

Handler remove in crates/pelty-api/src/routes/client_groups.rs

PUT/api/v1/admin/client-groups/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: GroupBody

Responses: 200 · 404

Handler update in crates/pelty-api/src/routes/client_groups.rs

GET/api/v1/admin/client-groups/{id}/members
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler members in crates/pelty-api/src/routes/client_groups.rs

POST/api/v1/admin/client-groups/{id}/members
ParameterInRequiredDescription
idpathtrue

Request body application/json: MemberBody

Responses: 204 · 404 · 422

Handler add_member in crates/pelty-api/src/routes/client_groups.rs

DELETE/api/v1/admin/client-groups/{id}/members/{customer_id}
ParameterInRequiredDescription
idpathtrue
customer_idpathtrue

Responses: 204 · 404

Handler remove_member in crates/pelty-api/src/routes/client_groups.rs

POST/api/v1/admin/customers/{id}/group
ParameterInRequiredDescription
idpathtrue

Request body application/json: CustomerGroupBody

Responses: 204 · 404 · 422

Handler set_customer_group in crates/pelty-api/src/routes/client_groups.rs

#super::content

GET/api/v1/admin/announcements
ParameterInRequiredDescription
pagequeryfalse
per_pagequeryfalse

Responses: 200

Handler admin_announcements in crates/pelty-api/src/routes/content.rs

POST/api/v1/admin/announcements

Request body application/json: AnnouncementBody

Responses: 200 · 422

Handler create_announcement in crates/pelty-api/src/routes/content.rs

DELETE/api/v1/admin/announcements/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 204 · 404

Handler delete_announcement in crates/pelty-api/src/routes/content.rs

PUT/api/v1/admin/announcements/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: AnnouncementBody

Responses: 200 · 404

Handler update_announcement in crates/pelty-api/src/routes/content.rs

GET/api/v1/admin/kb/articles
ParameterInRequiredDescription
localequeryfalse
categoryqueryfalse
qqueryfalse

Responses: 200

Handler admin_articles in crates/pelty-api/src/routes/content.rs

POST/api/v1/admin/kb/articles

Request body application/json: ArticleBody

Responses: 200 · 409 · 422

Handler create_article in crates/pelty-api/src/routes/content.rs

DELETE/api/v1/admin/kb/articles/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 204 · 404

Handler delete_article in crates/pelty-api/src/routes/content.rs

GET/api/v1/admin/kb/articles/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler admin_article in crates/pelty-api/src/routes/content.rs

PUT/api/v1/admin/kb/articles/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: ArticleBody

Responses: 200 · 404

Handler update_article in crates/pelty-api/src/routes/content.rs

GET/api/v1/admin/kb/categories

Responses: 200 · 403

Handler admin_categories in crates/pelty-api/src/routes/content.rs

POST/api/v1/admin/kb/categories

Request body application/json: CategoryBody

Responses: 200 · 409 · 422

Handler create_category in crates/pelty-api/src/routes/content.rs

DELETE/api/v1/admin/kb/categories/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 204 · 404 · 409

Handler delete_category in crates/pelty-api/src/routes/content.rs

PUT/api/v1/admin/kb/categories/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: CategoryBody

Responses: 204 · 404

Handler update_category in crates/pelty-api/src/routes/content.rs

GET/api/v1/public/announcements
ParameterInRequiredDescription
localequeryfalse
pagequeryfalse
per_pagequeryfalse

Responses: 200

Handler public_announcements in crates/pelty-api/src/routes/content.rs

GET/api/v1/public/announcements/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler public_announcement in crates/pelty-api/src/routes/content.rs

GET/api/v1/public/kb
ParameterInRequiredDescription
localequeryfalse
categoryqueryfalse
qqueryfalse

Responses: 200

Handler public_kb in crates/pelty-api/src/routes/content.rs

GET/api/v1/public/kb/articles/{slug}
ParameterInRequiredDescription
slugpathtrue

Responses: 200 · 404

Handler public_article in crates/pelty-api/src/routes/content.rs

POST/api/v1/public/kb/articles/{slug}/vote
ParameterInRequiredDescription
slugpathtrue

Request body application/json: VoteBody

Responses: 204 · 404

Handler public_vote in crates/pelty-api/src/routes/content.rs

GET/api/v1/public/kb/suggestUp to 5 published articles related to `q` (used while opening a ticket).
ParameterInRequiredDescription
localequeryfalse
categoryqueryfalse
qqueryfalse

Responses: 200

Handler public_suggest in crates/pelty-api/src/routes/content.rs

#super::coupons

GET/api/v1/admin/coupons

Responses: 200 · 403

Handler admin_list in crates/pelty-api/src/routes/coupons.rs

POST/api/v1/admin/coupons

Request body application/json: CouponInput

Responses: 200 · 409 · 422

Handler admin_create in crates/pelty-api/src/routes/coupons.rs

DELETE/api/v1/admin/coupons/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404 · 409

Handler admin_delete in crates/pelty-api/src/routes/coupons.rs

PUT/api/v1/admin/coupons/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: CouponInput

Responses: 200 · 404 · 422

Handler admin_update in crates/pelty-api/src/routes/coupons.rs

POST/api/v1/client/coupons/checkValidate a code for the order form. Returns only what the customer needs.

Request body application/json: CheckBody

Responses: 200 · 422

Handler client_check in crates/pelty-api/src/routes/coupons.rs

#super::credit

GET/api/v1/admin/customers/{id}/credit
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 403

Handler admin_credit in crates/pelty-api/src/routes/credit.rs

POST/api/v1/admin/customers/{id}/credit
ParameterInRequiredDescription
idpathtrue

Request body application/json: AdjustBody

Responses: 200 · 409 · 422

Handler admin_adjust in crates/pelty-api/src/routes/credit.rs

POST/api/v1/admin/invoices/{id}/apply-credit
ParameterInRequiredDescription
idpathtrue

Request body application/json: ApplyBody

Responses: 200 · 404 · 409

Handler admin_apply in crates/pelty-api/src/routes/credit.rs

GET/api/v1/admin/settings/add-funds

Responses: 200 · 403

Handler get_add_funds in crates/pelty-api/src/routes/credit.rs

PUT/api/v1/admin/settings/add-funds

Request body application/json: AddFundsSettings

Responses: 200 · 422

Handler put_add_funds in crates/pelty-api/src/routes/credit.rs

GET/api/v1/client/credit

Responses: 200 · 401

Handler client_credit in crates/pelty-api/src/routes/credit.rs

GET/api/v1/client/credit/add-funds

Responses: 200 · 401

Handler client_add_funds_info in crates/pelty-api/src/routes/credit.rs

POST/api/v1/client/credit/add-fundsCreate a deposit invoice; once paid (any gateway) the amount is credited.

Request body application/json: AddFundsBody

Responses: 200 · 403 · 409 · 422

Handler client_add_funds in crates/pelty-api/src/routes/credit.rs

POST/api/v1/client/invoices/{id}/apply-credit
ParameterInRequiredDescription
idpathtrue

Request body application/json: ApplyBody

Responses: 200 · 404 · 409

Handler client_apply in crates/pelty-api/src/routes/credit.rs

#super::csv-import

POST/api/v1/admin/import/csv/analyzeHeaders, a 5-row preview, the target fields and a suggested mapping.

Request body application/json: CsvAnalyze

Responses: 200 · 422

Handler analyze in crates/pelty-api/src/routes/csv_import.rs

POST/api/v1/admin/import/csv/runValidate every row; unless `dry_run`, import them all-or-nothing.

Request body application/json: CsvRun

Responses: 200 · 422

Handler run in crates/pelty-api/src/routes/csv_import.rs

#super::currencies

GET/api/v1/admin/currencies

Responses: 200 · 403

Handler list in crates/pelty-api/src/routes/currencies.rs

POST/api/v1/admin/currencies

Request body application/json: CurrencyInput

Responses: 200 · 409 · 422

Handler create in crates/pelty-api/src/routes/currencies.rs

GET/api/v1/admin/currencies/rates/history

Responses: 200

Handler rate_history in crates/pelty-api/src/routes/currencies.rs

GET/api/v1/admin/currencies/rates/settings

Responses: 200 · 403

Handler rate_settings in crates/pelty-api/src/routes/currencies.rs

PUT/api/v1/admin/currencies/rates/settings

Request body application/json: RateSettingsInput

Responses: 200 · 422

Handler save_rate_settings in crates/pelty-api/src/routes/currencies.rs

POST/api/v1/admin/currencies/rates/update

Responses: 200 · 409 · 422

Handler update_rates in crates/pelty-api/src/routes/currencies.rs

POST/api/v1/admin/currencies/sync-prices

Request body application/json: SyncBody

Responses: 200

Handler sync_prices in crates/pelty-api/src/routes/currencies.rs

PUT/api/v1/admin/currencies/{code}
ParameterInRequiredDescription
codepathtrue

Request body application/json: CurrencyInput

Responses: 200 · 404 · 409 · 422

Handler update in crates/pelty-api/src/routes/currencies.rs

POST/api/v1/admin/currencies/{code}/default
ParameterInRequiredDescription
codepathtrue

Responses: 200 · 404 · 422

Handler make_default in crates/pelty-api/src/routes/currencies.rs

#super::customers

GET/api/v1/admin/customers
ParameterInRequiredDescription
pagequeryfalse
per_pagequeryfalse
qqueryfalse
statusqueryfalse

Responses: 200 · 403

Handler admin_list in crates/pelty-api/src/routes/customers.rs

POST/api/v1/admin/customers

Request body application/json: CreateCustomer

Responses: 200 · 403 · 422

Handler admin_create in crates/pelty-api/src/routes/customers.rs

GET/api/v1/admin/customers/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler admin_get in crates/pelty-api/src/routes/customers.rs

PATCH/api/v1/admin/customers/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: AdminUpdate

Responses: 200 · 404 · 422

Handler admin_update in crates/pelty-api/src/routes/customers.rs

GET/api/v1/client/contacts

Responses: 200 · 401

Handler client_contacts in crates/pelty-api/src/routes/customers.rs

POST/api/v1/client/contacts

Request body application/json: ContactBody

Responses: 200 · 422

Handler client_add_contact in crates/pelty-api/src/routes/customers.rs

DELETE/api/v1/client/contacts/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler client_delete_contact in crates/pelty-api/src/routes/customers.rs

GET/api/v1/client/profile

Responses: 200 · 401

Handler client_profile in crates/pelty-api/src/routes/customers.rs

PUT/api/v1/client/profile

Request body application/json: Profile

Responses: 200 · 401 · 422

Handler client_update in crates/pelty-api/src/routes/customers.rs

#super::data-feeds

GET/api/v1/feeds/products/{slug}
ParameterInRequiredDescription
fieldqueryfalsename, description or price (default price).
currencyqueryfalse
cyclequeryfalseBilling cycle for price (default monthly).
slugpathtrue

Responses: 200 · 404 · 422

Handler product_feed in crates/pelty-api/src/routes/data_feeds.rs

GET/api/v1/feeds/tlds/{tld}Registration price for one year of a TLD.
ParameterInRequiredDescription
fieldqueryfalsename, description or price (default price).
currencyqueryfalse
cyclequeryfalseBilling cycle for price (default monthly).
tldpathtrue

Responses: 200 · 404 · 422

Handler tld_feed in crates/pelty-api/src/routes/data_feeds.rs

#super::domain-pricing

GET/api/v1/admin/domains/costs

Responses: 200

Handler costs in crates/pelty-api/src/routes/domain_pricing.rs

GET/api/v1/admin/domains/margins

Responses: 200

Handler margins in crates/pelty-api/src/routes/domain_pricing.rs

PUT/api/v1/admin/domains/margins

Request body application/json: MarginRule[]

Responses: 200 · 422

Handler set_margins in crates/pelty-api/src/routes/domain_pricing.rs

GET/api/v1/admin/domains/premium-settings

Responses: 200

Handler premium in crates/pelty-api/src/routes/domain_pricing.rs

PUT/api/v1/admin/domains/premium-settings

Request body application/json: PremiumSettings

Responses: 200 · 422

Handler set_premium in crates/pelty-api/src/routes/domain_pricing.rs

POST/api/v1/admin/domains/sync-prices

Request body application/json: SyncBody

Responses: 200 · 422

Handler sync_prices in crates/pelty-api/src/routes/domain_pricing.rs

GET/api/v1/admin/domains/tld-fields

Responses: 200

Handler all_fields in crates/pelty-api/src/routes/domain_pricing.rs

PUT/api/v1/admin/domains/tld-fields/{tld}
ParameterInRequiredDescription
tldpathtrue

Request body application/json: TldField[]

Responses: 200 · 422

Handler set_fields in crates/pelty-api/src/routes/domain_pricing.rs

GET/api/v1/client/domains/fields
ParameterInRequiredDescription
tldquerytrue

Responses: 200

Handler client_fields in crates/pelty-api/src/routes/domain_pricing.rs

#super::domains

GET/api/v1/admin/domains
ParameterInRequiredDescription
pagequeryfalse
per_pagequeryfalse
qqueryfalse
statusqueryfalse

Responses: 200

Handler admin_list in crates/pelty-api/src/routes/domains.rs

POST/api/v1/admin/domains/run

Responses: 200

Handler admin_run in crates/pelty-api/src/routes/domains.rs

GET/api/v1/admin/domains/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler admin_get in crates/pelty-api/src/routes/domains.rs

PATCH/api/v1/admin/domains/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: AdminUpdate

Responses: 200 · 422

Handler admin_update in crates/pelty-api/src/routes/domains.rs

POST/api/v1/admin/domains/{id}/registrant-verification
ParameterInRequiredDescription
idpathtrue

Request body application/json: RvAction

Responses: 200 · 422

Handler admin_rv_action in crates/pelty-api/src/routes/domains.rs

POST/api/v1/admin/domains/{id}/sync
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 422

Handler admin_sync in crates/pelty-api/src/routes/domains.rs

GET/api/v1/admin/registrars

Responses: 200

Handler admin_registrars in crates/pelty-api/src/routes/domains.rs

GET/api/v1/admin/settings/domain-defaults

Responses: 200 · 403

Handler get_defaults in crates/pelty-api/src/routes/domains.rs

PUT/api/v1/admin/settings/domain-defaults

Request body application/json: DomainDefaults

Responses: 200 · 422

Handler put_defaults in crates/pelty-api/src/routes/domains.rs

GET/api/v1/admin/settings/registrant-verification

Responses: 200

Handler admin_rv_settings in crates/pelty-api/src/routes/domains.rs

PUT/api/v1/admin/settings/registrant-verification

Request body application/json: RvSettings

Responses: 200

Handler admin_rv_settings_put in crates/pelty-api/src/routes/domains.rs

GET/api/v1/admin/tlds

Responses: 200

Handler admin_tlds in crates/pelty-api/src/routes/domains.rs

PUT/api/v1/admin/tlds

Request body application/json: object

Responses: 200 · 422

Handler admin_tld_upsert in crates/pelty-api/src/routes/domains.rs

DELETE/api/v1/admin/tlds/{tld}/{currency}
ParameterInRequiredDescription
tldpathtrue
currencypathtrue

Responses: 200 · 404

Handler admin_tld_delete in crates/pelty-api/src/routes/domains.rs

GET/api/v1/client/domains
ParameterInRequiredDescription
pagequeryfalse
per_pagequeryfalse
qqueryfalse
statusqueryfalse

Responses: 200

Handler client_list in crates/pelty-api/src/routes/domains.rs

POST/api/v1/client/domains

Request body application/json: OrderBody

Responses: 200 · 409 · 422

Handler client_order in crates/pelty-api/src/routes/domains.rs

GET/api/v1/client/domains/check
ParameterInRequiredDescription
namequerytrue

Responses: 200 · 422

Handler client_check in crates/pelty-api/src/routes/domains.rs

GET/api/v1/client/domains/tlds

Responses: 200

Handler client_tlds in crates/pelty-api/src/routes/domains.rs

GET/api/v1/client/domains/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler client_get in crates/pelty-api/src/routes/domains.rs

PUT/api/v1/client/domains/{id}/auto-renew
ParameterInRequiredDescription
idpathtrue

Request body application/json: AutoRenewBody

Responses: 200

Handler client_auto_renew in crates/pelty-api/src/routes/domains.rs

PUT/api/v1/client/domains/{id}/contact
ParameterInRequiredDescription
idpathtrue

Request body application/json: ContactBody

Responses: 200 · 422

Handler client_contact in crates/pelty-api/src/routes/domains.rs

POST/api/v1/client/domains/{id}/eppReveal the transfer-out (EPP) code. Audited; owner only, active domains.
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 409 · 422

Handler client_epp in crates/pelty-api/src/routes/domains.rs

PUT/api/v1/client/domains/{id}/nameservers
ParameterInRequiredDescription
idpathtrue

Request body application/json: NsBody

Responses: 200 · 422

Handler client_ns in crates/pelty-api/src/routes/domains.rs

POST/api/v1/client/domains/{id}/registrant-verification/resend
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 409

Handler client_rv_resend in crates/pelty-api/src/routes/domains.rs

POST/api/v1/client/domains/{id}/renew
ParameterInRequiredDescription
idpathtrue

Request body application/json: RenewBody

Responses: 200 · 409 · 422

Handler client_renew in crates/pelty-api/src/routes/domains.rs

POST/api/v1/public/domains/verify-registrantE-mail link target: confirms the registrant address (all its pending domains).

Request body application/json: TokenBody

Responses: 200 · 422

Handler public_verify_registrant in crates/pelty-api/src/routes/domains.rs

#super::downloads

GET/api/v1/admin/downloads

Responses: 200 · 403

Handler admin_list in crates/pelty-api/src/routes/downloads.rs

POST/api/v1/admin/downloads
ParameterInRequiredDescription
titlequerytrue
filenamequerytrue
descriptionqueryfalse
productsqueryfalseComma-separated product ids; empty = all customers.

Request body application/octet-stream: integer[]

Responses: 200 · 400 · 422

Handler admin_upload in crates/pelty-api/src/routes/downloads.rs

DELETE/api/v1/admin/downloads/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler admin_delete in crates/pelty-api/src/routes/downloads.rs

GET/api/v1/admin/downloads/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler admin_file in crates/pelty-api/src/routes/downloads.rs

GET/api/v1/client/downloads

Responses: 200 · 401

Handler client_list in crates/pelty-api/src/routes/downloads.rs

GET/api/v1/client/downloads/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler client_file in crates/pelty-api/src/routes/downloads.rs

#super::einvoice

GET/api/v1/admin/invoices/{id}/ublUBL 2.1 (Peppol BIS 3.0 / CIUS-RO) XML of any issued invoice.
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404 · 409

Handler admin_ubl in crates/pelty-api/src/routes/einvoice.rs

GET/api/v1/admin/settings/einvoice

Responses: 200 · 403

Handler get_settings in crates/pelty-api/src/routes/einvoice.rs

PUT/api/v1/admin/settings/einvoice

Request body application/json: Settings

Responses: 200 · 422

Handler put_settings in crates/pelty-api/src/routes/einvoice.rs

GET/api/v1/client/invoices/{id}/ublUBL 2.1 (Peppol BIS 3.0 / CIUS-RO) XML of one of the caller's issued invoices.
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404 · 409

Handler client_ubl in crates/pelty-api/src/routes/einvoice.rs

#super::email-templates

GET/api/v1/admin/email-templates

Responses: 200 · 403

Handler list in crates/pelty-api/src/routes/email_templates.rs

PUT/api/v1/admin/email-templates/{name}/enabledSwitch a template on or off; disabled templates are never queued.
ParameterInRequiredDescription
namepathtrue

Request body application/json: EnabledBody

Responses: 200 · 404 · 422

Handler set_enabled in crates/pelty-api/src/routes/email_templates.rs

DELETE/api/v1/admin/email-templates/{name}/{locale}
ParameterInRequiredDescription
namepathtrue
localepathtrue

Responses: 204 · 404

Handler revert in crates/pelty-api/src/routes/email_templates.rs

PUT/api/v1/admin/email-templates/{name}/{locale}
ParameterInRequiredDescription
namepathtrue
localepathtrue

Request body application/json: TemplateBody

Responses: 200 · 404 · 422

Handler save in crates/pelty-api/src/routes/email_templates.rs

POST/api/v1/admin/email-templates/{name}/{locale}/preview
ParameterInRequiredDescription
namepathtrue
localepathtrue

Request body application/json: TemplateBody

Responses: 200 · 422

Handler preview in crates/pelty-api/src/routes/email_templates.rs

POST/api/v1/admin/email-templates/{name}/{locale}/testQueue the saved template, with sample data, to the signed-in admin.
ParameterInRequiredDescription
namepathtrue
localepathtrue

Responses: 202 · 404

Handler send_test in crates/pelty-api/src/routes/email_templates.rs

#super::exports

GET/api/v1/admin/exports/invoices.csv
ParameterInRequiredDescription
fromqueryfalseFirst month, YYYY-MM.
toqueryfalseLast month (inclusive), YYYY-MM.

Responses: 200 · 403

Handler invoices_csv in crates/pelty-api/src/routes/exports.rs

GET/api/v1/admin/exports/payments.csv
ParameterInRequiredDescription
fromqueryfalseFirst month, YYYY-MM.
toqueryfalseLast month (inclusive), YYYY-MM.

Responses: 200 · 403

Handler payments_csv in crates/pelty-api/src/routes/exports.rs

GET/api/v1/admin/reports/tax
ParameterInRequiredDescription
fromqueryfalseFirst month, YYYY-MM.
toqueryfalseLast month (inclusive), YYYY-MM.

Responses: 200 · 403 · 422

Handler tax in crates/pelty-api/src/routes/exports.rs

GET/api/v1/admin/reports/tax.csv
ParameterInRequiredDescription
fromqueryfalseFirst month, YYYY-MM.
toqueryfalseLast month (inclusive), YYYY-MM.

Responses: 200 · 403

Handler tax_csv in crates/pelty-api/src/routes/exports.rs

#super::extensions

GET/api/v1/admin/gateways/{id}/rulesFee, amount-limit and currency rules for one gateway.
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 403 · 404

Handler get_gateway_rules in crates/pelty-api/src/routes/extensions.rs

PUT/api/v1/admin/gateways/{id}/rules
ParameterInRequiredDescription
idpathtrue

Request body application/json: GatewayRules

Responses: 200 · 403 · 404 · 422

Handler put_gateway_rules in crates/pelty-api/src/routes/extensions.rs

GET/api/v1/admin/plugins

Responses: 200 · 403

Handler list_plugins in crates/pelty-api/src/routes/extensions.rs

PUT/api/v1/admin/plugins/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: SetPlugin

Responses: 204 · 404

Handler set_plugin in crates/pelty-api/src/routes/extensions.rs

PUT/api/v1/admin/themes/active

Request body application/json: ActivateTheme

Responses: 204 · 403 · 422

Handler set_active_theme in crates/pelty-api/src/routes/extensions.rs

GET/api/v1/themes

Responses: 200

Handler list_themes in crates/pelty-api/src/routes/extensions.rs

GET/api/v1/themes/activeActive theme, sanitized: whitelisted tokens with validated CSS values.

Responses: 200

Handler active_theme in crates/pelty-api/src/routes/extensions.rs

#super::fraud

GET/api/v1/admin/fraud/checks
ParameterInRequiredDescription
verdictqueryfalse
pagequeryfalse
per_pagequeryfalse

Responses: 200 · 403

Handler list_checks in crates/pelty-api/src/routes/fraud.rs

GET/api/v1/admin/settings/fraud

Responses: 200 · 403

Handler get_settings in crates/pelty-api/src/routes/fraud.rs

PUT/api/v1/admin/settings/fraud

Request body application/json: FraudSettings

Responses: 200 · 422

Handler put_settings in crates/pelty-api/src/routes/fraud.rs

#super::gateways

GET/api/v1/admin/gatewaysBuilt-in gateways plus operator-defined custom ones; never secret values.

Responses: 200 · 403

Handler list_gateways in crates/pelty-api/src/routes/gateways.rs

POST/api/v1/admin/gateways/custom

Request body application/json: NewCustom

Responses: 200 · 409 · 422

Handler create_custom in crates/pelty-api/src/routes/gateways.rs

GET/api/v1/admin/gateways/deliveries
ParameterInRequiredDescription
gatewayqueryfalse
limitqueryfalse

Responses: 200

Handler list_deliveries in crates/pelty-api/src/routes/gateways.rs

DELETE/api/v1/admin/gateways/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 204 · 404 · 409

Handler delete_custom in crates/pelty-api/src/routes/gateways.rs

PUT/api/v1/admin/gateways/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: UpdateGateway

Responses: 204 · 404 · 422

Handler update_gateway in crates/pelty-api/src/routes/gateways.rs

POST/api/v1/admin/gateways/{id}/test-webhookVerify + parse a pasted webhook without applying it (logged as a test).
ParameterInRequiredDescription
idpathtrue

Request body application/json: TestWebhook

Responses: 200 · 404

Handler test_webhook in crates/pelty-api/src/routes/gateways.rs

GET/api/v1/client/invoices/{id}/gatewaysGateways usable for this invoice (currency + amount limits). Ids/names only.
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler client_invoice_gateways in crates/pelty-api/src/routes/gateways.rs

POST/api/v1/client/payments/{id}/completePayer returned from the provider: capture/check and apply (idempotent).
ParameterInRequiredDescription
idpathtrue

Request body application/json: CompleteBody

Responses: 200 · 404

Handler client_complete in crates/pelty-api/src/routes/gateways.rs

#super::gdpr

DELETE/api/v1/account/privacy/erasure

Responses: 204 · 404

Handler cancel_erasure in crates/pelty-api/src/routes/gdpr.rs

GET/api/v1/account/privacy/erasure

Responses: 200 · 401

Handler my_request in crates/pelty-api/src/routes/gdpr.rs

POST/api/v1/account/privacy/erasure

Request body application/json: ErasureBody

Responses: 200 · 409 · 422

Handler request_erasure in crates/pelty-api/src/routes/gdpr.rs

GET/api/v1/account/privacy/export

Responses: 200 JSON download of all personal data · 401

Handler export_me in crates/pelty-api/src/routes/gdpr.rs

GET/api/v1/admin/gdpr/requests
ParameterInRequiredDescription
statusqueryfalse
pagequeryfalse
per_pagequeryfalse

Responses: 200 · 403

Handler list in crates/pelty-api/src/routes/gdpr.rs

POST/api/v1/admin/gdpr/requests/{id}/approve
ParameterInRequiredDescription
idpathtrue

Responses: 204 · 404 · 409

Handler approve in crates/pelty-api/src/routes/gdpr.rs

POST/api/v1/admin/gdpr/requests/{id}/reject
ParameterInRequiredDescription
idpathtrue

Request body application/json: RejectBody

Responses: 204 · 404

Handler reject in crates/pelty-api/src/routes/gdpr.rs

GET/api/v1/admin/gdpr/users/{id}/export
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 403 · 404

Handler export_user in crates/pelty-api/src/routes/gdpr.rs

#super::general-settings

GET/api/v1/admin/custom-code

Responses: 200 · 403

Handler get_code in crates/pelty-api/src/routes/general_settings.rs

PUT/api/v1/admin/custom-code

Request body application/json: CustomCode

Responses: 200 · 403 · 422

Handler put_code in crates/pelty-api/src/routes/general_settings.rs

GET/api/v1/admin/general-settings

Responses: 200 · 403

Handler get_settings in crates/pelty-api/src/routes/general_settings.rs

PUT/api/v1/admin/general-settings

Request body application/json: GeneralSettings

Responses: 200 · 422

Handler put_settings in crates/pelty-api/src/routes/general_settings.rs

GET/api/v1/public/generalPublic subset: maintenance banner, localisation, ordering flags, social links, custom code.

Responses: 200

Handler public_general in crates/pelty-api/src/routes/general_settings.rs

#super::health

GET/healthzLiveness: process is up.

Responses: 200

Handler healthz in crates/pelty-api/src/routes/health.rs

GET/readyzReadiness: database reachable.

Responses: 200 · 503

Handler readyz in crates/pelty-api/src/routes/health.rs

#super::i18n

GET/api/v1/i18nAvailable languages plus the one negotiated for this request.

Responses: 200

Handler languages in crates/pelty-api/src/routes/i18n.rs

GET/api/v1/i18n/{lang}All messages for a language (falls back to `en` per key on the client).
ParameterInRequiredDescription
langpathtrue

Responses: 200 · 404

Handler messages in crates/pelty-api/src/routes/i18n.rs

#super::invoice-ops

GET/api/v1/admin/customers/{id}/mergeable-invoices
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 403

Handler admin_mergeable in crates/pelty-api/src/routes/invoice_ops.rs

GET/api/v1/admin/gift-cards

Responses: 200 · 403

Handler gift_list in crates/pelty-api/src/routes/invoice_ops.rs

POST/api/v1/admin/gift-cards

Request body application/json: GiftBody

Responses: 200 · 422

Handler gift_create in crates/pelty-api/src/routes/invoice_ops.rs

POST/api/v1/admin/gift-cards/{id}/disable
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 409

Handler gift_disable in crates/pelty-api/src/routes/invoice_ops.rs

POST/api/v1/admin/invoices/merge

Request body application/json: MergeBody

Responses: 200 · 404 · 409 · 422

Handler admin_merge in crates/pelty-api/src/routes/invoice_ops.rs

POST/api/v1/admin/invoices/{id}/duplicate
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404 · 409

Handler admin_duplicate in crates/pelty-api/src/routes/invoice_ops.rs

GET/api/v1/admin/invoices/{id}/notes
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler admin_notes in crates/pelty-api/src/routes/invoice_ops.rs

PUT/api/v1/admin/invoices/{id}/notes
ParameterInRequiredDescription
idpathtrue

Request body application/json: NotesBody

Responses: 200 · 404 · 422

Handler admin_set_notes in crates/pelty-api/src/routes/invoice_ops.rs

POST/api/v1/admin/invoices/{id}/split
ParameterInRequiredDescription
idpathtrue

Request body application/json: SplitBody

Responses: 200 · 404 · 409 · 422

Handler admin_split in crates/pelty-api/src/routes/invoice_ops.rs

GET/api/v1/admin/transactions
ParameterInRequiredDescription
pagequeryfalse
per_pagequeryfalse
gatewayqueryfalse
statusqueryfalse
currencyqueryfalse
customer_idqueryfalse
fromqueryfalseYYYY-MM-DD inclusive
toqueryfalseYYYY-MM-DD inclusive
qqueryfalse

Responses: 200 · 403 · 422

Handler admin_transactions in crates/pelty-api/src/routes/invoice_ops.rs

PATCH/api/v1/admin/transactions/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: TxNote

Responses: 200 · 404 · 422

Handler admin_update_transaction in crates/pelty-api/src/routes/invoice_ops.rs

POST/api/v1/client/gift-cards/redeem

Request body application/json: RedeemBody

Responses: 200 · 422

Handler gift_redeem in crates/pelty-api/src/routes/invoice_ops.rs

POST/api/v1/client/invoices/mergeClient-side merge (WHMCS "mass payment"): combine own unpaid invoices into

Request body application/json: MergeBody

Responses: 200 · 404 · 409 · 422

Handler client_merge in crates/pelty-api/src/routes/invoice_ops.rs

#super::invoice-pdf

GET/api/v1/admin/invoices/{id}/pdf
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler admin_pdf in crates/pelty-api/src/routes/invoice_pdf.rs

GET/api/v1/admin/settings/invoice-branding

Responses: 200 · 403

Handler get_branding in crates/pelty-api/src/routes/invoice_pdf.rs

PUT/api/v1/admin/settings/invoice-branding

Request body application/json: InvoiceBranding

Responses: 200 · 422

Handler put_branding in crates/pelty-api/src/routes/invoice_pdf.rs

GET/api/v1/client/invoices/{id}/pdf
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler client_pdf in crates/pelty-api/src/routes/invoice_pdf.rs

#super::kyc

GET/api/v1/admin/customers/{id}/kyc
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler admin_customer in crates/pelty-api/src/routes/kyc.rs

PUT/api/v1/admin/customers/{id}/kyc
ParameterInRequiredDescription
idpathtrue

Request body application/json: OverrideBody

Responses: 200 · 404 · 422

Handler admin_override in crates/pelty-api/src/routes/kyc.rs

GET/api/v1/admin/kyc
ParameterInRequiredDescription
statusqueryfalse

Responses: 200

Handler admin_queue in crates/pelty-api/src/routes/kyc.rs

GET/api/v1/admin/kyc/documents/{id}/download
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler admin_download in crates/pelty-api/src/routes/kyc.rs

POST/api/v1/admin/kyc/documents/{id}/review
ParameterInRequiredDescription
idpathtrue

Request body application/json: ReviewBody

Responses: 200 · 404 · 422

Handler admin_review in crates/pelty-api/src/routes/kyc.rs

GET/api/v1/admin/kyc/settings

Responses: 200

Handler settings_get in crates/pelty-api/src/routes/kyc.rs

PUT/api/v1/admin/kyc/settings

Request body application/json: KycSettings

Responses: 200 · 422

Handler settings_put in crates/pelty-api/src/routes/kyc.rs

GET/api/v1/client/kyc

Responses: 200

Handler client_get in crates/pelty-api/src/routes/kyc.rs

POST/api/v1/client/kyc/documentsRaw body upload. PNG/JPEG/WebP/PDF only.
ParameterInRequiredDescription
kindquerytrue
filenamequeryfalse

Request body application/octet-stream: integer[]

Responses: 200 · 409 · 422

Handler client_upload in crates/pelty-api/src/routes/kyc.rs

DELETE/api/v1/client/kyc/documents/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler client_delete in crates/pelty-api/src/routes/kyc.rs

GET/api/v1/admin/customers/{id}/legal-entity
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler customer_entity in crates/pelty-api/src/routes/legal_entities.rs

PUT/api/v1/admin/customers/{id}/legal-entity
ParameterInRequiredDescription
idpathtrue

Request body application/json: AssignBody

Responses: 200 · 404 · 422

Handler assign in crates/pelty-api/src/routes/legal_entities.rs

GET/api/v1/admin/legal-entities

Responses: 200 · 403

Handler list in crates/pelty-api/src/routes/legal_entities.rs

POST/api/v1/admin/legal-entities

Request body application/json: EntityInput

Responses: 200 · 409 · 422

Handler create in crates/pelty-api/src/routes/legal_entities.rs

DELETE/api/v1/admin/legal-entities/default

Responses: 204 · 403

Handler clear_default in crates/pelty-api/src/routes/legal_entities.rs

DELETE/api/v1/admin/legal-entities/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 204 · 404 · 409

Handler remove in crates/pelty-api/src/routes/legal_entities.rs

PUT/api/v1/admin/legal-entities/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: EntityInput

Responses: 200 · 404 · 409 · 422

Handler update in crates/pelty-api/src/routes/legal_entities.rs

POST/api/v1/admin/legal-entities/{id}/default
ParameterInRequiredDescription
idpathtrue

Responses: 204 · 404

Handler make_default in crates/pelty-api/src/routes/legal_entities.rs

GET/api/v1/admin/tracked-links

Responses: 200 · 403

Handler list in crates/pelty-api/src/routes/link_tracking.rs

POST/api/v1/admin/tracked-links

Request body application/json: NewLink

Responses: 200 · 409 · 422

Handler create in crates/pelty-api/src/routes/link_tracking.rs

DELETE/api/v1/admin/tracked-links/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler remove in crates/pelty-api/src/routes/link_tracking.rs

GET/api/v1/go/{slug}Public: count the click and 303 to the stored target.
ParameterInRequiredDescription
slugpathtrue

Responses: 303 · 404

Handler follow in crates/pelty-api/src/routes/link_tracking.rs

#super::live-chat

GET/api/v1/admin/chats
ParameterInRequiredDescription
statusqueryfalseopen | closed (default: all)

Responses: 200

Handler inbox in crates/pelty-api/src/routes/live_chat.rs

POST/api/v1/admin/chats/{id}/close
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler staff_close in crates/pelty-api/src/routes/live_chat.rs

GET/api/v1/admin/chats/{id}/messages
ParameterInRequiredDescription
afterqueryfalse
idpathtrue

Responses: 200 · 404

Handler staff_messages in crates/pelty-api/src/routes/live_chat.rs

POST/api/v1/admin/chats/{id}/messages
ParameterInRequiredDescription
idpathtrue

Request body application/json: ChatPost

Responses: 200 · 404 · 409 · 422

Handler staff_post in crates/pelty-api/src/routes/live_chat.rs

POST/api/v1/chat/sessions

Request body application/json: ChatStart

Responses: 200 · 404 · 422 · 429

Handler start in crates/pelty-api/src/routes/live_chat.rs

POST/api/v1/chat/sessions/{id}/close
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler visitor_close in crates/pelty-api/src/routes/live_chat.rs

GET/api/v1/chat/sessions/{id}/messages
ParameterInRequiredDescription
afterqueryfalse
idpathtrue

Responses: 200 · 404

Handler visitor_messages in crates/pelty-api/src/routes/live_chat.rs

POST/api/v1/chat/sessions/{id}/messages
ParameterInRequiredDescription
idpathtrue

Request body application/json: ChatPost

Responses: 200 · 404 · 409 · 422 · 429

Handler visitor_post in crates/pelty-api/src/routes/live_chat.rs

#super::mass

POST/api/v1/admin/mass/customers

Request body application/json: MassBody

Responses: 200 · 403 · 422

Handler customers in crates/pelty-api/src/routes/mass.rs

POST/api/v1/admin/mass/domains

Request body application/json: MassBody

Responses: 200 · 403 · 422

Handler domains in crates/pelty-api/src/routes/mass.rs

POST/api/v1/admin/mass/services

Request body application/json: MassBody

Responses: 200 · 403 · 422

Handler services in crates/pelty-api/src/routes/mass.rs

POST/api/v1/admin/mass/tickets

Request body application/json: MassBody

Responses: 200 · 403 · 422

Handler tickets in crates/pelty-api/src/routes/mass.rs

#super::mfa

GET/api/v1/auth/mfa

Responses: 200 · 401

Handler status in crates/pelty-api/src/routes/mfa.rs

POST/api/v1/auth/mfa/backup-codesReplace all backup codes; returned once.

Request body application/json: ConfirmBody

Responses: 200 · 422

Handler regenerate in crates/pelty-api/src/routes/mfa.rs

POST/api/v1/auth/mfa/disableTurn 2FA off; needs the password and a current code (or a backup code).

Request body application/json: ConfirmBody

Responses: 204 · 422

Handler disable in crates/pelty-api/src/routes/mfa.rs

POST/api/v1/auth/mfa/enable

Request body application/json: CodeBody

Responses: 200 · 409 · 422

Handler enable in crates/pelty-api/src/routes/mfa.rs

POST/api/v1/auth/mfa/setupStart enrolment: a fresh pending secret, replaced on each call until enabled.

Responses: 200 · 400 · 409

Handler setup in crates/pelty-api/src/routes/mfa.rs

POST/api/v1/auth/mfa/verifySecond login step. Max 5 attempts per challenge, 5 minute lifetime.

Request body application/json: VerifyBody

Responses: 200 · 401 · 429

Handler verify in crates/pelty-api/src/routes/mfa.rs

#super::modules-ext

GET/api/v1/admin/module-log

Responses: 200

Handler log_list in crates/pelty-api/src/routes/modules_ext.rs

GET/api/v1/admin/module-queue

Responses: 200

Handler queue in crates/pelty-api/src/routes/modules_ext.rs

POST/api/v1/admin/module-queue/{id}/retry
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 409

Handler queue_retry in crates/pelty-api/src/routes/modules_ext.rs

GET/api/v1/admin/servers/health

Responses: 200

Handler health in crates/pelty-api/src/routes/modules_ext.rs

POST/api/v1/admin/servers/health/check

Responses: 200

Handler check_all in crates/pelty-api/src/routes/modules_ext.rs

POST/api/v1/admin/services/{id}/module/custom
ParameterInRequiredDescription
idpathtrue

Request body application/json: CustomBody

Responses: 200 · 409 · 422

Handler admin_custom in crates/pelty-api/src/routes/modules_ext.rs

GET/api/v1/admin/services/{id}/module/usage
ParameterInRequiredDescription
idpathtrue

Responses: 200

Handler admin_usage in crates/pelty-api/src/routes/modules_ext.rs

GET/api/v1/client/services/{id}/module
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler client_panel in crates/pelty-api/src/routes/modules_ext.rs

POST/api/v1/client/services/{id}/module/{action}
ParameterInRequiredDescription
idpathtrue
actionpathtrue

Request body application/json: CustomBody

Responses: 200 · 404 · 409 · 422

Handler client_action in crates/pelty-api/src/routes/modules_ext.rs

POST/api/v1/licensing/verifyPublic. Bind on first use, then verify; the response is HMAC-signed with

Request body application/json: VerifyBody

Responses: 200 · 429

Handler license_verify in crates/pelty-api/src/routes/modules_ext.rs

#super::network-status

GET/api/v1/admin/network-issues

Responses: 200 · 403

Handler admin_list in crates/pelty-api/src/routes/network_status.rs

POST/api/v1/admin/network-issues

Request body application/json: IssueBody

Responses: 200 · 422

Handler create in crates/pelty-api/src/routes/network_status.rs

DELETE/api/v1/admin/network-issues/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler remove in crates/pelty-api/src/routes/network_status.rs

PUT/api/v1/admin/network-issues/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: IssueBody

Responses: 200 · 404 · 422

Handler update in crates/pelty-api/src/routes/network_status.rs

POST/api/v1/admin/network-issues/{id}/updates
ParameterInRequiredDescription
idpathtrue

Request body application/json: UpdateBody

Responses: 200 · 404 · 422

Handler add_update in crates/pelty-api/src/routes/network_status.rs

GET/api/v1/public/network-statusPublic: open issues plus anything resolved in the last 14 days.

Responses: 200

Handler public_status in crates/pelty-api/src/routes/network_status.rs

#super::overdue

POST/api/v1/admin/overdue/runRun today's overdue automation now (idempotent with the daily job).

Responses: 200 · 403

Handler run_now in crates/pelty-api/src/routes/overdue.rs

GET/api/v1/admin/settings/overdue

Responses: 200 · 403

Handler get_settings in crates/pelty-api/src/routes/overdue.rs

PUT/api/v1/admin/settings/overdue

Request body application/json: OverdueSettings

Responses: 200 · 422

Handler put_settings in crates/pelty-api/src/routes/overdue.rs

#super::passkeys

DELETE/api/v1/admin/users/{id}/passkeysRevoke every passkey of a user (lost device / compromised account).
ParameterInRequiredDescription
idpathtrue

Responses: 200

Handler admin_revoke in crates/pelty-api/src/routes/passkeys.rs

GET/api/v1/admin/users/{id}/passkeys
ParameterInRequiredDescription
idpathtrue

Responses: 200

Handler admin_list in crates/pelty-api/src/routes/passkeys.rs

GET/api/v1/auth/passkeys

Responses: 200

Handler list in crates/pelty-api/src/routes/passkeys.rs

POST/api/v1/auth/passkeys/discover/finish

Request body application/json: AssertBody

Responses: 200 · 401

Handler discover_finish in crates/pelty-api/src/routes/passkeys.rs

POST/api/v1/auth/passkeys/discover/startUsernameless sign-in: empty `allowCredentials`, the authenticator picks a

Responses: 200

Handler discover_start in crates/pelty-api/src/routes/passkeys.rs

POST/api/v1/auth/passkeys/login/finishPasswordless sign-in. A user-verified passkey counts as both factors.

Request body application/json: AssertBody

Responses: 200 · 401

Handler login_finish in crates/pelty-api/src/routes/passkeys.rs

POST/api/v1/auth/passkeys/login/start

Request body application/json: LoginStart

Responses: 200

Handler login_start in crates/pelty-api/src/routes/passkeys.rs

POST/api/v1/auth/passkeys/reauth/finishStep-up with a passkey instead of password + code.

Request body application/json: AssertBody

Responses: 204 · 422

Handler reauth_finish in crates/pelty-api/src/routes/passkeys.rs

POST/api/v1/auth/passkeys/reauth/start

Responses: 200 · 409

Handler reauth_start in crates/pelty-api/src/routes/passkeys.rs

POST/api/v1/auth/passkeys/register/finish

Request body application/json: RegisterFinish

Responses: 200 · 422

Handler register_finish in crates/pelty-api/src/routes/passkeys.rs

POST/api/v1/auth/passkeys/register/startEnrolment needs the password (and 2FA code when enabled) again.

Request body application/json: RegisterStart

Responses: 200 · 422

Handler register_start in crates/pelty-api/src/routes/passkeys.rs

DELETE/api/v1/auth/passkeys/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 204 · 404

Handler remove in crates/pelty-api/src/routes/passkeys.rs

#super::payment-methods

POST/api/v1/admin/autopay/runRun auto-pay now (idempotent with the daily job).

Request body application/json: RunBody

Responses: 200 · 403

Handler run_now in crates/pelty-api/src/routes/payment_methods.rs

PUT/api/v1/admin/customers/{id}/auto-pay
ParameterInRequiredDescription
idpathtrue

Request body application/json: AutoPayBody

Responses: 200 · 409

Handler admin_auto_pay in crates/pelty-api/src/routes/payment_methods.rs

GET/api/v1/admin/customers/{id}/payment-methods
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 403 · 404

Handler admin_list in crates/pelty-api/src/routes/payment_methods.rs

GET/api/v1/admin/settings/autopay

Responses: 200 · 403

Handler get_settings in crates/pelty-api/src/routes/payment_methods.rs

PUT/api/v1/admin/settings/autopay

Request body application/json: AutopaySettings

Responses: 200 · 422

Handler put_settings in crates/pelty-api/src/routes/payment_methods.rs

PUT/api/v1/client/billing/auto-pay

Request body application/json: AutoPayBody

Responses: 200 · 409

Handler client_auto_pay in crates/pelty-api/src/routes/payment_methods.rs

GET/api/v1/client/billing/payment-methods

Responses: 200 · 401

Handler client_list in crates/pelty-api/src/routes/payment_methods.rs

POST/api/v1/client/billing/payment-methods

Request body application/json: AddBody

Responses: 200 · 400 · 422

Handler client_add in crates/pelty-api/src/routes/payment_methods.rs

DELETE/api/v1/client/billing/payment-methods/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler client_remove in crates/pelty-api/src/routes/payment_methods.rs

POST/api/v1/client/billing/payment-methods/{id}/default
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler client_default in crates/pelty-api/src/routes/payment_methods.rs

#super::plugins

GET/api/v1/admin/plugins/{id}/deliveries
ParameterInRequiredDescription
pagequeryfalse
per_pagequeryfalse
qqueryfalse
statusqueryfalse
idpathtrue

Responses: 200 · 403 · 404

Handler list_deliveries in crates/pelty-api/src/routes/plugins.rs

POST/api/v1/admin/plugins/{id}/deliveries/{did}/redeliver
ParameterInRequiredDescription
idpathtrue
didpathtrue

Responses: 204 · 403 · 404

Handler redeliver in crates/pelty-api/src/routes/plugins.rs

GET/api/v1/admin/plugins/{id}/settings
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 403 · 404

Handler get_settings in crates/pelty-api/src/routes/plugins.rs

PUT/api/v1/admin/plugins/{id}/settings
ParameterInRequiredDescription
idpathtrue

Request body application/json: object

Responses: 204 · 403 · 404 · 422

Handler put_settings in crates/pelty-api/src/routes/plugins.rs

GET/api/v1/admin/plugins/{id}/webhook
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 403 · 404

Handler get_webhook in crates/pelty-api/src/routes/plugins.rs

PUT/api/v1/admin/plugins/{id}/webhook
ParameterInRequiredDescription
idpathtrue

Request body application/json: WebhookBody

Responses: 204 · 403 · 404 · 422

Handler put_webhook in crates/pelty-api/src/routes/plugins.rs

POST/api/v1/admin/plugins/{id}/webhook/secretGenerate a new signing secret and return it once.
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 403 · 404 · 409

Handler rotate_secret in crates/pelty-api/src/routes/plugins.rs

GET/api/v1/plugins/ui

Responses: 200 · 401

Handler ui_entries in crates/pelty-api/src/routes/plugins.rs

#super::projects

GET/api/v1/admin/projects
ParameterInRequiredDescription
customer_idqueryfalse

Responses: 200

Handler list in crates/pelty-api/src/routes/projects.rs

POST/api/v1/admin/projects

Request body application/json: ProjectInput

Responses: 200 · 404 · 422

Handler create in crates/pelty-api/src/routes/projects.rs

DELETE/api/v1/admin/projects/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler remove in crates/pelty-api/src/routes/projects.rs

GET/api/v1/admin/projects/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler detail in crates/pelty-api/src/routes/projects.rs

PUT/api/v1/admin/projects/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: ProjectInput

Responses: 200 · 404 · 422

Handler update in crates/pelty-api/src/routes/projects.rs

POST/api/v1/admin/projects/{id}/invoice-timeBill all unbilled billable time on one invoice.
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404 · 409

Handler invoice_time in crates/pelty-api/src/routes/projects.rs

DELETE/api/v1/admin/projects/{id}/links
ParameterInRequiredDescription
idpathtrue

Request body application/json: LinkBody

Responses: 200

Handler unlink in crates/pelty-api/src/routes/projects.rs

POST/api/v1/admin/projects/{id}/links
ParameterInRequiredDescription
idpathtrue

Request body application/json: LinkBody

Responses: 200 · 404 · 422

Handler link in crates/pelty-api/src/routes/projects.rs

POST/api/v1/admin/projects/{id}/tasks
ParameterInRequiredDescription
idpathtrue

Request body application/json: TaskInput

Responses: 200 · 404 · 422

Handler add_task in crates/pelty-api/src/routes/projects.rs

DELETE/api/v1/admin/projects/{id}/tasks/{task}
ParameterInRequiredDescription
idpathtrue
taskpathtrue

Responses: 200 · 404

Handler delete_task in crates/pelty-api/src/routes/projects.rs

PUT/api/v1/admin/projects/{id}/tasks/{task}
ParameterInRequiredDescription
idpathtrue
taskpathtrue

Request body application/json: TaskState

Responses: 200 · 404

Handler set_task in crates/pelty-api/src/routes/projects.rs

POST/api/v1/admin/projects/{id}/time
ParameterInRequiredDescription
idpathtrue

Request body application/json: TimeInput

Responses: 200 · 404 · 422

Handler add_time in crates/pelty-api/src/routes/projects.rs

DELETE/api/v1/admin/projects/{id}/time/{entry}
ParameterInRequiredDescription
idpathtrue
entrypathtrue

Responses: 200 · 409

Handler delete_time in crates/pelty-api/src/routes/projects.rs

GET/api/v1/client/projects

Responses: 200

Handler client_list in crates/pelty-api/src/routes/projects.rs

GET/api/v1/client/projects/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler client_detail in crates/pelty-api/src/routes/projects.rs

#super::provisioning

GET/api/v1/admin/products/{id}/module
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler product_get in crates/pelty-api/src/routes/provisioning.rs

PUT/api/v1/admin/products/{id}/module
ParameterInRequiredDescription
idpathtrue

Request body application/json: ProductModule

Responses: 200 · 404 · 422

Handler product_set in crates/pelty-api/src/routes/provisioning.rs

GET/api/v1/admin/provisioning/modules

Responses: 200 · 403

Handler modules in crates/pelty-api/src/routes/provisioning.rs

GET/api/v1/admin/servers

Responses: 200 · 403

Handler list in crates/pelty-api/src/routes/provisioning.rs

POST/api/v1/admin/servers

Request body application/json: ServerInput

Responses: 200 · 409 · 422

Handler create in crates/pelty-api/src/routes/provisioning.rs

DELETE/api/v1/admin/servers/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404 · 409

Handler remove in crates/pelty-api/src/routes/provisioning.rs

PUT/api/v1/admin/servers/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: ServerInput

Responses: 200 · 404 · 422

Handler update in crates/pelty-api/src/routes/provisioning.rs

GET/api/v1/admin/servers/{id}/accountsAccounts on the panel, each with the service it is linked to (if any).
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 409

Handler accounts in crates/pelty-api/src/routes/provisioning.rs

POST/api/v1/admin/servers/{id}/importCreate services for panel accounts (no provisioning call; status `ok`).
ParameterInRequiredDescription
idpathtrue

Request body application/json: ImportBody

Responses: 200 · 409 · 422

Handler import in crates/pelty-api/src/routes/provisioning.rs

POST/api/v1/admin/servers/{id}/testCheck the stored credentials against the panel. Returns `{ok, error?}`
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler test in crates/pelty-api/src/routes/provisioning.rs

POST/api/v1/admin/services/{id}/moduleManually (re)run a module action. Does not change the billing status.
ParameterInRequiredDescription
idpathtrue

Request body application/json: ModuleAction

Responses: 200 · 404 · 409 · 422

Handler service_action in crates/pelty-api/src/routes/provisioning.rs

GET/api/v1/admin/services/{id}/provisioning
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler service_state in crates/pelty-api/src/routes/provisioning.rs

#super::quote-pdf

GET/api/v1/admin/quotes/{id}/pdf
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler admin_pdf in crates/pelty-api/src/routes/quote_pdf.rs

GET/api/v1/client/quotes/{id}/pdf
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler client_pdf in crates/pelty-api/src/routes/quote_pdf.rs

#super::quotes

GET/api/v1/admin/quotes

Responses: 200 · 403

Handler admin_list in crates/pelty-api/src/routes/quotes.rs

POST/api/v1/admin/quotes

Request body application/json: QuoteInput

Responses: 200 · 422

Handler admin_create in crates/pelty-api/src/routes/quotes.rs

DELETE/api/v1/admin/quotes/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 409

Handler admin_delete in crates/pelty-api/src/routes/quotes.rs

GET/api/v1/admin/quotes/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler admin_get in crates/pelty-api/src/routes/quotes.rs

PUT/api/v1/admin/quotes/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: QuoteInput

Responses: 200 · 409 · 422

Handler admin_update in crates/pelty-api/src/routes/quotes.rs

POST/api/v1/admin/quotes/{id}/send
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 409

Handler admin_send in crates/pelty-api/src/routes/quotes.rs

GET/api/v1/client/quotes

Responses: 200 · 401

Handler client_list in crates/pelty-api/src/routes/quotes.rs

GET/api/v1/client/quotes/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler client_get in crates/pelty-api/src/routes/quotes.rs

POST/api/v1/client/quotes/{id}/accept
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404 · 409

Handler client_accept in crates/pelty-api/src/routes/quotes.rs

POST/api/v1/client/quotes/{id}/decline
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404 · 409

Handler client_decline in crates/pelty-api/src/routes/quotes.rs

#super::refunds

GET/api/v1/admin/invoices/{id}/refunds
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler admin_list in crates/pelty-api/src/routes/refunds.rs

POST/api/v1/admin/payments/{id}/refunds
ParameterInRequiredDescription
idpathtrue

Request body application/json: RefundBody

Responses: 200 · 400 · 404 · 409 · 422

Handler admin_refund in crates/pelty-api/src/routes/refunds.rs

GET/api/v1/admin/settings/reversal

Responses: 200

Handler get_reversal in crates/pelty-api/src/routes/refunds.rs

PUT/api/v1/admin/settings/reversal

Request body application/json: ReversalSettings

Responses: 200

Handler put_reversal in crates/pelty-api/src/routes/refunds.rs

GET/api/v1/client/invoices/{id}/refunds
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler client_list in crates/pelty-api/src/routes/refunds.rs

#super::renewals

POST/api/v1/admin/services/{id}/renew-now
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404 · 409

Handler admin_renew in crates/pelty-api/src/routes/renewals.rs

GET/api/v1/admin/settings/on-demand-renewals

Responses: 200

Handler get_cfg in crates/pelty-api/src/routes/renewals.rs

PUT/api/v1/admin/settings/on-demand-renewals

Request body application/json: RenewalSettings

Responses: 200 · 422

Handler put_cfg in crates/pelty-api/src/routes/renewals.rs

GET/api/v1/client/renewals/config

Responses: 200

Handler client_cfg in crates/pelty-api/src/routes/renewals.rs

POST/api/v1/client/services/{id}/renew-now
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 403 · 404 · 409

Handler client_renew in crates/pelty-api/src/routes/renewals.rs

#super::reports

GET/api/v1/admin/reports
ParameterInRequiredDescription
fromqueryfalseFirst month, YYYY-MM (default: 11 months before to).
toqueryfalseLast month, YYYY-MM (default: current month).

Responses: 200 · 403 · 422

Handler get_report in crates/pelty-api/src/routes/reports.rs

GET/api/v1/admin/reports/libraryAvailable reports grouped by category.

Responses: 200 · 403

Handler library in crates/pelty-api/src/routes/reports.rs

GET/api/v1/admin/reports/library/{key}Run one report over whole months `[from, to]` as JSON or CSV.
ParameterInRequiredDescription
fromqueryfalse
toqueryfalse
formatqueryfalsejson (default) or csv.
keypathtrue

Responses: 200 · 403 · 404 · 422

Handler run_report in crates/pelty-api/src/routes/reports.rs

#super::security-questions

DELETE/api/v1/account/security-question

Responses: 200 · 401

Handler clear_mine in crates/pelty-api/src/routes/security_questions.rs

GET/api/v1/account/security-question

Responses: 200 · 401

Handler my_question in crates/pelty-api/src/routes/security_questions.rs

PUT/api/v1/account/security-question

Request body application/json: SetAnswer

Responses: 200 · 422 · 429

Handler set_mine in crates/pelty-api/src/routes/security_questions.rs

GET/api/v1/admin/customers/{id}/security-questionWhich question the client chose (not the answer).
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler admin_status in crates/pelty-api/src/routes/security_questions.rs

POST/api/v1/admin/customers/{id}/security-question/verifyCheck a caller's answer. Rate limited per customer and audited.
ParameterInRequiredDescription
idpathtrue

Request body application/json: VerifyBody

Responses: 200 · 404 · 429

Handler admin_verify in crates/pelty-api/src/routes/security_questions.rs

GET/api/v1/admin/security-questions

Responses: 200 · 403

Handler admin_list in crates/pelty-api/src/routes/security_questions.rs

POST/api/v1/admin/security-questions

Request body application/json: NewQuestion

Responses: 200 · 422

Handler admin_create in crates/pelty-api/src/routes/security_questions.rs

DELETE/api/v1/admin/security-questions/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler admin_delete in crates/pelty-api/src/routes/security_questions.rs

#super::service-changes

GET/api/v1/admin/cancellations
ParameterInRequiredDescription
pagequeryfalse
per_pagequeryfalse
qqueryfalse
statusqueryfalse

Responses: 200 · 403

Handler admin_cancellations in crates/pelty-api/src/routes/service_changes.rs

POST/api/v1/admin/cancellations/{id}/decide
ParameterInRequiredDescription
idpathtrue

Request body application/json: DecideBody

Responses: 200 · 403 · 404 · 409

Handler admin_decide in crates/pelty-api/src/routes/service_changes.rs

DELETE/api/v1/admin/services/{id}/change
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 403 · 404

Handler admin_cancel_change in crates/pelty-api/src/routes/service_changes.rs

POST/api/v1/admin/services/{id}/change
ParameterInRequiredDescription
idpathtrue

Request body application/json: ChangeBody

Responses: 200 · 403 · 409 · 422

Handler admin_change in crates/pelty-api/src/routes/service_changes.rs

GET/api/v1/admin/services/{id}/lifecycle
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 403

Handler admin_lifecycle in crates/pelty-api/src/routes/service_changes.rs

DELETE/api/v1/client/services/{id}/cancellation
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler client_withdraw_cancel in crates/pelty-api/src/routes/service_changes.rs

POST/api/v1/client/services/{id}/cancellation
ParameterInRequiredDescription
idpathtrue

Request body application/json: CancelBody

Responses: 200 · 404 · 409 · 422

Handler client_request_cancel in crates/pelty-api/src/routes/service_changes.rs

DELETE/api/v1/client/services/{id}/change
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler client_cancel_change in crates/pelty-api/src/routes/service_changes.rs

POST/api/v1/client/services/{id}/change
ParameterInRequiredDescription
idpathtrue

Request body application/json: ChangeBody

Responses: 200 · 404 · 409 · 422

Handler client_change in crates/pelty-api/src/routes/service_changes.rs

GET/api/v1/client/services/{id}/lifecycle
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler client_lifecycle in crates/pelty-api/src/routes/service_changes.rs

#super::settings

GET/api/v1/admin/settings/bank-transfer

Responses: 200 · 403

Handler get_bank in crates/pelty-api/src/routes/settings.rs

PUT/api/v1/admin/settings/bank-transfer

Request body application/json: BankTransfer

Responses: 200 · 422

Handler put_bank in crates/pelty-api/src/routes/settings.rs

#super::setup-wizard

GET/api/v1/admin/setup-wizard

Responses: 200 · 403

Handler status in crates/pelty-api/src/routes/setup_wizard.rs

PUT/api/v1/admin/setup-wizard/dismissed

Request body application/json: DismissBody

Responses: 200

Handler dismiss in crates/pelty-api/src/routes/setup_wizard.rs

#super::smtp

GET/api/v1/admin/settings/smtp

Responses: 200 · 403

Handler get_smtp in crates/pelty-api/src/routes/smtp.rs

PUT/api/v1/admin/settings/smtp

Request body application/json: SmtpInput

Responses: 200 · 422

Handler put_smtp in crates/pelty-api/src/routes/smtp.rs

POST/api/v1/admin/settings/smtp/testSend a test mail synchronously with the *saved* settings.

Request body application/json: SmtpTest

Responses: 200 · 422

Handler test_smtp in crates/pelty-api/src/routes/smtp.rs

#super::ssl

POST/api/v1/admin/domains/{id}/ssl-check
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler admin_check in crates/pelty-api/src/routes/ssl.rs

GET/api/v1/admin/ssl
ParameterInRequiredDescription
statusqueryfalse
pagequeryfalse
per_pagequeryfalse

Responses: 200 · 403

Handler admin_list in crates/pelty-api/src/routes/ssl.rs

GET/api/v1/client/ssl

Responses: 200 · 401

Handler client_list in crates/pelty-api/src/routes/ssl.rs

#super::sso

POST/api/v1/client/services/{id}/sso
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404 · 409

Handler start in crates/pelty-api/src/routes/sso.rs

POST/api/v1/sso/consumeCalled by the panel. 200 with the claims the first time; 401 otherwise.

Request body application/json: ConsumeBody

Responses: 200 · 401

Handler consume in crates/pelty-api/src/routes/sso.rs

#super::staff

GET/api/v1/admin/roles

Responses: 200 · 403

Handler list_roles in crates/pelty-api/src/routes/staff.rs

POST/api/v1/admin/roles

Request body application/json: RoleInput

Responses: 200 · 409 · 422

Handler create_role in crates/pelty-api/src/routes/staff.rs

DELETE/api/v1/admin/roles/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404 · 409

Handler delete_role in crates/pelty-api/src/routes/staff.rs

PUT/api/v1/admin/roles/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: RoleInput

Responses: 200 · 404 · 409

Handler update_role in crates/pelty-api/src/routes/staff.rs

GET/api/v1/admin/security/staff-2fa

Responses: 200

Handler get_2fa in crates/pelty-api/src/routes/staff.rs

PUT/api/v1/admin/security/staff-2faTurning the policy on requires the actor to have 2FA (no self lock-out).

Request body application/json: TwoFaBody

Responses: 200 · 409

Handler put_2fa in crates/pelty-api/src/routes/staff.rs

GET/api/v1/admin/staff

Responses: 200 · 403

Handler list_staff in crates/pelty-api/src/routes/staff.rs

PUT/api/v1/admin/users/{id}/roles
ParameterInRequiredDescription
idpathtrue

Request body application/json: RolesBody

Responses: 200 · 404 · 409 · 422

Handler set_roles in crates/pelty-api/src/routes/staff.rs

#super::store

GET/api/v1/admin/customers/{id}/subaccountsStaff view of an account's sub-accounts (WHMCS "Users" tab).
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 403

Handler admin_contacts in crates/pelty-api/src/routes/store.rs

POST/api/v1/admin/ordersManual order for a customer, priced from the catalog like a client order.

Request body application/json: AdminOrderBody

Responses: 200 · 403 · 422

Handler super::store::admin_create_order in crates/pelty-api/src/routes/billing.rs

POST/api/v1/admin/orders/{id}/notes
ParameterInRequiredDescription
idpathtrue

Request body application/json: NoteBody

Responses: 200 · 404 · 422

Handler super::store::admin_add_note in crates/pelty-api/src/routes/billing.rs

POST/api/v1/admin/orders/{id}/refundRefund an order: credit the paid invoice in full (credit note) and close
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404 · 409

Handler super::store::admin_refund_order in crates/pelty-api/src/routes/billing.rs

GET/api/v1/client/access

Responses: 200 · 401

Handler client_access in crates/pelty-api/src/routes/store.rs

POST/api/v1/client/checkoutTurn a cart into an order + invoice for the signed-in customer. The

Request body application/json: CheckoutBody

Responses: 200 · 404 · 409 · 422

Handler checkout in crates/pelty-api/src/routes/store.rs

GET/api/v1/client/email-preferences

Responses: 200

Handler get_prefs in crates/pelty-api/src/routes/store.rs

PUT/api/v1/client/email-preferences

Request body application/json: EmailPrefs

Responses: 200

Handler put_prefs in crates/pelty-api/src/routes/store.rs

GET/api/v1/client/home
ParameterInRequiredDescription
localequeryfalse

Responses: 200 · 401

Handler client_home in crates/pelty-api/src/routes/store.rs

GET/api/v1/client/login-historyThe caller's own recent sign-ins, failures and lockouts.

Responses: 200

Handler login_history in crates/pelty-api/src/routes/store.rs

GET/api/v1/client/orders/{id}Order status page for the customer.
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler client_order in crates/pelty-api/src/routes/store.rs

GET/api/v1/client/subaccounts

Responses: 200 · 403

Handler list_contacts in crates/pelty-api/src/routes/store.rs

POST/api/v1/client/subaccountsCreate a sub-account that signs in with its own email and password and

Request body application/json: NewContact

Responses: 200 · 409 · 422

Handler add_contact in crates/pelty-api/src/routes/store.rs

POST/api/v1/client/subaccounts/inviteInvite a contact by email: the account is created with an unusable random

Request body application/json: InviteContact

Responses: 200 · 409 · 422

Handler invite_contact in crates/pelty-api/src/routes/store.rs

DELETE/api/v1/client/subaccounts/{id}Remove a contact: its access ends immediately (sessions revoked) and
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler remove_contact in crates/pelty-api/src/routes/store.rs

PUT/api/v1/client/subaccounts/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: ContactPatch

Responses: 200 · 404

Handler update_contact in crates/pelty-api/src/routes/store.rs

GET/api/v1/store/carts/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler get_cart in crates/pelty-api/src/routes/store.rs

PUT/api/v1/store/carts/{id}Create or replace a cart. The id is an unguessable client-generated
ParameterInRequiredDescription
idpathtrue

Request body application/json: CartBody

Responses: 200 · 409 · 422

Handler put_cart in crates/pelty-api/src/routes/store.rs

GET/api/v1/store/gateways

Responses: 200

Handler store_gateways in crates/pelty-api/src/routes/store.rs

#super::support

GET/api/v1/admin/ticket-canned
ParameterInRequiredDescription
department_idqueryfalse

Responses: 200

Handler canned_list in crates/pelty-api/src/routes/support.rs

POST/api/v1/admin/ticket-canned

Request body application/json: CannedBody

Responses: 200 · 422

Handler canned_create in crates/pelty-api/src/routes/support.rs

DELETE/api/v1/admin/ticket-canned/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler canned_delete in crates/pelty-api/src/routes/support.rs

PUT/api/v1/admin/ticket-canned/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: CannedBody

Responses: 200 · 404

Handler canned_update in crates/pelty-api/src/routes/support.rs

GET/api/v1/admin/ticket-departments-sla

Responses: 200

Handler department_slas in crates/pelty-api/src/routes/support.rs

PUT/api/v1/admin/ticket-departments/{id}/sla
ParameterInRequiredDescription
idpathtrue

Request body application/json: DepartmentSlaBody

Responses: 200 · 422

Handler set_department_sla in crates/pelty-api/src/routes/support.rs

GET/api/v1/admin/ticket-escalations

Responses: 200

Handler rules in crates/pelty-api/src/routes/support.rs

POST/api/v1/admin/ticket-escalations

Request body application/json: RuleBody

Responses: 200 · 422

Handler rule_create in crates/pelty-api/src/routes/support.rs

POST/api/v1/admin/ticket-escalations/runEnqueue an escalation pass now (durable job; the worker also schedules one

Responses: 200

Handler rules_run in crates/pelty-api/src/routes/support.rs

DELETE/api/v1/admin/ticket-escalations/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler rule_delete in crates/pelty-api/src/routes/support.rs

PUT/api/v1/admin/ticket-escalations/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: RuleBody

Responses: 200 · 404

Handler rule_update in crates/pelty-api/src/routes/support.rs

GET/api/v1/admin/ticket-satisfactionCSAT report: distribution, per department / staff, recent comments.
ParameterInRequiredDescription
daysqueryfalse
department_idqueryfalse
lowqueryfalse

Responses: 200 · 403

Handler satisfaction in crates/pelty-api/src/routes/support.rs

GET/api/v1/admin/ticket-sla
ParameterInRequiredDescription
daysqueryfalse

Responses: 200

Handler sla in crates/pelty-api/src/routes/support.rs

GET/api/v1/admin/ticket-staff

Responses: 200

Handler staff in crates/pelty-api/src/routes/support.rs

POST/api/v1/admin/tickets/{id}/merge
ParameterInRequiredDescription
idpathtrue

Request body application/json: MergeBody

Responses: 200 · 404 · 422

Handler merge in crates/pelty-api/src/routes/support.rs

POST/api/v1/admin/tickets/{id}/split
ParameterInRequiredDescription
idpathtrue

Request body application/json: SplitBody

Responses: 200 · 422

Handler split in crates/pelty-api/src/routes/support.rs

PUT/api/v1/admin/tickets/{id}/tags
ParameterInRequiredDescription
idpathtrue

Request body application/json: TagsBody

Responses: 200 · 422

Handler set_tags in crates/pelty-api/src/routes/support.rs

POST/api/v1/client/tickets/{id}/rate
ParameterInRequiredDescription
idpathtrue

Request body application/json: RateBody

Responses: 200 · 422

Handler client_rate in crates/pelty-api/src/routes/support.rs

#super::tax

POST/api/v1/admin/customers/{id}/vat/verify
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404 · 409 · 422

Handler admin_verify_vat in crates/pelty-api/src/routes/tax.rs

GET/api/v1/admin/settings/tax

Responses: 200 · 403

Handler get_settings in crates/pelty-api/src/routes/tax.rs

PUT/api/v1/admin/settings/tax

Request body application/json: TaxSettings

Responses: 200 · 422

Handler put_settings in crates/pelty-api/src/routes/tax.rs

GET/api/v1/admin/tax-rules

Responses: 200 · 403

Handler list_rules in crates/pelty-api/src/routes/tax.rs

POST/api/v1/admin/tax-rules

Request body application/json: RuleInput

Responses: 200 · 422

Handler create_rule in crates/pelty-api/src/routes/tax.rs

DELETE/api/v1/admin/tax-rules/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler delete_rule in crates/pelty-api/src/routes/tax.rs

PUT/api/v1/admin/tax-rules/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: RuleInput

Responses: 200 · 404 · 422

Handler update_rule in crates/pelty-api/src/routes/tax.rs

POST/api/v1/client/vat/verify

Responses: 200 · 409 · 422

Handler client_verify_vat in crates/pelty-api/src/routes/tax.rs

#super::ticket-attachments

GET/api/v1/admin/tickets/{tid}/attachments/{id}
ParameterInRequiredDescription
tidpathtrue
idpathtrue

Responses: 200 · 404

Handler admin_download in crates/pelty-api/src/routes/ticket_attachments.rs

GET/api/v1/client/tickets/{tid}/attachments/{id}
ParameterInRequiredDescription
tidpathtrue
idpathtrue

Responses: 200 · 404

Handler client_download in crates/pelty-api/src/routes/ticket_attachments.rs

POST/api/v1/tickets/attachmentsUpload a file (raw body). Returns an id to pass as `attachment_ids` when
ParameterInRequiredDescription
filenamequeryfalse

Request body application/octet-stream: integer[]

Responses: 200 · 400 · 422

Handler upload in crates/pelty-api/src/routes/ticket_attachments.rs

#super::ticket-statuses

POST/api/v1/admin/ticket-statuses

Request body application/json: StatusInput

Responses: 200 · 409 · 422

Handler create in crates/pelty-api/src/routes/ticket_statuses.rs

DELETE/api/v1/admin/ticket-statuses/{slug}
ParameterInRequiredDescription
slugpathtrue

Responses: 200 · 404 · 409

Handler delete in crates/pelty-api/src/routes/ticket_statuses.rs

PUT/api/v1/admin/ticket-statuses/{slug}
ParameterInRequiredDescription
slugpathtrue

Request body application/json: StatusInput

Responses: 200 · 404 · 422

Handler update in crates/pelty-api/src/routes/ticket_statuses.rs

GET/api/v1/ticket-statuses

Responses: 200 · 401

Handler list in crates/pelty-api/src/routes/ticket_statuses.rs

#super::tickets

GET/api/v1/admin/ticket-departments

Responses: 200 · 403

Handler admin_departments in crates/pelty-api/src/routes/tickets.rs

POST/api/v1/admin/ticket-departments

Request body application/json: DepartmentBody

Responses: 200 · 403

Handler admin_create_department in crates/pelty-api/src/routes/tickets.rs

PUT/api/v1/admin/ticket-departments/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: DepartmentBody

Responses: 200 · 404

Handler admin_update_department in crates/pelty-api/src/routes/tickets.rs

GET/api/v1/admin/tickets
ParameterInRequiredDescription
pagequeryfalse
per_pagequeryfalse
qqueryfalse
statusqueryfalse

Responses: 200 · 403

Handler admin_list in crates/pelty-api/src/routes/tickets.rs

POST/api/v1/admin/tickets

Request body application/json: OpenBody

Responses: 200 · 422

Handler admin_open in crates/pelty-api/src/routes/tickets.rs

GET/api/v1/admin/tickets/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler admin_get in crates/pelty-api/src/routes/tickets.rs

PATCH/api/v1/admin/tickets/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: UpdateBody

Responses: 200 · 404 · 422

Handler admin_update in crates/pelty-api/src/routes/tickets.rs

DELETE/api/v1/admin/tickets/{id}/messages/{mid}
ParameterInRequiredDescription
idpathtrue
midpathtrue

Responses: 200 · 404 · 409

Handler admin_delete_message in crates/pelty-api/src/routes/tickets.rs

PUT/api/v1/admin/tickets/{id}/messages/{mid}
ParameterInRequiredDescription
idpathtrue
midpathtrue

Request body application/json: EditMessage

Responses: 200 · 404 · 422

Handler admin_edit_message in crates/pelty-api/src/routes/tickets.rs

POST/api/v1/admin/tickets/{id}/reply
ParameterInRequiredDescription
idpathtrue

Request body application/json: ReplyBody

Responses: 200 · 404

Handler admin_reply in crates/pelty-api/src/routes/tickets.rs

GET/api/v1/client/ticket-departments

Responses: 200

Handler client_departments in crates/pelty-api/src/routes/tickets.rs

GET/api/v1/client/tickets
ParameterInRequiredDescription
pagequeryfalse
per_pagequeryfalse
qqueryfalse
statusqueryfalse

Responses: 200

Handler client_list in crates/pelty-api/src/routes/tickets.rs

POST/api/v1/client/tickets

Request body application/json: OpenBody

Responses: 200 · 422

Handler client_open in crates/pelty-api/src/routes/tickets.rs

GET/api/v1/client/tickets/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler client_get in crates/pelty-api/src/routes/tickets.rs

POST/api/v1/client/tickets/{id}/close
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler client_close in crates/pelty-api/src/routes/tickets.rs

POST/api/v1/client/tickets/{id}/reply
ParameterInRequiredDescription
idpathtrue

Request body application/json: ReplyBody

Responses: 200 · 404

Handler client_reply in crates/pelty-api/src/routes/tickets.rs

#super::usage

GET/api/v1/admin/services/{id}/usage
ParameterInRequiredDescription
idpathtrue

Responses: 200

Handler admin_usage in crates/pelty-api/src/routes/usage.rs

POST/api/v1/admin/services/{id}/usage
ParameterInRequiredDescription
idpathtrue

Request body application/json: RecordBody

Responses: 200 · 422

Handler record in crates/pelty-api/src/routes/usage.rs

GET/api/v1/admin/usage-metrics

Responses: 200

Handler metrics in crates/pelty-api/src/routes/usage.rs

POST/api/v1/admin/usage-metrics

Request body application/json: MetricInput

Responses: 200 · 409 · 422

Handler metric_create in crates/pelty-api/src/routes/usage.rs

DELETE/api/v1/admin/usage-metrics/{id}
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 409

Handler metric_delete in crates/pelty-api/src/routes/usage.rs

PUT/api/v1/admin/usage-metrics/{id}
ParameterInRequiredDescription
idpathtrue

Request body application/json: MetricInput

Responses: 200 · 404 · 422

Handler metric_update in crates/pelty-api/src/routes/usage.rs

POST/api/v1/admin/usage/bill

Responses: 200

Handler bill_now in crates/pelty-api/src/routes/usage.rs

POST/api/v1/admin/usage/sample

Responses: 200

Handler sample_now in crates/pelty-api/src/routes/usage.rs

GET/api/v1/client/services/{id}/usage
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 404

Handler client_usage in crates/pelty-api/src/routes/usage.rs

#super::vendor

POST/api/v1/admin/servers/{id}/vendor-catalog/syncPull the vendor catalog through the server's module.
ParameterInRequiredDescription
idpathtrue

Responses: 200 · 409

Handler sync in crates/pelty-api/src/routes/vendor.rs

GET/api/v1/admin/vendor-catalog
ParameterInRequiredDescription
server_idqueryfalse

Responses: 200

Handler list in crates/pelty-api/src/routes/vendor.rs

POST/api/v1/admin/vendor-catalog/{id}/import
ParameterInRequiredDescription
idpathtrue

Request body application/json: ImportBody

Responses: 200 · 409

Handler import in crates/pelty-api/src/routes/vendor.rs

PUT/api/v1/admin/vendor-catalog/{id}/markup
ParameterInRequiredDescription
idpathtrue

Request body application/json: MarkupBody

Responses: 200 · 409

Handler reprice in crates/pelty-api/src/routes/vendor.rs

#super::webhooks

POST/api/v1/webhooks/{gateway}
ParameterInRequiredDescription
gatewaypathtrue

Request body application/json: string

Responses: 200 · 400 · 404

Handler receive in crates/pelty-api/src/routes/webhooks.rs

#support

GET/api/v1/admin/support/departmentsdepartmentsregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler departments in crates/pelty-api/src/routes/support_ext.rs

PUT/api/v1/admin/support/departments/{id}update departmentregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler update_department in crates/pelty-api/src/routes/support_ext.rs

POST/api/v1/admin/support/departments/{id}/pipepipe nowregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler pipe_now in crates/pelty-api/src/routes/support_ext.rs

GET/api/v1/admin/support/spam-rulesspam rulesregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler spam_rules in crates/pelty-api/src/routes/support_ext.rs

POST/api/v1/admin/support/spam-rulesadd spamregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler add_spam in crates/pelty-api/src/routes/support_ext.rs

DELETE/api/v1/admin/support/spam-rules/{id}del spamregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler del_spam in crates/pelty-api/src/routes/support_ext.rs

#themes

GET/api/v1/themes/{id}/assets/{*file}theme assetregistered route

Registered route without a hand-written schema. Access: public or per-handler.

Responses: default See handler source

Handler theme_asset in crates/pelty-api/src/routes/extensions.rs

#tickets

GET/api/v1/admin/tickets/{id}/timetime listregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler time_list in crates/pelty-api/src/routes/support_ext.rs

POST/api/v1/admin/tickets/{id}/timetime addregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler time_add in crates/pelty-api/src/routes/support_ext.rs

DELETE/api/v1/admin/tickets/{id}/time/{entry}time delregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler time_del in crates/pelty-api/src/routes/support_ext.rs

GET/api/v1/admin/tickets/{id}/watchersget watchersregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler get_watchers in crates/pelty-api/src/routes/support_ext.rs

PUT/api/v1/admin/tickets/{id}/watchersput watchersregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler put_watchers in crates/pelty-api/src/routes/support_ext.rs

#tlds

POST/api/v1/admin/tlds/bulk-adjustadmin tld adjustregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_tld_adjust in crates/pelty-api/src/routes/domains.rs

POST/api/v1/admin/tlds/copy-currencyadmin tld copyregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler admin_tld_copy in crates/pelty-api/src/routes/domains.rs

#translations

DELETE/api/v1/admin/translations
ParameterInRequiredDescription
langquerytrue
keyquerytrue

Responses: 200 · 404

Handler remove in crates/pelty-api/src/translations.rs

GET/api/v1/admin/translations
ParameterInRequiredDescription
langquerytrue
qqueryfalse
filterqueryfalseall (default), overridden, or missing (no shipped text in this language).
pagequeryfalse
per_pagequeryfalse

Responses: 200

Handler list in crates/pelty-api/src/translations.rs

PUT/api/v1/admin/translations

Request body application/json: PutBody

Responses: 200 · 422

Handler put in crates/pelty-api/src/translations.rs

#trusted-proxy

GET/api/v1/admin/security/trusted-proxies

Responses: 200 · 403

Handler crate::trusted_proxy::get_cfg in crates/pelty-api/src/security.rs

PUT/api/v1/admin/security/trusted-proxies

Request body application/json: TrustedProxies

Responses: 200 · 422

Handler crate::trusted_proxy::put_cfg in crates/pelty-api/src/security.rs

#updates

GET/api/v1/admin/system/updates

Responses: 200

Handler get_status in crates/pelty-api/src/updates.rs

PUT/api/v1/admin/system/updates

Request body application/json: UpdateConfig

Responses: 200 · 422

Handler put_config in crates/pelty-api/src/updates.rs

POST/api/v1/admin/system/updates/check

Responses: 200

Handler check_now in crates/pelty-api/src/updates.rs

#users

POST/api/v1/admin/users/{id}/login-aslogin as userregistered route

Registered route without a hand-written schema. Access: staff.

Responses: default See handler source

Handler login_as_user in crates/pelty-api/src/security.rs