openapi: 3.1.0
info:
title: Apple CloudKit Web Services Assets Records API
description: 'Best-effort OpenAPI 3.1 description of Apple CloudKit Web Services, the
REST surface that lets non-Apple-platform clients read and write data in
a CloudKit container''s public, private, or shared database. Operations
cover records, zones, subscriptions, assets, users, and database/zone
changes. Authentication uses either a CloudKit API token (for end-user
authenticated requests; the token is appended as the `ckAPIToken` query
parameter) or a server-to-server ECDSA signature (X-Apple-CloudKit-Request-*
headers) for backend access.
'
version: '1.0'
contact:
name: Apple CloudKit
url: https://developer.apple.com/library/archive/documentation/DataManagement/Conceptual/CloudKitWebServicesReference/index.html
servers:
- url: https://api.apple-cloudkit.com/database/1/{container}/{environment}/{database}
description: CloudKit Web Services database endpoint
variables:
container:
default: iCloud.com.example.myapp
description: CloudKit container identifier
environment:
default: development
enum:
- development
- production
database:
default: public
enum:
- public
- private
- shared
security:
- cloudKitApiToken: []
- serverToServer: []
tags:
- name: Records
paths:
/records/modify:
post:
summary: Create, update, or delete records
operationId: modifyRecords
tags:
- Records
responses:
'200':
description: Modified records
/records/query:
post:
summary: Query records
operationId: queryRecords
tags:
- Records
responses:
'200':
description: Query results
/records/lookup:
post:
summary: Look up records by name
operationId: lookupRecords
tags:
- Records
responses:
'200':
description: Records
/records/changes:
post:
summary: Fetch record changes
operationId: recordChanges
tags:
- Records
responses:
'200':
description: Changes
/records/resolve:
post:
summary: Resolve record information for share URLs
operationId: resolveRecords
tags:
- Records
responses:
'200':
description: Resolved records
/records/accept:
post:
summary: Accept share records
operationId: acceptShare
tags:
- Records
responses:
'200':
description: Share accepted
components:
securitySchemes:
cloudKitApiToken:
type: apiKey
in: query
name: ckAPIToken
description: 'CloudKit API token issued from the CloudKit dashboard, appended to
the request URL as `ckAPIToken`. Required for end-user authenticated
access via web auth tokens.
'
serverToServer:
type: apiKey
in: header
name: X-Apple-CloudKit-Request-SignatureV1
description: 'Server-to-server authentication uses ECDSA-signed requests with
`X-Apple-CloudKit-Request-KeyID`, `X-Apple-CloudKit-Request-ISO8601Date`,
and `X-Apple-CloudKit-Request-SignatureV1` headers.
'