Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 20 Current »

Table of Contents

Changelogs

Version

Date

Changes by

Description of change

V1.0

Mar 29, 2024

Que Nguyen

  • Added Table of Contents.

  • Added Changelogs.

V1.0.1

April 10, 2024

Que Nguyen

  • Added Release Status table.

V1.0.2

May 30, 2024

Que Nguyen

  • Changed Maximum uploaded document to 5MB

  • Added Rate Limit description

Release status

Environment

Status

Released Date

Version

DEV

RELEASED

Mar 25, 2024

V1.0

UAT

RELEASED

Mar 25, 2024

V1.0

PROD

RELEASED

Mar 25, 2024

V1.0

API Definition

POST /public/v2/documents/devices

Request

Request Header

Content-Type

multipart/form-data

Authorization

Bearer {{access_token}}

Request Payload

File (required) form

Form File content

Allowed 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

Response Header

Content-Type

application/json

Response Body

Field

Type

Description

Id

uuid

File unique identifier

Return file Id

Request with cURL

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

Response

Response Header

Content-Type

application/json

Response Body

Response Body

Data.Id uuid

File unique identifier

Errors list of error objects

Please see "Getting Started - #Error Object" for more details

请查看Getting Started - #Error Object以获得更多信息。

Meta null object

Return null object

StatusCode integer

Http Status codes standard. Example 200, 201, 404.

http状态码,如200,201,404

Message text

Response message: Success or error message.

返回成功或错误的信息。

201 Created

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

404 Not Found

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

422 Unprocessable Entity

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

401 Unauthorized

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

Rate limit

Rate Limit Algorithm: Fixed Window

In fixed window rate limiting, a fixed time window (e.g., one minute, one hour) is used to track the number of requests or actions allowed within that window. Requests exceeding the limit are either rejected or throttled until the window resets.

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

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
}

  • No labels