Users API - How to Manage Users with API Calls

Link: https://support.brilliantdirectories.com/support/solutions/articles/12000103947

 The API allows for creating, reading, updating, deleting, and searching users within the database. Below is a list of available endpoints and their usage.


To search for members by address, enable the setting: Enable All Location Features for "Pretty URL" Search Results Pages (Additional Google Maps API Cost) in the site's Advanced Settings



For detailed instructions, please refer to the guide here: Set Up Pretty URLs with Google Maps.




Available Endpoints

Below is a list of the available endpoints for managing users:

  • https://example.com/api/v2/user/get/{user_id}
  • https://example.com/api/v2/user/create
  • https://example.com/api/v2/user/update
  • https://example.com/api/v2/user/delete
  • https://example.com/api/v2/user/search
  • https://example.com/api/v2/user/transactions


Get a User

Retrieve details of a single user using their user_id.

Parameter Notes: Use user_id.

Endpoint:

GET https://example.com/api/v2/user/get/?property=user_id&property_value=3


Example Request:

GET https://example.com/api/v2/user/get/{user_id}

curl -H "Authorization: YOUR_API_KEY" "https://example.com/api/v2/user/get/{user_id}"


Query Parameters:

propertyThe property key (eg., user_id).
property_valueThe value associated with the property.



Example Response:

{
    "status": "success",
    "message": [
        {
            "user_id": "26",
            "business_type": "",
            "first_name": "Jane",
            "last_name": "Smith",
            "email": "[email protected]",
            "company": "Templehoff Icecream",
            "phone_number": "234234",
            "address1": "5 Platz d. Luftbrücke ",
            "address2": "",
            "city": "Berlin",
            "zip_code": "12101",
            "state_code": "BE",
            "state_ln": "Berlin",
            "country_code": "DE",
            "country_ln": "Germany",
            "modtime": "2025-03-27T16:42:48+00:00",
            "subscription_id": "3",
            "filename": "germany/berlin/food-content-creators/templehoff-icecream",
            "active": "2",
            "ref_code": "Manually Added",
            "signup_date": "2025-02-14T10:54:12+00:00",
            "cookie": "",
            "last_login": "1970-01-01T00:00:00+00:00",
            "profession_id": "2",
            "listing_type": "Company",
            "lat": "52.48302330",
            "lon": "13.38924470",
            "parent_id": "0",
            "filename_hidden": "pro/20250214105412",
            "subscription_schema": {
                "subscription_id": "3",
                "subscription_name": "Gold - Plan 3",
                "subscription_type": "member",
                "lead_price": "20.00",
                "nofollow_links": "1",
                "payment_default": "yearly",
                "menu_name": "",
                "profile_layout": "1",
                "searchable": "1",
                "search_priority": "3",
                "about_form": "about",
                "listing_details_form": "member_listing_details",
                "contact_details_form": "member_contact_details",
                "receive_messages": "0",
                "location_settings": "",
                "data_settings": "2,1,0",
                "data_settings_read": "0",
                "login_redirect": "/account/home",
                "profile_sidebar": "Member Profile Page",
                "signup_email_template": "welcome-basic",
                "upgrade_email_template": "upgrade-response",
                "email_member": "0",
                "signup_promotion_widget": "1",
                "revision_timestamp": "2025-03-26 10:23:37",
                "search_membership_permissions": "visitor,",
                "upgradable_membership": "2,",
                "hide_specialties": "0",
                "auto_activate": "active",
            },
            "profession_schema": {
                "profession_id": "2",
                "name": "Food Content Creators",
                "desc": "",
                "filename": "food-content-creators",
                "keywords": "",
                "icon": "",
                "revision_timestamp": "2025-02-10 10:54:21",
                "sort_order": "0",
                "lead_price": null,
                "image": ""
            },
            "photos_schema": false,
            "tags": false,
            "services_schema": false,
            "credit_balance": 0,
            "transactions": false
        }
    ],
    "total": "1",
    "current_page": 1,
    "total_pages": 1
}


Create a User

Add a new user to the database.
Parameter Notes: The user_id will be assigned by the system.
Use the variables shown on the import file: How To Import Members Via CSV File.

Required: email, password.

Endpoint:


POST https://example.com/api/v2/user/create



Example Request:

