@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Weaviate REST API
@version 1.37.0-rc.0
@auth OAuth2
@endpoints 107
@hint download_for_search
@toc root(1), .well-known(3), replication(10), users(8), authz(18), objects(19), batch(3), graphql(2), meta(1), tokenize(1), schema(17), aliases(5), backups(7), export(3), cluster(1), nodes(2), tasks(1), classifications(2), mcp(3)

@group root
@endpoint GET /
@returns(200)

@endgroup

@group .well-known
@endpoint GET /.well-known/live
@returns(200)

@endpoint GET /.well-known/ready
@returns(200)
@errors {503}

@endpoint GET /.well-known/openid-configuration
@returns(200)
@errors {404, 500}

@endgroup

@group replication
@endpoint POST /replication/replicate
@required {body: map}
@returns(200)
@errors {400, 401, 403, 422, 500, 501}

@endpoint DELETE /replication/replicate
@returns(204)
@errors {400, 401, 403, 422, 500, 501}

@endpoint POST /replication/replicate/force-delete
@optional {body: map}
@returns(200)
@errors {400, 401, 403, 422, 500}

@endpoint GET /replication/replicate/{id}
@required {id: any}
@optional {includeHistory: any}
@returns(200)
@errors {401, 403, 404, 422, 500, 501}

@endpoint DELETE /replication/replicate/{id}
@required {id: any}
@returns(204)
@errors {401, 403, 404, 409, 422, 500, 501}

@endpoint GET /replication/replicate/list
@optional {targetNode: any, collection: any, shard: any, includeHistory: any}
@returns(200)
@errors {400, 401, 403, 500, 501}

@endpoint POST /replication/replicate/{id}/cancel
@required {id: any}
@returns(204)
@errors {401, 403, 404, 409, 422, 500, 501}

@endpoint GET /replication/sharding-state
@optional {collection: any, shard: any}
@returns(200)
@errors {400, 401, 403, 404, 500, 501}

@endpoint GET /replication/scale
@required {collection: any, replicationFactor: any}
@returns(200)
@errors {400, 401, 403, 404, 500, 501}

@endpoint POST /replication/scale
@required {body: map}
@returns(200)
@errors {400, 401, 403, 404, 500, 501}

@endgroup

@group users
@endpoint GET /users/own-info
@returns(200)
@errors {401, 500, 501}

@endpoint GET /users/db
@optional {includeLastUsedTime: any}
@returns(200)
@errors {401, 403, 500}

@endpoint GET /users/db/{user_id}
@required {user_id: any}
@optional {includeLastUsedTime: any}
@returns(200)
@errors {401, 403, 404, 422, 500}

@endpoint POST /users/db/{user_id}
@required {user_id: any}
@optional {body: map}
@returns(201)
@errors {400, 401, 403, 404, 409, 422, 500}

@endpoint DELETE /users/db/{user_id}
@required {user_id: any}
@returns(204)
@errors {400, 401, 403, 404, 422, 500}

@endpoint POST /users/db/{user_id}/rotate-key
@required {user_id: any}
@returns(200)
@errors {400, 401, 403, 404, 422, 500}

@endpoint POST /users/db/{user_id}/activate
@required {user_id: any}
@returns(200)
@errors {400, 401, 403, 404, 409, 422, 500}

@endpoint POST /users/db/{user_id}/deactivate
@required {user_id: any}
@optional {body: map}
@returns(200)
@errors {400, 401, 403, 404, 409, 422, 500}

@endgroup

@group authz
@endpoint GET /authz/roles
@returns(200)
@errors {400, 401, 403, 500}

@endpoint POST /authz/roles
@required {body: map}
@returns(201)
@errors {400, 401, 403, 409, 422, 500}

@endpoint POST /authz/roles/{id}/add-permissions
@required {id: any, body: map}
@returns(200)
@errors {400, 401, 403, 404, 422, 500}

@endpoint POST /authz/roles/{id}/remove-permissions
@required {id: any, body: map}
@returns(200)
@errors {400, 401, 403, 404, 422, 500}

