Επιλέξτε ένα μεμονωμένο πρόθεμα
Χρησιμοποιήστε τις κλήσεις εντοπισμού χωρών και περιοχών κάλυψης και έπειτα το getprefixes χωρίς ομαδοποίηση. Αντιγράψτε το αναγνωριστικό του επιλεγμένου προθέματος, uuid. Αν το returns_numbers είναι 0, το πρόθεμα εκχωρεί αριθμό κατά την παραγγελία· χρησιμοποιήστε το επιστρεφόμενο next_function αντί να απαιτείτε λίστα μεμονωμένων αριθμών.
Περιηγηθείτε σε μια παρτίδα περιορισμένου μεγέθους
Για μια συνηθισμένη αναζήτηση, χρησιμοποιήστε compact=1 και ορίστε το επιθυμητό μέγεθος παρτίδας τόσο στη διαδρομή όσο και στην παράμετρο ερωτήματος quantity, όπως φαίνεται παρακάτω. Δεν υπάρχει παράμετρος σελίδας ή δρομέα. Ένα συμπτυγμένο αποτέλεσμα είναι δείγμα· η επανάληψη ενός αιτήματος δεν εγγυάται ότι η επόμενη σελίδα δεν θα περιέχει κοινές εγγραφές. Μην θεωρείτε ότι ένα κενό αποτέλεσμα ή ένα αποτέλεσμα με λίγες εγγραφές δείχνει το συνολικό πλήθος του αποθέματος.
Βρείτε ένα ευκολομνημόνευτο μοτίβο ψηφίων
Δώστε number_filter_mode=contains ή ends_with μαζί με number_filter_value. Η τιμή πρέπει να περιέχει 1–15 ψηφία. Η αναζήτηση ενδέχεται να ανακτήσει περιορισμένες παρτίδες υποψήφιων αριθμών πριν εφαρμόσει το φίλτρο, επομένως μπορεί να παραλείψει άλλους αριθμούς του αποθέματος που ταιριάζουν. Αν χρειάζεστε μια υποστηριζόμενη πηγή για την εφαρμογή της απαιτούμενης αναζήτησης, λάβετε έναν επιλογέα pid από τη MultiTEL και χρησιμοποιήστε filter_required=1· αν δεν υπάρχει επιλογή ή η επιλογή δεν υποστηρίζεται, επιστρέφεται σφάλμα API.
Εξετάστε τον επιλεγμένο αριθμό
Διαβάστε τα number, info.uuid, το επιλεγμένο price[].uuid, τα ονόματα των διαθέσιμων λειτουργιών και τις απαιτήσεις εγγραφής από το ίδιο αποτέλεσμα. Ο πίνακας price ενδέχεται να προσφέρει πολλά προγράμματα με διαφορετικό πλήθος καναλιών και διαφορετικές χρεώσεις. Τα χρηματικά πεδία και οι ποσότητες μπορεί να κωδικοποιούνται ως συμβολοσειρές. Τα προαιρετικά μεταδεδομένα, συμπεριλαμβανομένου του info.state, διαφέρουν ανάλογα με την πηγή· μην απαιτείτε μια ενιαία δομή για την κατάσταση και μην συνάγετε τιμές από ένα αναγνωριστικό.
Στη διαδρομή χωρίς συνεχή ροή, αφαιρούνται οι διπλότυποι υποψήφιοι αριθμοί και γίνεται κατανομή μεταξύ των πηγών πριν ταξινομηθεί η επιλεγμένη παρτίδα βάσει της μηνιαίας τιμής του πρώτου προγράμματος. Άλλες διαδρομές μπορούν να αρχίσουν τη συνεχή μετάδοση νωρίτερα, επομένως δεν ισχύει για κάθε αίτημα εγγύηση συνολικής ταξινόμησης ή αφαίρεσης διπλοτύπων. Επίσης, η ταξινόμηση δεν αποδεικνύει ότι το επιστρεφόμενο δείγμα περιλαμβάνει τον φθηνότερο αριθμό ολόκληρου του καταλόγου.
Παραγγείλετε ξεχωριστά και επιβεβαιώστε το αποτέλεσμα
Η αναζήτηση δεν αγοράζει ούτε δεσμεύει τίποτα. Διατηρήστε τα επιστρεφόμενα αναγνωριστικά του αριθμού και του προγράμματος για τη διαδικασία παραγγελίας με τον ίδιο λογαριασμό. Εξετάστε το πραγματικό πρόγραμμα, τις απαιτήσεις και τις χρεώσεις πριν υποβάλετε παραγγελία. Οι απαιτήσεις εγγραφής μπορούν να καθυστερήσουν την ενεργοποίηση· ένα αποτέλεσμα αναζήτησης δεν καθορίζει συγκεκριμένη προθεσμία ενεργοποίησης.
Αίτημα
Χρησιμοποιήστε έναν ενεργοποιημένο λογαριασμό API της MultiTEL: διαπιστευτήρια HTTP Basic για λογαριασμό με κωδικό πρόσβασης ή Authorization: Bearer για λογαριασμό με διακριτικό. Ισχύουν τα δικαιώματα του λογαριασμού και οι περιορισμοί IP του. Δείτε τις κοινές οδηγίες ελέγχου ταυτότητας.
Παράμετροι διαδρομής και παράμετροι ερωτήματος URL. Χρησιμοποιήστε GET για τη δημόσια διαδικασία αναζήτησης. Ο χειριστής δέχεται επίσης ορισμένες τιμές φόρμας/αιτήματος, αλλά δεν είναι API αναζήτησης με σώμα JSON.
curl --fail-with-body --get \
--user "${MULTITEL_API_USERNAME}:${MULTITEL_API_PASSWORD}" \
--data-urlencode "compact=1" \
--data-urlencode "quantity=10" \
"https://api.multitel.net/v3/getnumbers/${PREFIX_ID}/10"| Όνομα | Τύπος | Υποχρεωτικό | Περιγραφή |
|---|---|---|---|
prefix_id | string | Ναι | Αναγνωριστικό μεμονωμένου προθέματος που επιστρέφεται από απόκριση του getprefixes χωρίς ομαδοποίηση. Αντιγράψτε το ακριβώς· μην το αντικαταστήσετε με αναγνωριστικό χώρας, περιοχής κάλυψης, ομαδοποιημένου προθέματος ή προγράμματος τιμολόγησης. |
quantity | integer | Όχι | Επιθυμητό πλήθος ανάκτησης, με προεπιλογή 1. Οι μη θετικές τιμές γίνονται 1. Η παράμετρος διαδρομής quantity από μόνη της δεν αποτελεί αξιόπιστο συνολικό όριο αποτελεσμάτων: μια αναζήτηση χωρίς δέσμευση σε συγκεκριμένη πηγή και χωρίς παράμετρο ερωτήματος quantity μπορεί να διευρύνει την ανάκτηση και να επιστρέψει έως 50 εγγραφές ανά πηγή πριν από την υπόλοιπη επεξεργασία. Για συνηθισμένη περιήγηση με περιορισμένο πλήθος αποτελεσμάτων, χρησιμοποιήστε compact=1 και επαναλάβετε την επιθυμητή ποσότητα στο ερώτημα, όπως στο παράδειγμα. |
| Όνομα | Τύπος | Υποχρεωτικό | Περιγραφή |
|---|---|---|---|
quantity | integer | Όχι | Ζητούμενο τελικό μέγεθος παρτίδας. Οι μη κενές τιμές μετατρέπονται σε ακεραίους, με ελάχιστη τιμή 1. Στη διαδρομή χωρίς συνεχή ροή και χωρίς δέσμευση σε συγκεκριμένη πηγή, αυτό περιορίζει την τελική κατανομή. Δεν υποχρεώνει την υπηρεσία να βρει τόσους αριθμούς. Οι συμπτυγμένες αναζητήσεις που δεσμεύονται σε συγκεκριμένη πηγή ενδέχεται να επιστρέψουν τη συμπτυγμένη παρτίδα της πηγής αντί να εφαρμόσουν αυτό το όριο. |
compact | string | Όχι | Χρησιμοποιήστε 1, true ή on για μικρότερη απόκριση χωρίς συνεχή ροή, με έως 10 εγγραφές ανά πηγή πριν από την τελική κατανομή. Τα αποτελέσματα είναι δείγμα του αποθέματος που ανακτάται εκείνη τη στιγμή, όχι πλήρης κατάλογος. |
number_filter_mode | string | Όχι | Προαιρετικός τρόπος αντιστοίχισης μοτίβου ψηφίων: contains ή ends_with. Δώστε επίσης το number_filter_value. Τα αποτελέσματα ελέγχονται με βάση τα κανονικοποιημένα ψηφία των τηλεφωνικών αριθμών· η αναζήτηση δεν εξετάζει όλο το απόθεμα ώστε να εγγυάται κάθε πιθανή αντιστοίχιση. |
number_filter_value | string | Όχι | Από 1 έως 15 ψηφία, χωρίς κενά, + ή σημεία στίξης. Τα αρχικά μηδενικά έχουν σημασία· στείλτε την τιμή ως κείμενο. |
filter_required | string | Όχι | Για προχωρημένους: η τιμή 1, true, yes ή on απαιτεί μια υποστηριζόμενη, ρητά επιλεγμένη πηγή αποθέματος για τον τρόπο φιλτραρίσματος. Διαφορετικά, το API επιστρέφει status.code 422. Αυτό δεν απαιτείται για συνηθισμένη περιήγηση στον κατάλογο. |
pid | string | Όχι | Επιλογέας αποθέματος για προχωρημένους, που παρέχεται από τη MultiTEL. Γίνονται δεκτές αριθμητικές μορφές και οι υποστηριζόμενες δεκαεξαδικές μορφές 32 χαρακτήρων· οι μη αναγνωρισμένες τιμές αγνοούνται χωρίς ειδοποίηση. Παραλείψτε τον για συνηθισμένη χρήση. Μην παράγετε επιλογείς από αναγνωριστικά τιμών και μην θεωρείτε ότι ένας αυθαίρετος επιλογέας περιορίζει αποκλειστικά το απόθεμα. |
Απόκριση
Ένα αντικείμενο JSON που περιέχει τα status και response. Σε περίπτωση επιτυχίας, το status.code είναι 200 και το response είναι πίνακας εγγραφών αριθμών. Το status.results είναι το πλήθος εγγραφών του επιστρεφόμενου πίνακα· το status.msg μπορεί να είναι Results: N ή OK για απόκριση συνεχούς ροής. Χωρίς compact=1, ορισμένες αναζητήσεις γράφουν τον πίνακα response σταδιακά και ολοκληρώνουν με το status, επομένως περιμένετε να παραληφθεί ολόκληρο το σώμα JSON. Δεν πρόκειται για JSON με εγγραφές διαχωρισμένες με αλλαγές γραμμής. Ελέγξτε το status.code ακόμη και όταν η μεταφορά HTTP είναι επιτυχής. Παρακάτω παρουσιάζονται συνήθη πεδία· τα μεταδεδομένα κάθε πηγής και τα προαιρετικά πεδία διαφέρουν. Αντιμετωπίστε κάθε αναγνωριστικό ως αδιαφανές και διατηρήστε μαζί τον αριθμό και το επιλεγμένο price[].uuid του.
Ενδεικτική δομή απόκρισης· δεν αποτελεί ζωντανά δεδομένα λογαριασμού ή τρέχουσα προσφορά.
{
"status": {
"code": 200,
"msg": "Results: 1",
"results": 1
},
"response": [
{
"number": "12125550123",
"info": {
"uuid": "NUMBER_ID_FROM_RESPONSE",
"prefix_uuid": "PREFIX_ID_FROM_RESPONSE",
"area_uuid": "AREA_ID_FROM_RESPONSE",
"country_uuid": "COUNTRY_ID_FROM_RESPONSE",
"country_iso": "US",
"prefix": "+1212",
"name": "Example area",
"state": "US"
},
"price": [
{
"uuid": "PRICE_PLAN_ID_FROM_RESPONSE",
"per_minute": "0.01",
"per_sms": "0",
"per_mms": "0",
"free_minutes": "0",
"setup_price": "1.00",
"monthly_price": "2.00",
"yearly_price": "0",
"channels": "2"
}
],
"contract": {
"term": "1 month",
"renewal": "monthly",
"notice": "none"
},
"restrictions": {
"needs_registration": "0",
"restrictions": ""
},
"features": [
"voice"
],
"overflow": "0"
}
]
}Σφάλματα
- 401: Ο έλεγχος ταυτότητας απέτυχε. Τα μη έγκυρα διαπιστευτήρια, η απουσία διαπιστευτηρίων και η απόρριψη πρόσβασης στον λογαριασμό API δεν παράγουν αποτελέσματα αναζήτησης.
- 404: Invalid prefix ID, Invalid country, Invalid area ή No numbers found. Διαβάστε το status.msg· η απόκριση σφάλματος δεν είναι πίνακας αριθμών.
- 400: NUMBER_FILTER_INVALID στο response.code: μη έγκυρος τρόπος φιλτραρίσματος, τιμή που δεν αποτελείται από 1–15 ψηφία ή filter_required χωρίς να έχουν δοθεί τόσο ο τρόπος φιλτραρίσματος όσο και η τιμή.
- 422: NUMBER_FILTER_UNSUPPORTED στο response.code: είτε το πρόθεμα εκχωρεί αριθμό κατά την παραγγελία (reason=order_only_prefix και το next_function προσδιορίζει τη διαδρομή παραγγελίας), είτε η ρητά επιλεγμένη πηγή δεν μπορεί να υποστηρίξει το απαιτούμενο φίλτρο.
Διαθεσιμότητα και παρενέργειες
- Αυτός ο χειριστής πραγματοποιεί αναζητήσεις και προετοιμάζει προσφορές· δεν υποβάλλει παραγγελία αριθμού ούτε χρεώνει αγορά αριθμού. Μπορεί να ανανεώσει τις κρυφές μνήμες του καταλόγου, να αφαιρέσει παρωχημένο απόθεμα από την κρυφή μνήμη, να αποθηκεύσει προγράμματα τιμολόγησης για τον συγκεκριμένο λογαριασμό και να καταγράψει αναζητήσεις.
- Η διαθεσιμότητα αποτυπώνει μια συγκεκριμένη χρονική στιγμή και δεν αποτελεί δέσμευση. Μια μεταγενέστερη παραγγελία μπορεί να αποτύχει ή να επιστρέψει διαφορετική διαθεσιμότητα. Διασταυρώστε το αποτέλεσμα της παραγγελίας πριν επιχειρήσετε ξανά την αγορά.
- Οι τιμές είναι συγκεκριμένες για κάθε λογαριασμό. Διατηρήστε το αναγνωριστικό του επιλεγμένου προγράμματος για τον ίδιο λογαριασμό και εξετάστε ξεχωριστά τους όρους και τις χρεώσεις της παραγγελίας· αυτό το τελικό σημείο από μόνο του δεν αποδεικνύει ότι μια τιμή θα παραμείνει έγκυρη μέχρι μια μεταγενέστερη παραγγελία.
- Ο αριθμός και οι τιμές του παραδείγματος είναι πλασματικά παραδείγματα της δομής απόκρισης και όχι ζωντανή προσφορά. Οι δυνατότητες, το πλήθος καναλιών, η διάρκεια και οι πληροφορίες εγγραφής πρέπει να διαβάζονται από το πραγματικό επιλεγμένο αποτέλεσμα.
- Ορισμένες περιγραφές εγγραφής περιέχουν μορφοποιημένο κείμενο ή συνδέσμους. Αντιμετωπίστε τις επιστρεφόμενες συμβολοσειρές ως μη έμπιστα δεδομένα κατά την εμφάνισή τους στη δική σας εφαρμογή.
- Η διαθεσιμότητα κινητών αριθμών και οι σχετικές ενδείξεις εξαρτώνται από την επιλεξιμότητα του λογαριασμού και το απόθεμα. Ένα πρόθεμα καταλόγου ή η ένδειξη is_mobile από μόνα τους δεν τεκμηριώνουν τις δυνατότητες κινητής τηλεφωνίας ενός συγκεκριμένου αριθμού.