Plixstar
API Reference

Account

GET
/api/v1/account/wishlist

Newest first. product_image resolved via public-bucket helper.

Authorization

better-auth.session_token
better-auth.session_token<token>

In: cookie

Response Body

application/json

curl -X GET "https://example.com/api/v1/account/wishlist"
[  {    "id": "string",    "name": "string",    "slug": "string",    "price": "string",    "image_url": "string",    "avg_rating": "string",    "store_id": "string",    "store_name": "string"  }]
GET
/api/v1/account/wishlist/ids

Authorization

better-auth.session_token
better-auth.session_token<token>

In: cookie

Response Body

application/json

curl -X GET "https://example.com/api/v1/account/wishlist/ids"
[  "string"]
GET
/api/v1/account/followed-stores

Authorization

better-auth.session_token
better-auth.session_token<token>

In: cookie

Response Body

application/json

curl -X GET "https://example.com/api/v1/account/followed-stores"
[  {    "id": "string",    "name": "string",    "slug": "string",    "logo_url": "string"  }]
GET
/api/v1/account/loyalty

Authorization

better-auth.session_token
better-auth.session_token<token>

In: cookie

Query Parameters

page?number
Range1 <= value <= 10000

Response Body

application/json

curl -X GET "https://example.com/api/v1/account/loyalty"
{  "balance": 0,  "totalEarned": 0,  "totalRedeemed": 0,  "transactions": [    {      "id": "string",      "type": {},      "points": 0,      "order_id": "string",      "created_at": "string"    }  ],  "totalPages": 0}
GET
/api/v1/account/returns

Authorization

better-auth.session_token
better-auth.session_token<token>

In: cookie

Response Body

application/json

curl -X GET "https://example.com/api/v1/account/returns"
[  {    "id": "string",    "order_id": "string",    "status": "string",    "reason": "string",    "comment": "string",    "created_at": "string",    "order_created_at": "string",    "items": [      {        "orderItemId": "string",        "productName": "string"      }    ],    "evidence_paths": [      "string"    ],    "rejection_reason": "string",    "vendor_reviewed_at": "string",    "received_at": "string",    "refunded_at": "string"  }]
POST
/api/v1/account/returns

Order must belong to caller + be status=delivered. All items in the request must share a single store_id (400 otherwise).

Authorization

better-auth.session_token
better-auth.session_token<token>

In: cookie

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X POST "https://example.com/api/v1/account/returns" \  -H "Content-Type: application/json" \  -d '{    "orderId": "b3e1eced-f2bd-4d8c-9765-fbc9d1d222d5",    "reason": "wrong_item",    "items": [      {        "orderItemId": "33207bce-c741-4896-a76b-8afcf6e4179a",        "productName": "string"      }    ]  }'
Empty
POST
/api/v1/account/wishlist/toggle

Returns { wishlisted: boolean } reflecting new state.

Authorization

better-auth.session_token
better-auth.session_token<token>

In: cookie

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X POST "https://example.com/api/v1/account/wishlist/toggle" \  -H "Content-Type: application/json" \  -d '{    "productId": "dcd53ddb-8104-4e48-8cc0-5df1088c6113"  }'
Empty
DELETE
/api/v1/account/followed-stores/{storeId}

Authorization

better-auth.session_token
better-auth.session_token<token>

In: cookie

Path Parameters

storeId*string

Response Body

curl -X DELETE "https://example.com/api/v1/account/followed-stores/string"
Empty
PATCH
/api/v1/account/profile

Authorization

better-auth.session_token
better-auth.session_token<token>

In: cookie

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X PATCH "https://example.com/api/v1/account/profile" \  -H "Content-Type: application/json" \  -d '{    "fullName": "string"  }'
Empty
GET
/api/v1/account/followed-feed

status=live only. Newest first.

Authorization

better-auth.session_token
better-auth.session_token<token>

In: cookie

Query Parameters

page?number
Range1 <= value

Response Body

application/json

curl -X GET "https://example.com/api/v1/account/followed-feed"
{  "products": [    {      "id": "string",      "name": "string",      "slug": "string",      "price": "string",      "image_url": "string",      "avg_rating": "string",      "store_id": "string",      "store_name": "string"    }  ],  "totalPages": 0}
GET
/api/v1/account/addresses

Authorization

better-auth.session_token
better-auth.session_token<token>

In: cookie

Response Body

application/json

curl -X GET "https://example.com/api/v1/account/addresses"
[  {    "id": "string",    "customer_id": "string",    "label": "string",    "full_name": "string",    "phone": "string",    "address_line_1": "string",    "address_line_2": "string",    "city": "string",    "postcode": "string",    "state": "string",    "is_default": true,    "created_at": "string"  }]
POST
/api/v1/account/addresses

is_default=true unsets other defaults for the caller inside the same transaction.

Authorization

better-auth.session_token
better-auth.session_token<token>

In: cookie

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X POST "https://example.com/api/v1/account/addresses" \  -H "Content-Type: application/json" \  -d '{    "label": "string",    "full_name": "string",    "phone": "string",    "address_line_1": "string",    "city": "string",    "postcode": "string",    "state": "string"  }'
Empty
DELETE
/api/v1/account/addresses/{id}

Authorization

better-auth.session_token
better-auth.session_token<token>

In: cookie

Path Parameters

id*string

Response Body

curl -X DELETE "https://example.com/api/v1/account/addresses/string"
Empty
PUT
/api/v1/account/addresses/{id}

Authorization

better-auth.session_token
better-auth.session_token<token>

In: cookie

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X PUT "https://example.com/api/v1/account/addresses/string" \  -H "Content-Type: application/json" \  -d '{    "label": "string",    "full_name": "string",    "phone": "string",    "address_line_1": "string",    "city": "string",    "postcode": "string",    "state": "string"  }'
Empty
PATCH
/api/v1/account/addresses/{id}/default

Authorization

better-auth.session_token
better-auth.session_token<token>

In: cookie

Path Parameters

id*string

Response Body

curl -X PATCH "https://example.com/api/v1/account/addresses/string/default"
Empty
GET
/api/v1/account/loyalty-balance

Authorization

better-auth.session_token
better-auth.session_token<token>

In: cookie

Response Body

application/json

curl -X GET "https://example.com/api/v1/account/loyalty-balance"
{  "balance": 0}
PATCH
/api/v1/account/tin

Empty/null clears. Non-empty validated against TIN_REGEX (IG + 13 non-individual prefixes) and normalised (strip leading zeros for non-IG). Does NOT retroactively mutate orders.buyer_tin.

Authorization

better-auth.session_token
better-auth.session_token<token>

In: cookie

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X PATCH "https://example.com/api/v1/account/tin" \  -H "Content-Type: application/json" \  -d '{    "tin": "string"  }'
Empty