Follow creators, like Dyvas, and read public profiles and feeds. Every endpoint here requires a Bearer token except public profile lookups and reads.
Every route and HTTP method below was checked directly against the live ts-api source on August 13, 2026. Response bodies are illustrative examples, never captured responses.
Base URL
https://api.dyva.ai/v1/v1/social/follow/:user_idFollow a user. Returns 200 with the same body if you already follow them; 201 the first time.
Route and method verified directly against the live ts-api source on August 13, 2026.
Path and query parameters (1)
user_idstringRequiredResponse
Illustrative example, not a captured response{
"following": true
}Examples (1)
curl -X POST https://api.dyva.ai/v1/social/follow/usr_EXAMPLE0002 \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"/v1/social/follow/:user_idUnfollow a user. Always responds 200, even if the relationship didn't exist.
Route and method verified directly against the live ts-api source on August 13, 2026.
Path and query parameters (1)
user_idstringRequiredResponse
Illustrative example, not a captured response{
"following": false
}/v1/social/followersYour own followers, most recent first.
Route and method verified directly against the live ts-api source on August 13, 2026.
Path and query parameters (2)
limitintegerOptionaloffsetintegerOptionalResponse
Illustrative example, not a captured response{
"data": [
{
"id": "usr_EXAMPLE0002",
"display_name": "Synthwave Sam",
"username": "synthwave_sam",
"avatar_url": "https://cdn.dyva.ai/avatars/usr_EXAMPLE0002.webp",
"is_verified": false
}
],
"total": 84,
"limit": 20,
"offset": 0,
"has_more": true
}/v1/social/followingUsers you follow.
Route and method verified directly against the live ts-api source on August 13, 2026.
Path and query parameters (2)
limitintegerOptionaloffsetintegerOptionalResponse
Illustrative example, not a captured response{
"data": [
{
"id": "usr_EXAMPLE0002",
"display_name": "Echo Creator",
"username": "echo_creator",
"avatar_url": "https://cdn.dyva.ai/avatars/usr_EXAMPLE0002.webp",
"is_verified": false
}
],
"total": 84,
"limit": 20,
"offset": 0,
"has_more": true
}/v1/social/followers/:user_idAnother user's followers. No authentication required.
Route and method verified directly against the live ts-api source on August 13, 2026.
Path and query parameters (3)
user_idstringRequiredlimitintegerOptionaloffsetintegerOptionalResponse
Illustrative example, not a captured response{
"data": [
{
"id": "usr_EXAMPLE0002",
"display_name": "Synthwave Sam",
"username": "synthwave_sam",
"avatar_url": "https://cdn.dyva.ai/avatars/usr_EXAMPLE0002.webp",
"is_verified": false
}
],
"total": 84,
"limit": 20,
"offset": 0,
"has_more": true
}/v1/social/following/:user_idWho another user follows. No authentication required.
Route and method verified directly against the live ts-api source on August 13, 2026.
Path and query parameters (3)
user_idstringRequiredlimitintegerOptionaloffsetintegerOptionalResponse
Illustrative example, not a captured response{
"data": [
{
"id": "usr_EXAMPLE0002",
"display_name": "Echo Creator",
"username": "echo_creator",
"avatar_url": "https://cdn.dyva.ai/avatars/usr_EXAMPLE0002.webp",
"is_verified": false
}
],
"total": 84,
"limit": 20,
"offset": 0,
"has_more": true
}/v1/social/profile/:usernamePublic profile by username (or by user ID: the route accepts either and detects which one it received). Includes the user's public Dyvas and aggregate stats, not a follower/following list.
Route and method verified directly against the live ts-api source on August 13, 2026.
Path and query parameters (1)
usernamestringRequiredResponse
Illustrative example, not a captured response{
"id": "usr_EXAMPLE0003",
"display_name": "Echo Creator",
"username": "echo_creator",
"avatar_url": "https://cdn.dyva.ai/avatars/usr_EXAMPLE0003.webp",
"creator_bio": "Building conversational AI companions that feel alive.",
"is_verified": false,
"follower_count": 2341,
"following_count": 58,
"dyvas": [
{
"id": "dyva_EXAMPLE0001",
"slug": "brainstorm-buddy",
"name": "Brainstorm Buddy",
"tagline": "Your creative thinking partner",
"total_conversations": 8491,
"avg_rating": 4.7,
"like_count": 1204
}
],
"total_dyvas": 1,
"total_chats": 8491,
"total_likes": 1204,
"total_sparks": 0,
"total_tips": 0,
"created_at": "2025-11-02T08:14:00Z"
}/v1/social/users/searchSearch users by username or display name. Plain array, capped at 20 results, no ranking guarantee.
Route and method verified directly against the live ts-api source on August 13, 2026.
Path and query parameters (1)
qstringRequiredResponse
Illustrative example, not a captured response[
{
"id": "usr_EXAMPLE0003",
"display_name": "Echo Creator",
"username": "echo_creator",
"avatar_url": "https://cdn.dyva.ai/avatars/usr_EXAMPLE0003.webp",
"is_verified": false
}
]/v1/social/like/:dyva_idLike a Dyva. Returns 201 with the new count the first time, 200 with the same shape on repeat calls.
Route and method verified directly against the live ts-api source on August 13, 2026.
Path and query parameters (1)
dyva_idstringRequiredResponse
Illustrative example, not a captured response{
"liked": true,
"like_count": 1205
}/v1/social/like/:dyva_idRemove a like.
Route and method verified directly against the live ts-api source on August 13, 2026.
Path and query parameters (1)
dyva_idstringRequiredResponse
Illustrative example, not a captured response{
"liked": false,
"like_count": 1204
}/v1/social/likesDyvas you've liked, most recent first. Includes your private note and pin/hide state for each, plus whether you follow the creator.
Route and method verified directly against the live ts-api source on August 13, 2026.
Path and query parameters (2)
limitintegerOptionaloffsetintegerOptionalResponse
Illustrative example, not a captured response{
"data": [
{
"id": "dyva_EXAMPLE0001",
"slug": "brainstorm-buddy",
"name": "Brainstorm Buddy",
"tagline": "Your creative thinking partner",
"avatar_url": "https://cdn.dyva.ai/avatars/dyva_EXAMPLE0001.webp",
"avg_rating": 4.7,
"like_count": 1205,
"owner_username": "dyva_team",
"liked_at": "2026-03-09T15:01:44Z",
"pinned_at": null,
"hidden_at": null,
"collection_label": null,
"conversation_count": 3,
"creator_followed": false
}
],
"total": 23,
"limit": 20,
"offset": 0,
"has_more": true
}/v1/social/feedPosts from people you follow (and your own posts), newest first. This reads from the content-posts system, not from Dyva likes or conversations directly.
Route and method verified directly against the live ts-api source on August 13, 2026.
Path and query parameters (2)
limitintegerOptionaloffsetintegerOptionalResponse
Illustrative example, not a captured response{
"data": [
{
"id": "post_EXAMPLE0001",
"owner_id": "usr_EXAMPLE0003",
"display_name": "Echo Creator",
"username": "echo_creator",
"author_avatar": "https://cdn.dyva.ai/avatars/usr_EXAMPLE0003.webp",
"visibility": "public",
"status": "published",
"created_at": "2026-03-09T12:00:00Z"
}
],
"total": 56,
"limit": 20,
"offset": 0,
"has_more": true
}/v1/social/trending-tagsTags used across posts from the last 7 days, ranked by frequency. Plain array, capped at 20.
Route and method verified directly against the live ts-api source on August 13, 2026.
Response
Illustrative example, not a captured response[
{
"tag": "brainstorming",
"count": 47
},
{
"tag": "creative-writing",
"count": 33
}
]/v1/social/shares/mineConversations you've generated a public share link for. Share links themselves are created and revoked through the Conversations API (POST/DELETE /v1/conversations/:id/share), not here. This endpoint only lists the ones you already made.
Route and method verified directly against the live ts-api source on August 13, 2026.
Path and query parameters (2)
limitintegerOptionaloffsetintegerOptionalResponse
Illustrative example, not a captured response{
"data": [
{
"slug": "x7k2m9qp",
"conversation_id": "conv_EXAMPLE0001",
"title": "Planning the Q2 launch",
"view_count": 12,
"created_at": "2026-03-05T18:10:00Z"
}
],
"total": 1,
"limit": 20,
"offset": 0,
"has_more": false
}