---
title: "Changes to Create a chat completion"
method: POST
path: "/v2/ai/chat/completions"
---

# Changes to Create a chat completion

`POST /v2/ai/chat/completions`

> Every recorded change to this operation, newest first.

## Timeline

Changed in 3 of 17 revisions.

- **2026-10-02** `6ddd9ee0d523`: 7 warning, 1 info
- **2026-09-28** `2e2aab744d77`: 3 breaking, 6 warning, 3 info
- **2026-09-28** `4a9cd977f76a`: 25 breaking, 15 info

## Changes

- **2026-10-02** `6ddd9ee0d523`: 7 warning, 1 info
  - added the new `weekly_limit_reached` enum value to the `error/code/anyOf[subschema #1]/` response property for the response status `400`
  - added the new `weekly_limit_reached` enum value to the `error/code/anyOf[subschema #1]/` response property for the response status `401`
  - added the new `weekly_limit_reached` enum value to the `error/code/anyOf[subschema #1]/` response property for the response status `403`
  - added the new `weekly_limit_reached` enum value to the `error/code/anyOf[subschema #1]/` response property for the response status `413`
  - added the new `weekly_limit_reached` enum value to the `error/code/anyOf[subschema #1]/` response property for the response status `429`
  - added the new `weekly_limit_reached` enum value to the `error/code/anyOf[subschema #1]/` response property for the response status `500`
  - added the new `weekly_limit_reached` enum value to the `error/code/anyOf[subschema #1]/` response property for the response status `503`
  - added the new optional request property `max_completion_tokens`
- **2026-09-28** `2e2aab744d77`: 3 breaking, 6 warning, 3 info
  - removed the required property `status` from the response with the `401` status
  - removed the required property `status` from the response with the `413` status
  - removed the required property `status` from the response with the `500` status
  - removed the optional property `code` from the response with the `401` status
  - removed the optional property `code` from the response with the `413` status
  - removed the optional property `code` from the response with the `500` status
  - removed the optional property `message` from the response with the `401` status
  - removed the optional property `message` from the response with the `413` status
  - removed the optional property `message` from the response with the `500` status
  - added the required property `error` to the response with the `401` status
  - added the required property `error` to the response with the `413` status
  - added the required property `error` to the response with the `500` status
- **2026-09-28** `4a9cd977f76a`: 25 breaking, 15 info
  - the response property `choices` became optional for the status `200`
  - the response property `choices/items/finish_reason` became optional for the status `200`
  - the response property `choices/items/index` became optional for the status `200`
  - the response property `choices/items/message` became optional for the status `200`
  - the response property `choices/items/message/content` became optional for the status `200`
  - the response property `choices/items/message/role` became optional for the status `200`
  - the response property `created` became optional for the status `200`
  - the response property `error/code` became optional for the status `400`
  - the response property `error/code` became optional for the status `403`
  - the response property `error/code` became optional for the status `429`
  - the response property `error/code` became optional for the status `503`
  - the response property `id` became optional for the status `200`
  - the response property `model` became optional for the status `200`
  - the response property `object` became optional for the status `200`
  - the response property `usage` became optional for the status `200`
  - the response property `usage/completion_tokens` became optional for the status `200`
  - the response property `usage/prompt_tokens` became optional for the status `200`
  - the response property `usage/total_tokens` became optional for the status `200`
  - the `code` response's property type changed from `string` to no type for status `401`
  - the `code` response's property type changed from `string` to no type for status `413`
  - the `code` response's property type changed from `string` to no type for status `500`
  - the `error/code` response's property type changed from `string` to no type for status `400`
  - the `error/code` response's property type changed from `string` to no type for status `403`
  - the `error/code` response's property type changed from `string` to no type for status `429`
  - the `error/code` response's property type changed from `string` to no type for status `503`
  - added `subschema #1, subschema #2` to the `tool_choice` request property `oneOf` list
  - added the optional property `error/param` to the response with the `400` status
  - added the optional property `error/param` to the response with the `403` status
  - added the optional property `error/param` to the response with the `429` status
  - added the optional property `error/param` to the response with the `503` status
  - added `#/components/schemas/ErrorCode, subschema #2` to the `code` response property `anyOf` list for the response status `401`
  - added `#/components/schemas/ErrorCode, subschema #2` to the `code` response property `anyOf` list for the response status `413`
  - added `#/components/schemas/ErrorCode, subschema #2` to the `code` response property `anyOf` list for the response status `500`
  - added `subschema #1, subschema #2` to the `error/code` response property `anyOf` list for the response status `400`
  - added `subschema #1, subschema #2` to the `error/code` response property `anyOf` list for the response status `403`
  - added `subschema #1, subschema #2` to the `error/code` response property `anyOf` list for the response status `429`
  - added `subschema #1, subschema #2` to the `error/code` response property `anyOf` list for the response status `503`
  - the `code` response's property pattern `^[A-Z][A-Z0-9_]+$` was removed for the status `401`
  - the `code` response's property pattern `^[A-Z][A-Z0-9_]+$` was removed for the status `413`
  - the `code` response's property pattern `^[A-Z][A-Z0-9_]+$` was removed for the status `500`

---

[Operation](https://skmtc.dev/squarecloud/apis/square-cloud-api/docs/v2/ai/chat/completions/post.md) - [API](https://skmtc.dev/squarecloud/apis/square-cloud-api.md) - [Page](https://skmtc.dev/squarecloud/apis/square-cloud-api/changes/v2/ai/chat/completions/post)
