CA is your key to Canada,
and the world. Get yours today!


Your .CA address will open doors for your business in Canada and around the world. Having a .CA domain makes you or your company easy to find and instantly recognizable as Canadian to Internet users around the world.

Connect with people, build your brand, reach markets and service customers, in Canada and around the world today!

Nothing says Canadian like .CA

There's no better way to build your brand on the Internet than with a .CA domain.
  • Identify yourself as Canadian: .CA is Canada's Internet identity, reserved for Canadians, recognized and trusted worldwide.
  • Get the name you want: You'll have a short .CA name that says you're Canadian, not a long .COM name that says you're one of almost 70 million organizations that most Canadians view as American!
  • Reach Canadians where they shop: Over 60% of Canadians prefer .CA for online shopping—it's under Canadian law, with no customs or exchange rates.
  • Keep your identity secure: .CA domain names are kept safe and secure in an independent national registry.

View .CA FAQs

Sources: CIRA Registrant Customer Satisfaction Survey, March 2009, Altitude Marketing Research Inc.

Registration Years

1-10

Transferable

True

Extended Attributes

True

Extended Attributes for .CA


Legal type of registrant contact
Corporation, Canadian Citizen, Canadian Resident, Government Entity, Educational, Unincorporated Association, Hospital, Partnership, Trade-mark, Trade Union, Political Party, Library, Archive or Museum, Trust, Aboriginal Peoples, Indian Band, Legal Representative, Official Mark, The King,

The contact's preferred language for communication
English, French,

Version of the CIRA Registrant Agreement displayed and agreed to by the Registrant on the Registrar website
2.2,

Registrant has agreed to CIRA's Registrant Agreement
No, Yes,

Run Sample API


Registration details for .CA

Minimum Registration Period 1
Encoding Type Punycode
Maximum Registration Period 10

Life Cycle Settings for .CA

Renew before expiration month 0

Transfer Settings for .CA

Transferable
Has Auth Info
Transfer by Fax

Premium Names for .CA

Has Premium Names
Max Premium Reg Years

Nameserver setting for .CA

Minimum Name Servers
Validate for DNS Hosting
Maximum Name Servers

Auth Code setting for .CA

Renewal setting for .CA

Sample API Commands for .CA

The following is a very basic example of eNom's API.

Select a Command

Key Value Description
PW Reseller Password
UID Reseller User ID
SLD Second Level Domain
TLD Top Level Domain
Response Type Response Type


Request

Response

<?xml version="1.0"?>
<interface-response>
<DomainName></DomainName>
<RRPCode>200</RRPCode>
<RRPText>Domain available</RRPText>
<AuctionDate/>
<AuctionID/>
<Command>CHECK</Command>
<Language>eng</Language>
<ErrCount>0</ErrCount>
<ResponseCount>0</ResponseCount>
<MinPeriod>1</MinPeriod>
<MaxPeriod>10</MaxPeriod>
<Server>SJL21WRESELL01</Server>
<Site>eNom</Site>
<IsLockable>True</IsLockable>
<IsRealTimeTLD>True</IsRealTimeTLD>
<TimeDifference>+08.00</TimeDifference>
<ExecTime>1.328</ExecTime>
<Done>True</Done>
<RequestDateTime></RequestDateTime>
<debug>....</debug>
</interface-response>
<?xml version="1.0"?>
<interface-response>
<Extension>successful</Extension>
<DomainName></DomainName>
<OrderID>157922501</OrderID>
<RRPCode>200</RRPCode>
<RRPText>Command completed successfully</RRPText>
<DomainInfo>
<RegistryExpDate></RegistryExpDate>
</DomainInfo>
<Command>EXTEND</Command>
<Language>eng</Language>
<ErrCount>0</ErrCount>
<ResponseCount>0</ResponseCount>
<MinPeriod>1</MinPeriod>
<MaxPeriod>10</MaxPeriod>
<Server>SJL21WRESELL01</Server>
<Site>eNom</Site>
<IsLockable>True</IsLockable>
<IsRealTimeTLD>True</IsRealTimeTLD>
<TimeDifference>+08.00</TimeDifference>
<ExecTime>2.751</ExecTime>
<Done>true</Done>
<RequestDateTime></RequestDateTime>
<debug>...</debug>
</interface-response>
<?xml version="1.0"?>
<interface-response>
<GetDomainInfo> <domainname domainnameid="152809531"></domainname>
</GetDomainInfo>
<multy-langSLD></multy-langSLD>
<status>
<expiration></expiration>
<deletebydate></deletebydate>
<deletetype></deletetype>
<restorable>True</restorable>
<renewbeforeexpiration></renewbeforeexpiration>
<registrar>eNom, Inc.</registrar>
<registrationstatus>Registered</registrationstatus>
<purchase-status>Paid</purchase-status>
<belongs-to party-id="{39AE68C0-D019-4690-9999-FD632BC1AFAA}></belongs-to>
<escrowliftdate></escrowliftdate>
<escrowhold/>
</status>

