นักพัฒนา

GET/v3/getnumbers/{prefix_id}/{quantity}

ค้นหาหมายเลขโทรศัพท์ที่พร้อมให้บริการ

ค้นหาภายในรหัสนำหน้ารายการเดียวในแค็ตตาล็อก ตรวจสอบความสามารถของหมายเลขและแผนราคาสำหรับบัญชีของคุณ แล้วเลือกหมายเลขเพื่อนำไปสั่งซื้อแยกต่างหาก การค้นหาไม่ได้เป็นการจองหรือซื้อหมายเลข

ในหน้านี้
  1. เลือกรหัสนำหน้าเป็นรายรายการ
  2. เรียกดูผลลัพธ์เป็นชุดที่จำกัดขนาด
  3. ค้นหารูปแบบตัวเลขที่จดจำง่าย
  4. ตรวจสอบหมายเลขที่เลือก
  5. สั่งซื้อแยกต่างหากและยืนยันผลลัพธ์
  6. คำขอ
  7. ผลตอบกลับ
  8. ข้อผิดพลาด
  9. ความพร้อมให้บริการและผลกระทบข้างเคียง

เลือกรหัสนำหน้าเป็นรายรายการ

เรียกใช้คำสั่งค้นหาประเทศและพื้นที่ให้บริการ จากนั้นเรียก 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 จะแตกต่างกันตามแหล่งข้อมูล อย่ากำหนดว่าข้อมูลรัฐต้องมีโครงสร้างเดียวกันในทุกแหล่ง หรืออนุมานราคาจากรหัสระบุ

ในเส้นทางการทำงานที่ไม่ใช้การสตรีม ระบบจะตัดหมายเลขตัวเลือกที่ซ้ำกันและจัดสรรจำนวนจากแหล่งต่าง ๆ ก่อนเรียงลำดับชุดที่เลือกตามราคารายเดือนของแผนแรก เส้นทางอื่นอาจเริ่มสตรีมได้ก่อนหน้านั้น จึงไม่มีการรับประกันการเรียงลำดับโดยรวมหรือการตัดรายการซ้ำที่ใช้ได้กับทุกคำขอ อีกทั้งการเรียงลำดับไม่ได้พิสูจน์ว่าตัวอย่างที่ส่งกลับมีหมายเลขที่ถูกที่สุดในแค็ตตาล็อกทั้งหมด

สั่งซื้อแยกต่างหากและยืนยันผลลัพธ์

การค้นหาไม่ได้ซื้อหรือจองสิ่งใด ให้เก็บหมายเลขและรหัสระบุแผนที่ส่งกลับไว้สำหรับขั้นตอนการสั่งซื้อภายใต้บัญชีเดียวกัน ตรวจสอบแผน ข้อกำหนด และค่าใช้จ่ายจริงก่อนส่งคำสั่งซื้อ ข้อกำหนดการลงทะเบียนอาจทำให้การเปิดใช้งานล่าช้า ผลการค้นหาไม่ได้กำหนดเส้นตายที่แน่นอนในการเปิดใช้งาน

คำขอ

ใช้บัญชี MultiTEL API ที่เปิดใช้งานแล้ว โดยใช้ข้อมูลรับรอง HTTP Basic สำหรับบัญชีที่ใช้รหัสผ่าน หรือ Authorization: Bearer สำหรับบัญชีที่ใช้โทเค็น สิทธิ์ของบัญชีและข้อจำกัด IP ของบัญชียังคงมีผล ดูคำแนะนำทั่วไปเกี่ยวกับการยืนยันตัวตน

