Skip to content

Resolve e-mail addresses

GET
/search/members
curl --request GET \
--url 'https://calendar.work.optidata.cloud/api/search/members?emails%5B%5D=hello%40example.com' \
--header 'Authorization: Bearer <token>'

Turns a batch of e-mail addresses into the people behind them — the reverse of searching. Use it to render an attendee list you received as bare addresses.

Addresses are passed in the query string, one emails[] parameter per address, and at least one is required. Every address you send comes back, in the same order. An address that belongs to no user and no group is returned as a guest, carrying only email and type. Responses may be cached for up to an hour.

emails[]
required
Array<string>
>= 1 items

Addresses to resolve. Repeat once per address (emails[]=a@example.com&emails[]=b@example.com).

One entry per address, in the order they were sent.

Media typeapplication/json
object
members
required
Array<object>

A resolved address. A user or group entry carries the full record; an address that matches neither comes back as a guest with only email and type.

object
id
integer | null
name
string | null
uuid
string | null
email
required
string
zid
string | null
avatar_url
string | null
type
required

user is somebody with an Optiwork account in the tenant, group a user group, and guest an address outside it.

string
Allowed values: user guest group
key
additional properties
any
Examples
Examplemembers
{
"members": [
{
"id": 93,
"name": "Jane Doe",
"uuid": "9e926fb1-e1ff-4fc9-81a1-5740f10ba57f",
"email": "jane.doe@acme.example",
"zid": "20d77f6c-91f6-4e39-9488-bb7fe302d65d",
"avatar_url": null,
"type": "user"
},
{
"email": "nobody@partner.example",
"type": "guest"
}
]
}

Missing, malformed or expired authentication key.

Media typeapplication/json

Authentication failures use an error key rather than message.

object
error
required
string
Examples
Examplemissing

No bearer token sent

{
"error": "JWT passport exception: Missing bearer token in request"
}

The request body or query string failed validation.

Media typeapplication/json
object
message
required

The first validation message.

string
errors
required

Validation messages keyed by field name.

object
key
additional properties
Array<string>
Examples
Exampleinvalid
{
"message": "The event title field is required.",
"errors": {
"title": [
"The event title field is required."
]
}
}

Rate limit exceeded. Retry after the window resets.

Media typeapplication/json

Generic error envelope used by policy, binding and framework failures.

object
message
required

Human-readable description of the failure.

string
Examples
Examplethrottled
{
"message": "Too Many Attempts."
}