Bulk HTX Number Checker: CSV Upload and Result Export Guide
Phone lists collected under the Huobi name have a specific structural problem that email lists never have: numbers without country context. An email address is globally addressable; a phone number written as 13800138000 is meaningless until someone says which country's dialing plan it belongs to. Older exports were frequently captured in national format, with the collection country recorded nowhere — or recorded implicitly, by the team that has since left. A bulk check on that file is therefore two jobs: reconstruct the country context defensibly, and only then run the HTX registration signal. Bulk HTX Number Checker is the ZelNum page for both halves: HTX Number Checker.
The short version
Assemble the CSV with one number on each row, your record ID, and a country-evidence column. Preserve the raw value untouched in its own column. Let the check normalize, show the evidence, and report input confidence separately from the HTX result. Route unresolved-format rows out of the paid batch instead of guessing. Then re-check on a schedule, because a registration signal from last year describes last year.
The column rules
| Column | Rule |
|---|---|
record_id |
Your way back to the source system; store it as text. Excel will turn 00871 into 871 silently, and you will discover it during the audit join. |
raw_phone |
The value exactly as the legacy export has it, spaces and all. Never overwritten. Every derived format is a separate column, so the audit trail never depends on memory. |
country_evidence |
Where the country call came from: a signup record, a billing country, the batch's known origin. If the source is "assumed from batch," write that — the label is the difference between a reconstruction and a guess. |
normalized_e164 |
Filled by the check when the input resolves. This is the value the HTX signal actually ran against. |
input_confidence |
Filled by the check: how sure the normalization is. Kept separate from the result on purpose. |
htx_status |
Filled by the check: the registration signal per row. |
checked_at |
Timestamp per row. Re-checks compare against this, not against the file's modification date. |
Why country reconstruction deserves its own pass
Guessing a country wrong does not produce an error. It produces a confident-looking result for a number that was never in that dialing plan — a valid-format number for the wrong country, which returns "not registered" and gets suppressed for a reason that has nothing to do with the HTX account. That is data corruption wearing a clean export.
Work the evidence in order of strength: an explicit country on the signup record beats a billing country, which beats a batch-level origin ("this 2020 file came from the Thailand campaign"), which beats format inference. Write the evidence level into the file per row. When two rows normalize the same raw digits differently, the evidence column explains why, and nobody has to re-derive the logic two quarters later.
Input confidence is not the result
The check reports two separate claims: how confidently the input resolved to an international number, and what the HTX signal says about that number. Keeping them apart changes how the export reads. A row with low input confidence and "not registered" means "we are not sure we checked the right number." A row with high input confidence and "not registered" means "we checked the right number, and it is not on HTX." Those are opposite actions — the first goes back to reconstruction, the second goes into the suppress list. Merge the two columns into one status and the export loses exactly this distinction.
Reading a real-shaped run
Take 9,700 rows from a legacy phone export. After normalization: 66% resolve cleanly and get checked, 20% resolve with caveats recorded, 10% fail input normalization, 4% stay unknown. (Figures below are illustrative, not a performance promise.)
The instinct says send all 9,700 and read whatever returns. The better order: the 10% that fail input normalization have no business in the paid batch — they are reconstruction work, not lookup work, and running them anyway buys a result you cannot trust. Exclude them, fix their country evidence, and resubmit. The 20% caveat slice is worth checking but should be read with the caveat column open.
Routing the export
- High confidence, on HTX → keep, log the timestamp.
- High confidence, not on HTX → suppress with the reason recorded.
- Low confidence → back to country reconstruction, not to suppression.
- Input failure → repair queue; excluded from the paid batch.
- Unknown → retry after a few days. Transient, not terminal.
Mistakes to avoid
- Normalizing before the check. Hand-rolled E.164 conversion is where corruption sneaks in silently. Keep raw_phone pure, let the check normalize, and compare the two columns when something looks off.
- Guessing countries by format. Several national formats overlap across dialing plans; a guess that looks plausible is still a guess, and it fails quietly.
- Paying to check unresolvable rows. Input failures produce no signal, only a charge. Exclude them first.
- Deleting the caveat column in the export. The next audit needs to know which 20% carried caveats. Re-deriving it means re-running the whole check.
FAQ
Why keep the raw number untouched in its own column?
Because every later question (did the check see the same value I have, where did this normalization come from) depends on comparing against the original. Overwrite it and the audit trail becomes testimony without evidence.
What is country evidence, in plain terms?
The recorded reason for believing a number belongs to a country: a signup record, a billing country, or the batch's known origin, labeled per row. It is what separates a defensible reconstruction from a guess that happens to look formatted correctly.
Why is input confidence reported separately from the HTX result?
Because they drive opposite actions. Low confidence sends a row back to reconstruction; a confident "not registered" sends it to suppression. One combined status cannot distinguish the two, and teams end up suppressing rows they simply failed to parse.
Should duplicate numbers across batches be merged first?
No. Leave duplicates in and let the check report per row. The same raw number normalizing differently under two evidence levels is one of the most useful signals in the file, and merging destroys it.
How often should the list be re-checked?
Quarterly for lists in active use, and after any reconstruction pass that changes country evidence — changed evidence means changed inputs, which invalidates the previous results.
Related ZelNum pages
- HTX Number Checker API Workflow fits when the checks run on a schedule.
- How to Use the HTX Number Checker for Bulk List Checks walks through the interface step by step.
Ethan works on phone-number normalization, E.164 formatting, country-code rules, carrier metadata, and line-type detection. His editorial work turns verification signals into practical workflows for CRM cleaning, SMS preparation, lead review, and bulk data operations.
View full author profile →