Documents API¶
Create a Document¶
- POST /v2/vaults/(string: vault_id)/documents¶
 
Note
This is a V2 Endpoint, so the path should start with v2
POST a JSON object with the following fields:
- document (req’d) - the JSON object you wish to store (e.g. {"foo": "bar"}). Must be an Object if schema_id present.
 - schema_id string(optional) - schema_id of the Schema definition by which the Document will be indexed against
 - owner_id string(optional) - owner_id of the newly created Document. If null or omitted, the newly created Document will be ownerless.
 
Request Headers:
- Authorization: API_KEY or ACCESS_TOKEN
 - Content-Type: application/json
 
Status Codes:
- 200: success
 
Example Request
curl https://api.truevault.com/v2/vaults/fd6b3fbf-41a0-4781-b179-32a34d854b92/documents \
    -X POST \
    -H 'Content-Type: application/json' \
    -u [API_KEY | ACCESS_TOKEN]: \
    -d '{"document": {"foo": "bar"}}'
Example Response
{
  "document": {
    "id": "f608a711-af4e-45c4-8742-af8d2a61a840",
    "owner_id": null,
    "vault_id": "fd6b3fbf-41a0-4781-b179-32a34d854b92"
  },
  "document_id": "f608a711-af4e-45c4-8742-af8d2a61a840",
  "result": "success",
  "transaction_id": "796de512-e939-4167-8d44-db05eb6804e1"
}
Deprecated version
A previous version of this endpoint used an HTML form post instead of a JSON object. It is still supported for now, but new development should use the version described above.
- document b64 string(req’d) - base64 encoded JSON Document string. Must be an Object if schema_id present.
 - schema_id string(optional) - schema_id of the Schema definition by which the Document will be indexed against
 - owner_id string(optional) - owner_id of the newly created Document. If null or omitted, the newly created Document will be ownerless.
 
Request Headers:
- Authorization API_KEY or ACCESS_TOKEN
 
Status Codes:
- 200: success
 - 400: invalid base64 encoded JSON Document
 
Example Request
curl https://api.truevault.com/v1/vaults/00000000-0000-0000-0000-000000000000/documents \
    -u [API_KEY | ACCESS_TOKEN]: \
    -X POST \
    -d "document=e30=&schema_id=00000000-0000-0000-0000-000000000000&owner_id=00000000-0000-0000-0000-000000000000"
Example Response
{
    "document_id": "00000000-0000-0000-0000-000000000000",
    "result": "success",
    "transaction_id": "00000000-0000-0000-0000-000000000000"
}
Read a Document¶
- GET /v2/vaults/(string: vault_id)/documents/(string: document_id)¶
 Get one or more documents.
Parameters: - vault_id – string(req’d)
 - document_id – string(req’d) comma-separated list of one or more document IDs
 
Note
This is a V2 Endpoint, so the path should start with v2
Note: This endpoint consumes an Operation for every document returned, so a request with 50 ids will count as 50 Operations.
Request Headers:
- Authorization: API_KEY or ACCESS_TOKEN
 
Status Codes:
- 200: success
 
Example Request
curl https://api.truevault.com/v2/vaults/fd6b3fbf-41a0-4781-b179-32a34d854b92/documents/11b887e6-1b71-419d-abda-2b8c2e4348e1 \
    -u [API_KEY | ACCESS_TOKEN]:
Example Response
{
  "documents": [
    {
      "document": {
        "foo": "baz"
      },
      "id": "11b887e6-1b71-419d-abda-2b8c2e4348e1",
      "owner_id": null
    }
  ],
  "result": "success",
  "transaction_id": "5e328ef2-a403-44b6-97ee-3f7abeed8356"
}
Deprecated version
- GET /v1/vaults/(string: vault_id)/documents/(string: document_id)¶
 Gets multiple Documents at once. If reading a single document, returns only the document’s contents as a base64-encoded string with no JSON framing.
Parameters: - vault_id – string(req’d)
 - document_id – string(req’d) - comma separated list of Document IDs to retrieve. At most 100 ids can be fetched at a time. Note: This endpoint consumes an Operation for every document returned, so a request with 50 ids will count as 50 Operations.
 
Request Headers: - Authorization – API_KEY or ACCESS_TOKEN
 
Status Codes: - 200 OK – success
 - 404 Not Found – Document does not exist
 
