Browse documentation

Self-registration endpoint

POST /api/groups/register — add a contact from your own web form, with opt-in proof.

POST /api/groups/register

Adds a contact to a group from a form you host yourself, and records the opt-in evidence Meta expects. This is the API behind the join link, exposed so you can build your own form.

Headers

HeaderRequiredValue
Content-TypeYesapplication/json

No API key. The endpoint is public by design because the form is on your own site. MsgOrb still verifies that the group belongs to the organisation, so a forged pairing is rejected.

Body fields

FieldRequiredDescription
org_idYesYour organisation id
group_idYesThe group the contact joins. Must belong to org_id
nameYesContact name
phoneYesFull international format with country code

Find both ids in the share link on the group page: /join/<org_id>/<group_id>.

Request example

curl -X POST "https://msgorb.com/api/groups/register" \
  -H "Content-Type: application/json" \
  -d '{
    "org_id": "YOUR_ORG_ID",
    "group_id": "YOUR_GROUP_ID",
    "name": "Jane Doe",
    "phone": "+15551234567"
  }'

Responses

{ "success": true, "member_id": "mem_...", "created": true }
StatusMeaning
200Added (created: true) or an existing contact was refreshed (updated: true)
400Missing field, malformed JSON, or an unusable phone number
403The workspace has reached its member limit
404org_id and group_id do not belong together
500Write failed
503Service unavailable

What is recorded

Every accepted registration stores the timestamp, the submitter's IP address and the source. Registering an existing number updates that contact instead of creating a duplicate, and refreshes the consent record.

Contacts added this way are Active immediately. The auto-accept setting on Team Access governs the join-link form, not this endpoint.