Creates S3 signed URLs for uploading or downloading entity files. Supports both business and admin authentication flows.
PERS-api Documentation (2.0.12)
PERS API Documentation
This RESTful API enables seamless integration of Web3 loyalty, token management, and engagement features into your applications.
Usage Guidelines:
- RESTful Design: Resources are accessed via standard HTTP methods (GET, POST, PUT, DELETE) with predictable, resource-oriented URLs.
- Authentication: Secure access is enforced via Bearer Tokens (JWT) and Project Keys (defining the Tenant context).
- Data Format: All requests and responses utilize standard JSON formatting.
Explore the modules below for detailed endpoint specifications, schemas, and testing capabilities.
Download OpenAPI description
Overview
Languages
Servers
Mock server
https://docs.pers.ninja/_mock/swagger
Production API
https://api.pers.ninja/v2
File upload and management system for platform assets including campaign images, user avatars, and document attachments with secure storage and access control.
File Operations:
•
Secure Upload:
File upload with type validation and security scanning
•
Asset Management:
Organize and manage platform media assets
•
Access Control:
Role-based file access and sharing permissions
•
CDN Integration:
Fast global file delivery through content delivery networks
•
File Processing:
Automatic image resizing and format optimization
Bodyapplication/jsonrequired
The signed url type, GET or PUT. PUT is used for uploading files, GET is used for downloading files
Enum"GET""PUT"
- Mock serverhttps://docs.pers.ninja/_mock/swagger/files/entity-storage-url
- Production APIhttps://api.pers.ninja/v2/files/entity-storage-url
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://docs.pers.ninja/_mock/swagger/files/entity-storage-url \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"entityType": "token",
"entityId": "string",
"signedUrlType": "GET",
"fileExtension": "string",
"fileName": "string"
}'Response
application/json
{ "signedUrl": "string" }