API reference
Relays
DNS: zones and records.
- Operations
- 13
- Base path
https://os.one.ml/api/v1/relays- Scopes
relays:readrelays:write- API keys
- 13 refused to API keys
- SDK
genesis.call('relays_getEnrollment', …)· helpers undergenesis.relays- MCP
- 10 tools; the other 3 through
genesis_call
Operations
| Operation | Endpoint | API key |
|---|---|---|
| Read enrollment for the current verified human Genesis selection | GET/genesis/enrollment | API keys refused |
| Explicitly activate an empty Relays account; read status after an unconfirmed result | POST/genesis/enrollment | API keys refused |
| List DNS zones for the tenant | GET/zones | API keys refused |
| Create a DNS zone | POST/zones | API keys refused |
| Get zone details | GET/zones/{zone} | API keys refused |
| Delete a zone and all its records | DELETE/zones/{zone} | API keys refused |
| Update zone settings (type, SOA) | PATCH/zones/{zone} | API keys refused |
| Read owned DNSSEC status; unavailable public key details return 503 | GET/zones/{zone}/dnssec | API keys refused |
| List records in a zone | GET/zones/{zone}/records | API keys refused |
| Create one record, or up to 100 with {records:[...]} | POST/zones/{zone}/records | API keys refused |
| Get a record | GET/zones/{zone}/records/{recordId} | API keys refused |
| Delete a record | DELETE/zones/{zone}/records/{recordId} | API keys refused |
| Update a record | PATCH/zones/{zone}/records/{recordId} | API keys refused |
Genesis
Read enrollment for the current verified human Genesis selection
GET/v1/relays/genesis/enrollment
Responses
- 200Actual enrollment status; no provisioning
Response fields
state"ready" | "not_enrolled"requiredorganizationIdstringrequiredpattern ^o_[A-Za-z0-9_-]{1,128}$
projectIdstringrequiredpattern ^pr_[A-Za-z0-9_-]{1,128}$
workspaceIdstringrequiredpattern ^w_[A-Za-z0-9_-]{1,128}$
resourceEnvironment"sandbox"required
- 400Enrollment was rejected or unconfirmed; read status before another explicit POST
- 401Enrollment was rejected or unconfirmed; read status before another explicit POST
- 403Enrollment was rejected or unconfirmed; read status before another explicit POST
- 404Enrollment was rejected or unconfirmed; read status before another explicit POST
- 409Enrollment was rejected or unconfirmed; read status before another explicit POST
- 503Enrollment was rejected or unconfirmed; read status before another explicit POST
- 4xx 5xxThe error envelope.
curl "https://os.one.ml/api/v1/relays/genesis/enrollment" \
-H "Authorization: Bearer $GENESIS_API_KEY"import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('relays_getEnrollment'){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "relays_getEnrollment",
"arguments": {}
}
}Explicitly activate an empty Relays account; read status after an unconfirmed result
POST/v1/relays/genesis/enrollment
Responses
- 200Exact mapping already exists; created false
Response fields
state"ready"requiredorganizationIdstringrequiredpattern ^o_[A-Za-z0-9_-]{1,128}$
projectIdstringrequiredpattern ^pr_[A-Za-z0-9_-]{1,128}$
workspaceIdstringrequiredpattern ^w_[A-Za-z0-9_-]{1,128}$
resourceEnvironment"sandbox"requiredcreatedbooleanrequired
- 201Empty account created; created true
Response fields
state"ready"requiredorganizationIdstringrequiredpattern ^o_[A-Za-z0-9_-]{1,128}$
projectIdstringrequiredpattern ^pr_[A-Za-z0-9_-]{1,128}$
workspaceIdstringrequiredpattern ^w_[A-Za-z0-9_-]{1,128}$
resourceEnvironment"sandbox"requiredcreatedbooleanrequired
- 400Enrollment was rejected or unconfirmed; read status before another explicit POST
- 401Enrollment was rejected or unconfirmed; read status before another explicit POST
- 403Enrollment was rejected or unconfirmed; read status before another explicit POST
- 404Enrollment was rejected or unconfirmed; read status before another explicit POST
- 409Enrollment was rejected or unconfirmed; read status before another explicit POST
- 503Enrollment was rejected or unconfirmed; read status before another explicit POST
- 4xx 5xxThe error envelope.
curl -X POST "https://os.one.ml/api/v1/relays/genesis/enrollment" \
-H "Authorization: Bearer $GENESIS_API_KEY"import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('relays_enroll'){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "relays_enroll",
"arguments": {}
}
}Zones
List DNS zones for the tenant
GET/v1/relays/zones
Parameters
pagequery · integerlimitquery · integersearchquery · string
Responses
- 200Zones
Response fields
zonesobject[]zones[].[].idintegerzones[].[].namestringzones[].[].type"NATIVE" | "MASTER" | "SLAVE"zones[].[].record_countintegerzones[].[].dnssec_enabledbooleanzones[].[].statusstringzones[].[].serialintegerzones[].[].nameserversstring[]zones[].[].soaobjectzones[].[].created_atstringzones[].[].updated_atstringmetaobjectmeta.pageintegermeta.per_pageintegermeta.totalintegermeta.total_pagesinteger
- 401Error
- 4xx 5xxThe error envelope.
curl "https://os.one.ml/api/v1/relays/zones" \
-H "Authorization: Bearer $GENESIS_API_KEY"import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('relays_listZones'){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "relays_listZones",
"arguments": {}
}
}Create a DNS zone
POST/v1/relays/zones
Request body application/json
namestringrequiredmax length 253
type"NATIVE" | "MASTER" | "SLAVE"default "NATIVE"
create_default_recordsbooleandefault true
Responses
- 201Created
Response fields
idintegernamestringtype"NATIVE" | "MASTER" | "SLAVE"record_countintegerdnssec_enabledbooleanstatusstringserialintegernameserversstring[]soaobjectcreated_atstringupdated_atstring
- 400Error
- 401Error
- 4xx 5xxThe error envelope.
curl -X POST "https://os.one.ml/api/v1/relays/zones" \
-H "Authorization: Bearer $GENESIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "string"
}'import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('relays_createZone', {
body: {
name: 'string',
},
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "relays_createZone",
"arguments": {
"body": {
"name": "string"
}
}
}
}Get zone details
GET/v1/relays/zones/{zone}
Parameters
zonepath · stringrequired
Responses
- 200Zone
Response fields
idintegernamestringtype"NATIVE" | "MASTER" | "SLAVE"record_countintegerdnssec_enabledbooleanstatusstringserialintegernameserversstring[]soaobjectcreated_atstringupdated_atstring
- 404Error
- 4xx 5xxThe error envelope.
curl "https://os.one.ml/api/v1/relays/zones/$ZONE" \
-H "Authorization: Bearer $GENESIS_API_KEY"import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('relays_getZone', {
zone: '<zone>',
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "relays_getZone",
"arguments": {
"zone": "<zone>"
}
}
}Delete a zone and all its records
DELETE/v1/relays/zones/{zone}
Parameters
zonepath · stringrequired
Responses
- 200Deleted
Response fields
successbooleanmessagestring
- 404Error
- 4xx 5xxThe error envelope.
curl -X DELETE "https://os.one.ml/api/v1/relays/zones/$ZONE" \
-H "Authorization: Bearer $GENESIS_API_KEY"import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('relays_deleteZone', {
zone: '<zone>',
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "genesis_call",
"arguments": {
"operation": "relays_deleteZone",
"arguments": {
"zone": "<zone>"
}
}
}
}Update zone settings (type, SOA)
PATCH/v1/relays/zones/{zone}
Parameters
zonepath · stringrequired
Request body application/json
type"NATIVE" | "MASTER" | "SLAVE"soaobjectsoa.primary_nsstringsoa.hostmasterstring (email)soa.refreshintegermin 60
soa.retryintegermin 60
soa.expireintegermin 3600
soa.ttlintegermin 60
Responses
- 200Updated
Response fields
idintegernamestringtype"NATIVE" | "MASTER" | "SLAVE"record_countintegerdnssec_enabledbooleanstatusstringserialintegernameserversstring[]soaobjectcreated_atstringupdated_atstring
- 404Error
- 4xx 5xxThe error envelope.
curl -X PATCH "https://os.one.ml/api/v1/relays/zones/$ZONE" \
-H "Authorization: Bearer $GENESIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('relays_updateZone', {
zone: '<zone>',
body: {},
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "genesis_call",
"arguments": {
"operation": "relays_updateZone",
"arguments": {
"zone": "<zone>",
"body": {}
}
}
}
}Dnssec
Read owned DNSSEC status; unavailable public key details return 503
GET/v1/relays/zones/{zone}/dnssec
Parameters
zonepath · stringrequired
Responses
- 200Stored DNSSEC state
Response fields
zonestringrequiredenabledbooleanrequiredkeysobject[]requiredds_recordsobject[]requiredsettingsobjectrequiredsettings.nsec3object | nullrequiredsettings.nsec3.algorithmintegersettings.nsec3.flagsintegersettings.nsec3.iterationsintegersettings.nsec3.saltstringsettings.auto_publish_cdsbooleanrequiredsettings.auto_publish_cdnskeybooleanrequired
- 401Error
- 403Error
- 404Error
- 503Error
- 4xx 5xxThe error envelope.
curl "https://os.one.ml/api/v1/relays/zones/$ZONE/dnssec" \
-H "Authorization: Bearer $GENESIS_API_KEY"import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('relays_getDnssec', {
zone: '<zone>',
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "relays_getDnssec",
"arguments": {
"zone": "<zone>"
}
}
}Records
List records in a zone
GET/v1/relays/zones/{zone}/records
Parameters
zonepath · stringrequiredtypequery · stringnamequery · stringpagequery · integerlimitquery · integer
Responses
- 200Records
Response fields
zonestringrecordsobject[]records[].[].namestringrequiredrecords[].[].typestringrequiredrecords[].[].contentstringrequiredrecords[].[].ttlintegermin 60 · max 86400 · default 3600
records[].[].priorityintegermin 0 · max 65535
records[].[].disabledbooleandefault false
records[].[].commentstringmax length 1000
records[].[].tagsstring[]records[].[].idintegerrecords[].[].zonestringrecords[].[].created_atstringrecords[].[].updated_atstringmetaobjectmeta.pageintegermeta.per_pageintegermeta.totalintegermeta.total_pagesinteger
- 404Error
- 4xx 5xxThe error envelope.
curl "https://os.one.ml/api/v1/relays/zones/$ZONE/records" \
-H "Authorization: Bearer $GENESIS_API_KEY"import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('relays_listRecords', {
zone: '<zone>',
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "relays_listRecords",
"arguments": {
"zone": "<zone>"
}
}
}Create one record, or up to 100 with {records:[...]}
POST/v1/relays/zones/{zone}/records
Parameters
zonepath · stringrequired
Request body application/json
Type: object | object
Responses
- 201Created
Response fields
A JSON object.
- 400Error
- 404Error
- 4xx 5xxThe error envelope.
curl -X POST "https://os.one.ml/api/v1/relays/zones/$ZONE/records" \
-H "Authorization: Bearer $GENESIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "string",
"type": "string",
"content": "string"
}'import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('relays_createRecord', {
zone: '<zone>',
body: {
name: 'string',
type: 'string',
content: 'string',
},
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "relays_createRecord",
"arguments": {
"zone": "<zone>",
"body": {
"name": "string",
"type": "string",
"content": "string"
}
}
}
}Get a record
GET/v1/relays/zones/{zone}/records/{recordId}
Parameters
recordIdpath · stringrequiredzonepath · stringrequired
Responses
- 200Record
Response fields
namestringrequiredtypestringrequiredcontentstringrequiredttlintegermin 60 · max 86400 · default 3600
priorityintegermin 0 · max 65535
disabledbooleandefault false
commentstringmax length 1000
tagsstring[]idintegerzonestringcreated_atstringupdated_atstring
- 404Error
- 4xx 5xxThe error envelope.
curl "https://os.one.ml/api/v1/relays/zones/$ZONE/records/$RECORD_ID" \
-H "Authorization: Bearer $GENESIS_API_KEY"import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('relays_getRecord', {
zone: '<zone>',
recordId: '<recordId>',
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "genesis_call",
"arguments": {
"operation": "relays_getRecord",
"arguments": {
"zone": "<zone>",
"recordId": "<recordId>"
}
}
}
}Delete a record
DELETE/v1/relays/zones/{zone}/records/{recordId}
Parameters
recordIdpath · stringrequiredzonepath · stringrequired
Responses
- 200Deleted
Response fields
successbooleanmessagestring
- 404Error
- 4xx 5xxThe error envelope.
curl -X DELETE "https://os.one.ml/api/v1/relays/zones/$ZONE/records/$RECORD_ID" \
-H "Authorization: Bearer $GENESIS_API_KEY"import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('relays_deleteRecord', {
zone: '<zone>',
recordId: '<recordId>',
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "relays_deleteRecord",
"arguments": {
"zone": "<zone>",
"recordId": "<recordId>"
}
}
}Update a record
PATCH/v1/relays/zones/{zone}/records/{recordId}
Parameters
recordIdpath · stringrequiredzonepath · stringrequired
Request body application/json
namestringtypestringcontentstringttlintegermin 60 · max 86400
priorityintegermin 0 · max 65535
disabledbooleancommentstringmax length 1000
tagsstring[]
Responses
- 200Updated
Response fields
namestringrequiredtypestringrequiredcontentstringrequiredttlintegermin 60 · max 86400 · default 3600
priorityintegermin 0 · max 65535
disabledbooleandefault false
commentstringmax length 1000
tagsstring[]idintegerzonestringcreated_atstringupdated_atstring
- 404Error
- 4xx 5xxThe error envelope.
curl -X PATCH "https://os.one.ml/api/v1/relays/zones/$ZONE/records/$RECORD_ID" \
-H "Authorization: Bearer $GENESIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('relays_updateRecord', {
zone: '<zone>',
recordId: '<recordId>',
body: {},
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "relays_updateRecord",
"arguments": {
"zone": "<zone>",
"recordId": "<recordId>",
"body": {}
}
}
}One Superintelligence, Inc. · Built from Genesis 0.1.12 and the live gateway on 2026-10-20. Support