<ParkingEnabled>False</ParkingEnabled>
<services>
<entry name="dnsserver">
<enomDNS value="YES" isDotName="NO"/>
<service changable="1">1006</service>
<configuration changable="0" type="dns">
<dns>dns1.name-services.com</dns>
<dns>dns2.name-services.com</dns>
<dns>dns3.name-services.com</dns>
<dns>dns4.name-services.com</dns>
<dns>dns5.name-services.com</dns>
</configuration>

</entry>

<entry name="dnssettings">
<service changable="0">1021</service>
<configuration changable="1" type="host">
<host>
<name>
<![CDATA[*]]> </name>

<type>
<![CDATA[A]]> </type>

<address>
<![CDATA[10.11.212.2]]> </address>

<mxpref>
<![CDATA[10]]> </mxpref>

<iseditable>
<![CDATA[1]]> </iseditable>

</host>

<host>
<name>
<![CDATA[@]]> </name>

<type>
<![CDATA[A]]> </type>

<address>
<![CDATA[69.25.142.5]]> </address>

<mxpref>
<![CDATA[10]]> </mxpref>

<iseditable>
<![CDATA[1]]> </iseditable>

</host>

<host>
<name>
<![CDATA[www]]> </name>

<type>
<![CDATA[A]]> </type>

<address>
<![CDATA[69.25.142.5]]> </address>

<mxpref>
<![CDATA[10]]> </mxpref>

<iseditable>
<![CDATA[1]]> </iseditable>

</host>

</configuration>

</entry>

<entry name="wsb">
<service changable="1">1060</service>
<
/entry>

<entry name="emailset">
<service changable="1">1114 </service>

<configuration changable="1" type="pop">
</configuration>

<
/entry>

<entry name="wpps">
<service changable="1">1120 <
/service>

<configuration changable="1" type="id protect">
<wpps>
<cloakedemail>
<![CDATA[kbnkrwkcd@whoisprivacyprotect.com]]>
</cloakedemail>
<forward-to>
<![CDATA[servicesqa@enom.com]]>
</forward-to>

<expiredate>
<![CDATA[Apr 01, 2013]]>
</expiredate>

<autorenew> No </autorenew>
</wpps>

</configuration>

<
/entry>

<entry name="wbl">
<
wbl>

<statusid>

<![CDATA[0]]>
<
/statusid>
<statusdescr>
<![CDATA[Available]]>
<
/statusdescr>

</wbl>

<entry name="mobilizer">
<service changable="0">1117</service>
<mobilizer>
</mobilizer>

<
/entry>

<entry name="parking">
<
service changable="1">
1030
<
/entry>

<entry name="messaging">
<service changable="1">1087
<
/entry>

<entry name="map">
<service changable="1">1108
<
/entry>

</services>

</GetDomainInfo>

<Command>GETDOMAININFO</Command>
<Language>eng</Language>
<ErrCount>0</ErrCount>
<ResponseCount>0</ResponseCount>
<MinPeriod>1</MinPeriod>
<MaxPeriod>10</MaxPeriod>
<Server>SJL21WRESELL01</Server>
<Site>eNom</Site>
<IsLockable>True</IsLockable>
<IsRealTimeTLD>True</IsRealTimeTLD>
<TimeDifference>+08.00</TimeDifference>
<ExecTime>0.297</ExecTime>
<Done>true</Done>
<RequestDateTime></RequestDateTime>
<debug></debug>
</interface-response>
<?xml version="1.0"?>
<interface-response>
<OrderID>157922550</OrderID>
<DomainInfo> <RegistryCreateDate>555555</RegistryCreateDate>
<RegistryExpDate></RegistryExpDate>
<
/DomainInfo>

