Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/HelenaLM32/ECHO/llms.txt

Use this file to discover all available pages before exploring further.

ECHO gives you a full cultural marketplace in a few API calls. This guide walks you through registration, authentication, profile setup, and your first role-specific action. All examples use curl and assume the backend is running at http://localhost:8084.
1

Register an account

Create a new ECHO account by sending your email, username, and password to the registration endpoint.
curl -X POST http://localhost:8084/users/register \
  -H "Content-Type: application/json" \
  -d '{
    "email": "you@example.com",
    "username": "yourname",
    "password": "your_secure_password"
  }'
Prefer signing in with Google? Your frontend redirects the user to Google’s OAuth consent screen. After approval, your frontend callback page sends the authorization code to POST /auth/oauth/google to receive a JWT token. See Google OAuth Login for details.
2

Log in and get your token

After registering, log in to receive a JWT token. Include this token in the Authorization header for every subsequent request.
curl -X POST http://localhost:8084/users/login \
  -H "Content-Type: application/json" \
  -d '{
    "email": "you@example.com",
    "password": "your_secure_password"
  }'
The response contains your token and user details:
{
  "token": "eyJhbGciOiJIUzI1NiJ9...",
  "id": 42,
  "email": "you@example.com",
  "username": "yourname",
  "roles": ["USER"],
  "isActive": true,
  "avatarUrl": null
}
Store this token. All authenticated endpoints require the header:
Authorization: Bearer <token>
3

Set up your profile

Update your public profile with your name, bio, location, and social links. Replace {userId} with your numeric user ID returned at registration.
curl -X PUT http://localhost:8084/profiles/{userId} \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <token>" \
  -d '{
    "publicName": "Your Display Name",
    "bio": "A short description of who you are and what you do.",
    "location": "Barcelona, Spain",
    "linkedin": "https://linkedin.com/in/yourprofile",
    "instagram": "https://instagram.com/yourhandle",
    "twitter": "https://twitter.com/yourhandle",
    "experience": "10 years working in contemporary visual arts.",
    "calendarUrl": "https://cal.com/yourname"
  }'
calendarUrl is optional but recommended for Content Creators — it lets buyers schedule time with you directly from your profile.
4

Take your first action

Choose the tab that matches your role on ECHO.
As a Content Creator, you can publish a service listing for buyers to find, or add a portfolio project to showcase past work.Create a service listing
curl -X POST http://localhost:8084/services \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <token>" \
  -d '{
    "name": "Live Jazz Performance",
    "description": "Professional jazz trio available for corporate events.",
    "deliveryDuration": 1,
    "categoryId": 8,
    "price": 450.00
  }'
Add a portfolio projectFirst register the item, then create the project at POST /item-projects/register:
curl -X POST http://localhost:8084/item-projects/register \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <token>" \
  -d '{
    "id": 10,
    "blocks": "[]",
    "published": false,
    "slug": "festival-de-musica-2024"
  }'

Next steps

Platform roles

Read detailed documentation for your role on the platform.

Orders and payments

Learn how orders, messaging, and reviews work end to end.

Deploy ECHO

Set up your own ECHO instance with Docker Compose.

Build docs developers (and LLMs) love