Skip to content

HTTP and gRPC

The API speaks plain HTTP with JSON and gRPC on the same endpoint. Both offer the same methods and the same authentication.

HTTPgRPC
Endpointhttps://api.enum.coapi.enum.co:443
Good forShell scripts, languages without a gRPC libraryTyped clients in any language
Used byTypeScript clientGo client, enumctl

Send a POST to /<service>/<method> with the request as a JSON body:

Terminal window
curl -X POST https://api.enum.co/enum.api.v1.DnsService/ListZones \
-H "Authorization: Bearer $ENUM_TOKEN" \
-H "Content-Type: application/json" \
-d '{"projectId": "proj-01kmyy3t719crcnrrvk1mgyjd0"}'
  • Field names are camelCase.
  • Enum values are strings, such as "IMPORT_MODE_MERGE".
  • Timestamps are RFC 3339 strings, such as "2027-01-31T00:00:00Z".

Errors come back as JSON with a matching HTTP status:

{"code": "unauthenticated", "message": "authentication failed"}

The server has reflection turned on, so tools like grpcurl work without proto files.

List all services:

Terminal window
grpcurl api.enum.co:443 list

Show a method and its request message:

Terminal window
grpcurl api.enum.co:443 describe enum.api.v1.DnsService.ListZones
grpcurl api.enum.co:443 describe enum.api.v1.ListZonesRequest

Call a method:

Terminal window
grpcurl \
-H "Authorization: Bearer $ENUM_TOKEN" \
-d '{"projectId": "proj-01kmyy3t719crcnrrvk1mgyjd0"}' \
api.enum.co:443 enum.api.v1.DnsService/ListZones