Skip to main content

LegitApp Server API (v1)


Flow Diagram

enterprise_info.png


Overview

The LegitApp Developer API enables third-party applications to integrate LegitApp's authentication services into their systems with API and/or Web Submission. This RESTful API uses JSON for all request and response formats.


API

Authorization

All API requests must be authorized with a developer secret key. Set this key in the HTTP Authorization header:

Authorization: Bearer DEVELOPER_SECRET_KEY

Developer Secret Key

The developer secret key can be accessed in your developer account

developer_portal_api_key.png

Example Code

This example demonstrates how to use TypeScript with Express to make LegitApp API calls and handle webhook events from the LegitApp server

https://github.com/legitappcom/legitapp-developer-api-example

Postman collection for testing this sample code

https://legitapp-static.oss-cn-hongkong.aliyuncs.com/developer/legitapp-developer-api-example.postman_collection.json

Base URL

Production: https://developer-api.legitapp.com/v1

Sandbox: https://developer-api-a7zu.legitapp.com/v1

Endpoints

1. Get Category List GET /product_category

Return a list of supported categories. The id of the selected category is required for other endpoints.

Headers

NameTypeDescription
Authorization*StringBearer {{DEVELOPER_SECRET_KEY}}
Accept-LanguageStringLanguage of category titles. In English by default. Supporting language codes: 1. English - en 2. Polish - pl 3. Chinese (Simplied) - zh-Hans 4. Chinese (Traditional) - zh-Hant 5. Japanese - ja
  • cURL Example:

    GET https://developer-api.legitapp.com/v1/product_category

    curl --location 'https://developer-api.legitapp.com/v1/product_category' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer DEVELOPER_SECRET_KEY'
    --header 'Accept-Language: en'
  • 200: OK

    {
    "data": [
    {
    "id": 1, // category id
    "title": "Sneakers", // multi-lang supported
    "icon_image_url": "https://legitapp-prod.oss-accelerate.aliyuncs.com/2022121855af36a336d46fa9.png"
    },
    {
    "id": 2, // category id
    "title": "Streetwear", // multi-lang supported
    "icon_image_url": "https://legitapp-prod.oss-accelerate.aliyuncs.com/2020080594643c63fba91706.png"
    },
    ]
    }
  • 404: Not Found

    {
    "errors": [{
    "id": "NOT_FOUND",
    "message": "We couldn't find the resources. Please check and try again.",
    "code": 404,
    }]
    }

2. Get Brand List GET /product_brand

Return a list of supported brands based on the selected category. The id of the selected brand is required for other endpoints.

Headers

NameTypeDescription
Authorization*StringBearer {{DEVELOPER_SECRET_KEY}}

Query Parameters

NameTypeDescription
category_id*Numberid in category object
  • cURL Example:

    GET https://developer-api.legitapp.com/v1/product_brand?category_id=1

    curl --location 'https://developer-api.legitapp.com/v1/product_brand?category_id=1' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer DEVELOPER_SECRET_KEY'
  • 200: OK

    {
    "data": [
    {
    "id": 1, // brand id
    "title": "Air Jordan",
    "slug": "air-jordan",
    "icon_image_url": "https://legitapp-prod.oss-accelerate.aliyuncs.com/20200805a364b32e39ccf854.png"
    },
    {
    "id": 2, // brand id
    "title": "Nike",
    "slug": "nike",
    "icon_image_url": "https://legitapp-prod.oss-accelerate.aliyuncs.com/202008057146e477927daff3.png"
    },
    ]
    }
  • 404: Not Found

    {
    "errors": [{
    "id": "NOT_FOUND",
    "message": "We couldn't find the resources. Please check and try again.",
    "code": 404,
    }]
    }

3. Get Model List GET /product_model

Return a list of supported models based on the selected category and brand. The id of the selected model is required for other endpoints.

Headers

NameTypeDescription
Authorization*StringBearer {{DEVELOPER_SECRET_KEY}}

Query Parameters

