Skip to main content
PUT
/
assessment
/
orders
/
{assessment_order_id}
/
result
Python
from kombo import Kombo
from kombo.utils import parse_datetime


with Kombo(
    integration_id="workday:HWUTwvyx2wLoSUHphiWVrp28",
    api_key="<YOUR_BEARER_TOKEN_HERE>",
) as k_client:

    res = k_client.assessment.update_order_result(assessment_order_id="GRKdd9dibYKKCrmGRSMJf3wu", status="COMPLETED", result_url="https://example.com", completed_at=parse_datetime("2023-04-04T00:00:00Z"), score=90, max_score=100, attributes=[
        {
            "type": "TEXT",
            "label": "Role fit",
            "value": "Excellent",
        },
        {
            "type": "SUB_RESULT",
            "id": "<YOUR_INTERNAL_ID_OF_THE_TEST>",
            "label": "Personality test",
            "score": {
                "value": 97,
                "max": 100,
            },
            "status": "COMPLETED",
        },
    ], attachments=[
        {
            "name": "Assessment Report.pdf",
            "content_type": "application/pdf",
            "data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=",
        },
    ])

    # Handle response
    print(res)
import { Kombo } from "@kombo-api/sdk";

const kombo = new Kombo({
  integration_id: "workday:HWUTwvyx2wLoSUHphiWVrp28",
  api_key: "<YOUR_BEARER_TOKEN_HERE>",
});

async function run() {
  const result = await kombo.assessment.updateOrderResult({
    assessment_order_id: "GRKdd9dibYKKCrmGRSMJf3wu",
    body: {
      status: "COMPLETED",
      result_url: "https://example.com",
      completed_at: new Date("2023-04-04T00:00:00Z"),
      score: 90,
      max_score: 100,
      attributes: [
        {
          type: "TEXT",
          label: "Role fit",
          value: "Excellent",
        },
        {
          type: "SUB_RESULT",
          id: "<YOUR_INTERNAL_ID_OF_THE_TEST>",
          label: "Personality test",
          score: {
            value: 97,
            max: 100,
          },
          status: "COMPLETED",
        },
      ],
      attachments: [
        {
          name: "Assessment Report.pdf",
          content_type: "application/pdf",
          data: "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=",
        },
      ],
    },
  });

  console.log(result);
}

run();
require 'kombo'

Models = ::Kombo::Models
s = ::Kombo::Kombo.new(
  integration_id: 'workday:HWUTwvyx2wLoSUHphiWVrp28',
  security: Models::Shared::Security.new(
    api_key: '<YOUR_BEARER_TOKEN_HERE>'
  )
)
res = s.assessment.update_order_result(assessment_order_id: 'GRKdd9dibYKKCrmGRSMJf3wu', body: Models::Shared::PutAssessmentOrdersAssessmentOrderIdResultRequestBody.new(
  status: Models::Shared::PutAssessmentOrdersAssessmentOrderIdResultRequestBodyStatus::COMPLETED,
  result_url: 'https://example.com',
  completed_at: DateTime.iso8601('2023-04-04T00:00:00Z'),
  score: 90.0,
  max_score: 100.0,
  attributes: [
    Models::Shared::AttributeText.new(
      type: 'TEXT',
      label: 'Role fit',
      value: 'Excellent'
    ),
    Models::Shared::AttributeSubResult.new(
      type: 'SUB_RESULT',
      id: '<YOUR_INTERNAL_ID_OF_THE_TEST>',
      label: 'Personality test',
      score: Models::Shared::Score.new(
        value: 97.0,
        max: 100.0
      ),
      status: Models::Shared::AttributeStatus::COMPLETED
    ),
  ],
  attachments: [
    Models::Shared::PutAssessmentOrdersAssessmentOrderIdResultRequestBodyAttachment.new(
      name: 'Assessment Report.pdf',
      content_type: 'application/pdf',
      data: 'SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4='
    ),
  ]
))

unless res.put_assessment_orders_assessment_order_id_result_positive_response.nil?
  # handle response
end
curl --request PUT \
  --url https://api.kombo.dev/v1/assessment/orders/{assessment_order_id}/result \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'X-Integration-Id: <x-integration-id>' \
  --data '
{
  "status": "COMPLETED",
  "score": 90,
  "max_score": 100,
  "result_url": "https://example.com",
  "completed_at": "2023-04-04T00:00:00.000Z",
  "attributes": [
    {
      "type": "TEXT",
      "label": "Role fit",
      "value": "Excellent"
    },
    {
      "type": "SUB_RESULT",
      "id": "<YOUR_INTERNAL_ID_OF_THE_TEST>",
      "label": "Personality test",
      "score": {
        "value": 97,
        "max": 100
      },
      "status": "COMPLETED"
    }
  ],
  "attachments": [
    {
      "name": "Assessment Report.pdf",
      "data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=",
      "content_type": "application/pdf"
    }
  ]
}
'
const options = {
  method: 'PUT',
  headers: {
    'X-Integration-Id': '<x-integration-id>',
    Authorization: 'Bearer <token>',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    status: 'COMPLETED',
    score: 90,
    max_score: 100,
    result_url: 'https://example.com',
    completed_at: '2023-04-04T00:00:00.000Z',
    attributes: [
      {type: 'TEXT', label: 'Role fit', value: 'Excellent'},
      {
        type: 'SUB_RESULT',
        id: '<YOUR_INTERNAL_ID_OF_THE_TEST>',
        label: 'Personality test',
        score: {value: 97, max: 100},
        status: 'COMPLETED'
      }
    ],
    attachments: [
      {
        name: 'Assessment Report.pdf',
        data: 'SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=',
        content_type: 'application/pdf'
      }
    ]
  })
};

