Vendor endpoint clarificiation

Hi Cody,

When connecting Oauth to my app the vendor scope permission reads “read your company information”

But the docs say vendor scope is about vendors and listing all vendors. The auth section of docs has:

vendor Access to basic account information
vendor_logo Access to account logo
vendor_email Access to account holder email address

I can’t find vendors in the dash anywhere, so I’m a little confused about this. I also cannot find where vendor_email could be accessed in the API.

Does vendors scope == account information or is this vendors/suppliers listed in the account itself? (apologies if I’m getting info wrong, I’m not an sm8 user myself)

Inspecting vendor.json returns the following:.

[{"uuid":"3f4cd183-5c5b-47d1-b3c1-REDACTED","name":"Your Company Name","abn_number":"","business_number":"","website":"","email":"REDACTE@n.servicem8.com","active":1,"default_region":"English (New Zealand)","opening_time_monday":"480","closing_time_monday":"1050","opening_time_tuesday":"480","closing_time_tuesday":"1050","opening_time_wednesday":"480","closing_time_wednesday":"1050","opening_time_thursday":"480","closing_time_thursday":"1050","opening_time_friday":"480","closing_time_friday":"1050","opening_time_saturday":"0","closing_time_saturday":"0","opening_time_sunday":"0","closing_time_sunday":"0","timezone_name":"Pacific\/Auckland","invoice_terms":"7 Days","job_default_status":"","accepted_payment_methods":"Cash;Card","email_accounts":"","edit_date":"2026-02-25 22:29:20","billing_address":"","currency":""}]



It seems it might’ve returned what is the trial account business info. Do you have any data on what amount of your users configure the settings fully? Looking to create smooth onboarding and this data doesn’t have my sign up email.

If vendor isn’t the right scope, is there a reliable way to get account’s business name & email from the API?

Thanks!

Hi Jack,

In ServiceM8’s API, the “Vendor” endpoints are for the ServiceM8 account’s own business/profile details (basic account information), rather than a list of the businesses you purchase from.

That’s why GET /vendor.json is described as “Vendor account information”, returns an array of Vendor records, and requires the vendor OAuth scope.

Suppliers are a separate concept: they’re exposed via GET /supplier.json (OAuth scope read_suppliers), and in the UI they come from the “Suppliers” add-on (Account > Features & Integrations, then Account > Settings > Suppliers).

On the email side, the OAuth scopes table defines vendor_email as access to the account holder email address, and the Vendor record itself includes an email field (the primary email address for the company).

So, if you need a reliable “business name + company email”, using /vendor.json and reading the name and email fields is the intended approach (and it’s also worth noting the Vendor schema only requires name, so other fields may be blank depending on how the account is configured).

If instead you’re after the email address of the person who authorised the connection, that comes from the Staff record: staff includes an email field (the staff login email), and /staff.json requires the read_staff scope.

Thanks,
Cody

Hi Cody,

When I log into the api via docs website in the browser and load vendor.json endpoint it gives me a random servicem8 email address rather than the email I singed up with.However, it shows the correct billing email that I input in the settings. Why is this?

"email":"1149a—–@n.servicem8.com"

Thanks for tip re staff who actioned connection

Thank you

Hi Jack,

GET /vendor.json is the “Vendor account information” endpoint, and the Vendor.email field is the company’s primary email address used by the system.

If that field is showing an @n.servicem8.com address, it’s a passthru email address we use to monitor add-ons for spam/abuse, but emails sent to it will still deliver to the vendor’s actual email address.

Thanks,
Cody