NameTypeDescription
category_id*Numberid in category object
brand_id*Numberid in brand object
  • cURL Example:

    GET https://developer-api.legitapp.com/v1/product_brand?category_id=1&brand_id=1

    curl --location 'https://developer-api.legitapp.com/v1/product_model?category_id=1&brand_id=1' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer DEVELOPER_SECRET_KEY'
  • 200: OK

    {
    "data": [
    {
    "id": 1, // model id
    "title": "Jordan 1",
    "icon_image_url": "https://legitapp-prod.oss-accelerate.aliyuncs.com/20200805ad9a76acf6fb75f1.png"
    },
    {
    "id": 2, // model id
    "title": "Jordan 2",
    "icon_image_url": "https://legitapp-prod.oss-accelerate.aliyuncs.com/202008057200b9222fb14047.png"
    },
    ]
    }
  • 404: Not Found

    {
    "errors": [{
    "id": "NOT_FOUND",
    "message": "We couldn't find the resources. Please check and try again.",
    "code": 404,
    }]
    }

4. Get Authentication Set GET /authentication_set

Return an authentication set which decides the supported turnaround times and the required photos for authentication. The set assigned is based on the selected category, brand and model. The authentication_set_id and the turnaround_time_id are required for the submit authentication endpoint.

Headers

NameTypeDescription
Authorization*StringBearer {{DEVELOPER_SECRET_KEY}}
Accept-LanguageStringLanguage of titles, subtitles and descriptions. In English by default. Supporting language codes: 1. English - en 2. Polish - pl 3. Chinese (Simplied) - zh-Hans 4. Chinese (Traditional) - zh-Hant 5. Japanese - ja

Query Parameters

NameTypeDescription
category_id*Numberservice sets under this category
brand_id*Numberservice sets under this brand
model_id*Numberservice sets under this model
tag_idStringidentifier of the kicks tag OR luxe tag
  • cURL Example:

    GET https://developer-api.legitapp.com/v1/authentication_set?category_id=1&brand_id=1&model_id=1

    curl --location 'https://developer-api.legitapp.com/v1/authentication_set?category_id=1&brand_id=1&model_id=1' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer DEVELOPER_SECRET_KEY'
    --header 'Accept-Language: en'
  • 200: OK

    {
    "id": 1, // the authentication set id
    "turn_around_time_list": [ // the supported turnaround times
    {
    "id": 1, // the turnaround_time_id
    "title": "< 30 Minutes", // multi-lang supported
    "subtitle": "3 Tokens", // multi-lang supported
    "minute": 30,
    "credit": "3.0000",
    },
    {
    "id": 2, // the turnaround_time_id
    "title": "< 15 Minutes", // multi-lang supported
    "subtitle": "4 Tokens", // multi-lang supported
    "minute": 15,
    "credit": "4.0000",
    }
    ],
    "guideline": [ // a list of guidelines for taking photos
    {
    "title": "Exterior Outer", // multi-lang supported
    "subtitle": "Photograph your product in full (nothing is cropped out).", // multi-lang supported
    "image_urls": "https://legitapp-prod.oss-cn-hongkong.aliyuncs.com/202009093d63c684a9ef68e5.png",
    },
    ],
    "placeholder": [ // a list of required photos
    {
    "title": "Exterior Outer (Left)", // multi-lang supported
    "image_url": "https://legitapp-prod.oss-cn-hongkong.aliyuncs.com/20210126b831199eb4dd177d.png",
    "example_image_url": "https://legitapp-prod.oss-cn-hongkong.aliyuncs.com/202009093d63c684a9ef68e5.png",
    "description": "Pinch to zoom and tap to focus.\nPhotograph your product in full.", // multi-lang supported
    "required": true, // this photo must be provided (optional for false)
    },
    ]
    }
  • 404: Not Found

    {
    "errors": [{
    "id": "NOT_FOUND",
    "message": "We couldn't find the resources. Please check and try again.",
    "code": 404,
    }]
    }

5. Upload Image V1 POST /asset_image

This endpoint returns the URL path of the uploaded image which will b6e required for the submit authentication endpoint.

  • file size limit: 10MB

Headers

NameTypeDescription
Authorization*StringBearer {{DEVELOPER_SECRET_KEY}}

Body Parameters (form-data)

NameTypeDescription
file*Filejpg/png image
  • cURL Example:

    POST https://developer-api.legitapp.com/v1/asset_image

    curl --location 'https://developer-api.legitapp.com/v1/asset_image' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer DEVELOPER_SECRET_KEY' \
    --form 'file=@"/path/to/file"'
  • 200: OK

    {
    ~~~~ "url": "https://legitapp-prod.oss-cn-hongkong.aliyuncs.com/20250101ac1e3aa40613446f.JPG",
    ~~~~}
  • 404: Not Found

    {
    "errors": [{
    "id": "NOT_FOUND",
    "message": "We couldn't find the resources. Please check and try again.",
    "code": 404,
    }]
    }

