buildApiClient function creates a type safe HTTP client for interacting with the AgentStack platform API. It returns an object that groups all platform endpoints into a single client. Every method returns an ApiResult<T> object so you can handle errors without throwing, or use unwrapResult to throw an ApiErrorException on failure.
Initialization
Create an API client by callingbuildApiClient with configuration options:
Configuration Options
baseUrl(required): The base URL of your AgentStack server instance.fetch(optional): Custom fetch implementation. Required in Node.js < 18 or environments without global fetch support. Useful for adding authentication headers or custom request handling.
Example: Authenticated Client
In many applications, you will want to add authentication headers to requests:Response Handling
All API methods return aPromise<ApiResult<T>>:
unwrapResult also accepts an optional Zod schema if you want to validate against a more specific or stricter response shape:
Error Helpers
When you useunwrapResult, API errors throw ApiErrorException. Use the helper guards to handle specific cases:
Type Safety
All API methods are fully typed with TypeScript and validated with Zod schemas at runtime. This ensures response data matches the SDK types and catches API contract changes early.Endpoint Reference
ThebuildApiClient return value includes the following methods.
Each method returns a Promise<ApiResult<T>>. In the list below, the return type shows the T value for quick reference.
Contexts
listContexts({ query }: ListContextsRequest): ListContextsResponsecreateContext({ provider_id, metadata }: CreateContextRequest): CreateContextResponsereadContext({ context_id }: ReadContextRequest): ReadContextResponseupdateContext({ context_id, metadata }: UpdateContextRequest): UpdateContextResponsedeleteContext({ context_id }: DeleteContextRequest): DeleteContextResponselistContextHistory({ context_id, query }: ListContextHistoryRequest): ListContextHistoryResponsecreateContextHistory({ context_id, data }: CreateContextHistoryRequest): CreateContextHistoryResponsepatchContextMetadata({ context_id, metadata }: PatchContextMetadataRequest): PatchContextMetadataResponsecreateContextToken({ context_id, grant_context_permissions, grant_global_permissions }: CreateContextTokenRequest): CreateContextTokenResponse
Example: Create a Context and Token
Files
createFile({ context_id, file }: CreateFileRequest): CreateFileResponsereadFile({ context_id, file_id }: ReadFileRequest): ReadFileResponsereadFileContent({ context_id, file_id }: ReadFileContentRequest): ReadFileContentResponsedeleteFile({ context_id, file_id }: DeleteFileRequest): DeleteFileResponse
Example: Upload a File
Providers
listProviders({ query }: ListProvidersRequest): ListProvidersResponsecreateProvider({ location, agent_card, auto_stop_timeout_sec, origin, variables }: CreateProviderRequest): CreateProviderResponsereadProvider({ id }: ReadProviderRequest): ReadProviderResponsedeleteProvider({ id }: DeleteProviderRequest): DeleteProviderResponsepatchProvider({ id, location, agent_card, auto_stop_timeout_sec, origin, variables }: PatchProviderRequest): PatchProviderResponsereadProviderLogs({ id }: ReadProviderLogsRequest): ReadProviderLogsResponselistProviderVariables({ id }: ListProviderVariablesRequest): ListProviderVariablesResponseupdateProviderVariables({ id, variables }: UpdateProviderVariablesRequest): UpdateProviderVariablesResponsereadProviderByLocation({ location }: ReadProviderByLocationRequest): ReadProviderByLocationResponsepreviewProvider({ location, agent_card, auto_stop_timeout_sec, origin, variables }: PreviewProviderRequest): PreviewProviderResponse
Example: Update Provider Variables
Example: Streaming Provider Logs
readProviderLogs returns a ReadableStream<Uint8Array> in data:
Provider Builds
listProviderBuilds({ query }: ListProviderBuildsRequest): ListProviderBuildsResponsecreateProviderBuild({ location, build_configuration, on_complete }: CreateProviderBuildRequest): CreateProviderBuildResponsereadProviderBuild({ id }: ReadProviderBuildRequest): ReadProviderBuildResponsedeleteProviderBuild({ id }: DeleteProviderBuildRequest): DeleteProviderBuildResponsereadProviderBuildLogs({ id }: ReadProviderBuildLogsRequest): ReadProviderBuildLogsResponsepreviewProviderBuild({ location, build_configuration, on_complete }: PreviewProviderBuildRequest): PreviewProviderBuildResponse
Example: Create a Provider Build
Example: Streaming Provider Build Logs
readProviderBuildLogs returns a ReadableStream<Uint8Array> in data:
Model Providers
listModelProviders(): ListModelProvidersResponsecreateModelProvider({ api_key, base_url, type, name, description, watsonx_project_id, watsonx_space_id }: CreateModelProviderRequest): CreateModelProviderResponsereadModelProvider({ model_provider_id }: ReadModelProviderRequest): ReadModelProviderResponsedeleteModelProvider({ model_provider_id }: DeleteModelProviderRequest): DeleteModelProviderResponsematchModelProviders({ suggested_models, capability, score_cutoff }: MatchModelProvidersRequest): MatchModelProvidersResponse
Example: Match Model Providers
Connectors
listConnectors(): ListConnectorsResponsecreateConnector({ match_preset, url, client_id, client_secret, metadata }: CreateConnectorRequest): CreateConnectorResponsereadConnector({ connector_id }: ReadConnectorRequest): ReadConnectorResponsedeleteConnector({ connector_id }: DeleteConnectorRequest): DeleteConnectorResponseconnectConnector({ connector_id, redirect_url }: ConnectConnectorRequest): ConnectConnectorResponsedisconnectConnector({ connector_id }: DisconnectConnectorRequest): DisconnectConnectorResponselistConnectorPresets(): ListConnectorPresetsResponse
Example: Start Connector OAuth
Variables
listVariables(): ListVariablesResponseupdateVariables({ variables }: UpdateVariablesRequest): UpdateVariablesResponse
Example: Update Variables
Configuration
readSystemConfiguration(): ReadSystemConfigurationResponseupdateSystemConfiguration({ default_embedding_model, default_llm_model }: UpdateSystemConfigurationRequest): UpdateSystemConfigurationResponse
Example: Update System Configuration
Users
readUser(): ReadUserResponse
Example: Read Current User
User Feedback
createUserFeedback({ provider_id, context_id, task_id, message, rating, comment, comment_tags }: CreateUserFeedbackRequest): CreateUserFeedbackResponse
Example: Submit Feedback
Next Steps
- Extensions for service and UI extension handling