Add user - Jupyter workspace - DomoTokenAuth - endpoints

Hello.

Is there any documentation to add a user in a specific instance, using DomoTokenAuth, in the Jupyter workspace? Which are the supported endpoints and verbs?

I am passing the following function but the request is receiving a bad request 400 response.

def add_user(instance_token, domo_instance, new_user):
url = f'https://{domo_instance}.domo.com/api/content/v3/users'
headers = {'x-domo-developer-token' : instance_token}

res = requests.request(method='POST',
url=url,
headers=headers)

return res.json()

Best Answers

  • GrantSmith
    GrantSmith Coach
    Answer ✓

    With your post request, you need to also pass in the body, which would contain the user information you're attempting to add.

    {"displayName":"Users Name",
     "detail": {"email":"email@exmaple.com"},
    "roleId":2}
    

    **Was this post helpful? Click Agree or Like below**
    **Did this solve your problem? Accept it as a solution!**
  • ArborRose
    ArborRose Coach
    Answer ✓
    import requests

    def add_user(instance_token, domo_instance, new_user):
    url = f'https://{domo_instance}.domo.com/api/content/v3/users'
    headers = {
    'x-domo-developer-token': instance_token,
    'Content-Type': 'application/json'
    }

    # Example payload for the new user
    payload = {
    "name": new_user['name'],
    "email": new_user['email'],
    "role": new_user['role'] # Optional, set if needed
    }

    res = requests.request(method='POST',
    url=url,
    headers=headers,
    json=payload) # Send JSON payload

    # Check for a successful response
    if res.status_code == 200 or res.status_code == 201:
    return res.json()
    else:
    # Return the status code and error message for debugging
    return {"status_code": res.status_code, "error": res.text}

    # Example usage
    instance_token = 'your_instance_token'
    domo_instance = 'your_domo_instance'
    new_user = {
    "name": "John Doe",
    "email": "johndoe@example.com",
    "role": "Participant" # Optional, use "Admin", "Privileged" if needed
    }

    response = add_user(instance_token, domo_instance, new_user)
    print(response)

    ** Was this post helpful? Click Agree or Like below. **
    ** Did this solve your problem? Accept it as a solution! **

Answers

  • GrantSmith
    GrantSmith Coach
    Answer ✓

    With your post request, you need to also pass in the body, which would contain the user information you're attempting to add.

    {"displayName":"Users Name",
     "detail": {"email":"email@exmaple.com"},
    "roleId":2}
    

    **Was this post helpful? Click Agree or Like below**
    **Did this solve your problem? Accept it as a solution!**
  • ArborRose
    ArborRose Coach
    Answer ✓
    import requests

    def add_user(instance_token, domo_instance, new_user):
    url = f'https://{domo_instance}.domo.com/api/content/v3/users'
    headers = {
    'x-domo-developer-token': instance_token,
    'Content-Type': 'application/json'
    }

    # Example payload for the new user
    payload = {
    "name": new_user['name'],
    "email": new_user['email'],
    "role": new_user['role'] # Optional, set if needed
    }

    res = requests.request(method='POST',
    url=url,
    headers=headers,
    json=payload) # Send JSON payload

    # Check for a successful response
    if res.status_code == 200 or res.status_code == 201:
    return res.json()
    else:
    # Return the status code and error message for debugging
    return {"status_code": res.status_code, "error": res.text}

    # Example usage
    instance_token = 'your_instance_token'
    domo_instance = 'your_domo_instance'
    new_user = {
    "name": "John Doe",
    "email": "johndoe@example.com",
    "role": "Participant" # Optional, use "Admin", "Privileged" if needed
    }

    response = add_user(instance_token, domo_instance, new_user)
    print(response)

    ** Was this post helpful? Click Agree or Like below. **
    ** Did this solve your problem? Accept it as a solution! **

  • Thanks for the information! I will authenticate using the client id-secret instead as it is better documented.