Digital Platform API - User service

"User" refers to people or groups able to log in to or API. Users are classified by a user_type, which determines what type of information they have access to. This service allows member-level users to create other users, as well as modify and retrieve information about existing users.

User types

Note

Once a user has been created, the user_type cannot be changed. To grant someone a new user_type, you must create a new user for that person. Also, if you create a user through , the api_login field is set to false by default (i.e., that user will not have access to the API). You may only change the value of the api_login field for a user via the API.

User Type Description
member Network-level user with access to all aspects of the member's account (Advertisers, Publishers, Apps, etc.).
member_advertiser Somewhat limited network-level user with access to a subset of advertisers. No API access by Xandr policy.
member_publisher Somewhat limited network-level user with access to a subset of publishers. No API access by Xandr policy.
advertiser Very limited user with access to one advertiser (mainly for reporting, available in both and API). You must specify an advertiser_id when you create this user.
publisher Very limited user with access to one publisher (mainly for reporting, available in both and API). You must specify a publisher_id when you create this user.

Mapping of UI terms to API terms

For more information on UI terms, see documentation for your application.

UI user role API user_type Read_only
Network member false
Network Observer member true
Network Advertiser Manager member_advertiser false
Network Publisher Manager member_publisher false
Advertiser advertiser false
Publisher publisher false

REST API

HTTP Method Endpoint Description
POST https://api.appnexus.com/user
(user JSON)
Add a new user.
PUT https://api.appnexus.com/user?id=user_id
(user JSON)
Modify an existing user.
GET https://api.appnexus.com/user View all users associated with this member.
GET https://api.appnexus.com/user?id=user_id View a specific user.
GET https://api.appnexus.com/user?id=1,2,3 View multiple users by ID using a comma-separated list.
GET https://api.appnexus.com/user?current View the current user.
GET https://api.appnexus.com/user/meta Find out which fields you can filter and sort by.

JSON fields

Field Type Description
id int The internal ID associated with the user.
Required On: PUT, in query string.
state string The state of the user.
Possible values:
- "active"
- "inactive"
Default: "active"
username string The login name of the user.
Required On: POST

Note: The username should not contain any special characters such as $, #, and ". Additionally, after a user is created, the username cannot be changed.
password string The password used to authenticate the user. Not shown on GET requests.
Required On: POST
email string The email address of the user.
Required On: POST
first_name string The user's first name.
Required On: POST
last_name string The user's last name.
Required On: POST
custom data string Any information relevant to the user can be entered here.
phone string The user's contact phone number.
user_type enum The type of user. Possible values:
- "member"
- "bidder"
- "publisher"
- "advertiser"
- "member_advertiser"
- "member_publisher"

For more details on each user type, see User Types table above.
Required On: POST

Note: This field cannot be modified on PUT. To change a user's user_type, you must add a new user.
read_only boolean If true, the user is not allowed to make changes via the API.
Default: false
api_login boolean Admin-only. If true, the user can access and use the API.
Default: false
entity_id int The ID of the entity (member or bidder) to which the user belongs.

Note: The entity_id is the same as the member_id, which is used in other services.
Required On: POST (if user_type is "member").
entity_name string The name of the entity (member or bidder) to which the user belongs.
publisher_id int The ID of the publisher with which the user is associated, if user_type is "publisher".
Required On: POST (if user_type is "publisher").
advertiser_id int The ID of the advertiser with which the user is associated, if user_type is "advertiser".
Required On: POST (if user_type is "advertiser").
advertiser_access array The advertiser(s) that the user can access, if user_type is "member_advertiser".
Required On: POST (if user_type is "member_advertiser").
publisher_access array The publisher(s) that the user can access, if user_type is "member_publisher".
Required On: POST (if user_type is "member_advertiser").
reporting_decimal_type enum The character used for decimals in reporting.
Possible values:
- "comma"
- "decimal" (period)
This setting can be overridden at the report level (see reporting_decimal_type in the Report Service).
Default: reporting_decimal_type from member.
decimal_mark enum The character separating the integer part from the fractional part of a number.
Possible values:
- "period"
- "comma"
This character must be different than the character used for thousand_separator.

