Skip to main content

Ask

  • PoolKit finds the context on the device: the best matches for the question, or what recurs when nothing matches.
  • On iOS 26 with Apple Intelligence, Apple’s on-device model writes the answer and nothing leaves the phone.
  • When Apple’s model is there but cannot run, cloud assist writes the answer, under the same permission.
  • On other devices the answer is written by cloud assist, only when your configuration and the grant both allow it. Up to 40 things and excerpts are sent as text. Without that permission the call throws PoolError.cloudAssistNotAllowed.
  • answer.writtenBy says which of the two wrote it. answer.provenance is always inferred.
  • Citations are evidence identifiers from the device. An answer can only cite what it was given.
  • declined is true when the model would not answer, for example a question about health. text is then empty.
  • A question is 1 to 1,000 characters, counted as UTF-16 code units; PoolContext.questionMaximumLength holds the limit for your text field. An empty or longer question throws PoolError.invalidRequest.
  • While Pool’s service asks the SDK to wait, a cloud answer throws PoolError.rateLimited or PoolError.serviceUnavailable with the seconds left. Search, facets and recurring things keep answering on the device.

Show the answer as it is written

askUpdates runs the same checks, retrieval and writers as ask, and hands over the text while a model writes it.
  • .writing after partial text means the first model could not finish and the next one starts over. Drop what you showed.
  • The final .answer can be declined after partial text. Drop the partial text then too.
  • On the device, Apple’s model streams its words. With cloud assist, Pool’s service sends them as Server-Sent Events: see Service API.
  • Cost and permission are the same as ask.

Fill a profile

  • A profile always needs cloud assist, allowed by your configuration and by the grant. It sends up to 80 recurring things as text, never an image.
  • Every field comes back with a value and its evidence, or with the reason it was left empty. Nothing is filled without evidence.
  • Fields about health, religion, sexuality, ethnicity, politics, children, finances or credentials are always refused as sensitive.
  • The schema is a JSON Schema subset: an object at the root; type, properties, required, items, enum, description, title and additionalProperties: false; at most 5 levels, 100 fields and 32 KB. Anything else throws PoolError.invalidSchema before a request is made.
  • Fields are addressed by JSON Pointer, for example /sizes/shoe.

What they cost

An answer written on the device is free. An answer written by cloud assist is 10 units and a profile is 25. See pricing.