Skip to navigation
What's new in the Minikai API.

Each release also ships as a versioned minikai SDK for Python and TypeScript, so the version numbers below match the SDK you install. We keep things backwards-compatible wherever we can, so pinning to a version is safe.

See which record attachments could not be read

v1.25.0 Record attachments now include unreadableReason when Minikai could not read the file’s text: refused when the reading model declined it, and failed for any other reason. Nothing in such a file is searchable, and the field is left out once the file is read.

recordsattachmentsschema

Errors are typed in the generated SDKs

v1.24.0 Every operation now documents its 401, 403 and 500 responses as ProblemDetails, so an upgraded SDK raises them as typed errors you can catch by status. GET and POST /api/v1/Records/export also declare their text/csv response.

sdksschema

Record an NHI number on a Mini

v1.23.0 IdentityKind gains nhi, the New Zealand National Health Index number, so a provider in New Zealand can identify a client by the number their care system already uses. Send it anywhere an identity is written, and it comes back on any Mini carrying one.

minisschema

Create label groups

v1.22.0 POST /api/v1/LabelGroups creates a label group for Minis or Records.

labels

Record versions expose state

v1.21.0 Each snapshot returned by GET /api/v1/Records/{id}/versions now carries state (active, draft, archived, deleted), the same token the record itself exposes, so a caller no longer has to derive it from searchable and archived. Both existing flags are unchanged.

recordsschema

Requests now carry documented limits

v1.20.0 List, batch and upload requests are now bounded, and a request above a limit returns 400 with the limit named in the response rather than being served. List endpoints accept at most 200 rows per request (limitBefore, limitAfter, pageSize), a batch accepts at most 2000 items, and the batch attachment endpoints now enforce the same 100 MB per-file and 500 MB total limits the single-record attachment endpoints have always applied. A multipart upload at the documented total size now succeeds where it previously failed against an undocumented framework limit of 128 MB.

breakingrelease

Numeric fields declare their type

v1.19.2 Counts, page sizes and totals now declare a type in the spec (the number, or the same value as a string) instead of carrying only a validation pattern, so a generated client describes them rather than falling back to an untyped value. The fields that can come back null, status on 400 responses and totalCount on paginated lists, are described as nullable for the first time. Behaviour is unchanged and upgrading is safe, though a strict type checker may now ask you to narrow one of these fields before doing arithmetic on it.

schemarelease

The API key instructions name the right screen

v1.19.1 Creating an API key is described correctly here and in the Getting started and Authentication guides: open Settings → Security in the Minikai app and create the key under API Keys. The old instructions named a Workspace Admin → Security & access screen that the app does not have. Behaviour is unchanged, so upgrading is safe.

fixrelease

Pick your data region

v1.19.0 Point a client at the region your workspace lives in, either Australia on https://api.minikai.com/minikai-public or the United Kingdom on https://api.minikai.co.uk/minikai-public. Both SDKs take the region as an environment argument, the API Reference lets you pick one before sending a request, and Australia stays the default.

sdksrelease

The Python and TypeScript SDKs build again

v1.17.1 Fixes the nullable model fields, LabelDto.rename and UpsertRecordDto.authorization among them, that made both generated SDKs invalid code, so minikai publishes again for Python and TypeScript. Behaviour is unchanged, so upgrading is safe.

sdksfixrelease

Download a Mini's profile picture or a skill's asset

v1.18.0 Download the image behind a Mini’s profilePictureUrl, or the file behind a skill asset’s url. Both fields always held a path, and now GET /Minis/{id}/profile-picture/{pictureId} and GET /Skills/{id}/assets/{assetId} are in the API and the SDKs so you can call it. These and the record attachment download now hand you the file itself in the SDKs, rather than a response with no type on it.

minisskillsattachmentsrelease

Deleting a label in use is refused instead of stranding it

v1.17.0 DELETE /Labels/{id} now returns a 409 while any record or Mini still carries the label, telling you how many do. Records and Minis reference a label by name, so deleting one in use used to leave that name on them while destroying the access grants attached to it. Clear the label off them first. A call that succeeds still returns 204 and the label disappears at once, but its grants are torn down in the background, so creating a label with the same name straight after can be refused until that finishes.

labelsfixrelease

Identify a Mini by NHS number

v1.16.0 Handles nhs as an identity kind so the NHS number a UK care provider knows a client by is stored and searchable alongside the Australian schemes. It reads back on the Mini like any other identity.

minisschema

Record filters reject a blank miniId with a 400

v1.15.0 Call GET /Records/filters/created-by, /updated-by or /states with a blank miniId and you get a 400 naming the field, where a blank value previously came back as a 500. All four /Records/filters/* operations now document that 400, so it is typed in the SDKs.

recordsfix

Profile pictures are served from the API, and accept four image types

v1.13.0 POST /Minis/{id}/profile-picture returns the application path the picture is served from rather than an internal storage location, and MiniDto.profilePictureUrl and SkillAssetDto.url carry the same style of path. Uploads now accept image/jpeg, image/png, image/gif and image/webp only; SVG and TIFF are rejected with a 400, because no browser paints either in an avatar.

minisschemarelease

Renaming a label moves its records and Minis

v1.14.0 Change a label’s name with PUT /api/v1/Labels/{id} and every record and Mini carrying it moves to the new name, so nothing is left holding a name the label no longer answers to. The move runs in the background, so the response carries a new rename field naming the previousName still being swept; it disappears once the move is done, and GET /api/v1/Labels reports the same field while you wait. Its presence is the whole signal, so poll until it goes.

labelsrelease

The processing record state is gone

v1.12.0 RecordState no longer has processing; a record is now active, draft, archived, or deleted, and new records come back active straight away. If you branch on or filter by state, drop the processing case (it is removed from RecordDto.state, the GET /Records states filter, and GET /Records/filters/states). Records created under the old state come back as active, so nothing is left unreadable.

recordsschema

Export Records across multiple Minis

v1.11.0 New POST /api/v1/Records/export returns one CSV covering the Records of one or more Minis in a single request. Send the Mini ids in the body (miniIds), with the same optional labels, states, startDate, endDate, and sortDescending filters as before. Each row leads with Mini Name, Mini ID, and Record ID so you can tell whose record is whose and feed the ids back into the API, and any Mini id outside your organisation or access is left out.

recordsexportrelease

Attachments no longer return uri

v1.10.0 Download an attachment with GET /api/v1/Records/{recordId}/attachments/{attachmentId}. The uri field on each attachment is removed: it held a storage-relative filename you could not fetch. It was a required field, so regenerate your SDK before upgrading.

attachmentsschema

See who authored a skill

v1.9.0 Read who created a skill from createdBy on the skill listing and detail responses, and who last changed it from updatedBy on the detail response. Both carry a user id, and are null for skills written before authorship was tracked.

schema