6. Submit Authentication POST /authentication

After submitting an authentication, $LEGIT Tokens will be deducted according to the selected turnaround time, and an authentication ID will be provided.

Headers

NameTypeDescription
Authorization*StringBearer {{DEVELOPER_SECRET_KEY}}

Body Parameters

NameTypeDescription
authentication_set_id*Stringid in endpoint 4
category_id*Numberid in endpoint 1
brand_id*Numberid in endpoint 2
model_id*Numberid in endpoint 3
turnaround_time_id*Numberid in turn_around_time_list object in endpoint 4
images*ArrayArray of Objects
images['image_url']*Stringthe url returned in endpoint 5
user_custom_codeStringoptional
user_remarkStringoptional
tag_idStringoptional; identifier of the kicks tag OR luxe tag
  • cURL Example:

    POST https://developer-api.legitapp.com/v1/authentication

    curl --location 'https://developer-api.legitapp.com/v1/authentication' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer DEVELOPER_SECRET_KEY' \
    --data '{
    "authentication_set_id": 1,
    "category_id": 1,
    "brand_id": 1,
    "model_id": 1,
    "turnaround_time_id": 1,
    "images": [
    {
    "image_url": "https://legitapp-prod.oss-cn-hongkong.aliyuncs.com/20250101mz238n238ncn2377.JPG"
    },
    {
    "image_url": "https://legitapp-prod.oss-cn-hongkong.aliyuncs.com/20250101bv3q2n8324bzm8c2.JPG"
    },
    {
    "image_url": "https://legitapp-prod.oss-cn-hongkong.aliyuncs.com/20250101hf32zm3289x3fz83.JPG"
    }
    ],
    "user_custom_code": "ABC123",
    "user_remark": "I bought this from ABC online shop."
    }'
  • 200: OK

    {
    "authentication_id": "1234567890123456",
    }
  • 400: Bad Request

    {
    "errors": [{
    "id": "BAD_REQUEST",
    "message": "Please provide category/brand/model id.",
    "code": 400,
    }]
    }
  • 400: Bad Request

    {
    "errors": [{
    "id": "BAD_REQUEST",
    "message": "Please upload all the required photos for authentication.",
    "code": 400,
    }]
    }

7. Submit Extra Photos for Authentication POST /authentication/:id/photo

Extra photos may be required. Use the endpoint 5 to obtain the URLs for the required additional photos.

Headers

NameTypeDescription
Authorization*StringBearer {{DEVELOPER_SECRET_KEY}}

Body Parameters

NameTypeDescription
images*ArrayArray of Objects
images['image_url']*Stringthe url returned in endpoint 5
  • cURL Example:

    POST https://developer-api.legitapp.com/v1/authentication/1234567890123456/photo

    curl --location 'https://developer-api.legitapp.com/v1/authentication/1234567890123456/photo' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer DEVELOPER_SECRET_KEY' \
    --data '{
    "images": [
    {
    "image_url": "https://legitapp-prod.oss-cn-hongkong.aliyuncs.com/20250101ac1e3aa40613446f.JPG"
    },
    {
    "image_url": "https://legitapp-prod.oss-cn-hongkong.aliyuncs.com/20250101qw8ebc79qcqecqb7.JPG"
    }
    ]
    }'
  • 200: OK

    {
    "success": true
    }
  • 404: Not Found

    {
    "errors": [{
    "id": "NOT_FOUND",
    "message": "The selected authentication is not available. Please select again.",
    "code": 404,
    }]
    }
  • 400: Bad Request

    {
    "errors": [{
    "id": "BAD_REQUEST",
    "message": "The request of extra photo has been cancelled.",
    "code": 400,
    }]
    }

8. Get Authentication Detail

GET /authentication/:id

GET /authentication/tag/:tagId

GET /authentication/user_custom_code/:code

Return the details of an completed authentictaion created by LegitApp API (API / Web Submiision Integration) by one of these: authentication id, tag id or user custom code. Note: only result with either authentic or replica is supported.

Headers

