Organizations

Create User in Organization

Creates a new user account with a password and adds it to the organization.

POST /api/organizations/:organizationId/users

Creates a new Rybbit account with an email and password and adds it to the organization with the given role, without sending an invitation. To add someone who already has an account, use Add Member; to email an invitation, use Invite Member.

Permissions: the admin role or above in the organization. API keys need the org:write scope. You can't assign a role above your own. The new member is checked against your own membership, so organization API keys are rejected with 401.

Path Parameters

Prop

Type

Request Body

Prop

Type

Response

Returns 201.

Prop

Type

Error Responses

Errors use the standard body { error, code, message, resolution }.

Prop

Type

Request
curl -X POST "https://app.rybbit.io/api/organizations/org_123/users" \
  -H "Authorization: Bearer your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "jane@example.com",
    "name": "Jane Doe",
    "password": "a-long-password",
    "role": "viewer"
  }'
Request
const response = await fetch(
  'https://app.rybbit.io/api/organizations/org_123/users',
  {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer your_api_key_here',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      email: 'jane@example.com',
      name: 'Jane Doe',
      password: 'a-long-password',
      role: 'viewer'
    })
  }
);

const data = await response.json();
Request
import requests

response = requests.post(
    'https://app.rybbit.io/api/organizations/org_123/users',
    json={
        'email': 'jane@example.com',
        'name': 'Jane Doe',
        'password': 'a-long-password',
        'role': 'viewer'
    },
    headers={
        'Authorization': 'Bearer your_api_key_here'
    }
)

data = response.json()
Request
$body = [
    'email' => 'jane@example.com',
    'name' => 'Jane Doe',
    'password' => 'a-long-password',
    'role' => 'viewer'
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.rybbit.io/api/organizations/org_123/users');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer your_api_key_here',
    'Content-Type: application/json'
]);

$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);
Request
require 'net/http'
require 'json'

uri = URI('https://app.rybbit.io/api/organizations/org_123/users')
request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer your_api_key_here'
request['Content-Type'] = 'application/json'
request.body = {
  email: 'jane@example.com',
  name: 'Jane Doe',
  password: 'a-long-password',
  role: 'viewer'
}.to_json

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end

data = JSON.parse(response.body)
Request
body := map[string]interface{}{
    "email": "jane@example.com",
    "name": "Jane Doe",
    "password": "a-long-password",
    "role": "viewer",
}
jsonBody, _ := json.Marshal(body)

req, _ := http.NewRequest("POST", "https://app.rybbit.io/api/organizations/org_123/users", bytes.NewBuffer(jsonBody))
req.Header.Set("Authorization", "Bearer your_api_key_here")
req.Header.Set("Content-Type", "application/json")

client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()

var data map[string]interface{}
json.NewDecoder(resp.Body).Decode(&data)
Request
let body = serde_json::json!({
  "email": "jane@example.com",
  "name": "Jane Doe",
  "password": "a-long-password",
  "role": "viewer"
});

let client = reqwest::Client::new();
let res = client
    .post("https://app.rybbit.io/api/organizations/org_123/users")
    .header("Authorization", "Bearer your_api_key_here")
    .json(&body)
    .send()
    .await?;

let data: serde_json::Value = res.json().await?;
Request
String json = """
{
  "email": "jane@example.com",
  "name": "Jane Doe",
  "password": "a-long-password",
  "role": "viewer"
}
""";

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://app.rybbit.io/api/organizations/org_123/users"))
    .header("Authorization", "Bearer your_api_key_here")
    .header("Content-Type", "application/json")
    .POST(HttpRequest.BodyPublishers.ofString(json))
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
Request
var body = new
{
    email = "jane@example.com",
    name = "Jane Doe",
    password = "a-long-password",
    role = "viewer"
};

using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer your_api_key_here");

var content = new StringContent(
    JsonSerializer.Serialize(body),
    Encoding.UTF8,
    "application/json");

var response = await client.PostAsync("https://app.rybbit.io/api/organizations/org_123/users", content);
var data = await response.Content.ReadAsStringAsync();
Response
{
  "message": "User created and added to organization successfully"
}