<TotalCharged>27</TotalCharged>
<RegistrantPartyID>{39AE68C0-D019-4690-9999-FD632BC1AFAA}</RegistrantPartyID>
<RRPCode>200</RRPCode>
<RRPText>Command completed successfully - 157922550</RRPText>
<Command>PURCHASE</Command>
<Language>eng</Language>
<ErrCount>0</ErrCount>
<ResponseCount>0</ResponseCount>
<MinPeriod>1</MinPeriod>
<MaxPeriod>10</MaxPeriod>
<Server>SJL21WRESELL01</Server>
<Site>eNom</Site>
<IsLockable>True</IsLockable>
<IsRealTimeTLD>True</IsRealTimeTLD>
<TimeDifference>+08.00</TimeDifference>
<ExecTime>2.016</ExecTime>
<Done>true</Done>
<RequestDateTime></RequestDateTime>
<debug>...</debug>
</interface-response>
<?xml version="1.0"?>
<interface-response>
<Attributes>
<Attribute>
<ID>1</ID>
<Name>us_nexus</Name>
<Application>1</Application>
<UserDefined>False</UserDefined>
<Required>1</Required>
<Description>Nexus Category</Description>
<IsChild>0</IsChild>
<options>
<option>
<ID>12</ID>
<Value>C11</Value>
<Title>US Citizen</Title>
<Description>A natural person who is a US Citizen.</Description>
</option> <option>
<ID>13</ID>
<Value>C12</Value>
<Title>Permanent Resident</Title>
<Description>A natural person who is a Permanent Resident.</Description>
</option> <option>
<ID>14</ID>
<Value>C21</Value>
<Title>Business Entity</Title>
<Description>An entity or organization that is (i) incorporated within one of the fifty US states, the District of Columbia, or any of the US possessions or territories, or (ii) organized or otherwise constituted under the laws of a state of the US, the District of Columbia or any of its possessions and territories (including federal, state, or local government of the US, or a political subdivision thereof, and non-commercial organizations based in the US.).</Description>
</option> <option>
<ID>15</ID>
<Value>C31</Value>
<Title>Foreign Entity</Title>
<Description></Description>
<Requires>
<Attribute>
<ID>4</ID>
<Name>global_cc_us</Name>
</Attribute> </Requires> </option> </options> </Attribute> <Attribute>
. . . </Attribute> <Attribute>
. . . </Attribute> </Attributes> <Command>GETEXTATTRIBUTES</Command>
<Language>eng</Language>
<ErrCount>0</ErrCount>
<ResponseCount>0</ResponseCount>
<MinPeriod>1</MinPeriod>
<MaxPeriod>10</MaxPeriod>
<Server>SJL0VWRESELL_T1</Server>
<Site>eNom</Site>
<IsLockable>True</IsLockable>
<IsRealTimeTLD>True</IsRealTimeTLD>
<TimeDifference>+07.00</TimeDifference>
<ExecTime>3.125</ExecTime>
<Done>True</Done>
<RequestDateTime></RequestDateTime>
<debug></debug>
</interface-response>

Response

