BLS Captcha Image Solving
Solve BLS (visa appointment system) captcha challenges. BLS uses numeric OCR captchas with fixed 3-digit format for visa application verification with 99.7% accuracy.
BLS (Bureau of Land and Surveys) is the visa appointment system used by many countries for scheduling visa interviews. It uses a simple 3-digit numeric CAPTCHA that requires users to read and enter numbers displayed in an image. Our OCR system is specifically optimized for this format and provides near-perfect accuracy.
Captcha Type
Use the following captcha type identifier in your API requests:
"type": "BLS_IMAGE"
Request Format
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
captcha.type |
string | required | Must be "BLS_IMAGE" |
captcha.metadata.siteUrl |
string | required | BLS website URL |
captcha.payload.images |
array | required | Array of base64-encoded captcha images |
BLS captcha has fixed parameters (handled server-side): numeric only, 3 digits, case insensitive. You only need to provide images.
Example Request
const response = await fetch('https://solver-api.mydisct.com/createTask', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'apikey': 'YOUR_API_KEY'
},
body: JSON.stringify({
auth: { token: 'YOUR_API_KEY' },
context: { source: 'api', version: '1.0.0' },
captcha: {
type: 'BLS_IMAGE',
metadata: {
siteUrl: 'https://blsappointment.com'
},
payload: {
images: ['captcha_image_base64']
}
}
})
});
Response Format
Create Task Response
{
"success": true,
"service": "MyDisct Solver",
"message": "Captcha is being processed",
"task": {
"id": "MyDisctSolver_abc123",
"status": "processing"
}
}
Fetch Result Response (Processing)
{
"success": true,
"service": "MyDisct Solver",
"message": "Captcha is being processed",
"task": {
"id": "MyDisctSolver_abc123",
"status": "processing"
}
}
Fetch Result Response (Completed)
{
"success": true,
"service": "MyDisct Solver",
"message": "Captcha solved successfully",
"task": {
"id": "MyDisctSolver_abc123",
"status": "completed",
"result": {
"answers": "347",
"timestamp": "2025-11-05T12:34:56.789Z"
}
}
}
Returns 3-digit numeric string.
Python Example
import requests
import time
def solve_bls(image_base64, site_url, api_key):
create_response = requests.post(
'https://solver-api.mydisct.com/createTask',
headers={'Content-Type': 'application/json', 'apikey': api_key},
json={
'auth': {'token': api_key},
'context': {'source': 'api', 'version': '1.0.0'},
'captcha': {
'type': 'BLS_IMAGE',
'metadata': {'siteUrl': site_url},
'payload': {
'images': [image_base64]
}
}
}
)
create_data = create_response.json()
if not create_data['success']:
raise Exception(create_data['error']['message'])
task_id = create_data['task']['id']
while True:
time.sleep(2) # BLS is fast
result_response = requests.post(
'https://solver-api.mydisct.com/fetchResult',
headers={'Content-Type': 'application/json', 'apikey': api_key},
json={'taskId': task_id}
)
result_data = result_response.json()
if result_data['task']['status'] == 'completed':
return result_data['task']['result']['answers']
elif result_data['task']['status'] == 'failed':
raise Exception('Captcha solving failed')
solution = solve_bls(
image_base64='captcha_image_base64',
site_url='https://blsappointment.com',
api_key='YOUR_API_KEY'
)
print(f'BLS Code: {solution}')
Best Practices
- BLS always returns 3 numeric digits
- Very fast solving (1-2 seconds)
- No additional parameters needed
- High accuracy for numeric OCR
- Single image input
Common Issues
Solution: BLS always returns exactly 3 digits. If you receive a different length, check that you're using the correct captcha type.
Solution: BLS is always numeric-only. If you receive letters or special characters, there may be an issue with image quality or the wrong captcha type is being used.