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.

Items represent the base entity for all marketplace listings on ECHO. Every product or service on the platform is backed by an item record that stores shared metadata such as title, price, and category. Listing all items is restricted to administrators; individual creators manage their own items through the authenticated POST, PUT, and DELETE endpoints.
GET /items and GET /items/{id} are restricted to users with the ADMIN role. Creators access their own items through the service or project endpoints.

Get all items

This endpoint requires admin privileges. Requests without an admin role will be rejected.
curl -X GET http://localhost:8084/items \
  -H "Authorization: Bearer <token>"
GET /items Returns a list of all item records in the system.
id
number
required
Unique identifier for the item.
creator_id
number
required
ID of the creator who registered the item.
title
string
required
Item title. Maximum 150 characters.
description
string
Full description of the item.
base_price
number
Starting price for the item. May be null for items without a fixed price.
item_type
string
required
Either PRODUCT or SERVICE.
category_id
number
required
Foreign key referencing the category this item belongs to.

Get item by ID

This endpoint also requires admin privileges.
GET /items/{id} Returns a single item record by its ID.
id
number
required
The numeric ID of the item to retrieve.
curl -X GET http://localhost:8084/items/42 \
  -H "Authorization: Bearer <token>"

Register a new item

POST /items/register Creates a new item. Requires authentication. The authenticated user becomes the creator of the item.
title
string
required
Item title. Maximum 150 characters.
description
string
Full description of the item.
base_price
number
Starting price. Leave null for items without a fixed price.
item_type
string
required
Item classification. Must be either PRODUCT or SERVICE.
category_id
number
required
ID of the category this item belongs to. See Categories for available values.
curl -X POST http://localhost:8084/items/register \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"title":"Brand Identity Pack","description":"Complete brand identity including logo and guidelines","base_price":350.00,"item_type":"SERVICE","category_id":1}'
Response
{
  "id": 101,
  "creator_id": 7,
  "title": "Brand Identity Pack",
  "description": "Complete brand identity including logo and guidelines",
  "base_price": 350.00,
  "item_type": "SERVICE",
  "category_id": 1
}

Update an item

PUT /items/{id} Updates an existing item. Requires authentication.
id
number
required
The numeric ID of the item to update.
title
string
Updated title. Maximum 150 characters.
description
string
Updated description.
base_price
number
Updated base price.
item_type
string
Updated item type. Must be PRODUCT or SERVICE.
category_id
number
Updated category ID.
curl -X PUT http://localhost:8084/items/101 \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"base_price":400.00}'

Delete an item

DELETE /items/{id} Permanently deletes an item. Requires authentication.
id
number
required
The numeric ID of the item to delete.
Deleting an item is irreversible. Any associated services or projects linked to this item will lose their item reference.
curl -X DELETE http://localhost:8084/items/101 \
  -H "Authorization: Bearer <token>"

Build docs developers (and LLMs) love