NameTypeDescription
Authorization*StringBearer {{DEVELOPER_SECRET_KEY}}
  • cURL Example:

    GET https://developer-api.legitapp.com/v1/authentication/1234567890123456

    curl --location 'https://developer-api.legitapp.com/v1/authentication/1234567890123456' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer DEVELOPER_SECRET_KEY'

    GET https://developer-api.legitapp.com/v1/authentication/tag/S15TQ3RTX5PP

    curl --location 'https://developer-api.legitapp.com/v1/authentication/tag/S15TQ3RTX5PP' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer DEVELOPER_SECRET_KEY'

    GET https://developer-api.legitapp.com/v1/authentication/user_custom_code/ABC 1-2 Hermes

    curl --location 'https://developer-api.legitapp.com/v1/authentication/user_custom_code/ABC 1-2 Hermes' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer DEVELOPER_SECRET_KEY'
  • 200: OK

    {
    "authentication_id": "1234567890123456",
    "authentication_token": 20,
    "item": "Luxury Handbags - Hermes",
    "item_full": "Luxury Handbags, Hermes, Double Sens Tote",
    "cover_image": "https://legitapp-prod.oss-cn-hongkong.aliyuncs.com/20250101mz238n238ncn2377.JPG",
    "turnaround_time": 180,
    "status": "completed",
    "result": "authentic",
    "fake_rating": null,
    "category_id": 4,
    "brand_id": 141,
    "model_id": 457,
    "tag_id": "S15TQ3RTX5PP",
    "user_custom_code": "ABC 1-2 Hermes",
    "user_remark": "I bought this from ABC online shop.",
    "created_at": "2026-01-01T09:00:00.000Z",
    "updated_at": "2026-01-30T04:21:13.000Z",
    "images": [
    {
    "image_url": "https://legitapp-prod.oss-cn-hongkong.aliyuncs.com/20250101mz238n238ncn2377.JPG"
    },
    {
    "image_url": "https://legitapp-prod.oss-cn-hongkong.aliyuncs.com/20250101bv3q2n8324bzm8c2.JPG"
    },
    {
    "image_url": "https://legitapp-prod.oss-cn-hongkong.aliyuncs.com/20250101hf32zm3289x3fz83.JPG"
    }
    ],
    "logs": [
    {
    "action_title": "Service Request Submitted",
    "action_subtitle": "Authentication Service - 180 Minutes",
    "created_at": "2026-01-01T09:00:00.000Z"
    },
    {
    "action_title": "Authenticator Reviewed:",
    "action_subtitle": "LegitApp AI Model V1 provided a result. Please wait for our next authenticator.",
    "created_at": "2026-01-01T09:00:10.000Z"
    },
    {
    "action_title": "Authenticator Reviewed:",
    "action_subtitle": "Additional photos required",
    "created_at": "2026-01-01T09:01:00.000Z"
    },
    {
    "action_title": "User:",
    "action_subtitle": "Additional photos uploaded",
    "created_at": "2026-01-01T09:02:00.000Z"
    },
    {
    "action_title": "Authenticator Reviewed:",
    "action_subtitle": "Authenticator - OX1 provided a result. Please wait for our next authenticator.",
    "created_at": "2026-01-01T09:03:00.000Z"
    },
    {
    "action_title": "Authenticator Reviewed:",
    "action_subtitle": "Authenticator - OX2 provided a result.",
    "created_at": "2026-01-01T09:04:00.000Z"
    },
    {
    "action_title": "Final Result:",
    "action_subtitle": "The result is AUTHENTIC.",
    "created_at": "2026-01-01T09:05:00.000Z"
    },
    ],
    "extra_photo_requests": [
    {
    "checker_extra_example_image_urls": null,
    "checker_extra_part_image_required": null,
    "checker_extra_remark": null,
    "placeholder": null,
    "status": "completed",
    "created_at": "2026-01-01T09:01:00.000Z",
    "completed_at": "2026-01-01T09:02:00.000Z"
    }
    ],
    "certificate_pdf_url": "https://legitapp-prod.oss-accelerate.aliyuncs.com/certificates/1234567890123456/v1_20260101_123a1b45.pdf"
    }
  • 404: Not Found

    {
    "errors": [{
    "id": "NOT_FOUND",
    "message": "The selected authentication is not available. Please select again.",
    "code": 404,
    }]
    }

9. Get Token Balance GET /token_balance

Return account's token balance

Headers

NameTypeDescription
Authorization*StringBearer {{DEVELOPER_SECRET_KEY}}
  • cURL Example:

    GET https://developer-api.legitapp.com/v1/token_balance

    curl --location 'https://developer-api.legitapp.com/v1/token_balance' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer DEVELOPER_SECRET_KEY'
  • 200: OK

    {
    "token_balance": 67
    }
  • 401: Unauthorised

    {
    "errors": [{
    "id": "UNAUTHORISED",
    "message": "Your account has been disabled. For more details, please contact us.",
    "code": 401,
    }]
    }