Example Request
curl https://api.truevault.com/v1/vaults/00000000-0000-0000-0000-000000000000/documents/00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000001 \ -X GET \ -u [API_KEY | ACCESS_TOKEN]:
Example Response (multiple documents)
{ "documents": [ { "document": "e30=", "id": "00000000-0000-0000-0000-000000000000", "owner_id": "00000000-0000-0000-0000-000000000000" }, { "document": "e30=", "id": "00000000-0000-0000-0000-000000000001", "owner_id": "00000000-0000-0000-0000-000000000000" } ], "result": "success", "transaction_id": "00000000-0000-0000-0000-000000000000" }
Example Response (single document)
e30=
List all Documents¶
- GET /v1/vaults/(string: vault_id)/documents¶
 List all Documents in a Vault.
Parameters: - vault_id – string(req’d)
 
Query Parameters: - full – boolean(optional, default: ‘false’) - retrieve entire Document contents. Note: If true, then this endpoint consumes an Operation for every document returned. If false, only a single Operation is used.
 - page – integer(optional, default: 1) - specify page number for paginated response
 - per_page – integer(optional, default: 100, max: 500) - specify number of results per page in paginated response
 
Request Headers: - Authorization – API_KEY or ACCESS_TOKEN
 
Status Codes: - 200 OK – success
 
Example Request
curl https://api.truevault.com/v1/vaults/00000000-0000-0000-0000-000000000000/documents \ -X GET \ -u [API_KEY | ACCESS_TOKEN]:
Example Response
{ "data": { "full_document": false, "items": [ { "id": "00000000-0000-0000-0000-000000000000", "schema_id": "00000000-0000-0000-0000-000000000000", "vault_id": "00000000-0000-0000-0000-000000000000", "owner_id": "00000000-0000-0000-0000-000000000000" } ], "page": 1, "per_page": 100, "total": 1 }, "result": "success", "transaction_id": "00000000-0000-0000-0000-000000000000" }
List all Documents with Schema¶
- GET /v1/vaults/(string: vault_id)/schemas/(string: schema_id)/documents¶
 List all Documents in a vault associated with a specified Schema.
Parameters: - vault_id – string(req’d)
 - schema_id – string(req’d)
 
Query Parameters: - full – boolean(optional, default: ‘false’) - retrieve entire Document contents. Note: If true, then this endpoint consumes an Operation for every document returned. If false, only a single Operation is used.
 - page – integer(optional, default: 1) - specify page number for paginated response
 - per_page – integer(optional, default: 100, max: 500) - specify number of results per page in paginated response
 
Request Headers: - Authorization – API_KEY or ACCESS_TOKEN
 
Status Codes: - 200 OK – success
 
Example Request
curl https://api.truevault.com/v1/vaults/00000000-0000-0000-0000-000000000000/schemas/00000000-0000-0000-0000-000000000000/documents \ -X GET \ -u [API_KEY | ACCESS_TOKEN]:
Example Response
{ "data": { "full_document": false, "items": [ { "id": "00000000-0000-0000-0000-000000000000", "schema_id": "00000000-0000-0000-0000-000000000000", "vault_id": "00000000-0000-0000-0000-000000000000", "owner_id": "00000000-0000-0000-0000-000000000000" } ], "page": 1, "per_page": 100, "total": 1 }, "result": "success", "transaction_id": "00000000-0000-0000-0000-000000000000" }
Update a Document¶
- PUT /v2/vaults/(string: vault_id)/documents/(string: document_id)¶
 
Note
This is a V2 Endpoint, so the path should start with v2
PUT a JSON object with the following fields:
- document (req’d) - the JSON object you wish to store (e.g. {"foo": "baz"}). Must be an Object if schema_id present or if the Document was previously associated with a schema.
 - schema_id string(optional) - schema_id of the Schema definition by which the Document will be indexed against. If no schema_id is provided, then the Document will stay associated to its existing Schema.
 - owner_id string(optional) - owner_id of the user the Document will be owned by. If no owner_id is provided, then the Document will stay owned by its existing owner. If it is null, then the Document will become ownerless.
 
Request Headers:
- Authorization: API_KEY or ACCESS_TOKEN
 - Content-Type: application/json
 
Status Codes:
- 200: success
 
Example Request
curl https://api.truevault.com/v2/vaults/fd6b3fbf-41a0-4781-b179-32a34d854b92/documents/11b887e6-1b71-419d-abda-2b8c2e4348e1 \\
    -X PUT \\
    -H 'Content-Type: application/json' \\
    -u [API_KEY | ACCESS_TOKEN]: \\
    -d '{"document": {"foo": "baz"}}'
