Client Methods

Complete reference for AskVerdictClient methods: create, list, get, delete, stream verdicts and more.

1 min read
Share

The AskVerdictClient class provides methods for all API operations.

Verdicts

createVerdict

Create a new debate.

typescript
const result = await client.createVerdict({
  question: "Should we use microservices?",
  mode: "balanced",
  context: "We have a monolith serving 10k requests/sec",
  tags: ["architecture"],
});
// result.debate.id → "dbt_abc123"

getVerdict

Retrieve a specific debate with its verdict.

typescript
const { verdict } = await client.getVerdict("dbt_abc123");
// verdict.debate.status → "completed"
// verdict.debate.verdict.recommendation → "Stay monolithic"

listVerdicts

List debates with pagination and filtering.

typescript
const result = await client.listVerdicts({
  page: 1,
  limit: 20,
  status: "completed",
  sortBy: "createdAt",
  sortOrder: "desc",
});
// result.debates → DebateResponse[]
// result.pagination → { page, limit, total, totalPages }

deleteVerdict

Permanently delete a debate.

typescript
await client.deleteVerdict("dbt_abc123");

streamVerdict

Stream debate events in real-time. Returns an async iterable.

typescript
const stream = client.streamVerdict("dbt_abc123");
 
for await (const event of stream) {
  console.log(event.type, event);
}

See Streaming for detailed streaming usage.

Aliases

For convenience, debates can also be accessed with debate-prefixed methods:

typescript
// These are equivalent
await client.createVerdict(params);
await client.createDebate(params);
 
await client.getVerdict(id);
await client.getDebate(id);

User & Usage

getMe

Get the authenticated user's profile.

typescript
const user = await client.getMe();
// user.id, user.name, user.email, user.plan

getUsage

Get API usage statistics for the current key.

typescript
const usage = await client.getUsage();
// usage.totalRequests, usage.byEndpoint, usage.rateLimit

getBalance

Get credit balance information.

typescript
const balance = await client.getBalance();
// balance.credits, balance.plan

Votes & Polls

getVotes / castVote

Interact with argument votes on a debate.

typescript
const votes = await client.getVotes("dbt_abc123");
await client.castVote("dbt_abc123", argumentId, "up");

getPolls / createPoll / deletePoll

Manage polls on debates.

typescript
const polls = await client.getPolls("dbt_abc123");
const poll = await client.createPoll("dbt_abc123", {
  question: "Which argument was strongest?",
  options: ["Pro Round 1", "Con Round 2"],
});
await client.deletePoll("dbt_abc123", poll.id);

Error Handling

All methods throw on HTTP errors. Catch and inspect the error:

typescript
try {
  await client.createVerdict({ question: "" });
} catch (error) {
  if (error instanceof Error) {
    console.error(error.message);
    // "Validation error: Question is required"
  }
}

Was this page helpful?