;URL Interface
;Machine is SJL0VWRESELL_T
DomainName=
RRPCode=210 
RRPText=Domain available 
AuctionDate= 
AuctionID= 
Command=CHECK 
Language=eng 
ErrCount=0 
ResponseCount=0 
MinPeriod=1 
MaxPeriod=10 
Server=SJL0VWRESELL_T 
Site=eNom 
IsLockable=False 
IsRealTimeTLD=True 
TimeDifference=+00.00 
ExecTime=0.797 
Done=true 
RequestDateTime=
;URL Interface
;Machine is SJL0VWRESELL_T1
Extension=successful 
DomainName=
OrderID=157923122 
RRPCode=200 
RRPText=Command completed successfully 
RegistryExpDate=
Command=EXTEND 
Language=eng 
ErrCount=0 
ResponseCount=0 
MinPeriod=1 
MaxPeriod=10 
Server=SJL0VWRESELL_T1 
Site=eNom 
IsLockable=True 
IsRealTimeTLD=True 
TimeDifference=+08.00 
ExecTime=1.484 
Done=true 
RequestDateTime=
;URL Interface
;Machine is SJL0VWRESELL_T1
domainname=
domainnameid=152533676 
expiration=
deletebydate=
deletetype= 
restorable=True 
renewbeforeexpiration= 
registrar=eNom, Inc. 
registrationstatus=Registered 
purchase-status=Paid 
belongsto=
partyid={BB4A2DE1-6485-45CB-A4FC-EE39BA0C1629} 
escrowliftdate= 
escrowhold= 
website=1 
phone=False 
ipresolver=1 
map=False 
domainnameid=152533676 
mobilizer=1117 
mobilizersourcedomain= 
EmailForwarding=0 
EmailForwardExpDate= 
EmailAutoRenew= 
URLForwarding=0 
URLForwardExpDate= 
URLAutoRenew= 
emailForwardingPrice=0.00 
urlForwardingPrice=0.00 
Command=GETDOMAININFO 
Language=eng 
ErrCount=0 
ResponseCount=0 
MinPeriod=1 
MaxPeriod=10 
Server=SJL0VWRESELL_T1 
Site=eNom 
IsLockable=True 
IsRealTimeTLD=True 
TimeDifference=+08.00 
ExecTime=1.281 
Done=true 
RequestDateTime=

URL Interface
;Machine is SJL0VWRESELL_T
OrderID=157923110 
RegistryCreateDate=
RegistryExpDate=
TotalCharged=8.95 
RegistrantPartyID={1C3E82CA-FE3F-E011-B28A-005056BC7747} 
RRPCode=200 
RRPText=Command completed successfully - 157923110 
Command=PURCHASE 
Language=eng 
ErrCount=0 
ResponseCount=0 
MinPeriod=1 
MaxPeriod=10 
Server=SJL0VWRESELL_T 
Site=eNom 
IsLockable=True 
IsRealTimeTLD=True 
TimeDifference=+08.00 
ExecTime=1.469 
Done=true 
RequestDateTime=
;URL Interface
;Machine is SJL0VWRESELL_T
ID=1 Name=us_nexus Application=2 UserDefined=False Required=1 Description=Nexus Category IsChild=0 
ID=12 Value=C11 Title=US Citizen Description=A natural person who is a US Citizen. 
ID=13 Value=C12 Title=Permanent Resident Description=A natural person who is a Permanent Resident. 
ID=14 Value=C21 Title=Business Entity Description=An entity or organization that is (i) incorporated within one of the fifty US states, the District of Columbia, or any of the US possessions or territories, or (ii) organized or otherwise constituted under the laws of a state of the US, the District of Columbia or any of its possessions and territories (including federal, state, or local government of the US, or a political subdivision thereof, and non-commercial organizations based in the US.). 
ID=15 Value=C31 Title=Foreign Entity Description= 
.
.
.
Command=GETEXTATTRIBUTES 
Language=eng 
ErrCount=0 
ResponseCount=0 
MinPeriod=1
MaxPeriod=10 
Server=SJL0VWRESELL_T 
Site=eNom 
IsLockable=True 
IsRealTimeTLD=True 
TimeDifference=+07.00 
ExecTime=1.813 
Done=true 
RequestDateTime=

Code Samples

Implementation in C#

        
using System;
using System.Xml;