Default: "period"

Note: This field controls how the user enters and views numbers in only. It does not affect numbers in the API.
thousand_separator enum The character separating digit groups in a number. Possible values:
- "comma"
- "space"
- "period"
This character must be different than the character used for decimal_mark.

Default: "comma"

Note: This setting controls how the user enters and views digit groups in only. It does not affect digit groups in the API.
send_safety_budget_notifications boolean If true, the user will receive email notifications when the daily safety budget threshold is approached. For more details, see the daily_budget field on the Member Service.
Default: "false"
is_developer boolean Read-only. This flag gives a user rights to access certain developer-focused services such as the Plugin and Plugin Instance services, which are used by apps. It is set to true by a Xandr admin on a case-by-case basis.
Default: "false"
last_modified timestamp The date and time when the user was last modified.
timezone string The user's timezone.
password_expires_on timestamp When the user's password expires.
entity_reporting_decimal_type enum Whether number values are separated by a comma or a decimal in reports. If this field is set to decimal, the value returned would be formatted like this: 1234.56. Whereas, if this field is set to comma, the value returned would be formatted like this: 1234.56.
Possible values:
- decimal
- comma
Default: "decimal"

Examples

Add a network user

$ cat user
{
    "user":{
        "username":"testuser",
        "password":"testpassword",
        "user_type":"member",
        "entity_id":123,
        "first_name":"Test",
        "last_name":"User",
        "email":"test@testuser.com"
    }
}
$ curl -b cookies -X POST -d @user 'https://api.appnexus.com/user'
{
    "response":{
        "status":"OK",
        "id":258
    }
}

Add a network observer user

$ cat user
{
    "user":{
        "username":"testuser",
        "password":"testpassword",
        "user_type":"member",
        "entity_id":123,
        "first_name":"Test",
        "last_name":"User",
        "email":"test@testuser.com",
        "read_only": true
    }
}
$ curl -b cookies -X POST -d @user 'https://api.appnexus.com/user'
{
    "response":{
        "status":"OK",
        "id":259
    }
}

Add a publisher user

$ cat user
{
    "user":{
        "username":"testuser",
        "password":"testpassword",
        "user_type":"publisher",
        "publisher_id":1234,
        "first_name":"Test",
        "last_name":"User",
        "email":"test@testuser.com"
    }
}
$ curl -b cookies -X POST -d @user 'https://api.appnexus.com/user'
{
    "response":{
        "status":"OK",
        "id":260
    }
}

Add an advertiser user

$ cat user
{
    "user":{
        "username":"testuser",
        "password":"testpassword",
        "user_type":"advertiser",
        "advertiser_id":1234,
        "first_name":"Test",
        "last_name":"User",
        "email":"test@testuser.com"
    }
}
$ curl -b cookies -X POST -d @user 'https://api.appnexus.com/user'
{
    "response":{
        "status":"OK",
        "id":261
    }
}

View the current user

$ curl -b cookies 'https://api.appnexus.com/user?current'
{
    "response": {
        "status": "OK",
        "count": 1,
        "start_element": 0,
        "num_elements": 100,
        "user": {
            "id": 2513,
            "first_name": "Ron",
            "last_name": "Jacob",
            "phone": "",
            "username": "rjacob",
            "email": "rjacob@example.com",
            "user_type": "member",
            "read_only": false,
            "api_login": true,
            "entity_id": 1446,
            "publisher_id": null,
            "advertiser_id": null,
            "custom_data": null,
            "send_safety_budget_notifications": false,
            "entity_name": "Test Member",
            "timezone": "EST5EDT",
            "entity_reporting_decimal_type": "decimal",
            "reporting_decimal_type": null,
            "decimal_mark": "period",
            "thousand_separator": "comma",
            "last_modified": "2012-06-27 21:53:38",
            "is_developer": false,
            "state": "active",
            "advertiser_access": null,
            "publisher_access": null
        }
    }
}