@endpoint GET /authz/roles/{id}
@required {id: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint DELETE /authz/roles/{id}
@required {id: any}
@returns(204)
@errors {400, 401, 403, 500}

@endpoint POST /authz/roles/{id}/has-permission
@required {id: any, body: map}
@returns(200)
@errors {400, 401, 403, 422, 500}

@endpoint GET /authz/roles/{id}/users
@required {id: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /authz/roles/{id}/user-assignments
@required {id: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /authz/roles/{id}/group-assignments
@required {id: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /authz/users/{id}/roles
@required {id: any}
@returns(200)
@errors {400, 401, 403, 404, 422, 500}

@endpoint GET /authz/users/{id}/roles/{userType}
@required {id: any, userType: any}
@optional {includeFullRoles: any}
@returns(200)
@errors {400, 401, 403, 404, 422, 500}

@endpoint POST /authz/users/{id}/assign
@required {id: any, body: map}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /authz/users/{id}/revoke
@required {id: any, body: map}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /authz/groups/{id}/assign
@required {id: any, body: map}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /authz/groups/{id}/revoke
@required {id: any, body: map}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /authz/groups/{id}/roles/{groupType}
@required {id: any, groupType: any}
@optional {includeFullRoles: any}
@returns(200)
@errors {400, 401, 403, 404, 422, 500}

@endpoint GET /authz/groups/{groupType}
@required {groupType: any}
@returns(200)
@errors {400, 401, 403, 422, 500}

@endgroup

@group objects
@endpoint GET /objects
@optional {after: any, offset: any, limit: any, include: any, sort: any, order: any, class: any, tenant: any}
@returns(200)
@errors {400, 401, 403, 404, 422, 500}

@endpoint POST /objects
@required {body: map}
@optional {consistency_level: any}
@returns(200)
@errors {400, 401, 403, 422, 500}

@endpoint DELETE /objects/{id}
@required {id: any}
@optional {consistency_level: any, tenant: any}
@returns(204)
@errors {401, 403, 404, 500}

@endpoint GET /objects/{id}
@required {id: any}
@optional {include: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint PATCH /objects/{id}
@required {id: any}
@optional {body: map, consistency_level: any}
@returns(204)
@errors {400, 401, 403, 404, 422, 500}

@endpoint PUT /objects/{id}
@required {id: any, body: map}
@optional {consistency_level: any}
@returns(200)
@errors {401, 403, 404, 422, 500}

@endpoint HEAD /objects/{id}
@required {id: any}
@returns(204)
@errors {401, 403, 404, 500}

@endpoint GET /objects/{className}/{id}
@required {className: any, id: any}
@optional {include: any, consistency_level: any, node_name: any, tenant: any}
@returns(200)
@errors {400, 401, 403, 404, 422, 500}

@endpoint DELETE /objects/{className}/{id}
@required {className: any, id: any}
@optional {consistency_level: any, tenant: any}
@returns(204)
@errors {400, 401, 403, 404, 422, 500}

@endpoint PUT /objects/{className}/{id}
@required {className: any, id: any, body: map}
@optional {consistency_level: any}
@returns(200)
@errors {401, 403, 404, 422, 500}

@endpoint PATCH /objects/{className}/{id}
@required {className: any, id: any}
@optional {body: map, consistency_level: any}
@returns(204)
@errors {400, 401, 403, 404, 422, 500}

@endpoint HEAD /objects/{className}/{id}
@required {className: any, id: any}
@optional {consistency_level: any, tenant: any}
@returns(204)
@errors {401, 403, 404, 422, 500}

@endpoint POST /objects/{id}/references/{propertyName}
@required {id: any, propertyName: any, body: any}
@optional {tenant: any}
@returns(200)
@errors {401, 403, 422, 500}

@endpoint PUT /objects/{id}/references/{propertyName}
@required {id: any, propertyName: any, body: [any]}
@optional {tenant: any}
@returns(200)
@errors {401, 403, 422, 500}

@endpoint DELETE /objects/{id}/references/{propertyName}
@required {id: any, propertyName: any, body: any}
@optional {tenant: any}
@returns(204)
@errors {401, 403, 404, 500}

@endpoint POST /objects/{className}/{id}/references/{propertyName}
@required {className: any, id: any, propertyName: any, body: any}
@optional {consistency_level: any, tenant: any}
@returns(200)
@errors {400, 401, 403, 404, 422, 500}

@endpoint PUT /objects/{className}/{id}/references/{propertyName}
@required {className: any, id: any, propertyName: any, body: [any]}
@optional {consistency_level: any, tenant: any}
@returns(200)
@errors {400, 401, 403, 404, 422, 500}

@endpoint DELETE /objects/{className}/{id}/references/{propertyName}
@required {className: any, id: any, propertyName: any, body: any}
@optional {consistency_level: any, tenant: any}
@returns(204)
@errors {400, 401, 403, 404, 422, 500}

@endpoint POST /objects/validate
@required {body: map}
@returns(200)
@errors {401, 403, 422, 500}

@endgroup

@group batch
@endpoint POST /batch/objects
@required {body: map}
@optional {consistency_level: any}
@returns(200)
@errors {400, 401, 403, 422, 500}

@endpoint DELETE /batch/objects
@required {body: map}
@optional {consistency_level: any, tenant: any}
@returns(200)
@errors {400, 401, 403, 422, 500}

@endpoint POST /batch/references
@required {body: [any]}
@optional {consistency_level: any}
@returns(200)
@errors {400, 401, 403, 422, 500}

@endgroup

@group graphql
@endpoint POST /graphql
@required {body: map}
@returns(200)
@errors {401, 403, 422, 500}

@endpoint POST /graphql/batch
@required {body: [map]}
@returns(200)
@errors {401, 403, 422, 500}

@endgroup

@group meta
@endpoint GET /meta
@returns(200)
@errors {401, 403, 500}

@endgroup

@group tokenize
@endpoint POST /tokenize
@required {body: map}
@returns(200)
@errors {400, 401, 403, 422, 500}

@endgroup

@group schema
@endpoint GET /schema
@optional {consistency: any}
@returns(200)
@errors {401, 403, 500}

@endpoint POST /schema
@required {objectClass: map}
@returns(200)
@errors {401, 403, 422, 500}

@endpoint GET /schema/{className}
@required {className: any}
@optional {consistency: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint DELETE /schema/{className}
@required {className: any}
@returns(200)
@errors {400, 401, 403, 500}

@endpoint PUT /schema/{className}
@required {className: any, objectClass: map}
@returns(200)
@errors {401, 403, 404, 422, 500}

@endpoint POST /schema/{className}/properties
@required {className: any, body: map}
@returns(200)
@errors {401, 403, 422, 500}

@endpoint DELETE /schema/{className}/properties/{propertyName}/index/{indexName}
@required {className: any, propertyName: any, indexName: any}
@returns(200)
@errors {401, 403, 422, 500}

@endpoint POST /schema/{className}/properties/{propertyName}/tokenize
@required {className: any, propertyName: any, body: map}
@returns(200)
@errors {400, 401, 403, 404, 422, 500}

@endpoint DELETE /schema/{className}/vectors/{vectorIndexName}/index
@required {className: any, vectorIndexName: any}
@returns(200)
@errors {401, 403, 422, 500}

@endpoint GET /schema/{className}/shards
@required {className: any}
@optional {tenant: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint PUT /schema/{className}/shards/{shardName}
@required {className: any, shardName: any, body: any}
@returns(200)
@errors {401, 403, 404, 422, 500}

@endpoint POST /schema/{className}/tenants
@required {className: any, body: [map]}
@returns(200)
@errors {401, 403, 422, 500}

@endpoint PUT /schema/{className}/tenants
@required {className: any, body: [map]}
@returns(200)
@errors {401, 403, 422, 500}

@endpoint DELETE /schema/{className}/tenants
@required {className: any, tenants: [str]}
@returns(200)
@errors {401, 403, 422, 500}

@endpoint GET /schema/{className}/tenants
@required {className: any}
@optional {consistency: any}
@returns(200)
@errors {401, 403, 422, 500}

@endpoint HEAD /schema/{className}/tenants/{tenantName}
@required {className: any, tenantName: any}
@optional {consistency: any}
@returns(200)
@errors {401, 403, 404, 422, 500}

@endpoint GET /schema/{className}/tenants/{tenantName}
@required {className: any, tenantName: any}
@optional {consistency: any}
@returns(200)
@errors {401, 403, 404, 422, 500}

@endgroup

@group aliases
@endpoint GET /aliases
@optional {class: any}
@returns(200)
@errors {401, 403, 422, 500}

@endpoint POST /aliases
@required {body: map}
@returns(200)
@errors {401, 403, 422, 500}

@endpoint GET /aliases/{aliasName}
@required {aliasName: any}
@returns(200)
@errors {401, 403, 404, 422, 500}

@endpoint PUT /aliases/{aliasName}
@required {aliasName: any, body: map}
@returns(200)
@errors {401, 403, 404, 422, 500}

@endpoint DELETE /aliases/{aliasName}
@required {aliasName: any}
@returns(204)
@errors {401, 403, 404, 422, 500}

@endgroup

@group backups
@endpoint POST /backups/{backend}
@required {backend: any, body: any}
@returns(200)
@errors {401, 403, 422, 500}

@endpoint GET /backups/{backend}
@required {backend: any}
@optional {order: any}
@returns(200)
@errors {401, 403, 422, 500}

@endpoint GET /backups/{backend}/{id}
@required {backend: any, id: any}
@optional {bucket: any, path: any}
@returns(200)
@errors {401, 403, 404, 422, 500}

@endpoint DELETE /backups/{backend}/{id}
@required {backend: any, id: any}
@optional {bucket: any, path: any}
@returns(204)
@errors {401, 403, 422, 500}

@endpoint POST /backups/{backend}/{id}/restore
@required {backend: any, id: any, body: any}
@returns(200)
@errors {401, 403, 404, 422, 500}

@endpoint GET /backups/{backend}/{id}/restore
@required {backend: any, id: any}
@optional {bucket: any, path: any}
@returns(200)
@errors {401, 403, 404, 500}

@endpoint DELETE /backups/{backend}/{id}/restore
@required {backend: any, id: any}
@optional {bucket: any, path: any}
@returns(204)
@errors {401, 403, 422, 500}

@endgroup

@group export
@endpoint POST /export/{backend}
@required {backend: any, body: map}
@returns(200)
@errors {401, 403, 409, 422, 500}

@endpoint GET /export/{backend}/{id}
@required {backend: any, id: any}
@optional {path: any}
@returns(200)
@errors {401, 403, 404, 422, 500}

@endpoint DELETE /export/{backend}/{id}
@required {backend: any, id: any}
@optional {path: any}
@returns(204)
@errors {401, 403, 404, 409, 422, 500}

@endgroup

@group cluster
@endpoint GET /cluster/statistics
@returns(200)
@errors {401, 403, 422, 500}

@endgroup

@group nodes
@endpoint GET /nodes
@optional {output: any}
@returns(200)
@errors {401, 403, 404, 422, 500}

@endpoint GET /nodes/{className}
@required {className: any}
@optional {shardName: any, output: any}
@returns(200)
@errors {401, 403, 404, 422, 500}

@endgroup

@group tasks
@endpoint GET /tasks
@returns(200)
@errors {403, 500}

@endgroup

@group classifications
@endpoint POST /classifications/
@required {params: map}
@returns(201)
@errors {400, 401, 403, 500}

@endpoint GET /classifications/{id}
@required {id: any}
@returns(200)
@errors {401, 403, 404, 500}

@endgroup

@group mcp
@endpoint POST /mcp
@returns(200)

@endpoint GET /mcp
@returns(200)

@endpoint DELETE /mcp
@returns(200)

@endgroup

@end