Webhook

Receive LegitApp events in your webhook endpoint

Listen to events in your LegitApp Developer account on your webhook endpoint so your backend systems can automatically execute actions accordingly.

Create an event destination to receive events at an HTTPS webhook endpoint. After you register a webhook endpoint in the Developer Portal, LegitApp can push real-time event data to your application's webhook endpoint when events happen in your developer account. LegitApp uses HTTPS to send webhook events to your app as a JSON object that includes an Event object.

Get Started

To start receiving webhook events in your server:

  1. Create a webhook endpoint handler to receive event data POST requests.
  2. Register your endpoint in the LegitApp Developer Portal.
  3. Test your webhook endpoint handler.

1. Create a Webhook Endpoint Handler

Set up an HTTP or HTTPS endpoint function that can accept webhook requests with a POST method. If you're still developing your endpoint function on your local machine, it can use HTTP. After it's publicly accessible, your webhook endpoint function must use HTTPS.

Set up your endpoint function so that it:

  1. Handles POST requests with a JSON payload consisting of an Event object
  2. Quickly returns a successful status code (200) prior to any complex logic that could cause a timeout.
// This example uses Express to receive webhooks
const express = require('express');
const app = express();

app.post('/webhook', (request, response) => {
const event = request.body;

// Handle the event
switch (event.type) {
case 'authentication.new_message':
// handleAuthenticationNewMessage(event);
break;
case 'authentication.extra_photo':
// handleAuthenticationExtraPhoto(event);
break;
case 'authentication.completed':
// handleAuthenticationCompleted(event);
break;
// ... handle other event types
default:
console.log(`Unhandled event type ${event.type}`);
}

// Return a response to acknowledge receipt of the event
return response.sendStatus(200);
});

// Listen to the port used in your application
app.listen(4242, () => console.log('Running on port 4242'));

2. Register and Configure Your Webhook Endpoint

Visit https://developer.legitapp.com and go to the Web Hook section. Input your server's destination endpoint URL into the Webhook Endpoint URL field.

You may also choose which order origins should trigger a webhook notification. You can filter events based on your integration needs:

  • Order created via API (Default): Only receive events for orders submitted via API
  • Order created via App: Only receive events for orders submitted via our App.
  • All new orders: Receive events for all orders associated with your business account, regardless of the submission source.

developer_portal_webhook.png

3. Test Your Handler

Testing your webhook logic is the most critical step before moving to production. Before deploying your integration to production, we highly recommend verifying your logic using our Sandbox Testing Environment.

  • Navigate to Orders: Go to the Authentication Orders section to view a list of orders created via the API in your Sandbox environment.
  • Filter by Status: Select the IN PROGRESS tab. Since webhook events are only triggered by active cases, this view allows you to focus on orders ready for testing.
  • Simulate Events: Within the Sandbox, you can manually trigger 3 ****specific event types to ensure your system processes different event type correctly.

developer_portal_sandbox.png