fetch('https://api.kombo.dev/v1/assessment/orders/{assessment_order_id}/result', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.kombo.dev/v1/assessment/orders/{assessment_order_id}/result",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PUT",
  CURLOPT_POSTFIELDS => json_encode([
    'status' => 'COMPLETED',
    'score' => 90,
    'max_score' => 100,
    'result_url' => 'https://example.com',
    'completed_at' => '2023-04-04T00:00:00.000Z',
    'attributes' => [
        [
                'type' => 'TEXT',
                'label' => 'Role fit',
                'value' => 'Excellent'
        ],
        [
                'type' => 'SUB_RESULT',
                'id' => '<YOUR_INTERNAL_ID_OF_THE_TEST>',
                'label' => 'Personality test',
                'score' => [
                                'value' => 97,
                                'max' => 100
                ],
                'status' => 'COMPLETED'
        ]
    ],
    'attachments' => [
        [
                'name' => 'Assessment Report.pdf',
                'data' => 'SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=',
                'content_type' => 'application/pdf'
        ]
    ]
  ]),
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer <token>",
    "Content-Type: application/json",
    "X-Integration-Id: <x-integration-id>"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.kombo.dev/v1/assessment/orders/{assessment_order_id}/result"

	payload := strings.NewReader("{\n  \"status\": \"COMPLETED\",\n  \"score\": 90,\n  \"max_score\": 100,\n  \"result_url\": \"https://example.com\",\n  \"completed_at\": \"2023-04-04T00:00:00.000Z\",\n  \"attributes\": [\n    {\n      \"type\": \"TEXT\",\n      \"label\": \"Role fit\",\n      \"value\": \"Excellent\"\n    },\n    {\n      \"type\": \"SUB_RESULT\",\n      \"id\": \"<YOUR_INTERNAL_ID_OF_THE_TEST>\",\n      \"label\": \"Personality test\",\n      \"score\": {\n        \"value\": 97,\n        \"max\": 100\n      },\n      \"status\": \"COMPLETED\"\n    }\n  ],\n  \"attachments\": [\n    {\n      \"name\": \"Assessment Report.pdf\",\n      \"data\": \"SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=\",\n      \"content_type\": \"application/pdf\"\n    }\n  ]\n}")

	req, _ := http.NewRequest("PUT", url, payload)

	req.Header.Add("X-Integration-Id", "<x-integration-id>")
	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.put("https://api.kombo.dev/v1/assessment/orders/{assessment_order_id}/result")
  .header("X-Integration-Id", "<x-integration-id>")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"status\": \"COMPLETED\",\n  \"score\": 90,\n  \"max_score\": 100,\n  \"result_url\": \"https://example.com\",\n  \"completed_at\": \"2023-04-04T00:00:00.000Z\",\n  \"attributes\": [\n    {\n      \"type\": \"TEXT\",\n      \"label\": \"Role fit\",\n      \"value\": \"Excellent\"\n    },\n    {\n      \"type\": \"SUB_RESULT\",\n      \"id\": \"<YOUR_INTERNAL_ID_OF_THE_TEST>\",\n      \"label\": \"Personality test\",\n      \"score\": {\n        \"value\": 97,\n        \"max\": 100\n      },\n      \"status\": \"COMPLETED\"\n    }\n  ],\n  \"attachments\": [\n    {\n      \"name\": \"Assessment Report.pdf\",\n      \"data\": \"SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=\",\n      \"content_type\": \"application/pdf\"\n    }\n  ]\n}")
  .asString();
{ "status": "<string>", "data": {}, "warnings": [ { "message": "<string>" } ] }
This feature is currently available for the following integrations:You’d like to see this feature for another integration? Please reach out! We’re always happy to discuss extending our coverage.

Example Request Body

{
  "status": "COMPLETED",
  "score": 90,
  "max_score": 100,
  "result_url": "https://example.com",
  "completed_at": "2023-04-04T00:00:00.000Z",
  "attributes": [
    {
      "type": "TEXT",
      "label": "Role fit",
      "value": "Excellent"
    },
    {
      "type": "SUB_RESULT",
      "id": "<YOUR_INTERNAL_ID_OF_THE_TEST>",
      "label": "Personality test",
      "score": {
        "value": 97,
        "max": 100
      },
      "status": "COMPLETED"
    }
  ],
  "attachments": [
    {
      "name": "Assessment Report.pdf",
      "data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=",
      "content_type": "application/pdf"
    }
  ]
}

Authorizations

Authorization
string
header
required

Create an API key on the Secrets page in the Kombo dashboard.

Headers

X-Integration-Id
string
required

ID of the integration you want to interact with.

Path Parameters

assessment_order_id
string
required

PUT /assessment/orders/:assessment_order_id/result Parameter

Body

application/json

PUT /assessment/orders/:assessment_order_id/result Request body

status
enum<string>
required

Status of the assessment.

Please note the status can only be updated to a different value if its current value is OPEN.

Available options:
COMPLETED,
CANCELLED,
OPEN
result_url
string<uri>
required
completed_at
string<date-time>

YYYY-MM-DDTHH:mm:ss.sssZ

Please make sure this value is provided when the status is of the type COMPLETED or CANCELLED.

Pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$
score
number<double>
max_score
number<double>
attributes
object[]

An array of additional attributes that you would like to submit as a part of the assessment result.

  • If an ATS only supports writing text attributes, we will transform non TEXT attributes into formatted plain text values.
attachments
object[]

An array of attachments containing the assessment result.

Maximum array length: 5
remote_fields
object

Additional fields that we will pass through to specific ATS systems.

Response

PUT /assessment/orders/:assessment_order_id/result Positive response

status
string
required
Allowed value: "success"
data
object
required
warnings
object[]
required

These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console.