# Platform introduction
# What is ByteBridge?
ByteBridge provides full-managed annotation services. You can create projects, upload data, configure the labeling instruction, and we annotate manually.
Seamlessly monitor all projects in real-time
Significantly lower project costs with transparent standardized pricing
Individually decide when to start your projects, review and get your labeled data instantly
# ByteBridge Services
# Data Annotation
Image Annotation: Classification, Bounding Box, Rotating Box, Polygon, Key Point, Line, Cuboid, OCR, Semantic segmentation
Audio Annotation: Classification, Emotional Judgment, TTS
Video Annotation: Classification, Event analysis, Object Detection, Object Tracking
TEXT Annotation: Subject Detection, Translation
# Data Collection
In addition to data labeling services, ByteBridge also provides data collection services. Please contact the team for more information.
# Why ByteBridge?
# High Accuracy
The complex task is automatically transformed to tiny component to maximize the quality level as well as maintain consistency. All work results are completely screened and inspected by human workforce. Complex tasks are automatically segregated into smaller tasks to lower human error while the consensus algorithm ensures that you receive consistent high quality data.
# High Efficiency
The real-time QA and QC are integrated in the labeling workflow as the consensus mechanism, allowing you to get back large amounts of accurate data in a short amount of time.
Consensus mechanism: The consensus mechanism assigns the same task to several workers where the majority output will be considered the correctly completed tasks.
# Flexibility
You can set the labeling rules directly on the dashboard as you see fit.
Based on what you are learning about your ongoing project and how your AI model is performing in each step, you can modify data features and types, alter workflow, and scale up or down.
Progress preview: You can monitor the labeling progress in real-time on the dashboard.
Result preview: You can acquire and utilize the results in real-time through the dashboard.
Real-time outputs: You can get real-time outputs integrated into your AI or any type of algorithm through the API.
# Clear Quotation, No Hidden Fees
By cutting out the middlemen and optimizing the workflow with automation technology, you can now acquire high quality data with ByteBridge most cost-effectively.
With ByteBridge, you can get a clear quotation with no hidden fees.
# API
Easy-to-integrate API enables a non-stop data feed to your system.
# Beginner's Guide
# How can I start a project?
Table of content
- Create an account
- Create a project
- Setup workflow
- Upload data
- Submit project
- Validate Your Sample Results
- Upload Additional Data
- Payment and Start the Project
# Create an account
Create an account (opens new window)with your email to start using ByteBridge.
# Create Project
Login and click 【Create Project】 from your dashboard.
Select a project type. Collection projects will be supported soon.
# Upload Data
The website currently supports Manual Upload and API Upload. Direct Manual Uploads from the website: Drag and drop or click upload to upload your data that requires labeling. The file format must meet the stated requirements. You can upload data via API.

# Setup Workflow
Select a project template. You can create your own template by clicking 【Start over】as well.
Click the 【Start building】 button on the bottom left corner. Now you are ready to setup your workflow.
What is a workflow?
Workflow is your data labeling pipeline which consist of the multiple tasks associated with your project. Easily put, it is the logic you construct to acquire the needed output.
A complete workflow may consist of 1-99 branches, where each branch needs a completion node (conclusion). The project will be complete when each branch reaches its completion node.
Select a task from the left.
You can drag and drop a task to add it to your setup.
After you select a task, you can edit the details of that task.
If you added the wrong task, you can simply delete the task from your workflow.
You can copy, cut, and past your added tasks with Ctrl+C/X/V. All data will be labeled according to your workflow, thus, it is essential that you add a valid completion node (conclusion) to each branch.
Once you completed constructing your workflow, you can click 【Save】.
# Submit Project
Once you upload your data and complete setting up your Workflow, you will be able to click [Submit]. When you submit your project, the ByteBridge team will assess your account and project info. After the assessment is complete, your test project will automatically begin.
# Validate Your Sample Results
We will notify you when the sample results are ready for review. If you are satisfied, click [Accept Calibration] to proceed. You can click [Report Calibration Issues] to report any issues. Also, you can click [Report Result Issues] to edit your Workflow and labeling requirements. Finally, click [Submit Report] to tell us what to relabel. You will not be charged until you are fully satisfied with the sample results and the project officially begins.
# Upload Additional Data
You can upload additional data as long as you are satisfied with the sample results.
# Payment and Start the Project
We will estimate the project cost based on the sample results. Thus, the estimation may not be 100% precise. After you click [Confirm] a certain amount payment will be pre-authorized based on the estimated cost. Once the payment is approved, the project will automatically begin.
# Real-time Project Management and Monitoring
After you start your project, you can check your project details and progress in real-time from your project page. You can check the overall status of your data processing, cost, and completed tasks from your project page. You may also pause or resume your project from your page as well.

