 
        Last updated: October 2025
MyTape is a private social network within the IuVe Project Ecosystem, created by Iurie Verejan and powered by ColibriPlus v2 (Laravel). This document describes the public and partner REST API for integrating web, mobile, and third‑party services with MyTape.
Status: Stable
Audience: First‑party (MyTape web/app), trusted partners, and approved community developers
Standards: REST/JSON over HTTPS, WebSockets (Reverb/Laravel WebSockets), OAuth2/Sanctum
https://api.mytape.live/v1https://staging-api.mytape.live/v1All requests must use HTTPS and include required headers.
Authorization: Bearer <token> — Sanctum Personal Access Token or OAuth2 access tokenAccept: application/vnd.mytape.v1+json — API versioning via media typeContent-Type: application/json — for JSON bodies (multipart when uploading files)X-Client-Version: <semver> — your app/build version (optional but recommended)X-Request-Id: <uuid> — idempotency/tracing (recommended)Accept: application/vnd.mytape.v1+json)v2).X-RateLimit-Limit, X-RateLimit-Remaining, Retry-After.?page=1&per_page=20 (default per_page=20, max 100)?cursor=<opaque>&limit=20meta and links.next/prev.200, 201, 204, 400, 401, 403, 404, 409, 422, 429, 500.POST, PUT, PATCH, DELETE) send a unique Idempotency-Key header to safely retry.MyTape supports Laravel Sanctum Personal Access Tokens (PAT) and OAuth2 (Authorization Code + PKCE) for mobile/partner apps.
POST /auth/register
201 Created →
POST /auth/login
200 OK → { "token": "<pat>", "user": { ... } }
GET /auth/me → current user profile
POST /auth/logout → revoke current token
GET /auth/tokens · POST /auth/tokens · DELETE /auth/tokens/{id}
Scopes (examples):
read — read‑onlywrite — create/update contentmarket — Market endpointswork — Work endpointsadmin:* — privileged/admin (restricted){ id, username, name, avatar_url, bio, location, website, created_at }{ id, type(image|video|audio), url, thumb_url, duration, width, height }{ id, author(User), text, media[], visibility, stats{likes,comments,reposts}, created_at }{ id, author, post_id, text, created_at }{ id, kind(like|applause|fire), user_id, post_id }{ follower_id, followee_id, status }{ id, title, company, type, location, tags[], description, salary, contact, status }{ id, title, price, currency, category, media[], location, description, contact }{ id, name, slug, logo_url, website, category, socials{}, verified }{ id, type, payload{}, read_at }GET /feed?cursor=<c>&limit=20
200 OK →
POST /posts
201 Created → { "id": 202, ... }
POST /media
file (binary), type=image|video|audiomedia.id to attach to posts.POST /posts/{id}/media
GET /posts/{id}PATCH /posts/{id} { "text": "edited" }DELETE /posts/{id} → 204 No ContentGET /posts/{id}/comments?cursor=...POST /posts/{id}/comments { "text": "great!" }DELETE /comments/{id}POST /posts/{id}/reactions { "kind": "like" }DELETE /posts/{id}/reactions/{kind}POST /users/{id}/followDELETE /users/{id}/followGET /users/{id}/followers · GET /users/{id}/followingGET /explore?topic=music&limit=20GET /users/@{username}
PATCH /me/profile
PATCH /me/privacy
POST /users/{id}/blockPOST /reports { "entity_type":"post","entity_id":202,"reason":"spam" }Note: MyTape is not an employer or intermediary. All deals occur directly between users.
GET /work/jobs?query=designer&location=remote&type=contract&tags=ui,figma&page=1&per_page=20
POST /work/jobs
GET /work/jobs/{id}PATCH /work/jobs/{id}DELETE /work/jobs/{id}POST /work/jobs/{id}/apply
Note: MyTape does not process payments; listings are informational with direct contact.
GET /market/listings?category=services&price_min=50&price_max=500&sort=-created_at&page=1
POST /market/listings
GET /market/listings/{id}PATCH /market/listings/{id}DELETE /market/listings/{id}POST /market/listings/{id}/saveDELETE /market/listings/{id}/saveGET /companies?query=audio&category=studio&verified=true&page=1
POST /companies
GET /companies/{id}PATCH /companies/{id} (owner/verifier)GET /search?q=deep+house&type=post,user,company,listing&limit=10
200 OK → grouped results by type.
GET /notifications?unread_only=truePOST /notifications/{id}/readPOST /notifications/read-allTypes include: follow, comment, mention, reaction, job_match, listing_message.
Private network: encrypted in transit, stored securely. Optional E2EE roadmap.
GET /dm/threadsPOST /dm/threads { "user_id": 42 }GET /dm/threads/{id}/messages?cursor=...POST /dm/threads/{id}/messages { "text": "Hi" , "media_ids": [55] }Uploads are handled via Laravel filesystem with storage backends (local/object storage/CDN). Videos are transcoded via FFmpeg workers.
POST /media (multipart) → returns { id, url, type, meta }GET /media/{id}DELETE /media/{id}Webhook (internal): media.transcoded → payload: { media_id, status, variants[] }
Powered by Laravel Reverb / WebSockets + Redis.
public.feed, public.trendspresence.user.{userId}private.dm.{threadId}, private.notifications.{userId}post.created, comment.created, reaction.createddm.messagenotification.createdAuth via /broadcasting/auth with bearer token.
Register at POST /developer/webhooks with { url, events[] }.
Events:
user.created, user.updatedpost.created, post.deletedcomment.created, comment.deletedlisting.created, job.createdmedia.transcodedDelivery: POST <your-url> with X-MyTape-Signature: sha256=<hmac> (shared secret).
Retry: exponential backoff up to 24h.
GET /admin/reports?status=openPOST /admin/actions/ban-user { "user_id": 42, "reason": "spam", "duration_days": 7 }POST /admin/actions/takedown { "entity_type":"post","entity_id":202 }GET /admin/audit-logs?actor=moderator&from=2025-10-01Access requires admin:* scope and IP allowlist.
Accept-Language: en, ro;q=0.9, ru;q=0.8Report vulnerabilities: security@mytape.live
GET /me/exportDELETE /me@mytape/sdk/oauth/token.https://dev.mytape.live (planned)support@mytape.livelegal@mytape.livesecurity@mytape.live© MyTape / IuVe Project Ecosystem — Operated by Reclama Verejan II. All rights reserved.