import { Crevio } from "@crevio/sdk";
const crevio = new Crevio({
apiKey: process.env["CREVIO_API_KEY"] ?? "",
});
async function run() {
const result = await crevio.email.inboxes.create({
localPart: "<value>",
});
console.log(result);
}
run();curl --request POST \
--url https://api.crevio.co/v1/email/inboxes \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"local_part": "<string>",
"display_name": "<string>",
"metadata": {},
"client_id": "<string>"
}
'import requests
url = "https://api.crevio.co/v1/email/inboxes"
payload = {
"local_part": "<string>",
"display_name": "<string>",
"metadata": {},
"client_id": "<string>"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
local_part: '<string>',
display_name: '<string>',
metadata: {},
client_id: '<string>'
})
};
fetch('https://api.crevio.co/v1/email/inboxes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.crevio.co/v1/email/inboxes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'local_part' => '<string>',
'display_name' => '<string>',
'metadata' => [
],
'client_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.crevio.co/v1/email/inboxes"
payload := strings.NewReader("{\n \"local_part\": \"<string>\",\n \"display_name\": \"<string>\",\n \"metadata\": {},\n \"client_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.crevio.co/v1/email/inboxes")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"local_part\": \"<string>\",\n \"display_name\": \"<string>\",\n \"metadata\": {},\n \"client_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.crevio.co/v1/email/inboxes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"local_part\": \"<string>\",\n \"display_name\": \"<string>\",\n \"metadata\": {},\n \"client_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"object": "<string>",
"id": "<string>",
"address": "<string>",
"local_part": "<string>",
"domain": "<string>",
"display_name": "<string>",
"status": "active",
"metadata": {},
"created_at": "2023-11-07T05:31:56Z"
}{
"error": {
"type": "invalid_request_error",
"code": "authentication_required",
"message": "You did not provide an API key."
}
}{
"error": {
"type": "invalid_request_error",
"code": "forbidden",
"message": "You do not have permission to perform this action"
}
}{
"error": {
"type": "validation_error",
"code": "validation_failed",
"message": "Email is required",
"errors": {
"email": [
"can't be blank"
]
}
}
}{
"error": {
"type": "invalid_request_error",
"code": "rate_limit_exceeded",
"message": "Too many requests. Please retry later."
}
}Create an inbox
Creates a named inbox. With a verified email domain the address is {local_part}@yourdomain.com; without one it lands on the shared Crevio domain as {slug}.{local_part}@ai.crevio.app, which receives immediately and sends as the account’s default outbound address. On the shared domain local_part must be one word of lowercase letters, numbers, hyphens or underscores, and an account can hold up to 20 such inboxes. Creating an address that already exists returns that inbox.
import { Crevio } from "@crevio/sdk";
const crevio = new Crevio({
apiKey: process.env["CREVIO_API_KEY"] ?? "",
});
async function run() {
const result = await crevio.email.inboxes.create({
localPart: "<value>",
});
console.log(result);
}
run();curl --request POST \
--url https://api.crevio.co/v1/email/inboxes \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"local_part": "<string>",
"display_name": "<string>",
"metadata": {},
"client_id": "<string>"
}
'import requests
url = "https://api.crevio.co/v1/email/inboxes"
payload = {
"local_part": "<string>",
"display_name": "<string>",
"metadata": {},
"client_id": "<string>"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
local_part: '<string>',
display_name: '<string>',
metadata: {},
client_id: '<string>'
})
};
fetch('https://api.crevio.co/v1/email/inboxes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.crevio.co/v1/email/inboxes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'local_part' => '<string>',
'display_name' => '<string>',
'metadata' => [
],
'client_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.crevio.co/v1/email/inboxes"
payload := strings.NewReader("{\n \"local_part\": \"<string>\",\n \"display_name\": \"<string>\",\n \"metadata\": {},\n \"client_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.crevio.co/v1/email/inboxes")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"local_part\": \"<string>\",\n \"display_name\": \"<string>\",\n \"metadata\": {},\n \"client_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.crevio.co/v1/email/inboxes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"local_part\": \"<string>\",\n \"display_name\": \"<string>\",\n \"metadata\": {},\n \"client_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"object": "<string>",
"id": "<string>",
"address": "<string>",
"local_part": "<string>",
"domain": "<string>",
"display_name": "<string>",
"status": "active",
"metadata": {},
"created_at": "2023-11-07T05:31:56Z"
}{
"error": {
"type": "invalid_request_error",
"code": "authentication_required",
"message": "You did not provide an API key."
}
}{
"error": {
"type": "invalid_request_error",
"code": "forbidden",
"message": "You do not have permission to perform this action"
}
}{
"error": {
"type": "validation_error",
"code": "validation_failed",
"message": "Email is required",
"errors": {
"email": [
"can't be blank"
]
}
}
}{
"error": {
"type": "invalid_request_error",
"code": "rate_limit_exceeded",
"message": "Too many requests. Please retry later."
}
}Authorizations
API key in the format: Bearer {api_token}
Headers
Makes this write safe to retry: a repeat with the same key replays the first response instead of creating a second resource. Scoped to the account, remembered for 24 hours; reusing a key with a different payload is an error.
255Body
Was this page helpful?

