Skip to main content
POST
/
api
/
v1
/
documents
/
{id}
/
add_user
POST documents add_user
curl --request POST \
  --url https://app.onecodex.com/api/v1/documents/{id}/add_user \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "user": {
    "__DOLLAR_REF__": "/api/v1/users/a1b2c3d4e5f67890"
  }
}
'
import requests

url = "https://app.onecodex.com/api/v1/documents/{id}/add_user"

payload = { "user": { "__DOLLAR_REF__": "/api/v1/users/a1b2c3d4e5f67890" } }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({user: {__DOLLAR_REF__: '/api/v1/users/a1b2c3d4e5f67890'}})
};

fetch('https://app.onecodex.com/api/v1/documents/{id}/add_user', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://app.onecodex.com/api/v1/documents/{id}/add_user",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'user' => [
'__DOLLAR_REF__' => '/api/v1/users/a1b2c3d4e5f67890'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://app.onecodex.com/api/v1/documents/{id}/add_user"

payload := strings.NewReader("{\n \"user\": {\n \"__DOLLAR_REF__\": \"/api/v1/users/a1b2c3d4e5f67890\"\n }\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://app.onecodex.com/api/v1/documents/{id}/add_user")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"user\": {\n \"__DOLLAR_REF__\": \"/api/v1/users/a1b2c3d4e5f67890\"\n }\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://app.onecodex.com/api/v1/documents/{id}/add_user")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"user\": {\n \"__DOLLAR_REF__\": \"/api/v1/users/a1b2c3d4e5f67890\"\n }\n}"

response = http.request(request)
puts response.read_body
{
  "$uri": "/api/v1/documents/0d77065796f8d173",
  "created_at": "2023-11-07T05:31:56Z",
  "downloaders": [
    {
      "__DOLLAR_REF__": "/api/v1/users/a1b2c3d4e5f67890"
    }
  ],
  "filename": "<string>",
  "size": 2,
  "uploader": {
    "__DOLLAR_REF__": "/api/v1/users/a1b2c3d4e5f67890"
  }
}
Grant another user download access to a Document. The caller must be the document’s uploader (or have org-level admin permission). The added user appears in the document’s downloaders list.

Authorizations

X-API-Key
string
header
required

Path Parameters

id
string
required

Body

application/json
user
object
required

Response

200 - application/json

OK

$uri
string
required
read-only
Pattern: ^/api/v1/documents/[a-f0-9]{16}$
Example:

"/api/v1/documents/0d77065796f8d173"

created_at
string<date-time>
required

Timestamp for when the object was created on the One Codex platform, encoded as a RFC 3339 timestamp.

downloaders
users · object[]
required

An (optionally empty) array of references to users that the document has been shared with. These users are able to download (but not modify) the document.

filename
string
required

The document filename (e.g., "report.pdf")

size
integer | null
required

The size of the document in bytes.

Required range: x >= 1
uploader
users · object
required

A reference to the user that uploaded and owns the document, e.g., {"$ref": "/api/v1/users/5891ee65711c4d5e"}. Only owners can modify a document (with some exceptions in the case of organization accounts configured for multiple users - please contact us if you'd like to discuss this use case).