Skip to content

api.get()

Executes a GET request through the full WELD pipeline.

api.get(path, schema?, options?): WeldResponse<T>
Parameter Type Required Description
path keyof TRouter Yes Route path — autocompleted from your AppRouter
schema ZodSchema<T> No Zod schema for runtime validation. Omit for zero-config mode
options WeldRequestOptions No Per-request configuration

WeldResponse<T> — contains signal, promise, and abort.

const { promise } = api.get('v1/products')
const data = await promise // type: unknown
const { promise } = api.get('v1/products', z.array(ProductSchema))
const products = await promise // type: Product[]
const { promise } = api.get('v1/products', z.array(ProductSchema), {
query: { page: 1, limit: 20, category: 'electronics' },
})
const { signal } = api.get('v1/products', z.array(ProductSchema), {
headers: { 'X-Custom-Header': 'value' },
})
const { promise, abort } = api.get('v1/products', z.array(ProductSchema))
// Cancel after 2 seconds if not resolved
setTimeout(abort, 2000)
const products = await promise
const { signal } = api.get('v1/products', z.array(ProductSchema))
signal.status.subscribe((status) => {
console.log('Status changed:', status) // 'loading' → 'success'
})
signal.data.subscribe((products) => {
console.log('Products:', products)
})