Endorsal
MARKETING · MARKETING
Testimonials, the contacts they were requested from, and the widgets that publish them.
Acts as the person, not as itself
Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.
Credentials never touch the agent
Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.
Every call on the record
Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.
What an agent can do
Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.
endorsal_get_v1_contactsREADList the contacts on this connection's Endorsal property -- the customers a testimonial request can be sent to -- each with their name, email and the tags applied to them via GET /v1/contacts
endorsal_get_v1_contacts_by_idREADFetch one contact by id, with their profile fields and tags. An id that is not on this property answers 200 with an empty `data` object rather than a 404. The id must be a 24-character hex ObjectId via GET /v1/contacts/{id}
endorsal_get_v1_contacts_by_id_testimonialsREADList every testimonial this one contact has left. This is the way to check whether a customer has already responded before sending another request; the contact id comes from the List contacts tool via GET /v1/contacts/{id}/testimonials
endorsal_get_v1_propertiesREADList the Endorsal properties this token reaches. It returns exactly ONE: an Endorsal API token is minted against a single property and carries its id in the token itself, so a tenant with several properties needs a separate connection and a separate token for each. Use this tool to confirm which property a connection is actually pointed at via GET /v1/properties
endorsal_get_v1_properties_by_idREADFetch one property's settings -- its name, domain, rating configuration and branding. Only this connection's own property can be read: any other id answers 200 with `{"success": false, "error": "Invalid credentials"}`, which is Endorsal saying the property is not the one this token was issued for rather than that the token is bad via GET /v1/properties/{id}
endorsal_get_v1_tagsREADList the tags defined on this property. Tags are how contacts are segmented for testimonial campaigns, so this is the vocabulary the contact records draw from via GET /v1/tags
endorsal_get_v1_testimonialsREADList the testimonials collected for this connection's Endorsal property, each with its author, rating, body text and current status. An Endorsal API token is issued against ONE property, so this returns that property's testimonials and not the whole account's via GET /v1/testimonials
endorsal_get_v1_testimonials_by_idREADFetch one testimonial by its id. Endorsal answers 200 with `{"success": false, "error": "No testimonial found matching that ID"}` rather than a 404 when the id is unknown, so read `success` and not the status code. The id must be a 24-character hex ObjectId; any other shape answers 500 from Endorsal's own id parser via GET /v1/testimonials/{id}
endorsal_get_v1_widgetsREADList the display widgets configured on this property -- the carousels, walls and badges that publish collected testimonials on a website -- each with its id, type and configuration via GET /v1/widgets
endorsal_get_v1_widgets_by_idREADFetch one widget's full configuration by id. An id that is not on this property answers 200 with an empty `data` object rather than a 404 via GET /v1/widgets/{id}
Often connected alongside
Put Endorsal behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.