Types of Event

  1. authentication.new_message

    • Triggered when our checkers send you a new message

    • Example:

      {
      "id": "event_5201ah754c5ebc762a66f7fd9ad7d9",
      "object": "event",
      "api-version": "v1",
      "created_at": "2025-01-01 00:00:00",
      "livemode": true,
      "type": "authentication.new_message",
      "data": {
      "event_type": "authentication.new_message",
      "authentication_id": "1234567890123456",
      "authentication_token": 10,
      "user_custom_code": "ABC 1-2 Hermes",
      "content": "Please take another photo with flashlight ON"
      },
      }
  2. authentication.extra_photo

    • Triggered when our checkers request for extra photo(s)

    • Example:

      {
      "id": "event_a8fm30ff8s5eb87gn3kd7gbd9accna",
      "object": "event",
      "api-version": "v1",
      "created_at": "2025-01-01 00:00:00",
      "livemode": true,
      "type": "authentication.extra_photo",
      "data": {
      "event_type": "authentication.extra_photo",
      "authentication_id": "1234567890123456",
      "authentication_token": 10,
      "user_custom_code": "ABC 1-2 Hermes",
      "checker_extra_example_image_urls": "https://legitapp-prod.oss-cn-hongkong.aliyuncs.com/20250102dn3n4aa40613551a.jpg,https://legitapp-prod.oss-cn-hongkong.aliyuncs.com/20250102dn3n4aa7fj4l33nf.jpg",
      "checker_extra_part_image_required": "Exterior Outer (Left), Box Label",
      "checker_extra_remark": "Please use camera flash.",
      "placeholder": [ // a list of required photos
      {
      "title": "Exterior Outer (Left)",
      "image_url": "https://legitapp-prod.oss-cn-hongkong.aliyuncs.com/20210126b831199eb4dd177d.png",
      "example_image_url": "https://legitapp-prod.oss-cn-hongkong.aliyuncs.com/202009093d63c684a9ef68e5.png",
      "description": "Pinch to zoom and tap to focus.\nPhotograph your product in full.",
      },
      {
      "title": "Box Label",
      "image_url": "https://legitapp-prod.oss-cn-hongkong.aliyuncs.com/2020080512f59cb060ef1976.png",
      "example_image_url": "https://legitapp-prod.oss-cn-hongkong.aliyuncs.com/202010191ba8a6f7a28699a6.png",
      "description": "Pinch to zoom and tap to focus.\nPhotograph your product in full.",
      },
      ]
      },
      }
  3. authentication.completed

    • Triggered when our checkers have completed your authentication

    • Example:

      {
      "id": "event_7423fj424c5ebb746a67f7fd9a2j33",
      "object": "event",
      "api-version": "v1",
      "created_at": "2025-01-01 00:00:00",
      "livemode": true,
      "type": "authentication.completed",
      "data": {
      "event_type": "authentication.completed",
      "authentication_id": "1234567890123456",
      "authentication_token": 10,
      "user_custom_code": "ABC 1-2 Hermes",
      "result": "inconclusive", // authentic/replica/inconclusive
      "certificate_url": "https://legitapp.com/en/cert/1234567890123456"
      },
      }
      • certificate_url is only available in Production environment and when the result is either authentic OR replica

Event Delivery & Retry Logic

If your webhook endpoint fails to return a successful response, LegitApp is able to attempt to redeliver the event.

  • Automated Retry Schedule

    LegitApp makes a total of 3 attempts to deliver an event. If an attempt fails, the retry schedule is as follows:

    1. Initial Attempt: Triggered immediately upon the event occurrence.
    2. Second Attempt: Triggered 30 minutes after the first failure.
    3. Third (Final) Attempt: Triggered 1 hour after the second failure.

    You can monitor the status of these attempts and see exactly when the next retry is scheduled by visiting the Events page in the Developer Portal.

  • Manual Retries

    In addition to automated retries, you have the option to manually trigger a redelivery for any individual event. This is particularly useful for testing your endpoint's error handling or recovering from a temporary server outage.

    To manually retry an event, go to the Events list in your Developer Portal and click the "Retry Event" button next to the desired log entry.

developer_portal_retry_event.png


Errors

Error Object Structure

{
"errors": [
{
"id": "INVALID_REQUEST",
"message": "The request is invalid. Please check and try again.",
"code": 400
}
]
}
FieldDescription
idA short, machine-readable identifier representing the specific error type.
messageA human-readable explanation of the error, often including hints to resolve the issue.
codeHTTP status code associated with the error.

HTTP Status Code Summary

CodeTitleDescription
200OKEverything worked as expected.
201CreatedThe server has successfully created a new resource
400Bad RequestThe request was unacceptable—usually due to missing or invalid parameters.
401UnauthorizedNo valid authentication credentials provided.
403ForbiddenThe user does not have permission to perform this action.
404Not FoundThe requested resource does not exist.
500Internal Server ErrorsA server-side failure occurred. Please report to LegitApp team if this happens.
503Service UnavailableWebsite's server is temporarily unable to handle your request.

Error ID Reference Table

Error IDDescription
PARAM_REQUIREDOne or more required parameters are missing. Include all required fields and try again.
EXCEED_UPLOAD_LIMITThe uploaded file exceeds the maximum allowed size. Reduce the file size and retry.
VALIDATION_ERROROne or more parameters failed validation. Verify all input fields and try again.
INVALID_REQUESTThe request is malformed or contains invalid data.
DUPLICATED_RECORDA record with the same data already exists and cannot be created again.
INVALID_LOGIN_USERThe user account is disabled and cannot be used to log in.
INVALID_TOKENThe provided authentication token is invalid.
EXPIRED_TOKENThe login session has expired. Please sign in again.
INVALID_PERMISSIONThe user does not have permission to access this resource.
NOT_FOUNDThe requested resource could not be found.
INTERNAL_SERVER_ERRORAn unexpected server error occurred. Please try again later.