Skip to main content
POST
/
lab_report
/
v1
/
parser
/
job
curl --request POST \
     --url '{{BASE_URL}}/lab_report/v1/parser/job' \
     --header 'accept: application/json' \
     --header 'x-vital-api-key: YOUR_API_KEY' \
     --header 'Content-Type: multipart/form-data' \
     --form 'file=@/path/to/lab_report.pdf' \
     --form 'user_id=<user_id>' \
     --form 'needs_human_review=false'
from junction import Junction
from junction.environment import JunctionEnvironment

client = Junction(
    api_key="YOUR_API_KEY",
    environment=JunctionEnvironment.SANDBOX,
)

with open("lab_report.pdf", "rb") as f:
    data = client.lab_report.parser_create_job(
        file=[f],
        user_id="<user_id>",
        needs_human_review=False,
    )
import { JunctionClient, JunctionEnvironment } from "@junction-api/sdk";
import * as fs from "fs";

const client = new JunctionClient({
    apiKey: "YOUR_API_KEY",
    environment: JunctionEnvironment.Sandbox,
});

const data = await client.labReport.parserCreateJob({
    file: [fs.createReadStream("lab_report.pdf")],
    userId: "<user_id>",
    needsHumanReview: false,
});
import com.junction.api.Junction;
import com.junction.api.core.Environment;
import com.junction.api.resources.labreport.requests.CreateLabReportParserJobBody;
import java.io.File;

Junction client = Junction.builder()
    .apiKey("YOUR_API_KEY")
    .environment(Environment.SANDBOX)
    .build();

var data = client.labReport().parserCreateJob(
    new File("lab_report.pdf"),
    CreateLabReportParserJobBody.builder()
        .userId("<user_id>")
        .needsHumanReview(false)
        .build()
);
import (
    "context"
    "os"

    junction "github.com/junction-api/junction-go"
    "github.com/junction-api/junction-go/client"
    "github.com/junction-api/junction-go/option"
)

c := client.NewClient(
    option.WithApiKey("YOUR_API_KEY"),
    option.WithBaseURL(junction.Environments.Sandbox),
)

file, _ := os.Open("lab_report.pdf")
defer file.Close()

response, err := c.LabReport.ParserCreateJob(context.TODO(), &junction.CreateLabReportParserJobBody{
    File:             []io.Reader{file},
    UserId:           "<user_id>",
    NeedsHumanReview: junction.Bool(false),
})
if err != nil {
    return err
}
fmt.Printf("Job ID: %s\n", response.JobId)
{
  "job_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "started",
  "data": null,
  "needs_human_review": false,
  "is_reviewed": false
}
Upload a lab report file (PDF, JPEG, or PNG) to create a parsing job. The job will extract lab results and match them to LOINC codes.
curl --request POST \
     --url '{{BASE_URL}}/lab_report/v1/parser/job' \
     --header 'accept: application/json' \
     --header 'x-vital-api-key: YOUR_API_KEY' \
     --header 'Content-Type: multipart/form-data' \
     --form 'file=@/path/to/lab_report.pdf' \
     --form 'user_id=<user_id>' \
     --form 'needs_human_review=false'
from junction import Junction
from junction.environment import JunctionEnvironment

client = Junction(
    api_key="YOUR_API_KEY",
    environment=JunctionEnvironment.SANDBOX,
)

with open("lab_report.pdf", "rb") as f:
    data = client.lab_report.parser_create_job(
        file=[f],
        user_id="<user_id>",
        needs_human_review=False,
    )
import { JunctionClient, JunctionEnvironment } from "@junction-api/sdk";
import * as fs from "fs";

const client = new JunctionClient({
    apiKey: "YOUR_API_KEY",
    environment: JunctionEnvironment.Sandbox,
});

const data = await client.labReport.parserCreateJob({
    file: [fs.createReadStream("lab_report.pdf")],
    userId: "<user_id>",
    needsHumanReview: false,
});
import com.junction.api.Junction;
import com.junction.api.core.Environment;
import com.junction.api.resources.labreport.requests.CreateLabReportParserJobBody;
import java.io.File;

Junction client = Junction.builder()
    .apiKey("YOUR_API_KEY")
    .environment(Environment.SANDBOX)
    .build();

var data = client.labReport().parserCreateJob(
    new File("lab_report.pdf"),
    CreateLabReportParserJobBody.builder()
        .userId("<user_id>")
        .needsHumanReview(false)
        .build()
);
import (
    "context"
    "os"

    junction "github.com/junction-api/junction-go"
    "github.com/junction-api/junction-go/client"
    "github.com/junction-api/junction-go/option"
)

c := client.NewClient(
    option.WithApiKey("YOUR_API_KEY"),
    option.WithBaseURL(junction.Environments.Sandbox),
)

file, _ := os.Open("lab_report.pdf")
defer file.Close()

response, err := c.LabReport.ParserCreateJob(context.TODO(), &junction.CreateLabReportParserJobBody{
    File:             []io.Reader{file},
    UserId:           "<user_id>",
    NeedsHumanReview: junction.Bool(false),
})
if err != nil {
    return err
}
fmt.Printf("Job ID: %s\n", response.JobId)
{
  "job_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "started",
  "data": null,
  "needs_human_review": false,
  "is_reviewed": false
}

Authorizations

x-vital-api-key
string
header
required

Vital Team API Key

Body

multipart/form-data
file
file[]
required
user_id
string<uuid>
required
needs_human_review
boolean
default:false

Response

Successful Response

id
string<uuid>
required
status
enum<string>
required

ℹ️ This enum is non-exhaustive.

Available options:
upload_pending,
started,
completed,
failed
needs_human_review
boolean
required
is_reviewed
boolean
required
failure_reason
enum<string> | null

ℹ️ This enum is non-exhaustive.

Available options:
invalid_input,
low_quality,
not_english,
too_many_pages,
processing_error
data
ParsedLabReportData · object | null