Customer Portal API
22 endpoints — authenticate with a workspace access token via Authorization: Bearer. See the API introduction for base URLs, pagination, and rate limits.
Get Customer
GET/api/customer-portal/customers/me
Get authenticated customer. **Scopes**: `customer_portal:read` `customer_portal:write`
Returns 200 with CustomerPortalCustomer.
curl -X GET \
https://api.rapidly.tech/api/customer-portal/customers/me \
-H "Authorization: Bearer $RAPIDLY_ACCESS_TOKEN"Update Customer
PATCH/api/customer-portal/customers/me
Update authenticated customer.
Request body CustomerPortalCustomerUpdate
Billing Name
Returns 200 with CustomerPortalCustomer.
curl -X PATCH \
https://api.rapidly.tech/api/customer-portal/customers/me \
-H "Authorization: Bearer $RAPIDLY_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'Get Authenticated Portal User
GET/api/customer-portal/customer-session/user
Return info about the currently authenticated portal user. **Scopes**: `customer_portal:read` `customer_portal:write`
Returns 200 with PortalAuthenticatedUser.
curl -X GET \
https://api.rapidly.tech/api/customer-portal/customer-session/user \
-H "Authorization: Bearer $RAPIDLY_ACCESS_TOKEN"Introspect Customer Session
GET/api/customer-portal/customer-session/introspect
Introspect the current session and return its information. **Scopes**: `customer_portal:read` `customer_portal:write`
Returns 200 with CustomerCustomerSession.
curl -X GET \
https://api.rapidly.tech/api/customer-portal/customer-session/introspect \
-H "Authorization: Bearer $RAPIDLY_ACCESS_TOKEN"Customer Portal.Customer Session.Request
POST/api/customer-portal/customer-session/request
Request body CustomerSessionCodeRequest
Workspace Id
Optional customer ID for disambiguation when multiple customers share the same email.
Returns 202 with object.
curl -X POST \
https://api.rapidly.tech/api/customer-portal/customer-session/request \
-H "Authorization: Bearer $RAPIDLY_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'Customer Portal.Customer Session.Authenticate
POST/api/customer-portal/customer-session/authenticate
Request body CustomerSessionCodeAuthenticateRequest
Code
Returns 200 with CustomerSessionCodeAuthenticateResponse.
curl -X POST \
https://api.rapidly.tech/api/customer-portal/customer-session/authenticate \
-H "Authorization: Bearer $RAPIDLY_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'List File Sharing Sessions
GET/api/customer-portal/file-sharing/sessions
List file sharing sessions for the authenticated member's workspace. **Scopes**: `customer_portal:read` `customer_portal:write`
Query parameters
Page number, defaults to 1.
Size of a page, defaults to 10. Maximum is 100.
Sorting criterion. Several criteria can be used simultaneously and will be applied in order. Add a minus sign `-` before the criteria name to sort by descending order.
Returns 200 with PaginatedList_FileShareSessionSchema_.
curl -X GET \
https://api.rapidly.tech/api/customer-portal/file-sharing/sessions \
-H "Authorization: Bearer $RAPIDLY_ACCESS_TOKEN"Get File Sharing Session
GET/api/customer-portal/file-sharing/sessions/{id}
Get a file sharing session by ID. **Scopes**: `customer_portal:read` `customer_portal:write`
Path parameters
Returns 200 with FileShareSessionSchema.
curl -X GET \
https://api.rapidly.tech/api/customer-portal/file-sharing/sessions/{id} \
-H "Authorization: Bearer $RAPIDLY_ACCESS_TOKEN"List Session Downloads
GET/api/customer-portal/file-sharing/sessions/{id}/downloads
List downloads for a file sharing session. **Scopes**: `customer_portal:read` `customer_portal:write`
Path parameters
Returns 200 with FileShareDownloadSchema[].
curl -X GET \
https://api.rapidly.tech/api/customer-portal/file-sharing/sessions/{id}/downloads \
-H "Authorization: Bearer $RAPIDLY_ACCESS_TOKEN"List Session Payments
GET/api/customer-portal/file-sharing/sessions/{id}/payments
List payments for a file sharing session. **Scopes**: `customer_portal:read` `customer_portal:write`
Path parameters
Returns 200 with FileSharePaymentSchema[].
curl -X GET \
https://api.rapidly.tech/api/customer-portal/file-sharing/sessions/{id}/payments \
-H "Authorization: Bearer $RAPIDLY_ACCESS_TOKEN"List Members
GET/api/customer-portal/members
List all members of the customer's team. Only available to owners and billing managers of team customers.
Returns 200 with CustomerPortalMember[].
curl -X GET \
https://api.rapidly.tech/api/customer-portal/members \
-H "Authorization: Bearer $RAPIDLY_ACCESS_TOKEN"Add Member
POST/api/customer-portal/members
Add a new member to the customer's team. Only available to owners and billing managers of team customers. Rules: - Cannot add a member with the owner role (there must be exactly one owner) - If a member with this email already exists, the existing member is returned
Request body CustomerPortalMemberCreate
The email address of the new member.
Display name (optional).
Hierarchical role within a customer team.
Returns 201 with CustomerPortalMember.
curl -X POST \
https://api.rapidly.tech/api/customer-portal/members \
-H "Authorization: Bearer $RAPIDLY_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'Update Member
PATCH/api/customer-portal/members/{id}
Update a member's role. Only available to owners and billing managers of team customers. Rules: - Cannot modify your own role (to prevent self-demotion) - Customer must have exactly one owner at all times
Path parameters
Request body CustomerPortalMemberUpdate
The new role for the member.
Returns 200 with CustomerPortalMember.
curl -X PATCH \
https://api.rapidly.tech/api/customer-portal/members/{id} \
-H "Authorization: Bearer $RAPIDLY_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'Remove Member
DELETE/api/customer-portal/members/{id}
Remove a member from the team. Only available to owners and billing managers of team customers. Rules: - Cannot remove yourself - Cannot remove the only owner
Path parameters
Returns 204 with unknown.
curl -X DELETE \
https://api.rapidly.tech/api/customer-portal/members/{id} \
-H "Authorization: Bearer $RAPIDLY_ACCESS_TOKEN"Customer Portal.Oauth Accounts.Authorize
GET/api/customer-portal/oauth-accounts/authorize
**Scopes**: `customer_portal:write`
Query parameters
Platforms a customer may link for single sign-on.
Returns 200 with AuthorizeResponse.
curl -X GET \
https://api.rapidly.tech/api/customer-portal/oauth-accounts/authorize \
-H "Authorization: Bearer $RAPIDLY_ACCESS_TOKEN"Customer Portal.Oauth Accounts.Callback
GET/api/customer-portal/oauth-accounts/callback
**Scopes**: `customer_portal:write`
Query parameters
Returns 200 with object.
curl -X GET \
https://api.rapidly.tech/api/customer-portal/oauth-accounts/callback \
-H "Authorization: Bearer $RAPIDLY_ACCESS_TOKEN"List Payment Methods
GET/api/customer-portal/payment-methods
List all saved payment methods for the authenticated customer.
Returns 200 with PaymentMethodSchema[].
curl -X GET \
https://api.rapidly.tech/api/customer-portal/payment-methods \
-H "Authorization: Bearer $RAPIDLY_ACCESS_TOKEN"Add Payment Method
POST/api/customer-portal/payment-methods
Add a new payment method via Stripe SetupIntent. Returns ``succeeded`` with the saved payment method, or ``requires_action`` with a ``client_secret`` for 3D Secure.
Request body PaymentMethodCreate
Stripe.js confirmation token for the new payment method
Whether to set this as the default payment method
URL to redirect to after 3D Secure verification
Returns 201 with PaymentMethodCreateSucceededResponse | PaymentMethodCreateRequiresActionResponse.
curl -X POST \
https://api.rapidly.tech/api/customer-portal/payment-methods \
-H "Authorization: Bearer $RAPIDLY_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'Confirm Payment Method
POST/api/customer-portal/payment-methods/confirm
Complete the add-card flow after 3D Secure verification.
Request body PaymentMethodConfirm
The SetupIntent ID returned from the requires_action step
Whether to set this as the default payment method
Returns 201 with PaymentMethodCreateSucceededResponse | PaymentMethodCreateRequiresActionResponse.
curl -X POST \
https://api.rapidly.tech/api/customer-portal/payment-methods/confirm \
-H "Authorization: Bearer $RAPIDLY_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'Delete Payment Method
DELETE/api/customer-portal/payment-methods/{id}
Remove a saved payment method.
Path parameters
Returns 204 with unknown.
curl -X DELETE \
https://api.rapidly.tech/api/customer-portal/payment-methods/{id} \
-H "Authorization: Bearer $RAPIDLY_ACCESS_TOKEN"Set Default Payment Method
POST/api/customer-portal/payment-methods/{id}/default
Set a payment method as the customer's default.
Path parameters
Returns 200 with PaymentMethodSchema.
curl -X POST \
https://api.rapidly.tech/api/customer-portal/payment-methods/{id}/default \
-H "Authorization: Bearer $RAPIDLY_ACCESS_TOKEN"Get Workspace
GET/api/customer-portal/workspaces/{slug}
Get a customer portal's workspace by slug.
Path parameters
The workspace slug.
Returns 200 with CustomerWorkspaceData.
curl -X GET \
https://api.rapidly.tech/api/customer-portal/workspaces/{slug} \
-H "Authorization: Bearer $RAPIDLY_ACCESS_TOKEN"