List Public Guilds
Retrieve a paginated list of all public guilds. No authentication required.
Endpoint
GET /api/v2/guilds/public
Authentication
This endpoint is public and does not require authentication.
Description
Returns a paginated list of public guilds using cursor-based pagination. You can filter by name or admin ID and sort by various fields.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
size | number | Yes | Number of items per page (min: 1, max: 30) |
key | string | No | Cursor key for pagination |
direction | string | No | Cursor direction: forward or backward |
order | string | No | Sort order: asc or desc |
orderBy | string | No | Field to sort by: name, createdAt, updatedAt |
name | string | No | Filter by guild name (partial match) |
adminId | string | No | Filter by admin user ID |
Request Examples
Basic Request
GET /api/v2/guilds/public?size=10
With Filtering
GET /api/v2/guilds/public?size=10&name=Elite
With Sorting
GET /api/v2/guilds/public?size=10&orderBy=name&order=asc
With Cursor Pagination
GET /api/v2/guilds/public?size=10&key=guild-123&direction=forward
Response
Success Response (200)
{
"current": {
"size": 10,
"key": null,
"direction": null,
"order": "asc",
"orderBy": "name",
"query": null
},
"previous": null,
"next": {
"size": 10,
"key": "guild-456",
"direction": "forward",
"order": "asc",
"orderBy": "name",
"query": null
},
"data": [
{
"id": "guild-123",
"slug": "elite-gamers",
"name": "Elite Gamers Guild",
"description": "A community for competitive gamers",
"logo": "https://example.com/logo.png",
"website": "https://elitegamers.com",
"social": [
{
"service": "DISCORD",
"username": "elitegamers"
}
],
"size": 42,
"adminId": "user-456",
"createdAt": 1672531200000,
"updatedAt": 1704067200000
}
]
}
Error Response (400)
{
"message": "Invalid request parameters",
"status": 400
}
Response Fields
Pagination Fields
| Field | Type | Description |
|---|---|---|
current | object | Current pagination parameters |
previous | object | Previous page parameters (null if first) |
next | object | Next page parameters (null if last) |
data | array | Array of guild objects |
Guild Data Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique guild identifier |
slug | string | URL-friendly guild identifier |
name | string | Guild name |
description | string | Guild description |
logo | string | Guild logo URL (optional) |
website | string | Guild website URL (optional) |
social | object[] | Social media links (optional) |
size | number | Current member count |
adminId | string | User ID of the guild administrator |
createdAt | number | Creation timestamp (Unix ms) |
updatedAt | number | Last update timestamp (Unix ms) |
Usage Example
const response = await fetch("https://api.intraverse.io/api/v2/guilds/public?size=10");
const result = await response.json();
console.log(`Found ${result.data.length} guilds`);
result.data.forEach((guild) => {
console.log(`${guild.name} (${guild.slug}) - ${guild.size} members`);
});
// Handle pagination
if (result.next) {
const nextPage = await fetch(
`https://api.intraverse.io/api/v2/guilds/public?size=10&key=${result.next.key}&direction=forward`,
);
// Process next page...
}