powered by

API Reference

A complete reference of every HTTP endpoint available in your Anythink project, grouped by resource. All endpoints are relative to your project base URL: `https://api.my.anythink.cloud/org/{orgId}/`

Authentication

All endpoints require an Authorization header unless marked as public:

text
Authorization: Bearer <jwt_or_api_key>

API keys (ak_...) are generated from your project dashboard and work for server-to-server calls.


Entities

Every entity you create gets a full set of CRUD endpoints automatically.

http
GET    /entities/{entity}/items
GET    /entities/{entity}/items/{id}
POST   /entities/{entity}/items
PUT    /entities/{entity}/items/{id}
DELETE /entities/{entity}/items/{id}

List parameters

Parameter Type Description
limit integer Records per page (default 20)
page integer Page number (default 1)
filter[field] string Filter by field value
sort string Field to sort by
order string asc or desc

Search

http
GET  /search?q=&e=&page=&pageSize=          (authenticated)
GET  /search/public?q=&e=&page=&pageSize=   (unauthenticated)
Parameter Description
q Search query. Defaults to *
e Entity name to scope search (optional)
page Page number
pageSize Results per page (default 20)

Authentication

http
POST  /auth/v1/token          Sign in with email + password
POST  /auth/v1/refresh        Refresh an expired JWT
GET   /auth/v1/google/authorize    Start Google OAuth flow
POST  /auth/v1/google/callback     Complete Google OAuth

Users

http
GET    /users              List all users
GET    /users/me           Current authenticated user
GET    /users/{id}         Get a user by ID
POST   /users              Create a user (invite)
PUT    /users/{id}         Update a user
DELETE /users/{id}         Delete a user

Roles

http
GET    /roles              List roles
POST   /roles              Create a role
PUT    /roles/{id}         Update a role
DELETE /roles/{id}         Delete a role

Files

http
GET    /files                  List files
GET    /files/{id}             Get file metadata
GET    /files/{id}/get         Download the file (authenticated)
GET    /files/{id}/public      Retrieve public file (no auth required)
POST   /files                  Upload a file
DELETE /files/{id}             Delete a file
DELETE /files                  Bulk delete files

Upload via multipart/form-data. Use ?entityId=&fieldName= query params to attach the file to a record on upload.


Workflows

http
GET    /workflows              List workflows
GET    /workflows/{id}         Get a workflow
POST   /workflows              Create a workflow
PUT    /workflows/{id}         Update a workflow
DELETE /workflows/{id}         Delete a workflow
POST   /workflows/{id}/trigger Run a workflow manually
POST   /workflows/endpoint/{route}   API trigger endpoint (custom route)

Payments

http
GET    /integrations/anythinkpay/payments                        List payments
GET    /integrations/anythinkpay/payments/{id}                   Get payment
GET    /integrations/anythinkpay/payments/status/{status}        Filter by status
POST   /integrations/anythinkpay/payments                        Create payment intent
POST   /integrations/anythinkpay/payments/charge-payment-method  Charge saved card
POST   /integrations/anythinkpay/payments/payment-intent/{id}/confirm    Confirm intent
POST   /integrations/anythinkpay/payments/payment-intent/{id}/capture    Capture intent
GET    /integrations/anythinkpay/payments/payment-intent/{id}    Get intent status

Stripe Connect

http
GET    /integrations/anythinkpay/stripe-connect            Account status
POST   /integrations/anythinkpay/stripe-connect            Create account
POST   /integrations/anythinkpay/stripe-connect/onboarding Get onboarding link
GET    /integrations/anythinkpay/stripe-connect/fees       Platform fee config
POST   /integrations/anythinkpay/stripe-connect/fees/calculate  Calculate fee

Payment Methods

http
GET    /integrations/anythinkpay/payment-methods                         List saved methods
GET    /integrations/anythinkpay/payment-methods/{id}                    Get by ID
POST   /integrations/anythinkpay/payment-methods/setup-intent            Create setup intent
DELETE /integrations/anythinkpay/payment-methods/{id}                    Remove

Menus

http
GET    /menus/my           Get the current user's menu
GET    /menus              List all menus
GET    /menus/{id}         Get a menu with items
POST   /menus              Create a menu
POST   /menus/{id}/items   Add an item
PUT    /menus/{id}         Update a menu
PUT    /menus/{id}/items/{itemId}         Update an item
PUT    /menus/{id}/items/reorder          Reorder items
DELETE /menus/{id}                        Delete a menu
DELETE /menus/{id}/items/{itemId}         Delete an item

Email Templates

http
GET    /email-templates            List templates
GET    /email-templates/{type}     Get a template by type
PUT    /email-templates/{type}     Update a template

Template types: confirmation, invite, recovery, magic_link, email_change, added_to_tenant


Secrets

http
GET    /secrets            List secret names (not values)
POST   /secrets            Create a secret
PUT    /secrets/{name}     Update a secret value
DELETE /secrets/{name}     Delete a secret

Response format

All list endpoints return a consistent paginated envelope:

json
{
  "items": [...],
  "total_items": 42,
  "page": 1,
  "page_size": 20,
  "has_next_page": true
}

HTTP status codes

Code Meaning
200 OK — request succeeded
201 Created — record created successfully
400 Bad Request — invalid parameters or body
401 Unauthorised — missing or invalid token
403 Forbidden — valid token but insufficient permissions
404 Not Found — resource does not exist
409 Conflict — duplicate value (e.g. unique field)
500 Server Error — something went wrong on our side