class Program
{
  static void Main(string[] args)
  {
    // URL for API request
     

// Load the API results into an XmlDocument object var xmlDoc = new XmlDocument(); xmlDoc.Load(url); // Read the results var rrpCode = xmlDoc.SelectSingleNode("/interface-response/RRPCode").InnerText; var rrpText = xmlDoc.SelectSingleNode("/interface-response/RRPText").InnerText; // Perform actions based on results switch (rrpCode) { case "210": Console.WriteLine("Domain available"); break; case "211": Console.WriteLine("Domain not available"); break; default: Console.WriteLine("{0} {1}", rrpCode, rrpText); break; } Console.Read(); } }

Implementation in PHP

<?php
  // URL for API request
   
 

// Load the API results into a SimpleXML object $xml = simplexml_load_file($url); // Read the results $rrpCode = $xml->RRPCode; $rrpText = $xml->RRPText; // Perform actions based on results switch ($rrpCode) { case 210: echo "Domain available"; break; case 211: echo "Domain not available"; break; default: echo $rrpCode . ' ' . $rrpText; break; } ?>

Code Samples

Implementation in C#

using System;
using System.Xml;

class Program
{
  static void Main(string[] args)
  {
    // URL for API request
     

// Load the API results into an XmlDocument object var xmlDoc = new XmlDocument(); xmlDoc.Load(url); // Read the results var rrpCode = xmlDoc.SelectSingleNode("/interface-response/RRPCode").InnerText; var rrpText = xmlDoc.SelectSingleNode("/interface-response/RRPText").InnerText; // Perform actions based on results if(System.Convert.ToInt32(rrpCode)==200) Console.WriteLine("Command completed successfully"); else Console.WriteLine("Extension failed"); Console.Read(); } }

Implementation in PHP

<?php
    // URL for API request
    

// Load the API results into a SimpleXML object $xml = simplexml_load_file($url); // Read the results $rrpCode = $xml->RRPCode; $rrpText = $xml->RRPText; // Perform actions based on results if($rrpCode==200) echo "Command completed successfully"; else echo "Extension failed"; ?>

Code Samples

Implementation in C#

using System;
using System.Xml;

class Program
{
  static void Main(string[] args)
  {
    // URL for API request
  

// Load the API results into an XmlDocument object var xmlDoc = new XmlDocument(); xmlDoc.Load(url); // Read the results var errCount = xmlDoc.SelectSingleNode("/interface-response/ErrCount").InnerText; // Perform actions based on results if(System.Convert.ToInt32(errCount)==0) Console.WriteLine("Error in getting domain information"); else Console.WriteLine("Command completed successfully"); Console.Read(); } }

Implementation in PHP

<?php
  // URL for API request
 

// Load the API results into a SimpleXML object $xml = simplexml_load_file($url); // Read the results $errCount = $xml->ErrCount; // Perform actions based on results if($errCount==0) echo "Error in getting domain information"; else echo "Command completed successfully"; ?>

Code Samples

Implementation in C#

using System;
using System.Xml;

class Program
{
  static void Main(string[] args)
  {
    // URL for API request
    

// Load the API results into an XmlDocument object var xmlDoc = new XmlDocument(); xmlDoc.Load(url); // Read the results var rrpCode = xmlDoc.SelectSingleNode("/interface-response/RRPCode").InnerText; var rrpText = xmlDoc.SelectSingleNode("/interface-response/RRPText").InnerText; // Perform actions based on results switch (rrpCode) { case "200": Console.WriteLine("Command completed successfully"); break; case "540": Console.WriteLine("Domain name not available"); break; default: Console.WriteLine("{0} {1}", rrpCode, rrpText); break; } Console.Read(); } }

Implementation in PHP

<?php
  //URL for API request
  

//Load the API results into a SimpleXML object $xml = simplexml_load_file($url); //Read the results $rrpCode = $xml->RRPCode; $rrpText = $xml->RRPText; // Perform actions based on results switch ($rrpCode) { case 200: echo "Command completed successfully"; break; case 540: echo "Domain name not available"; break; default: echo $rrpCode . ' ' . $rrpText; break; } ?>

Code Samples

Implementation in C#

       
using System;
using System.Xml;

class Program
{
  static void Main(string[] args)
  {
    // URL for API request
  

// Load the API results into an XmlDocument object var xmlDoc = new XmlDocument(); xmlDoc.Load(url); // Read the results var errCount = xmlDoc.SelectSingleNode("/interface-response/ErrCount").InnerText; // Perform actions based on results if(System.Convert.ToInt32(errCount)==0) Console.WriteLine("Error in getting Extended Attributes"); else Console.WriteLine("Command completed successfully"); Console.Read(); } }

Implementation in PHP

<?php
  // URL for API request
 

// Load the API results into a SimpleXML object $xml = simplexml_load_file($url); // Read the results $errCount = $xml->ErrCount; // Perform actions based on results if($errCount==0) echo "Error in getting Extended Attributes"; else echo "Command completed successfully"; ?>
Questions? Call sales at
1 (425) 274-4500
Or try our
Visit our Help Center where you can get simple and quick product support.
   is part of Tucows, a leading domain name services company.
Copyright © 1998-2023 Enom LLC. All rights reserved. Terms & Conditions | Privacy Policy | Abuse Policy