ใช้พารามิเตอร์พาธและพารามิเตอร์คิวรีใน URL ใช้ GET สำหรับขั้นตอนการค้นหาผ่าน API สาธารณะ ตัวจัดการยังรับค่าบางรายการจากแบบฟอร์มหรือคำขอด้วย แต่ไม่ใช่ 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_idstringใช่รหัสระบุรหัสนำหน้ารายรายการที่ส่งกลับจากผลตอบกลับของ getprefixes แบบไม่จัดกลุ่ม คัดลอกให้ตรงทุกอักขระ อย่าใช้รหัสระบุประเทศ พื้นที่ให้บริการ รหัสนำหน้าแบบจัดกลุ่ม หรือแผนราคาแทน
quantityintegerไม่จำนวนเป้าหมายที่จะดึงข้อมูล ค่าเริ่มต้นคือ 1 ค่าที่ไม่เป็นบวกจะเปลี่ยนเป็น 1 การระบุ quantity ในพาธเพียงอย่างเดียวไม่ใช่วิธีจำกัดจำนวนผลลัพธ์โดยรวมที่เชื่อถือได้ การค้นหาที่ไม่เจาะจงแหล่งหมายเลขและไม่มีพารามิเตอร์คิวรี quantity อาจขยายการดึงข้อมูลและส่งกลับได้สูงสุด 50 รายการต่อแหล่งก่อนการประมวลผลอื่น สำหรับการเรียกดูทั่วไปที่ต้องการจำกัดขนาด ให้ใช้ compact=1 และระบุจำนวนที่ต้องการซ้ำในคิวรีดังตัวอย่าง
พารามิเตอร์คิวรี
ชื่อชนิดข้อมูลจำเป็นต้องระบุคำอธิบาย
quantityintegerไม่ขนาดชุดผลลัพธ์สุดท้ายที่ร้องขอ ค่าที่ไม่ว่างจะถูกแปลงเป็นจำนวนเต็ม โดยมีค่าต่ำสุดเป็น 1 ในเส้นทางที่ไม่ใช้การสตรีมและไม่เจาะจงแหล่งหมายเลข ค่านี้จะจำกัดการจัดสรรขั้นสุดท้าย แต่ไม่ได้บังคับให้บริการค้นหาหมายเลขให้ได้ครบตามจำนวนนั้น การค้นหาแบบย่อที่เจาะจงแหล่งหมายเลขอาจส่งกลับชุดผลลัพธ์แบบย่อของแหล่งนั้นแทนการใช้ขีดจำกัดนี้
compactstringไม่ใช้ 1, true หรือ on เพื่อรับผลตอบกลับขนาดเล็กลงแบบไม่สตรีม โดยมีสูงสุด 10 รายการต่อแหล่งก่อนการจัดสรรขั้นสุดท้าย ผลลัพธ์เป็นเพียงตัวอย่างของหมายเลขที่ดึงมาในขณะนั้น ไม่ใช่แค็ตตาล็อกทั้งหมด
number_filter_modestringไม่โหมดรูปแบบตัวเลขที่เลือกใช้ได้: contains หรือ ends_with ต้องระบุ number_filter_value ด้วย ระบบจะตรวจสอบผลลัพธ์เทียบกับตัวเลขของหมายเลขโทรศัพท์ที่ปรับรูปแบบให้เป็นมาตรฐานแล้ว การค้นหาไม่ได้ไล่ตรวจหมายเลขทั้งหมดที่มีอยู่เพื่อรับประกันว่าจะพบทุกหมายเลขที่อาจตรงเงื่อนไข
number_filter_valuestringไม่ตัวเลขระหว่าง 1 ถึง 15 หลัก โดยไม่มีช่องว่าง + หรือเครื่องหมายวรรคตอน เลขศูนย์นำหน้ามีความสำคัญ ให้ส่งค่าเป็นข้อความ
filter_requiredstringไม่ขั้นสูง: ค่า 1, true, yes หรือ on กำหนดให้ต้องเลือกแหล่งหมายเลขอย่างชัดเจนและแหล่งนั้นต้องรองรับโหมดตัวกรอง มิฉะนั้น API จะส่งกลับ status.code เป็น 422 ไม่จำเป็นต้องใช้ตัวเลือกนี้สำหรับการเรียกดูแค็ตตาล็อกทั่วไป
pidstringไม่ตัวเลือกแหล่งหมายเลขขั้นสูงที่ 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 เพียงอย่างเดียวไม่ได้ยืนยันความสามารถด้านโทรศัพท์เคลื่อนที่ของหมายเลขใดหมายเลขหนึ่ง