Skip to content

Ask for access to a portal, or ask its brand team

POST
/api/v1/portal/{slug}/requests
curl --request POST \
--url http://localhost:3000/api/v1/portal/example/requests \
--header 'Content-Type: application/json' \
--data '{ "email": "hello@example.com", "name": "example", "note": "example", "kind": "access", "page": "example", "section": "example" }'

Access (kind access, the default) is for a password or members portal. The project’s admins hear about it. It answers the same whoever asks, and asking twice while one waits is one request. A request section’s ask (kind asset, review or question) works on any portal, says the page and section it came from, and needs what reading that page needs (X-Portal-Password or X-Portal-Key, or a member’s session), else 401. The page must be one the visitor can read and section a request section on it; access takes neither.

No key needed.

slug
required
string

The portal’s address

Media typeapplication/json
object
email
required
string format: email
<= 320 characters /^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/
name
string
<= 120 characters
note

Who you are and what you need it for

string
<= 2000 characters
kind

Access when left out; a request section asks for an asset, a review or an answer

string
Allowed values: access asset review question
page

The page a request section sits on

string
<= 60 characters /^[a-z0-9]+(-[a-z0-9]+)*$/
section

The request section, by id

string
/^[a-z0-9_-]{1,40}$/

Received

Media typeapplication/json
object
data
required
object
received
required
boolean
Example
{
"data": {
"received": true
}
}

An error

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
detail
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"detail": "example"
}
}