# Review Labeled Data
On the data review page, you can check the labeled data in real-time. Please review the data in time after receiving the email notification. Notice, labeled data items will be accepted by default if they are not reviewed within 21 days.
# Email Notification
You will be getting an email notification when your project assessment is complete and when your payments are processed.
# Private Cloud Upload
# Upload the dataset from an AWS S3 bucket
Sign in AWS and open the AWS Management Console

Create an account

Grant access permissions

Note: It would be better to choose Amazon S3 Full Access or Amazon S3 Read Only Access or other options granting pubic read access.
Get Access Key ID and Secret Access Key

Choose AWS S3 to upload data

Enter the Bucket name with the data that you want to upload

Note: only need to enter the Bucket name in the Private Cloud Address, without any prefix or file storage address. Currently only files in the bucket can be obtained.
Enter Access Key ID and Secret Access Key

Specify the region where the bucket resides

Note: you can get the region code by checking the list of AWS regions and availability zones.

- Submit the data that you want to upload
# Upload the dataset from Google Cloud
Sign in Google Cloud and open the Console

Create an account

Grant access permissions
Note: please choose Storage Admin, or Storage Object Viewer or other accesses that grant pubic read access to storage partition.Generate keyFile
Note: choose JSON, JSON file will be automatically downloaded by clicking [Create]. Please save it properly.Choose Google Cloud Storage to upload the data

Enter the Bucket name with the data that you want to upload

Note: only need to enter the Bucket name in Storage Partiton,without any prefix or file storage address. Currently only files in the bucket can be obtained
- Enter the keyFile information

Note: you can copy the JSON and paste it here.
- Submit the data that you want to upload
# Data Export
You can export your data in .json and .xml format which are compatible with labelme, voc, and coco.