{
  "company": "Cafe Milchgesicht (Manakish Spot)",
  "first_name": "Ingrid",
  "last_name": "Klein",
  "email": "[email protected]",
  "phone_number": "+49 30 54688459",
  "address1": "Mainzer Str. 1, Frankfurter Allee 42",
  "city": "Berlin",
  "zip_code": "10247",
  "state_code": "BE",
  "state_ln": "Berlin",
  "country_code": "DE",
  "country_ln": "Germany",
  "subscription_id": "3",
  "active": "2",
  "password": "Manually Added",
  "profession_name": "Cafe",
  "listing_type": "Company",
  "create_new_categories": "1"
}



Query Parameters:

user_idThe unique identifier for the user.
first_nameThe user's first name.
last_nameThe user's last name.
emailThe user's email address.
passwordThe user's account password.
subscription_idThe ID of the user's subscription plan.
companyThe name of the company the user is associated with.
phone_numberThe user's contact phone number.
address1The user's primary address.
address2Additional address details (e.g., apartment, suite).
cityThe city where the user resides.
zip_codeThe user's postal or ZIP code.
state_codeThe state abbreviation.
state_lnThe full name of the state.
country_codeThe country code.
country_lnThe full name of the country.
websiteThe user's personal or company website URL.
twitterThe user's Twitter / X profile URL.
youtubeThe user's YouTube profile URL.
facebookThe user's Facebook profile URL.
linkedinThe user's LinkedIn profile URL.
instagramThe user's Instagram profile URL.
pinterestThe user's Pinterest profile URL.
blogThe user's blog URL.
quoteA personal or professional quote from the user.
experienceYear Established.
affiliationAccepted payment methods.
awardsAwards and recognitions received by the user.
about_meAdditional personal or business details.
featuredIndicates if the user is featured.
modtimeThe last modification timestamp.
activeThe user's account status.
signup_dateThe date and time the user signed up.
last_loginThe date and time of the user's last login.
positionThe user's job position or title.
credentialsThe user's academic or professional credentials.
profession_idThe ID of the Category
verifiedIndicates if the user is verified.
listing_typeThe type of user listing (e.g., individual, business).
latThe user's latitude coordinates.
lonThe user's longitude coordinates.
search_descriptionA short description for search results.
send_email_notificationsSet to 1 to trigger email sign up email notifications.



Example Response:

{
	"status": "success",
	"message": {
		"user_id": "27",
		"business_type": "",
		"first_name": "Ingrid",
		"last_name": "Klein",
		"email": "[email protected]",
		"company": "Cafe Milchgesicht (Manakish Spot)",
		"phone_number": "+49 30 54688459",
		"address1": "Mainzer Str. 1, Frankfurter Allee 42",
		"address2": null,
		"city": "Berlin",
		"zip_code": "10247",
		"state_code": "BE",
		"state_ln": "Berlin",
		"country_code": "DE",
		"country_ln": "Germany",
		"subscription_id": "3",
		"filename": "germany\/berlin\/cafe-milchgesicht-manakish-spot",
		"password": "$2a$11$1e068f4ae4f6a791232c4utGv4MrtmVeexYfFa7sf26t2.Nwk7ofm",
		"active": "2",
		"token": "cf04e1d0f6619d5c1af58baa09d4a6d5",
		"ref_code": "",
		"signup_date": "20250327212617",
		"profession_id": "3",
		"parent_id": "0",
		"create_new_categories": "1",
		"profession_name": "Cafe",
		"subscription_schema": {
			"subscription_id": "3",
			"subscription_name": "Gold - Plan 3",
			"listing_details_form": "member_listing_details",
			"contact_details_form": "member_contact_details",
		},
		"profession_schema": {
			"profession_id": "3",
			"name": "Cafe",
			"filename": "cafe",
			"revision_timestamp": "2025-03-27 17:26:17",
			"sort_order": "0",
			"lead_price": null,
		},
		"photos_schema": false,
		"tags": false,
		"services_schema": false
	}
}


Update a User

Modify an existing user’s data.
Parameter Notes: Use user_id.

Key ConsiderationsDetails
Adding New Services (Sub & Sub-Sub Categories)Use create_new_categories = 1. Sub and sub-sub categories must match their parent categories.
Email & Password RulesDuplicate emails allowed only if allow_duplicate_member_emails is enabled. Email + password combo must be unique.
Token RequirementsMust be alphanumeric, 32 characters long, and unique.
Accepted Field ValuesAll values must match accepted defaults. Refer to the member import template for guidance.
Referencing Categories in APIUse single quotes around category names (e.g., '25-30').
Subscription & Profession ID RequirementsThe subscription_id and profession_id must be created within the site before they can be used or updated via spreadsheet. This means the membership plan and categories must already exist for the API call to work properly.

