# SDK quick reference

> Every method signature in one place.


## Browser — `import { ds } from "@/lib/draftship"`

```
ds.entities.<Name>.list(sort?, limit?, skip?)              → Promise<T[]>
ds.entities.<Name>.filter(query, sort?, limit?, skip?)     → Promise<T[]>
ds.entities.<Name>.get(id)                                 → Promise<T>
ds.entities.<Name>.create(data)                            → Promise<T>
ds.entities.<Name>.bulkCreate(items)                       → Promise<T[]>
ds.entities.<Name>.update(id, data)                        → Promise<T>
ds.entities.<Name>.updateMany(query, data)                 → Promise<{ updated }>
ds.entities.<Name>.bulkUpdate(itemsWithId)                 → Promise<T[]>
ds.entities.<Name>.delete(id)                              → Promise<{ deleted }>
ds.entities.<Name>.deleteMany(query)                       → Promise<{ deleted }>
ds.entities.<Name>.count(query?)                           → Promise<number>
ds.entities.<Name>.subscribe(callback, query?)             → () => void   (live list)
ds.entities.<Name>.onChange(callback)                      → () => void   (each change)

ds.auth.register({ email, password, full_name? })          → Promise<DsUser>
ds.auth.loginViaEmailPassword(email, password)             → Promise<DsUser>
ds.auth.me()                                               → Promise<DsUser | null>
ds.auth.updateMe(data)                                     → Promise<DsUser>
ds.auth.isAuthenticated()                                  → Promise<boolean>
ds.auth.logout(redirectUrl?)                               → void

ds.functions.invoke(name, data?)                           → Promise<R>

ds.agents.list()                                           → Promise<{ name, description?, greeting? }[]>
ds.agents.createConversation(agentName)                    → Promise<DsConversation>
ds.agents.listConversations(agentName)                     → Promise<DsConversation[]>
ds.agents.getConversation(conversationId)                  → Promise<DsConversation>
ds.agents.sendMessage(conversationId, content)             → Promise<DsAgentMessage>
ds.analytics.track({ eventName, properties? })             → void

ds.integrations.Core.InvokeLLM({ prompt, response_json_schema? })  → Promise<string | R>
ds.integrations.Core.GenerateImage({ prompt })                     → Promise<{ url }>
ds.integrations.Core.UploadFile({ file })                          → Promise<{ file_url }>
ds.integrations.Core.SendEmail({ to, subject, body, from_name? })  → Promise<{ success }>
```

## Server — `import { … } from "@/lib/draftship-server"`

```
createServiceClient().entities.<Name>.*        (same as browser, minus subscribe/onChange/bulkUpdate; ignores rules)
createServiceClient().integrations.Core.*      (InvokeLLM, GenerateImage, SendEmail)
createServiceClient().log(message, level?, data?)
getUser(req)                                   → Promise<DsUser | null>
isAutomation(req)                              → boolean
json(data, status?)                            → Response
```
