listModels method
List available models from Anthropic API
API Reference: https://docs.anthropic.com/en/api/models-list
Supports pagination with beforeId
, afterId
, and limit
parameters.
Returns a list of available models with their metadata.
Implementation
Future<List<AIModel>> listModels({
String? beforeId,
String? afterId,
int limit = 20,
}) async {
try {
final queryParams = <String, dynamic>{};
if (beforeId != null) queryParams['before_id'] = beforeId;
if (afterId != null) queryParams['after_id'] = afterId;
if (limit != 20) queryParams['limit'] = limit;
final endpoint = queryParams.isEmpty
? modelsEndpoint
: '$modelsEndpoint?${queryParams.entries.map((e) => '${e.key}=${e.value}').join('&')}';
final responseData = await client.getJson(endpoint);
final data = responseData['data'] as List?;
if (data == null) return [];
return data
.map((modelData) =>
AIModel.fromJson(modelData as Map<String, dynamic>))
.toList();
} catch (e) {
client.logger.warning('Failed to list models: $e');
return [];
}
}