Documentation Index
Fetch the complete documentation index at: https://x-preview-mintlify-weekly-changelog-1778710653.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
The SDK provides generic paginator utilities you can use with any endpoint that returns paginated responses. Methods return plain responses; you wrap them with a paginator.
import { Client, UserPaginator, PaginatedResponse, Schemas } from '@xdevplatform/xdk';
const client: Client = new Client({ bearerToken: 'your-bearer-token' });
// Wrap any list endpoint with proper typing
const followers: UserPaginator = new UserPaginator(
async (token?: string): Promise<PaginatedResponse<Schemas.User>> => {
const res = await client.users.getFollowers('<userId>', {
maxResults: 100,
paginationToken: token,
userFields: ['id','name','username'],
});
return {
data: res.data ?? [],
meta: res.meta,
includes: res.includes,
errors: res.errors
};
}
);
Manual paging
import { UserPaginator, Schemas } from '@xdevplatform/xdk';
await followers.fetchNext(); // first page
while (!followers.done) {
await followers.fetchNext(); // subsequent pages
}
const userCount: number = followers.users.length; // all fetched users
const firstUser: Schemas.User | undefined = followers.users[0];
const nextToken: string | undefined = followers.meta?.nextToken;
Async iteration
import { Schemas } from '@xdevplatform/xdk';
for await (const user of followers) {
const typedUser: Schemas.User = user;
console.log(typedUser.username); // fully typed access
}
Next page as a new instance
import { UserPaginator } from '@xdevplatform/xdk';
await followers.fetchNext();
if (!followers.done) {
const page2: UserPaginator = await followers.next(); // independent paginator starting at next page
await page2.fetchNext();
console.log(page2.users.length); // items from second page
}
Error handling and rate limits
import { UserPaginator, Schemas } from '@xdevplatform/xdk';
try {
for await (const item of followers) {
const user: Schemas.User = item;
// process user...
}
} catch (err: unknown) {
if (followers.rateLimited) {
console.error('Rate limited, backoff required');
// backoff / retry later
} else {
console.error('Pagination error:', err);
throw err;
}
}