Chainer Profiles
GET /chainers
List public chainer profiles with optional cursor-based pagination; when authenticated, the response may include additional relationship data.
Authentication: Optional JWT Bearer token Rate limit: --
Request
No path parameters. Supports optional cursor-based pagination via the meta.cursor value returned in the previous page's response. Including a Bearer token is optional and may enrich the response with relationship data.
Response
Response Example
{
"data": [
{
"username": "alice_j",
"fullName": "Alice Johnson",
"avatarUrl": "https://cdn.chainabit.com/avatars/alice.jpg",
"bio": "Building the future of productivity.",
"tagline": "Chainer since 2025",
"visibility": "public"
},
{
"username": "bob_dev",
"fullName": "Bob Smith",
"avatarUrl": "https://cdn.chainabit.com/avatars/bob.jpg",
"bio": "Full-stack developer and open source contributor.",
"tagline": "Ship fast, iterate faster",
"visibility": "public"
}
],
"meta": {
"total": 2,
"hasMore": true,
"cursor": "eyJ1c2VybmFtZSI6ImJvYl9kZXYifQ=="
},
"error": null
}Response Fields
| Field | Type | Description |
|---|---|---|
data[].username | string | Unique username |
data[].fullName | string | Display name |
data[].avatarUrl | string | Avatar image URL |
data[].bio | string | Profile bio |
data[].tagline | string | Short tagline |
data[].visibility | string | public or private |
meta.cursor | string | Pagination cursor for the next page |
meta.hasMore | boolean | Whether more results exist |
meta.total | number | Total result count |
Code Example
curl "https://api.chainabit.com/api/v1/chainers"const response = await fetch(`${BASE_URL}/chainers`, {
headers: {
// Optional: include token for personalized data
// "Authorization": `Bearer ${TOKEN}`
}
});
const data = await response.json();import requests
response = requests.get(
f"{BASE_URL}/chainers",
# Optional: include token for personalized data
# headers={"Authorization": f"Bearer {TOKEN}"}
)
data = response.json()GET /chainers/:username
Get a public chainer profile by username.
Authentication: Optional JWT Bearer token Rate limit: --
Request
| Path Parameter | Description |
|---|---|
username | Unique username of the chainer to look up |
Including a Bearer token is optional and may enrich the response with relationship data.
Response
Response Example
{
"data": {
"username": "alice_j",
"fullName": "Alice Johnson",
"avatarUrl": "https://cdn.chainabit.com/avatars/alice.jpg",
"bio": "Building the future of productivity.",
"tagline": "Chainer since 2025",
"visibility": "public"
},
"meta": null,
"error": null
}Response Fields
| Field | Type | Description |
|---|---|---|
data.username | string | Unique username |
data.fullName | string | Display name |
data.avatarUrl | string | Avatar image URL |
data.bio | string | Profile bio |
data.tagline | string | Short tagline |
data.visibility | string | public or private |
Code Example
curl "https://api.chainabit.com/api/v1/chainers/alice_j"const response = await fetch(`${BASE_URL}/chainers/alice_j`, {
headers: {
// Optional: include token for personalized data
// "Authorization": `Bearer ${TOKEN}`
}
});
const data = await response.json();import requests
response = requests.get(
f"{BASE_URL}/chainers/alice_j",
# Optional: include token for personalized data
# headers={"Authorization": f"Bearer {TOKEN}"}
)
data = response.json()GET /chainers/me
Get the authenticated user's own chainer profile, including private fields.
Authentication: JWT Bearer token required Rate limit: --
Request
No path or query parameters. Requires a valid Bearer token identifying the caller.
Response
Response Example
{
"data": {
"username": "alice_j",
"fullName": "Alice Johnson",
"avatarUrl": "https://cdn.chainabit.com/avatars/alice.jpg",
"bio": "Building the future of productivity.",
"tagline": "Chainer since 2025",
"visibility": "public",
"email": "alice@example.com",
"isReady": true
},
"meta": null,
"error": null
}Response Fields
| Field | Type | Description |
|---|---|---|
data.username | string | Unique username |
data.fullName | string | Display name |
data.avatarUrl | string | Avatar image URL |
data.bio | string | Profile bio |
data.tagline | string | Short tagline |
data.visibility | string | public or private |
data.email | string | Email address |
data.isReady | boolean | Whether profile setup is complete |
Code Example
curl "https://api.chainabit.com/api/v1/chainers/me" \
-H "Authorization: Bearer $TOKEN"const response = await fetch(`${BASE_URL}/chainers/me`, {
headers: {
"Authorization": `Bearer ${TOKEN}`
}
});
const data = await response.json();import requests
response = requests.get(
f"{BASE_URL}/chainers/me",
headers={"Authorization": f"Bearer {TOKEN}"}
)
data = response.json()