Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Table of Contents
stylenone

Changelogs

Version

Date

Changes by

Description of change

V1.0

Mar 29, 2024

Que Nguyen

  • Add Added Table of Contents.

  • Add Added Changelogs.

V1.0.1

April 10, 2024

Que Nguyen

  • Add Added Release Status table.

V1.0.2

April 13May 30, 2024

Que Nguyen

  • Changed Maximum uploaded document to 5MB

  • Added Rate Limit description

Release status

Environment

Status

Released Date

Version

DEV

Status
colourGreen
titleReleased

Mar 25, 2024

V1.0

UAT

Status
colourGreen
titleRELEASED

Mar 25, 2024

V1.0

PROD

Status
colourGreen
titleRELEASED

Mar 25, 2024

V1.0

API Definition

Upload Document

Request Header

Name

Value

Authorization

Bearer {access_token}

Request Payload

Field

Type

Description

File

form

Mime types:

  • image/*

  • application/pdf

  • application/msword

  • application/vnd.openxmlformats-officedocument.wordprocessingml.document

  • application/vnd.ms-excel

  • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

  • text/plain

Max size: 5MB

multipart/form

Response Header

Content-Type

application/json

Response Body

Field

Type

Description

Id

uuid

File unique identifier

Return file Id

Request

Status
colourGreen
titlePOST
/public/v2/documents/devices

Request with cURL

Code Block
languagec
curl --location '{url}/public/v2/documents/devices' \
--header 'Authorization: Bearer {access_token}' \
--form 'File=@"/C:/Users/Document.docx"'

Response

Info

201 Success

Code Block
{
    "Errors": [],
    "Meta": null,
    "StatusCode": 201,
    "Data": {
        "Id": "5428c55f-db08-400b-959f-08747d140a19"
    },
    "Message": "Create new document successfully"
}

Warning

404 Not Found

Code Block
languagejson
{
  "Data": null,
  "Errors": [],
  "Meta": null,
  "StatusCode": 404,
  "Message": "Not Found"
}

Warning

422 Unprocessable Entity

Code Block
languagejson
{
  "Data": null,
  "StatusCode": 422,
  "Errors": [],
  "Meta": null,
  "Message": "Unprocessable Entity"
}

Warning

401 Unauthorized

Code Block
languagejson
{
  "Data": null,
  "StatusCode": 401,
  "Errors": [],
  "Meta": null,
  "Message": "Unauthorized"
}

Rate Limiting Overview

Our API employs rate limiting to ensure fair usage and protect the performance and availability of the service. Combination of Global Policy and Operation Policy

Global Policy

  • Rate Limit: 3000 requests per 5 minute(s)

  • Renewal Period: 300 second(s)

  • Key: IP Address

  • Increment Condition: Any Request

Operation Policy

  • Rate Limit: 50 requests per 1 minute(s)

  • Renewal Period: 60 second(s)

  • Key: accound-id business account Id.

  • Increment Condition: Success Request

Rate Limit Details

  1. Rate Limit by Key:

    1. Key: This ensures that rate limits are applied uniquely for each business account id.

    2. Request Limit: Each key is allowed to make up to 50 requests per minute.

    3. Reset Interval: The limit resets every 60 seconds.

  2. Response Headers:

    1. Retry-After: Sent when the rate limit is exceeded, indicating how long to wait before making another request.

Exceeding the Rate Limit

When the rate limit is exceeded, the API will return a 429 Too Many Requests status code. The response will include a Retry-After header specifying the number of seconds to wait before making a new request.

Example Response When Rate Limit is Exceeded
Code Block
languagejson
HTTP/1.1 429 Too Many Requests
Retry-After: 60
Content-Type: application/json

{
    "Data": null,
    "Errors": null,
    "StatusCode": 429,
    "Message": "Rate limit exceeded",
    "Meta": null
}