Other than exporting your data from the website, you can export your data automatically via an API.
# Pricing and Payments
# Pricing
ByteBridge offers a transparent and standardized pricing for our services. Pricing will be based on the number of tasks that needs to be completed. Please check our price chart for more details. After your project begins, a portion of the payment will be pre-authorized.
Payment = ∑ (Downloadable data files x price per task)
In case your project workflow includes 2 labeling tasks and 1 bounding box task, you will be billed a transparently calculated payment for each tasks.
# Payment method
When you officially begin a project, a certain amount of payment will be pre-authorized based on the estimated project cost. The pre-authorized payment will be reflected in your account balance.If your project cost exceeds your account balance, all of your ongoing projects will be assessed and your credit card will be charged accordingly. The minimum payment is $50.
# Refund policy
# Balance refund
The amount which is pre-authorized from your credit card but not used up during your project will remain in your account as balance. You can apply for a refund of this remaining balance through Apply for a refund at any time. The refund may take up to 3 business days and will be issued to your registered credit card.
Note1: When you apply for a refund, your ongoing project will be automatically suspended and the fees for the completed tasks will be processed as payment.
Note2: Free credits are nonrefundable.
# Payment refund
The ByteBridge dashboard and website does not support automatic refunds for processed payments. If you have questions or complaints about the data quality that you received, please contact the ByteBridge team. We will review your case within 3 business days. Once it is confirmed that your data is invalid, the corresponding amount will be refunded back into your account balance. To refund this balance back into your credit card, please read Balance refund above.
# Invoice
ByteBridge issues separate invoices for each project. If you would like us to process your invoice in a particular way, please contact the ByteBridge team.
# Data Assessment
# ByteBridge QA
To ensure that you receive high quality data, all data which has been worked on will be assessed by the ByteBridge algorithm and team (man-power) before you get them back. This assures a 99% accuracy for all processed data.
# Mid-Project Evaluation
ByteBridge provides a visual platform which allows you to check the progress and results of your project at anytime. You can download and check the results of your output whenever you want. Even though ByteBridge assesses your data in various way before we give them back, a 100% accuracy cannot be guaranteed. If you happen to find any irregularities or errors among the outputs, please contact the ByteBridge team.
# ByteBridge API
# API Sign
# Get your api key and request user Id
ByteBridge uses userId and an string that signed by API keys to allow access to the API. The user id and api secret_key that you send the api request is a unique string generated based on uuid, you can find your API keys and user Id on your dashboard (opens new window), which you can access by logging in (opens new window) or signing up (opens new window).
secret_key = "test_78pbttim3mykypuoswidgzor6fv1u2rj"
user_id = "U_10BF4B46DD4811EA93476C96CFDDE73D"
# Sign request by api key
When you send an API request, you need to submit your User ID, you need to use the API secret key and the request body, timestamp, etc. to use MD5 encryption, and put the encrypted string into the request header, we will pass the user ID and signature String to verify that the request is valid.
Here is a Python example for reference:
import hashlib
import requests
import time
secret_key = "test_78pbttim3mykypuoswidgzor6fv1u2rj"
user_id = "U_10BF4B46DD4811EA93476C96CFDDE73D"
# sign string
def get_sig_str(headers, body):
sign_str = '''userID=%s&Body=%s&SignType=md5&Timestamp=%s&secretKey=%s''' % (user_id, body, headers['Timestamp'],secret_key)
return hashlib.md5(sign_str.encode()).hexdigest().upper()
def test_request():
headers = {"Content-Type": "application/json", "Timestamp": str(int(time.time() * 1000)), "SignType": "md5",
"RequestSign": ""}
body = {
"userId": "U_10BF4B46DD4811EA93476C96CFDDE73D",
"params": {}
}
body = json.dumps(body)
headers["RequestSign"] = get_sig_str(headers, body)
res = requests.post(url, data=body, headers=headers)
try:
print(json.dumps(json.loads(res), indent=4))
except:
print(res.text)
test_request()
# Callbacks
# Errors
# API Error Codes
| Error Code | Error Message | Remarks |
|---|---|---|
| 0 | success | request success |
| 1 | unknown error | error for network or that error unknow |
| 2 | Parameter missing or invalid | Missing or incorrect parameter for request |
| 3 | Json parsing failed | Parse request header or body abnormal |
| 4 | Api request url is invalid | Wrong request url used |
| 5 | Permission error, interface does not provide external access | Cannot request api Interface, Usually request by invalid api url |
| 6 | API request user does not exist | wrong request user you used |
| 7 | Project creation failed, please check the parameter configuration | Project creation failed due to abnormal parameters |
| 8 | The project does not exist | The created project cannot be queried, and the query parameters are incorrect |
| 9 | Project update failed,Please check for the project configurarion | Cannot update the project due to wrong request parameters |
| 10 | Failed to submit the resource link, please check whether the resource link is too long | The resource address is invalid or the resource link exceeds the length limit |
| 10 | The project has not uploaded files and cannot be opened, please upload files first | Before starting the project, you need to upload resources |
| 11 | The project has not uploaded files and cannot be opened, please upload files first | The project needs to upload resources first |
| 12 | Please bind credit card information in dashboard first | The project is opened, you need to bind the credit card, and then open the credit card |
| 13 | The project is under review | The project has been opened and submitted for review, no need to open it again |
| 14 | The project is already in progress, no need to start | The project has been started and submitted for review, no need to repeatedly call to start |
| 15 | The project has been completed and can no longer be started | The project has ended, you cannot open the same project |
| 16 | There is unsettled credit in this account | There are outstanding items, no new items can be opened |
| 17 | There is credit under settlement, please try again later | You have an item in payment, please open the current item later |
| 18 | Checking for the project status, hold on for a second | You need to check whether you have any arrears information before the project starts, please start later |
| 19 | The project failed to start, please check the project configuration | The configuration of the project to be opened is abnormal |
| 20 | The project has been paused | The project may be suspended by the system for other reasons, or you have manually suspended |
| 21 | Project pause failed, please check the parameter configuration and try again later | Pause failed, check whether the Api call is correct |
| 22 | The project can not be deleted now | The item cannot be deleted in its current state (may be already in progress) |
| 23 | Failed to delete in the current state of the project | The item failed to be deleted in the current state |
| 24 | Invalid resource information,Please check resource | The resources uploaded by the project are invalid and cannot be distributed as tasks |
| 25 | The current project status does not allow to upload resources | After the project passes the review, no more resources can be uploaded |
| 26 | Project information query failed, please check whether the retrieved parameters match | Project information query failed, check the retrieval information and try again |
| 27 | api key signature verification failed | The signature of the api request (signed with secret key) is invalid |
| 28 | Projects that have been opened for delivery review cannot be modified | When the project opening operation personnel review, the project cannot be modified, please modify before the project is opened |
# Projects
# Project Creation
Post url
url = 'http://api.bytebridge.io:20000/api/v1/projects'
Body Params
userId:
"your user ID in dashboard"
projectName:
The name of the project you are about to create, ensure that it cannot be repeated, because you will use it to retrieve your project.
type:
Make sure that the type of task you request to create through the api is included below, otherwise an error will be reported and the task creation will fail.
| Type name | Remarks |
|---|---|
| image_classification | Categorize pictures according to their content |
| text_classification | Categorize text information according to the content of the text |
| image_rectangle_frame_select | Use a quadrilateral to frame the objects specified in the figure |
| image_stroke | Stroke the objects indicated in the picture |
instruction:
Comment on tasks you created.
question:
When you create a classification task, you need to provide the classification basis in the form of a question, such as whether the animal in the picture is a cat or a dog.
objectMarked:
When you create a frame selection task, you need to provide the objects you will select from the selection.
taskType:
| Project type | Task Type | Remarks |
|---|---|---|
| image_classification , text_classification | single_choice | When the project category is classified, the parameter must be selected (single_choice, multiple_choice)When the item category is frame selection, the parameter must be selected ("rectangle_frame_select","free_point","stroke","cube_circle") |
| image_classification , text_classification | multiple_choice | -------- |
| image_rectangle_frame_select , image_stroke | rectangle_frame_select | --------- |
| image_rectangle_frame_select , image_stroke | free_point | --------- |
| image_rectangle_frame_select , image_stroke | stroke | --------- |
| image_rectangle_frame_select , image_stroke | cube_circle | --------- |
options:
Options (when the project category is classified, this parameter is required)
Demo
Request
import requests
import json
import hashlib
import time
url = 'http://api.bytebridge.io:20000/api/v1/projects/'
secret_key = "test_78pbttim3mykypuoswidgzor6fv1u2rj"
user_id = "U_10BF4B46DD4811EA93476C96CFDDE73D"
def get_sig_str(headers, body):
sign_str = '''userID=%s&Body=%s&SignType=md5&Timestamp=%s&secretKey=%s''' % (user_id, body, headers['Timestamp'],secret_key)
return hashlib.md5(sign_str.encode()).hexdigest().upper()
def create_project():
headers = {"Content-Type": "application/json", "Timestamp": str(int(time.time() * 1000)), "SignType": 'md5',
"RequestSign": ''}
body = {
"userId": user_id,
"params": {
"projectName": "api test project",
"type": "image_classification",
'instruction': 'demo for test',
'question': 'Is the creature in the picture a cat or a dog',
"taskType": "single_choice",
'options': [{'value': 'cat'}, {'value': 'dog'}, {'value': 'unknown'}]
}
}
body = json.dumps(body)
headers["RequestSign"] = get_sig_str(headers, body)
res = requests.post(url, data=body, headers=headers)
try:
print(json.dumps(json.loads(res), indent=4))
except:
print(res.text)
create_project()
Response
{
"code": 0,
"successMsg": "success",
"timestamp": 1597388950604,
"userId": "U_10BF4B46DD4811EA93476C96CFDDE73D",
"data": {
"projectId": "p272_TJMngfdY",
"type": "image_classification",
"name": "demo for api test project",
"taskType": "single_choice",
"instruction": "demo for test",
"qiestion": "Is the creature in the picture a cat or a dog",
"extra": {
"options": [{
"value": "cat"
}, {
"value": "dog"
}, {
"value": "unknown"
}]
},
"created": 1597388950
}
}
# Project Update
Post url
url = 'http://api.bytebridge.io:20000/api/v1/projects/setProject'
Body Params
userId:
"your user ID in dashboard"
projectId:
When you create a project successfully, it will return you the unique id of the project, and you can use the id to operate your project.
projectName,type,instruction,question,objectMarked,taskType,options:
After you create a project, if you do not start the project, you can reset the information of the project. Once the project begins, you cannot change the configuration of the project.
Demo
Request
import requests
import json
import hashlib
import time
url = "http://api.bytebridge.io:20000/api/v1/projects/setProject"
secret_key = "test_78pbttim3mykypuoswidgzor6fv1u2rj"
user_id = "U_10BF4B46DD4811EA93476C96CFDDE73D"
def get_sig_str(headers, body):
sign_str = '''userID=%s&Body=%s&SignType=md5&Timestamp=%s&secretKey=%s''' % (
user_id, body, headers['Timestamp'], secret_key)
return hashlib.md5(sign_str.encode()).hexdigest().upper()
def update_project():
headers = {"Content-Type": "application/json", "Timestamp": str(int(time.time() * 1000)), "SignType": 'md5',"RequestSign": ''}
body = {
"userId": "U_10BF4B46DD4811EA93476C96CFDDE73D",
"params": {
"projectId": "p272_TJMngfdY",
"projectName": "first change for demo",
"type": "image_classification",
'instruction': 'change it for demo ok?',
'question': 'dog or pig in picture',
"taskType": "single_choice",
'options': [{'value': 'dog'}, {'value': 'pig'}, {'value': 'unknown'}]
}
}
body = json.dumps(body)
headers["RequestSign"] = get_sig_str(headers, body)
res = requests.post(url, data=body, headers=headers)
try:
print(json.dumps(json.loads(res), indent=4))
except:
print(res.text)
update_project()
Response
{
"code": 0,
"successMsg": "success",
"timestamp": 1597393803152,
"userId": "U_10BF4B46DD4811EA93476C96CFDDE73D",
"data": {
"projectId": "p272_TJMngfdY",
"type": "image_classification",
"name": "first change for demo",
"taskType": "single_choice",
"instruction": "change it for demo ok?",
"qiestion": "dog or pig in picture",
"extra": {
"options": [{
"value": "dog"
}, {
"value": "pig"
}, {
"value": "unknown"
}]
},
"created": 1597393803,
"projectStatus": 0
}
}
# Project Retrieval
Post url
url = 'http://api.bytebridge.io:20000/api/v1/projects/retrieveProject'
Body Params
userId:
"your user ID in dashboard"
projectId:
When you create a project successfully, it will return you the unique id of the project, and you can use the id to operate your project.
startTime,endTime:
Query the information and progress of the project within a certain period of time. When no parameters are passed, the status of the project from the start to the current time is queried.
Demo
Request
import requests
import json
import hashlib
import time
url = 'http://api.bytebridge.io:20000/api/v1/projects/retrieveProject'
secret_key = "test_78pbttim3mykypuoswidgzor6fv1u2rj"
user_id = "U_10BF4B46DD4811EA93476C96CFDDE73D"
def get_sig_str(headers, body):
sign_str = '''userID=%s&Body=%s&SignType=md5&Timestamp=%s&secretKey=%s''' % (user_id, body, headers['Timestamp'],secret_key)
return hashlib.md5(sign_str.encode()).hexdigest().upper()
def retrieve_project():
headers = {"Content-Type": "application/json", "Timestamp": str(int(time.time() * 1000)), "SignType": 'md5', "RequestSign": ''}
body = {
"userId": "U_10BF4B46DD4811EA93476C96CFDDE73D",
"params": {
"projectId": "p272_TJMngfdY",
}
}
body = json.dumps(body)
headers["RequestSign"] = get_sig_str(headers, body)
res = requests.post(url, data=body, headers=headers)
try:
print(json.dumps(json.loads(res), indent=4))
except:
print(res.text)
retrieve_project()
Response
{
"code": 0,
"successMsg": "success",
"timestamp": 1597397826240,
"userId": "U_10BF4B46DD4811EA93476C96CFDDE73D",
"data": {
"projectData": {
"projectName": "first change for demo",
"projectInstruction": "change it for demo ok?",
"question": "dog or pig in picture",
"projectType": "image_classification",
"taskType": "single_choice",
"projectItemQuantity": 11,
"processingQuantity": 0,
"projectStatus": "checking",
"completedQuantity": 0,
"noStartQuantity": 11,
"successQuantity": 0,
"failedQuantity": 0,
"outputQuantity": 0,
"amountSpent": 0.0,
"options": [{
"value": "dog"
}, {
"value": "pig"
}, {
"value": "unknown"
}]
},
"extraInfo": {
"downloadableResultNum": 0,
"downloadResultURL": ""
}
}
}
# Upload Resource
Post url
url = 'http://api.bytebridge.io:20000/api/v1/projects/submitResource'
Body Params
userId:
"your user ID in dashboard"**
projectId:
The id of the project where you are going to process the resource
type:
You can upload your project's resources through this interface. The types of resources that can be uploaded are as follows.
| Type name | Remarks |
|---|---|
| image | Picture type (jpg,jpeg,png,gif) |
| audio | Audio in mp3 format |
| text | type of text |
| graphic | Picture contains text |
Demo
Request
import requests
import json
import hashlib
import time
url = 'http://api.bytebridge.io:20000/api/v1/projects/submitResource'
secret_key = "test_78pbttim3mykypuoswidgzor6fv1u2rj"
user_id = "U_10BF4B46DD4811EA93476C96CFDDE73D"
def get_sig_str(headers, body):
sign_str = '''userID=%s&Body=%s&SignType=md5&Timestamp=%s&secretKey=%s''' % (user_id, body, headers['Timestamp'],secret_key)
return hashlib.md5(sign_str.encode()).hexdigest().upper()
def submit_resource():
headers = {"Content-Type": "application/json", "Timestamp": str(int(time.time() * 1000)), "SignType": 'md5',"RequestSign": ''}
body = {
"userId": "U_10BF4B46DD4811EA93476C96CFDDE73D",
"params": {
"projectId": "p273_j85WwxK7",
"resourceType": "image",
"resourceURLs": [
"https://d301.paixin.com/thumbs/1092213/119132616/staff_1024.jpg",
"https://d301.paixin.com/thumbs/1902695/106230432/staff_1024.jpg",
]
}
}
body = json.dumps(body)
headers["RequestSign"] = get_sig_str(headers, body)
res = requests.post(url, data=body, headers=headers)
try:
print(json.dumps(json.loads(res), indent=4))
except:
print(res.text)
submit_resource()
Response
{
"code": 0,
"successMsg": "success",
"timestamp": 1597656918164,
"userId": "U_10BF4B46DD4811EA93476C96CFDDE73D",
"data": {
"projectId": "p273_j85WwxK7",
"resourceType": "image",
"resourceDta": ["https://d301.paixin.com/thumbs/1092213/119132616/staff_1024.jpg", "https://d301.paixin.com/thumbs/1902695/106230432/staff_1024.jpg"],
"created": 1597656918
}
}
# Project Status
Post url
url = 'http://api.bytebridge.io:20000/api/v1/projects/submitResource'
Body Params
userId:
"your user ID in dashboard"
Demo
projectId:
The id of the item you are about to change status.
type:
You can change your project's status through this interface. The types of status that can be changed are as follows
| Type name | Remarks |
|---|---|
| start | Start a project |
| pause | Pause a project by yourself |
| delete | Delete a project by yourself |
Request
import requests
import json
import hashlib
import time
url = 'http://api.bytebridge.io:20000/api/v1/projects/alterState'
secret_key = "test_78pbttim3mykypuoswidgzor6fv1u2rj"
user_id = "U_10BF4B46DD4811EA93476C96CFDDE73D"
def get_sig_str(headers, body):
sign_str = '''userID=%s&Body=%s&SignType=md5&Timestamp=%s&secretKey=%s''' % (
user_id, body, headers['Timestamp'], secret_key)
return hashlib.md5(sign_str.encode()).hexdigest().upper()
def Alter_project():
headers = {"Content-Type": "application/json", "Timestamp": str(int(time.time() * 1000)), "SignType": 'md5',
"RequestSign": ''}
body = {
"userId": "U_10BF4B46DD4811EA93476C96CFDDE73D",
"params": {
"type": "start",
"projectId": "p273_j85WwxK7",
}
}
body = json.dumps(body)
headers["RequestSign"] = get_sig_str(headers, body)
res = requests.post(url, data=body, headers=headers)
try:
print(json.dumps(json.loads(res), indent=4))
except:
print(res.text)
Alter_project()
Response
# error
{
"code": 13,
"errorMsg": "The project is under review",
"timestamp": 1597657529770,
"userId": "U_10BF4B46DD4811EA93476C96CFDDE73D"
}
# success
{
"code": 0,
"successMsg": "success",
"timestamp": 1597657621240,
"userId": "U_10BF4B46DD4811EA93476C96CFDDE73D",
"data": {
"projectId": "p273_j85WwxK7",
"alterType": "pause",
"created": 1597657621
}
}
# Project Results
# FAQ
# Service Related
# Who will label my data?
All data are 100% manually annotated. All work results are completely screened and inspected by human workforce.
# Do I need to form my own in-house team?
No, not at all. ByteBridge is a human-powered data labeling and collection platform. Your data processing will be taken care of as needed completely from submissions to delivery.
# What is a workflow?
Workflow is your data labeling pipeline which consist of the multiple tasks associated with your project. Easily put, it is the logic you construct to acquire the needed output.
A complete workflow may consist of 1-99 branches, where each branch needs a completion node (conclusion). The project will be complete when each branch reaches its completion node.
For more information, please go to Task Flow Configuration
# How can I know when an import/export/labeling operation is done?
You can monitor all progresses that made regarding your project in real-time via the dashboard.
In addition, you will get notified via email if there is any updates in your project status.
# Why can't I delete my Project?
When the project is under progress or undergoing settling of payments, you may not be able to delete the project. Please follow the instructions. If you cannot delete your project for other reasons, please contact the ByteBridge team.
# Why does my project need approval? How long will it take?
To make sure you receive accurate high quality data, we will assess your configuration and data before the project starts.
Normally, the approval process (final assessment) will take around 1 business day. If it takes longer, please contact the ByteBridge team.
# Why is my progress still at 0% even though the project already started?
Once your project is approved, the pre-evaluation and labeler matching can take up to several minutes. If the project status remains unchanged for more than 1 hour, please contact the ByteBridge team.
# Why was my project rejected?
You can know about the specific reasons for the rejection via your email notification or project page.
Common reasons: Workflow logic error, workflow text error, invalid or broken file uploads, sensitive content
# How long does it take to complete my project?
It depends on the scale and the complexity of your project. In general, a medium-level project with 10,000 image labeling will take less than 1 business day.
# Do you offer data collection service?
Yes, we do. Besides data labeling services, ByteBridge also provides data collection services. For more information, please contact the ByteBridge team.
# Can I duplicate an existing workflow?
You can reuse an already configured one by clicking 【Clone Project】.
# How can I scale up (add) data to an in-process project?
Scaling up (or adding data) a project which has already been launched is supported. You just need to click 【Add Batch】.
# Do you assign a dedicated project manager? How does the ByteBridge team communicate with us?
One project manager will be engaged from very beginning. In addition, you can communicate directly with her/him on dashboard.However, if you have any questions or are in need of support, please contact the ByteBridge team.
# Data Security
# How do you guarantee data security?
All data processed within the AI Platform and Data Labeling Service is encrypted. Also, during the labeling process, the splitting mechanism ensures that the data is dispersed. Workers will only be able to view a fraction of the entire data, ensuring data security.
ByteBridge does not disclose or use your data for any other purposes beyond your requested data labeling without your permission.
If you delete your datasets (already labeled by the data labeling service), all copies of your data from our system will be deleted permanently within 2 hours.
We implement security measures intended to prevent data loss, unauthorized access, and more.
# What security compliance or certifications do you have?
We have ISO27001 certification, which certified information and facility security
Pro-execution: Non-disclosure smart contract; Authorization agreement and right to know
Compliance: GDPR personal privacy and data protection regulations compliance
Restriction: Workers location, process and authority restriction according to client’s requirement
Distribution Process: No original data leak as the data is compressed and preprocessed
Labeling Process: No data leak in complete form during the process as the splitting mechanism ensures data dispersion
Storage: Support private cloud and privatization deployment
# Will you use my labeled datasets to create or augment datasets and make them available to third parties?
No, we will not. ByteBridge will not disclose or use your data for any other purposes beyond your requested data labeling without your permission.
# Where is my uploaded files stored? Why did I receive an email about a temporary file deletion?
The file you uploaded will be stored temporarily in our AWS server.
The temporary files will be deleted either 7 days after the project is completed or when you do not start your project for an extended period. You will be notified of the file deletion before the files are deleted.
# Data Quality
# Is quality control (QC) embedded into your platform? What does that process look like?
All task outputs are completely screened and assessed by the ByteBridge ML algorithm and human workforce.
Each task is distributed to well-trained labelers where each output is further checked with the help of our complete verification mechanism. The real-time QA and QC are integrated in the labeling workflow as the consensus mechanism is introduced to ensure accuracy.
# How can my team get involved in data review?
ByteBridge provides data review service. You can get involved in real-time through our visualized platform. If you are not satisfied with the outputs, you can apply for relabeling within 21 days of project completion free of charge