Example Response
{
  "document": {
    "id": "11b887e6-1b71-419d-abda-2b8c2e4348e1",
    "owner_id": null,
    "vault_id": "fd6b3fbf-41a0-4781-b179-32a34d854b92"
  },
  "document_id": "11b887e6-1b71-419d-abda-2b8c2e4348e1",
  "result": "success",
  "transaction_id": "f47deaa3-74f8-478f-983d-957ef91c6106"
}
Deprecated version
- document b64 string(req’d) - new base64 encoded JSON Document string. Must be an Object if schema_id present or if the Document was previously associated with a schema.
 - schema_id string(optional) - schema_id of the Schema definition by which the Document will be indexed against. If no schema_id is provided, then the Document will stay associated to its existing Schema.
 - owner_id string(optional) - owner_id of the user the Document will be owned by. If no owner_id is provided, then the Document will stay owned by its existing owner. If it is an empty string, then the Document will become ownerless.
 
Request Headers:
- Authorization: API_KEY or ACCESS_TOKEN
 
Status Codes:
- 200: success
 - 400: invalid base64 encoded JSON Document
 - 404: Document does not exist
 
Example Request
curl https://api.truevault.com/v1/vaults/00000000-0000-0000-0000-000000000000/documents/00000000-0000-0000-0000-000000000000 \\
    -u [API_KEY | ACCESS_TOKEN]: \\
    -X PUT \\
    -d "document=e30=&schema_id=00000000-0000-0000-0000-000000000000&owner_id=00000000-0000-0000-0000-000000000000"
Example Response
{
    "document_id": "00000000-0000-0000-0000-000000000000",
    "owner_id": "00000000-0000-0000-0000-000000000000",
    "result": "success",
    "transaction_id": "00000000-0000-0000-0000-000000000000"
}
Update a Document’s Owner¶
- PUT /v1/vaults/(string: vault_id)/documents/(string: document_id)/owner¶
 Updates only the owner_id for a Document having document_id. This can be used to update the owner of a document if changes to the document content are undesirable. If changes to the document content are desired, see the Update Document operation.
Parameters: - vault_id – string(req’d)
 - document_id – string(req’d)
 
Form Parameters: - owner_id – string(req’d) - owner_id of the user the Document will be owned by. If '', then the Document will become ownerless. Note: unlike the update endpoint, the owner_id field cannot be omitted, it must be specified with an empty value to remove the owner.
 
Request Headers: - Authorization – API_KEY or ACCESS_TOKEN
 
Status Codes: - 200 OK – success
 - 404 Not Found – Document does not exist
 
Example Requests
curl https://api.truevault.com/v1/vaults/00000000-0000-0000-0000-000000000000/documents/00000000-0000-0000-0000-000000000000/owner \ -u [API_KEY | ACCESS_TOKEN]: \ -X PUT \ -d "owner_id=00000000-0000-0000-0000-000000000000"
Removing an owner:
curl https://api.truevault.com/v1/vaults/00000000-0000-0000-0000-000000000000/documents/00000000-0000-0000-0000-000000000000/owner \ -u [API_KEY | ACCESS_TOKEN]: \ -X PUT \ -d "owner_id="
Example Response
{ "document_id": "00000000-0000-0000-0000-000000000000", "owner_id": "00000000-0000-0000-0000-000000000000", "result": "success", "transaction_id": "00000000-0000-0000-0000-000000000000" }
Delete a Document¶
- DELETE /v1/vaults/(string: vault_id)/documents/(string: document_id)¶
 Deletes a Document from a Vault.
Parameters: - vault_id – string(req’d)
 - document_id – string(req’d)
 
Request Headers: - Authorization – API_KEY or ACCESS_TOKEN
 
Status Codes: - 200 OK – success
 - 404 Not Found – Document does not exist
 
Example Request
curl https://api.truevault.com/v1/vaults/00000000-0000-0000-0000-000000000000/documents/00000000-0000-0000-0000-000000000000 \ -X DELETE \ -u [API_KEY | ACCESS_TOKEN]:
Example Response
{ "document_id": "00000000-0000-0000-0000-000000000000", "owner_id": "00000000-0000-0000-0000-000000000000", "result": "success", "transaction_id": "00000000-0000-0000-0000-000000000000" }
Reindex a Document¶
- POST /v1/vaults/(string: vault_id)/documents/(string: document_id)/reindex¶
 Reindex a Document against its Schema.
Parameters: - vault_id – string(req’d)
 - document_id – string(req’d)
 
Request Headers: - Authorization – API_KEY
 
Status Codes: - 200 OK – success
 
Example Request
curl https://api.truevault.com/v1/vaults/00000000-0000-0000-0000-000000000000/documents/00000000-0000-0000-0000-000000000000/reindex \ -X POST \ -u [API_KEY]:
Example Response
{ "document_id": "00000000-0000-0000-0000-000000000000", "result": "success", "transaction_id": "00000000-0000-0000-0000-000000000000" }