Finance » Membership Plans Overview
How To Import Categories Via CSV File
Managing Profile Images via APIYou can send the following parameters:
cover_photo, logo, profile_photo.

To delete an image before updating, use the images_action parameter with one of the following values:
remove_all - Removes all images.
remove_cover_image - Removes only the cover photo.
remove_logo_image - Removes only the logo.
remove_profile_image - Removes only the profile photo.

Use auto_image_import = 1.



Endpoint:


PUT https://example.com/api/v2/user/update



Example Request:

{
	"user_id": " 28",
	"subscription_id": " 3",
	"images_action": "remove_profile_image"
}



Example Response:

{
    "status": "success",
    "message": {
        "user_id": "27",
        "business_type": "",
        "first_name": "Ingrid",
        "last_name": "Klein",
        "email": "[email protected]",
        "company": "Green Cafe Milchgesicht (Manakish Spot) ",
        "phone_number": "+49 30 54688459",
        "address1": "Mainzer Str. 1, Frankfurter Allee 42",
        "address2": null,
        "city": "Berlin",
        "zip_code": "10247",
        "state_code": "BE",
        "state_ln": "Berlin",
        "country_code": "DE",
        "country_ln": "Germany",
        "modtime": "2025-03-27T17:26:17+00:00",
        "subscription_id": "3",
        "filename": "germany/berlin/cafe/cafe-milchgesicht-manakish-spot",
        "password": "$2a$11$1e068f4ae4f6a791232c4uqAjlLsTI0weocrFN4IPlD6bGFqJ/G1S",
        "active": "1",
        "subscription_schema": {
            "subscription_id": "3",
            "subscription_name": "Gold - Plan 3",
            "subscription_type": "member",
            "status_after_upgrade": "keep"
        },
        "profession_schema": {
            "profession_id": "3",
            "name": "Cafe",
            "filename": "cafe",
            "revision_timestamp": "2025-03-27 17:26:17",
        },
        "photos_schema": false,
        "tags": false,
        "services_schema": false,
        "credit_balance": null,
        "transactions": false
    }
}


Delete a User

Remove a user from the database.
Parameter Notes: Use user_id.

Endpoint:

DELETE https://example.com/api/v2/user/delete



Example Request:

{
  "user_id": "30"
}



Example Response:

{
    "status": "success",
    "message": "user record was deleted"
}



Search Users

Find users based on criteria.
Parameter Notes: Use q, address, pid,tid,ttid.

Endpoint:



POST https://example.com/api/v2/user/search



Example Request:


{
	"q": "Cafe Milchgesicht (Manakish Spot)",
	"output_type": "array"
}


Query Parameters:


dynamicSet to 1 to simulate a Dynamic Category Filter search.
qEnter a keyword to search for in member data.
pidEnter member Top Level Category ID to search for. Enter a comma-separated list of IDs if the Dynamic Category Filter search is enabled.
tidEnter member Sub Level Category ID to search for. Enter a comma-separated list of IDs if the Dynamic Category Filter search is enabled.
ttidEnter member Sub-Sub Level Category ID to search for. Enter a comma-separated list of IDs if the Dynamic Category Filter search is enabled.
addressEnter the location to search for. Example: Los Angeles, California, United States.
output_typeEnter the type of response to receive. Valid options - html, array. By default the results will show in HTML similar to the search results page on the site. If set to Array the results will show in a JSON array.
limitEnter the maximum number of search results to return per page of results.
sortSet the Order the data would be displayed. The options here are: reviews, name ASC, name DESC, last_name_asc, last_name_desc
pageEnter the page number of results to return. For example, enter 2 to return the second page of results.


Example Response:


{
"status": "success",
"message": [
{
"user_id": "28",
"business_type": "",
"first_name": "Ingrid",
"last_name": "Klein",
"email": "[email protected]",
"company": "Cafe Milchgesicht (Manakish Spot)",
"phone_number": "+49 30 54688459",
"address1": "Mainzer Str. 1, Frankfurter Allee 42",
"address2": null,
"city": "Berlin",
"zip_code": "10247",
"state_code": "BE",
"state_ln": "Berlin",
"country_code": "DE",
"country_ln": "Germany",
"subscription_id": "3",
"filename": "germany/berlin/ingrid-klein",
"active": "2",
"profession_id": "3",
"listing_type": "Individual",
"subscription_schema": {
"subscription_id": "3",
"subscription_name": "Gold - Plan 3",
"subscription_type": "member",
},
"profession_schema": {
"profession_id": "3",
"name": "Cafe",
"filename": "cafe",
"revision_timestamp": "2025-03-27 17:26:17",
"sort_order": "0",
"lead_price": null,
"image": ""
},
"photos_schema": false,
"tags": false,
"services_schema": false,
"credit_balance": null,
"transactions": false
}
],
"total_members": "1",
"total_pages": 1
}



Request User Transactions

Retrieve transactions related to a user.
Parameter Notes: Use user_id.

Endpoint:


POST https://example.com/api/v2/user/transactions



Example Request:


{
	"user_id": "23",
	"bdapi_model": "user"
}


Example Response:

{
    "status": "success",
    "message": {
        "total": 2,
        "invoices": [
            {
                "invoice_details": {
                    "id": "1639000037",
                    "userid": "4",
                    "invoicenum": "",
                    "date": "2025-02-28",
                    "duedate": "2025-03-14",
                    "datepaid": "2025-03-14 10:45:11",
                    "subtotal": "10.00",
                    "credit": "0.00",
                    "tax": "0.00",
                    "tax2": "0.00",
                    "total": "10.00",
                    "taxrate": "0.00",
                    "taxrate2": "0.00",
                    "status": "Paid",
                    "paymentmethod": "stripe",
                    "notes": "",
                    "items": [
                        {
                            "id": "37",
                            "invoiceid": "1639000037",
                            "userid": "4",
                            "relid": "12",
                            "description": "Membership Plan 2 (14/03/2025 - 13/04/2025)",
                            "amount": "10.00",
                            "taxed": "0",
                            "duedate": "2025-03-14",
                            "paymentmethod": "stripe",
                            "notes": ""
                        }
                    ]
                },
                "subscription_details": {
                    "id": "12",
                    "userid": "4",
                    "orderid": "12",
                    "packageid": "1",
                    "server": "0",
                    "regdate": "2025-02-14",
                    "domain": "",
                    "paymentmethod": "stripe",
                    "firstpaymentamount": "10.00",
                    "amount": "10.00",
                    "billingcycle": "Monthly",
                    "nextduedate": "2025-04-14",
                    "nextinvoicedate": "2025-04-14",
                    "domainstatus": "Active",
                    "username": "",
                    "password": "lfqA2p7hJZ/DpXdUbgqowqyRcvw=",
                    "notes": "Array\n(\n    [reminder_id] => \n)\n",
                    "subscriptionid": "",
                    "promoid": "0",
                    "suspendreason": "",
                    "overideautosuspend": "",
                    "overidesuspenduntil": "0000-00-00"
                }
            },
            {
                "invoice_details": {
                    "id": "1639000026",
                    "userid": "4",
                    "invoicenum": "",
                    "date": "2025-02-13",
                    "duedate": "2025-02-14",
                    "datepaid": "2025-02-14 10:45:15",
                    "subtotal": "10.00",
                    "credit": "0.00",
                    "tax": "0.00",
                    "tax2": "0.00",
                    "total": "10.00",
                    "taxrate": "0.00",
                    "taxrate2": "0.00",
                    "status": "Paid",
                    "paymentmethod": "stripe",
                    "notes": "",
                    "items": [
                        {
                            "id": "26",
                            "invoiceid": "1639000026",
                            "userid": "4",
                            "type": "Hosting",
                            "relid": "12",
                            "description": "Membership Plan 2 (14/02/2025 - 13/03/2025)",
                            "amount": "10.00",
                            "taxed": "0",
                            "duedate": "2025-02-14",
                            "paymentmethod": "stripe",
                            "notes": ""
                        }
                    ]
                },
                "subscription_details": {
                    "id": "12",
                    "userid": "4",
                    "orderid": "12",
                    "packageid": "1",
                    "server": "0",
                    "regdate": "2025-02-14",
                    "domain": "",
                    "paymentmethod": "stripe",
                    "firstpaymentamount": "10.00",
                    "amount": "10.00",
                    "billingcycle": "Monthly",
                    "nextduedate": "2025-04-14",
                    "nextinvoicedate": "2025-04-14",
                    "domainstatus": "Active"
                }
            }
        ]
    }
}