Skip to content

Registration

All API requests must include a universal API key as a bearer token in the Authorization header:

Authorization: Bearer YOUR_API_KEY_HERE

If the key is missing, invalid, inactive, or not a universal-typed key, the server will respond with a 401 or 403.

https://api.outboundiq.cloud/registration

Returns the company’s saved registration in the same shape the submit endpoint accepts. Fields that have never been provided are omitted, and document slots are returned exactly as they were submitted.

  • Method: GET
  • URL: /
  • Headers:
    • Authorization: Bearer YOUR_API_KEY_HERE

Response:

type GetRegistrationResult = {
success: boolean;
// The saved registration, or null if nothing has been submitted yet.
// Same shape as the Submit Registration body, with every field optional.
registration: Partial<SubmitRegistration> | null;
// Present on failure
message?: string;
};

Submits the company registration form. Submitting again updates the existing registration — fields you include overwrite the saved values, fields you omit are left unchanged, and sending an empty string clears a previously saved value.

  • Method: POST
  • URL: /
  • Headers:
    • Authorization: Bearer YOUR_API_KEY_HERE
    • Content-Type: application/json

Body Schema:

type SubmitRegistration = {
// --- Company information (required) ---
// Company legal name
companyName: string;
businessCategory: BusinessCategory;
ein: string;
// Your ANI (caller ID number) provider
aniProvider: string;
companyPhone: string;
// --- Company information (optional) ---
// DBA (Doing Business As)
companyDba?: string;
// Number of employees
employees?: string;
website?: string;
// Required when businessCategory is "Insurance" or "Real Estate"
insuranceLicenseNumber?: string;
// --- Company headquarters address (required) ---
street: string;
city: string;
state: string;
zip: string;
// --- Primary contact (required) ---
contactFirstName: string;
contactLastName: string;
contactPhone: string;
contactEmail: string;
// --- Primary contact (optional) ---
contactTitle?: string;
// --- Hiya Connect portal (optional) ---
// Fill these out if you want us to manage your Hiya Connect portal
hiyaEmail?: string;
hiyaPassword?: string;
hiyaDuns?: string;
// --- Compliance contact (optional) ---
// Who carriers should reach about compliance questions
complianceContactName?: string;
complianceContactEmail?: string;
complianceContactPhone?: string;
// --- Business overview (optional) ---
// Detailed description of your business, products, and services
businessDescription?: string;
callPurposes?: MultiSelect<CallPurpose>;
// --- Audience & lead sources (optional) ---
targetAudience?: MultiSelect<TargetAudience>;
leadSources?: MultiSelect<LeadSource>;
// --- Consent & compliance (optional) ---
// How consumers provide consent to be contacted
consumerConsentProcess?: string;
// The complete customer journey before a consumer receives a call
consumerJourney?: string;
// Consumers expressly consent to calls
callConsent?: boolean;
// The consent language used (when callConsent is true)
callConsentLanguage?: string;
// Consumers expressly consent to SMS
smsConsent?: boolean;
// The SMS consent process (when smsConsent is true)
smsConsentProcess?: string;
// --- Dialing, DNC & opt-out (optional) ---
monthlyCallVolume?: MonthlyCallVolume;
dialingMethods?: MultiSelect<DialingMethod>;
// How DNC requests are handled
dncHandlingProcess?: string;
// How quickly DNC requests are honored, e.g. "Within 24 hours"
dncHonorTimeframe?: string;
// Opt-out process across all channels
optOutProcess?: string;
// --- Recording & reputation (optional) ---
callsRecorded?: boolean;
// Call recording notification method (when callsRecorded is true)
callRecordingNotification?: string;
// Why calls may be incorrectly marked spam
spamMisflagExplanation?: string;
// Business reputation information
businessReputationInfo?: string;
// --- Licensing & carrier info (optional) ---
// Licensed / certified / regulated business
isLicensed?: boolean;
// Licensing details (when isLicensed is true)
licensingDetails?: string;
// Anything else carriers, analytics providers, or spam mitigation
// partners should know about your business
additionalCarrierInfo?: string;
// --- Supporting documents (optional) ---
documents?: Documents;
// --- Certification (optional) ---
// Certify that the information provided is accurate and complete
certificationAgreed?: boolean;
certificationName?: string;
certificationTitle?: string;
// Date in YYYY-MM-DD format
certificationDate?: string;
// Signature (typed name)
signature?: string;
};

Multi-select fields:

type MultiSelect<Option> = {
selected: Option[];
// Required when "other" is among the selected options —
// explain your selection
otherText?: string;
};
type CallPurpose =
| "leadFollowUp"
| "existingCustomerService"
| "appointmentScheduling"
| "appointmentReminders"
| "salesOutreach"
| "customerRetention"
| "mortgageServices"
| "insuranceServices"
| "healthcareServices"
| "financialServices"
| "collections"
| "other";
type TargetAudience =
| "existingCustomers"
| "recentWebsiteInquiries"
| "leadFormSubmissions"
| "referralLeads"
| "purchasedLeads"
| "previousCustomers"
| "prospectiveCustomers"
| "currentApplicants"
| "other";
type LeadSource =
| "companyWebsite"
| "landingPages"
| "advertisingCampaigns"
| "googleAds"
| "facebookAds"
| "affiliateMarketing"
| "referralPartners"
| "purchasedLeads"
| "existingCustomerDatabase"
| "socialMedia"
| "other";
type DialingMethod =
| "manualDialing"
| "previewDialing"
| "progressiveDialing"
| "powerDialing"
| "predictiveDialing"
| "other";

Single-select fields:

type BusinessCategory =
| "Account Service"
| "Attorney/Law"
| "Financial Service"
| "First Responder"
| "Charity/Fundraising"
| "Customer Service"
| "Government"
| "Healthcare/Hospital"
| "Informational"
| "Insurance"
| "Other"
| "Pharmacy/Medical Supply"
| "Political/Campaign"
| "Real Estate"
| "Sales"
| "School/College"
| "Survey/Research"
| "Telemarketing/Solicitations"
| "Travel/Hospitality";
type MonthlyCallVolume =
| "under10k" // Under 10,000
| "from10kTo50k" // 10,000 – 50,000
| "from50kTo100k" // 50,000 – 100,000
| "from100kTo500k" // 100,000 – 500,000
| "over500k"; // Over 500,000

Documents:

Each document is provided as a publicly reachable https:// URL (max 512 characters). All slots are optional.

type Documents = {
companyLogo?: string;
termsAndConditions?: string;
privacyPolicy?: string;
sampleConsentLanguage?: string;
// Example web form where consumers request contact
exampleWebForm?: string;
// Screenshot of the consent disclosure shown to consumers
consentDisclosureScreenshot?: string;
// Screenshot of the lead capture process
leadCaptureScreenshot?: string;
businessLicense?: string;
industryCertifications?: string;
sampleMarketingMaterial?: string;
customerReviewReport?: string;
};

Response:

type SubmitRegistrationResult = {
success: boolean;
// Present on failure
message?: string;
};
CodeMeaning
200Registration fetched or saved.
400Validation failed — a required field is missing, or a field value is invalid.
401Missing, invalid, or inactive API key.
403API key is not a universal-typed key.
500The registration could not be saved. See message.