Skip to main content

Endpoints

Autoinspector API está organizado sobre el ecosistema REST. Nuestra API soporta multipart/form-data, application/json, retorna siempre respuestas de tipo json y usa los códigos http estándares.

BASE URL
https://api.autoinspector.ai

SDK's

npm i autoinspector

Templates

Un template es un manifiesto declarativo que define las especificaciones de una inspección.

ENDPOINTS
GET   /v1/inspection/template
GET /v1/inspection/template/:templateId

Parámetros

_id

string


El identificador unico del template


type

enum


El tipo de template.


variables

object


Las variables del template


inspectionType

enum


El tipo de de inspección para la cual aplica el template


createdAt

string - ISO 8601


Fecha de creacion del template


updatedAt

string - ISO 8601


Fecha de la ultima vez que se actualizo el template


name

string


El nombre unico del template dentro de la empresa


parameters

object


Los parametros de configuracion del template


images

array


Las imágenes que se agregaron al template


inputs

array


Los campos personalizados agregados al template


features

array


Las funcionalidades extras agregadas al template


schema

object


El schema que debe tener el objeto a enviarse para la creación de la inspección con el template actual. El formato corresponde a un Autoinspector Draft de la especificación json schema.

TEMPLATE OBJECT
{
"_id": "62867bd460eab13d9bb95c63",
"type": "created",
"inspectionType": "car",
"createdAt": "2022-05-19T17:18:12.329Z",
"updatedAt": "2022-05-19T17:18:57.339Z",
"name": "Template #1",
"parameters": {
"maxAttempts": 2
},
"variables": [
{
"name":"score",
"type":"numeric",
"initialValue":2
},
{
"name":"plan",
"type":"text",
"initialValue":"base"
}
],
"images": [
{
"side": "back",
"validations": [
{
"run": true,
"required": false,
"validation": "date",
"_id": "62867bdd60eab13d9bb95c6e"
},
{
"run": true,
"required": false,
"validation": "distance",
"_id": "62867bdd60eab13d9bb95c6f"
},
{
"run": true,
"required": false,
"validation": "recaptured",
"_id": "62867bdd60eab13d9bb95c70"
}
],
"identifier":"image_bf5dd369-3a82-4b0d-b8be-5186da9c07c5"
}
],
"inputs": [
{
"label": "TIPO DE POLIZA",
"options": [
{
"label": "POLIZA A - SEGURO TOTAL"
},
{
"label": "POLIZA B - SEGURO PARCIAL"
}
],
"type": "select",
"stages": ["create"],
"validationSchema": {
"required": true
},
"helperMessage": "Selecciona una opcion",
"identifier":"input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7"
}
],
"features": [
{
"_id": "62867bd460eab13d9bb95c65",
"feature": "damage_declaration"
}
],
"schema": {
"type": "object",
"properties": {
"locale": {
"type": "string",
"required": true,
"label": "Idioma + País"
},
"delivery": {
"channel": {
"type": "string",
"required": true,
"label": "Canal"
},
"countryISO": {
"type": "string",
"required": false,
"label": "delivery.countryISO"
},
"destination": {
"type": "string",
"required": true,
"label": "Destino"
}
},
"inputs": {
"input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7": {
"label": "TIPO DE POLIZA",
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7",
...
}
}
}
}
}

Partiento de este manifiesto, una inspección extrae los recursos que la van a componer:

  • images: Las imágenes con sus validaciones que deberá subir un usuario para validar un producto.
  • inputs: Los campos personalizados que se deberá completar. Puede configurarse para que sea requerido en la creación de una inspección o en la actualización de la misma.
  • features: Los agregados que agregan funcionalidad extra a un tipo de inspección.

Cada template pertenece a un tipo de inspección y en función del tipo se podrán seleccionar ciertos recursos.

Built-in Templates

Los templates pre-integrados son templates creados bajo la opinión de Autoinspector y que se encuentran en todos los tipos de inspecciones. Es la manera más rápida de integrar debido a que no hace falta crear un template desde cero, ya cuentan con un flujo de inspección y validaciones predeterminadas.

Estos templates se encuentran a disposición para ser usados por cualquier usuario que pueda crear una inspección.

Alias

Al momento de crear una inspección, no es necesario enviar el identificador único del template, si no que puedes usar su alias:

  • easy (*)
  • deep (car - moto)
  • damage (car)

Automáticamente al momento de que se recibió un built-in template alias, Autoinspector API buscará las especificaciones de dicho template mapeando el alias por su identificador único.

Custom Templates

Los templates personalizados son templates creados bajo el criterio, requerimientos y necesidades de un usuario. Se tiene total libertad al momento de definir las especificaciones y recursos que tendrá un template de esta categoría.

Autoinspector brinda una aplicación amigable llamada Inspection Studio, la cual posee una UI que te permite administrar todos tus templates mediante interacciones de última generación. Puedes encontrarlo dentro del Dashboard y empezar a jugar con el mismo.

ACCESOS Y PERMISOS

Hay ciertos roles de usuario que pueden administrar templates. Asegúrate de que poseas un rol apto en caso de no tenerlo.

Persistencia de templates

El estado de un template puede cambiar, es decir, los recursos que lo componen pueden actualizarse cuantas veces se necesite.

Cada inspección guarda por sí misma el estado del template en ese momento. Esto permite que las inspecciones sean persistentes a lo largo del tiempo y evitar que puedan surgir comportamientos raros por actualizaciones abruptas de un template.

Al momento que uno realiza un cambio en un custom template, dicho cambio aplicará únicamente para las inspecciones que se creen posteriormente. Las inspecciones ya creadas, tendrán el estado del template anterior.

Obtener template

Para obtener un template en específico y poder obtener sus detalles.

Parámetros

No hay parámetros

Retorna

Si todo sale bien, retorna un template object.

GET/v1/inspection/template/:templateId

curl https://api.autoinspector.ai/v1/inspection/template/<TEMPLATE_IDS>
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>'
RESPONSE
{
"type": "created",
"_id": "62867bd460eab13d9bb95c63",
"variables": [
{
"name":"score",
"type":"numeric",
"initialValue":2
},
{
"name":"plan",
"type":"text",
"initialValue":"base"
}
],
"inspectionType": "car",
"name": "Template #1",
"parameters": {
"maxAttempts": 2
},
"createdAt": "2022-05-19T17:18:12.329Z",
"updatedAt": "2022-05-19T17:18:57.339Z",
"images": [
{
"validations": [
{
"run": true,
"required": false,
"validation": "date",
"_id": "62867bdf60eab13d9bb95c82"
},
{
"run": true,
"required": false,
"validation": "distance",
"_id": "62867bdf60eab13d9bb95c83"
},
{...}
],
"side": "front",
"identifier":"image_bf5dd369-3a82-4b0d-b8be-5186da9c07c5",
"__v": 0
}
],
"inputs": [
{
"identifier":"input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7",
"options": [
{
"label": "POLIZA A - SEGURO TOTAL",
},
{
"label": "POLIZA B - SEGURO TOTAL"
}
],
"stages": ["create"],
"validationSchema": {
"required": true
},
"type": "select",
"label": "TIPO DE POLIZA",
"helperMessage": "Selecciona una opción",
}
],
"features": [
{
"_id": "62867bd460eab13d9bb95c65",
"feature": "damage_declaration"
}
],
"schema": {
"type": "object",
"properties": {
"locale": {
"type": "string",
"required": true,
"label": "Idioma + País"
},
"delivery": {
"channel": {
"type": "string",
"required": true,
"label": "Canal"
},
"countryISO": {
"type": "string",
"required": false,
"label": "delivery.countryISO"
},
"destination": {
"type": "string",
"required": true,
"label": "Destino"
}
},
"inputs": {
"input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7": {
"label": "TIPO DE POLIZA",
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7",
...
}
}
}
}
}

Listar templates

Para listar los templates tu empresa creó como así también los built-in templates, puedes realizar una request con ciertos filtros:

Query Parameters

inspectionType

enum


El tipo de inspection por el que quieres filtrar. Por default lista todas.


type

enum


El tipo de templates por el que quieres filtrar. Por default lista todas.

Retorna

Si todo sale bien, retorna una lista de template objects.

GET/v1/inspection/template

curl -G \
'https://api.autoinspector.ai/v1/inspection/template' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>' \
-d inspectionType=car \
-d type=created

RESPONSE
[
{
"type": "created",
"_id": "62867bd460eab13d9bb95c63",
"inspectionType": "car",
"name": "Template #1",
"parameters": {
"maxAttempts": 2
},
"variables": [
{
"name":"score",
"type":"numeric",
"initialValue":2
},
{
"name":"plan",
"type":"text",
"initialValue":"base"
}
],
"createdAt": "2022-05-19T17:18:12.329Z",
"updatedAt": "2022-05-19T17:18:57.339Z",
"images": [
{
"identifier":"image_bf5dd369-3a82-4b0d-b8be-5186da9c07c7",
"validations": [
{
"run": true,
"required": false,
"validation": "date",
"_id": "62867bdf60eab13d9bb95c82"
},
{
"run": true,
"required": false,
"validation": "distance",
"_id": "62867bdf60eab13d9bb95c83"
},
{...}
],
"side": "front",
}
],
"inputs": [
{
"identifier":"input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7",
"options": [
{
"label": "POLIZA A - SEGURO TOTAL"
},
{
"label": "POLIZA B - SEGURO TOTAL"
}
],
"stages": ["create"],
"validationSchema": {
"required": true
},
"type": "select",
"label": "TIPO DE POLIZA",
"templateId": "62867bd460eab13d9bb95c63",
"helperMessage": "Selecciona una opcion"
}
],
"features": [
{
"_id": "62867bd460eab13d9bb95c65",
"feature": "damage_declaration"
}
],
"schema": {
"type": "object",
"properties": {
"locale": {
"type": "string",
"required": true,
"label": "Idioma + País"
},
"delivery": {
"channel": {
"type": "string",
"required": true,
"label": "Canal"
},
"countryISO": {
"type": "string",
"required": false,
"label": "delivery.countryISO"
},
"destination": {
"type": "string",
"required": true,
"label": "Destino"
}
},
"inputs": {
"input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7": {
"label": "TIPO DE POLIZA",
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7",
...
}
}
}
}
}

]

Inputs Dinámicos

Uno de los recursos que forman parte de un template son los inputs. Estos inputs permiten al usuario poder armar su propio formulario para que luego sea solicitado en la inspección.

Dependiendo del tipo, cada input tiene ciertas validaciones que se pueden definir para sanitizar el tipo de dato y registrarlo con cierta formato del objeto inspección.

Por ejemplo, uno puede asignar como input, un campo de tipo select con sus opciones, o un tipo fecha con sus respectivas validaciones, etc. Puedes ver los diferentes Inputs Elements con sus validaciones dentro de la sección inspecciones en el dashboard.

Para poder indicar en qué punto de la inspección el campo debe ser solicitado, cada input tiene sus stages. Un stage representa una acción determinada que ocurre en un punto del flujo de inspección.

Los stages que pueden ser asignados a un input son:

  • create (solicitud)
  • update (actualización)

Algunos ejemplos del comportamiento de los inputs dependiendo de la validación, si es requerido y de los stages asignados:

input.typestagesvalidationSchema.isRequiredObligatorio en solicitudObligatorio en actualizacion
selectcreate updatetrue
textcreate updatefalse
dateupdatetrue
filecreatetrue

Variables

Las variables en un template son valores de tipo numérico o texto que pueden ir mutando o cambiando de estado en base a tu lógica.

Por ejemplo, puedes crear una variable llamada puntaje que vaya incrementando en función de las respuestas de otros campos.

Las variables de tipo numéricas permiten poder realizar cálculos numéricos como lo son: suma, resta, multiplicación y division.

Puedes administrar las variables de tu template dentro de la sección Configuración en el detalle del template (Inspection Studio - Dashboard)

Valores de las variables

El resultado calculado de las variables pasara a ser inmutables/persistentes cuando la inspección hay sido finalizada

Esto quiere decir que si consultas por el detalle de una inspección en un estado no finalizada, es posible que los valores de las variables cambien debido al progreso de la inspección

Inspections

Para validar que un producto sea realmente lo que un cliente declara, se requiere de un proceso de verificación. Este proceso es el que denominamos como inspection.

Una inspección puede contar con múltiples productos y su output más importante es el veredict: approved o disapproved, el cual indica si la inspección se encuentra aprobada o desaprobada en base a las especificaciones y parámetros previamente establecidos.

Podrás crear, obtener y listar inspecciones con Autoinspector API. Las inspecciones son identificadas por un ID único generado de manera aleatoria.

ENDPOINTS
POST  /v1/inspection/:type
PUT /v1/inspection/:inspectionId
PUT /v1/inspection/:type/:productId
GET /v1/inspection
GET /v1/inspection/:inspectionId

Parámetros

_id

string


El identificador de la inspección.


template

object


La plantilla usada en la inspección


producer

object


El usuario a quien le pertenece la inspección creada.


identity

object


Información relacionada con el usuario asignado para realizar la inspección


custom

object


Campos e imágenes personalizados que fueron agregados a la especificación del template


variables

object


Las variables de la inspección heredadas del template utilizado


status

enum


El estado actual de la inspección


products

array


Los productos que fueron validados en la inspeccion


completedBy

enum


Indica si la inspección fue completada por el usuario o por un proceso automático.


type

enum


El tipo de de inspección.


veredict

enum


El veredicto final de la inspección.

INSPECTION OBJECT
{
"_id": "62cd9d05d9d5fd39750a84f5",
"template": {
"_id": "62cd9d05d9d5fd39750a84f2",
"name": "Template #1",
"type": "custom",
"inputs": [
{
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7",
"label": "Nombre",
"value": "John"
},
{
"identifier": "input_db30b856-594e-4799-9ee9-2dacfbe2a338",
"label": "Apellido",
"value": "Doe"
},
{
"identifier": "input_79519a40-3047-48c4-b8db-5c95c8b5166a",
"label": "Identificación",
"value": "44188219"
},
{
"identifier": "input_1b00981a-1484-4f53-8702-2a6d43fd6662",
"label": "Email",
"value": "johndoe@gmail.com"
},
{
"identifier": "input_79bdb79b-c3d4-40d5-905e-bdaf1f1e02cb",
"label": "Ciudad",
"value": "testing"
},
{
"identifier": "input_a00ae5cb-e633-4b9a-98b8-863eeac96e5c",
"label": "País",
"value": "AR"
},
{
"identifier": "input_53ca83e7-413a-4435-9c2f-8206630142a8",
"label": "Provincia",
"value": "T"
},
{
"identifier": "input_21de8e3a-87c9-474a-9f10-a4dc9ecbf083",
"label": "Sexo",
"value": "male"
},
{
"identifier": "input_25dd4378-395d-4fe6-8306-65dcead884b0",
"label": "Nacimiento",
"value": "2002-06-19T00:00:00.000Z"
},
{
"identifier": "input_3f8023b1-2062-4679-b455-f69a1211af1e",
"label": "Dirección",
"value": "testing 100"
},
{
"identifier": "input_f2aaa964-9944-4d04-b86c-33044d00fef6",
"label": "Teléfono",
"value": "03813635420"
},
{
"identifier": "input_35c6a25f-6407-4755-a225-47d72bc02530",
"label": "Patente",
"value": "AZ204SU"
},
{
"identifier": "input_9f7a5106-09ae-49ab-a58a-b28952725ce0",
"label": "Año",
"value": 2020
},
{
"identifier": "input_e7f39d45-cf28-422f-a643-4f6e81127065",
"label": "Color",
"value": "grey"
},
{
"identifier": "input_23fa1c2b-b87f-4780-92d8-f8665f21288b",
"label": "Uso",
"value": "PRIVADO"
},
{
"identifier": "input_8e20f135-42b9-42cc-9ab5-abc4d32cdea3",
"label": "Marca",
"value": "JEEP"
},
{
"identifier": "input_0f2e6fb5-ca87-480a-984f-0afa54d5f924",
"label": "Modelo",
"value": "RENEGADE"
}
]
},
"metadata": {
"my_own_key": "my_own_value"
},
"producer": {
"companyId": "6189346deb464c00197f1247",
"userId": "618933efeb464c00197f123f"
},
"status": "completed",
"completedBy": "client",
"type": "car",
"veredict": "approved",
"variables": [
{
"name": "Puntaje",
"value": 10
},
{
"name": "Plan",
"value": "base"
}
],
"products": [
{
"_id": "62cd9d05d9d5fd39750a8511",
"type": "car",
"car": {
"plate": "AZ204SU",
"color": "grey",
"make": "JEEP",
"model": "RENEGADE",
"use": "PRIVADO",
"year": 2020
},
"inputs": [
{
"label": "Kilometraje",
"type": "numeric",

"identifier": "input_3c2d0f47-80de-47d5-b221-a68955c6d3ab",
"value": 100
}
],
"images": [
{
"_id": "62cd9d53d9d5fd39750a859d",
"templateImageIdentifier": "image_79519a40-3047-48c4-b8db-5c95c8b5166a",
"validations": [
{
"validation": "date",
"_id": "62cd9d6cd9d5fd39750a85c1",
"confidence": 100,
"valid": true
},
{
"validation": "distance",
"_id": "62cd9d6cd9d5fd39750a85c2",
"confidence": 100,
"valid": true
},
{
"validation": "recaptured",
"_id": "62cd9d6cd9d5fd39750a85c3",
"confidence": 98.25,
"valid": true
},
{
"validation": "angle",
"_id": "62cd9d6cd9d5fd39750a85c4",
"confidence": 92.80000000000001,
"valid": true
},
{
"validation": "plate",
"_id": "62cd9d6cd9d5fd39750a85c6",
"confidence": 94.5,
"valid": true
},
{
"validation": "color",
"_id": "62cd9d6cd9d5fd39750a85c8",
"confidence": 99.98971223831177,
"valid": true
},
{
"validation": "make",
"_id": "62cd9d6cd9d5fd39750a85ca",
"confidence": 95.8,
"valid": true
},
{
"validation": "model",
"_id": "62cd9d6cd9d5fd39750a85cb",
"confidence": 95.8,
"valid": true
},
{
"validation": "complete",
"_id": "62cd9d6cd9d5fd39750a85cc",
"confidence": 99.99427795410156,
"valid": true
},
{
"validation": "object",
"_id": "62cd9d6cd9d5fd39750a85cd",
"confidence": 99.97334289550781,
"valid": true
},
{
"validation": "damage",
"_id": "62cd9d7dd9d5fd39750a861e",
"confidence": 100,
"valid": false
}
],
"damages": [
{
"part": "trunk",
"percentage": 1.9,
"damage": "dent",
"severity": "unknown"
}
],
"side": "back",
"processed": true,
"uploadedAt": "2022-07-12T16:12:03.000Z",
"approved": true,
"src": "https://ai-inspections.s3.amazonaws.com/back-1657642319385.jpeg",
"type": "normal",
"target": "product"
}
],
"extraImages": [
{
"templateImageIdentifier": "image_79519a40-3047-48c4-b8db-5c95c8b5166a",
"target": "product",
"uploadedAt": "2022-07-12T16:12:25.000Z",
"side": "unknown",
"_id": "62cd9d6bd9d5fd39750a85ae",
"src": "https://ai-inspections.s3.amazonaws.com/unknown-1657642331666.jpeg",
"productInspectionId": "62cd9d05d9d5fd39750a8511"
}
]
}
],
"identity": {
"address": "testing 100",
"city": "testing",
"country": "Argentina",
"state": "Tucumán",
"phone": "03813635420",
"sex": 1,
"birthdate": "2002-12-06T00:00:00.000Z",
"email": "lucianoalvarez1212@gmail.com",
"identification": "44188219",
"lastName": "Alvarez",
"firstName": "Luciano",
"images": [
{
"validations": [
{
"validation": "date",
"_id": "62cd9215ecac9905ccf303d5",
"confidence": 100,
"valid": true
},
{
"validation": "distance",
"_id": "62cd9215ecac9905ccf303d6",
"confidence": 100,
"valid": true
},
{
"validation": "recaptured",
"_id": "62cd9215ecac9905ccf303d7",
"confidence": 95.01,
"valid": true
},
{
"validation": "face_comparison",
"_id": "62cd9215ecac9905ccf303d8",
"confidence": 100,
"valid": true
},
{
"validation": "birthdate",
"_id": "62cd9215ecac9905ccf303d9",
"confidence": 100,
"valid": false
},
{
"validation": "dni",
"_id": "62cd9215ecac9905ccf303db",
"confidence": 100,
"valid": true
},
{
"validation": "full_name",
"_id": "62cd9215ecac9905ccf303de",
"confidence": 100,
"valid": true
},
{
"validation": "sex",
"_id": "62cd9215ecac9905ccf303e0",
"confidence": 100,
"valid": true
},
{
"validation": "age",
"_id": "62cd9215ecac9905ccf303e2",
"confidence": 100,
"valid": false
},
{
"validation": "object",
"_id": "62cd9215ecac9905ccf303e3",
"confidence": 98.41889953613281,
"valid": true
}
],
"damages": [],
"side": "dni",
"processed": true,
"uploadedAt": "2022-07-12T15:23:56.000Z",
"_id": "62cd920cecac9905ccf3039d",
"approved": true,
"src": "https://ai-inspections.s3.amazonaws.com/dni-1657639433699.jpeg",
"target": "identity",
"templateImageIdentifier": "image_79519a40-3047-48c4-b8db-5c95c8b5166a"
},
{
"validations": [
{
"validation": "date",
"_id": "62cd9210ecac9905ccf303bd",
"confidence": 100,
"valid": true
},
{
"validation": "distance",
"_id": "62cd9210ecac9905ccf303be",
"confidence": 100,
"valid": true
},
{
"validation": "recaptured",
"_id": "62cd9210ecac9905ccf303bf",
"confidence": 99.95,
"valid": true
},
{
"validation": "age",
"_id": "62cd9210ecac9905ccf303c0",
"confidence": 99.99873352050781,
"valid": true
},
{
"validation": "face_comparison",
"_id": "62cd9210ecac9905ccf303c1",
"confidence": 0,
"valid": false
},
{
"validation": "object",
"_id": "62cd9210ecac9905ccf303c2",
"confidence": 99.8077163696289,
"valid": true
}
],
"damages": [],
"side": "selfie",
"processed": true,
"uploadedAt": "2022-07-12T15:23:56.000Z",
"_id": "62cd920cecac9905ccf303a7",
"approved": true,
"src": "https://ai-inspections.s3.amazonaws.com/selfie-1657639435560.jpeg",
"target": "identity",
"templateImageIdentifier": "image_79519a40-3047-48c4-b8db-5c95c8b5166b"
}
],
"extraImages": [
{
"target": "identity",
"uploadedAt": "2022-07-12T16:11:35.000Z",
"side": "unknown",
"_id": "62cd9d37d9d5fd39750a8585",
"src": "https://ai-inspections.s3.amazonaws.com/unknown-1657642293074.jpeg",
"templateImageIdentifier": "image_79519a40-3047-48c4-b8db-5c95c8b51666"
}
]
},
"custom": {
"images": [
{
"templateImageIdentifier": "image_79519a40-3047-48c4-b8db-5c95c8b51668",
"validations": [
{
"validation": "date",
"_id": "62cd927decac9905ccf30402",
"confidence": 100,
"valid": true
},
{
"validation": "distance",
"_id": "62cd927decac9905ccf30403",
"confidence": 100,
"valid": true
},
{
"validation": "object",
"_id": "62cd927decac9905ccf30404",
"confidence": 100,
"valid": true
}
],
"damages": [],
"side": "Denuncia",
"processed": true,
"uploadedAt": "2022-07-12T15:25:46.000Z",
"_id": "62cd927aecac9905ccf303f2",
"approved": true,
"src": "https://ai-inspections.s3.amazonaws.com/denuncia-1657639543794.jpeg",
"target": "custom"
}
],
"inputs": [
{
"label": "Seleccione los accesorios que desea asegurar",
"type": "multiselect",
"identifier": "input_525a71d5-3e1d-47e3-b2f5-1238d33190be",
"value": [
{
"selected": "Llantas especiales"
},
{
"selected": "Radio"
}
]
},
{
"label": "Nro. de reclamo",
"type": "text",
"value": "AB705SU2020",
"identifier": "input_79519a40-3047-48c4-b8db-5c95c8b51668"
},
{
"label": "Póliza",
"type": "text",
"identifier": "input_79519a40-3047-48c4-b8db-5c95c8b51661"
},
{
"label": "PASAPORTE",
"type": "text",
"value": "ARG123",
"identifier": "input_79519a40-3047-48c4-b8db-5c95c8b51662"
},
{
"label": "¿Se robaron todas las cubiertas?",
"type": "check",
"value": true,
"identifier": "input_79519a40-3047-48c4-b8db-5c95c8b51663"
},
{
"label": "¿La cubierta de auxilio estuvo comprometida en el robo?",
"type": "check",
"value": true,
"identifier": "input_79519a40-3047-48c4-b8db-5c95c8b51664"
},
{
"label": "¿Hizo la denuncia policial?",
"type": "check",
"identifier": "input_79519a40-3047-48c4-b8db-5c95c8b51665"
},
{
"label": "Marca, modelo y medida de las cubiertas a reponer",
"type": "textarea",
"value": "CUBIERTAS PREMIUM ",
"identifier": "input_79519a40-3047-48c4-b8db-5c95c8b51666"
},
{
"label": "Video 360 del vehículo",
"type": "video",
"value": "https://ai-inspections.s3.amazonaws.com/videoplayback(1).mp4",
"identifier": "input_79519a40-3047-48c4-b8db-5c95c8b51667"
}
],
"extraImages": [
{
"target": "custom",
"uploadedAt": "2022-07-12T16:11:35.000Z",
"side": "unknown",
"_id": "62cd9d37d9d5fd39750a8585",
"src": "https://ai-inspections.s3.amazonaws.com/unknown-1657642293074.jpeg",
"templateImageIdentifier": "image_79519a40-3047-48c4-b8db-5c95c8b51667"
}
]
}
}

Crear inspección

Para validar productos, bienes o personas, primero debes crear una inspection. Al momento de crear una inspección, tienes que indicar qué tipo de productos estarán incluídos en dicha inspección. Por el momento, se encuentran habilitados los siguientes tipos de inspección, que hacen referencia al o los productos que pueden contener:

  • car
  • moto
  • bike
  • machinery
  • goods
  • people
  • custom

Parámetros

PARAMETROS DEPENDE

Los parámetros con la etiqueta 'depende' serán requeridos sólo si en las especificaciones del 'template' hay una regla que lo exija.

En el caso de los campos personalizados, solo serán requeridos en base a su obligatoriedad y esquema de validación.

car

object


DEPENDE

Informacion del auto a inspeccionar


producer

object


Representa el usuario/entidad creador de la inspección.


consumer

object


DEPENDE

Información sobre la persona que va a realizar la inspección


inputs

array


DEPENDE

Las respuestas a los campos personalizados agregados al template


templateId

string


REQUERIDO

El identificador del template a usarse en la inspeccion. En caso que el tipo de inspeccion soporte built-in templates, puedes enviar su alias. Por ejemplo 'easy'.


delivery

object


REQUERIDO

Especificacion sobre las notificaciones de la inspeccion


locale

enum


REQUERIDO

Estándar IETF language tag concatenado con el estándar ISO 3166-1. El valor enviado sera tomado en cuenta para las variantes configuradas en el template.


initialStatus

enum


Con que estado debe iniciar la inspeccion


metadata

object


Objeto dinámico para almacenar clave-valor de tipo string. Maximo 50 clave-valor. El Maximo longitud de las claves es de 50 y el maximo longitud de los valores es de 500

Retorna

Si todo sale como se espera, retorna un objeto con el inspectionId y el productId

POST/v1/inspection/car

curl -X POST 'https://api.autoinspector.ai/v1/inspection/car' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"delivery": {
"disabled": false,
"channel": "wsp",
"destination": "3813635420",
"countryISO": "AR"
},
"locale": "es_AR",
"metadata": {
"policy_id": "5912"
},
"producer": {
"internalId": "1234"
},
"templateId": "easy",
"car": {
"plate": "AQ701ZA"
},
"consumer": {
"firstName": "John",
"lastName": "Doe",
"identification": "44188219",
"email": "john@doe.com"
}
}'

RESPONSE
{"inspectionId":"60f021d61234567890000000","productId":"60f021d6123456789000000","message":"Car inspection created!", "magicLink":"https://app.autoinspector.ai/inspection/60f021d61234567890000000?accessCode=1234"}

Código de errores

Junto con los Errors Comunes, los errores de código pueden llegar a ocurrir al realizar una solicitud a este endpoint son los siguientes:

codedescriptionstatus
invalid_template_idEl template id proporcionado no cumple con el formato establecido en el contrato400
wrong_template_providedEl template id proporcionado existe pero no es del tipo de inspección que se pretende crear400
not_found_templateNo se ha podido encontrar ningún template con el id proporcionado404
input_value_not_providedHay un input personalizado del template que necesita ser enviado para la creación de la inspección400
invalid_input_valueHay un input personalizado del template que no es valido400
not_found_userEl producer.internalId id enviado no macheó con ningún miembro de la compañía404

Obtener inspección

Retorna el detalle de una inspección que fue anteriormente creada. Proporciona el inspectionId y Autoinspector retornará el objeto inspección.

Parámetros

No hay parámetros.

Retorna

Retorna un objeto inspección si el identificador proporcionado es válido. De caso contrario, retorna un error.

GET/v1/inspection/:inspectionId

curl 'https://api.autoinspector.ai/v1/inspection/<INSPECTION_ID>' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>'
RESPONSE
{
"metadata": {},
"_id": "62cd9d05d9d5fd39750a84f5",
"template": {
"_id": "62be865212ca0918bcabf2a5",
"name": "My custom workflow",
"type": "custom"
},
"producer": {
"companyId": "6189346deb464c00197f1247",
"userId": "618933efeb464c00197f123f"
},
"status": "completed",
"variables": [
{
"name": "Puntaje",
"value": 10
},
{
"name": "Plan",
"value": "base"
}
],
"products": [
{
"_id": "62cd9d05d9d5fd39750a8511",
"type": "car",
"images": [
{
"validations": [
{
"validation": "date",
"_id": "62cd9d6cd9d5fd39750a85c1",
"confidence": 100,
"valid": true
},
{
"validation": "distance",
"_id": "62cd9d6cd9d5fd39750a85c2",
"confidence": 100,
"valid": true
},
{
"validation": "recaptured",
"_id": "62cd9d6cd9d5fd39750a85c3",
"confidence": 98.25,
"valid": true
},
{
"validation": "angle",
"_id": "62cd9d6cd9d5fd39750a85c4",
"confidence": 92.80000000000001,
"valid": true
},
{
"validation": "plate",
"_id": "62cd9d6cd9d5fd39750a85c6",
"confidence": 94.5,
"valid": true
},
{
"validation": "color",
"_id": "62cd9d6cd9d5fd39750a85c8",
"confidence": 99.98971223831177,
"valid": true
},
{
"validation": "make",
"_id": "62cd9d6cd9d5fd39750a85ca",
"confidence": 95.8,
"valid": true
},
{
"validation": "model",
"_id": "62cd9d6cd9d5fd39750a85cb",
"confidence": 95.8,
"valid": true
},
{
"validation": "complete",
"_id": "62cd9d6cd9d5fd39750a85cc",
"confidence": 99.99427795410156,
"valid": true
},
{
"validation": "object",
"_id": "62cd9d6cd9d5fd39750a85cd",
"confidence": 99.97334289550781,
"valid": true
},
{
"validation": "damage",
"_id": "62cd9d7dd9d5fd39750a861e",
"confidence": 100,
"valid": false
}
],
"damages": [
{
"part": "trunk",
"percentage": 42,
"damage": "dent",
"severity": "minor"
}
],
"side": "back",
"processed": true,
"uploadedAt": "2022-07-12T16:12:03.000Z",
"_id": "62cd9d53d9d5fd39750a859d",
"approved": true,
"src": "https://ai-inspections.s3.amazonaws.com/back-1657642319385.jpeg",
"type": "normal",
"target": "product"
}
],
"extraImages": [
{
"target": "product",
"uploadedAt": "2022-07-12T16:12:25.000Z",
"side": "unknown",
"_id": "62cd9d6bd9d5fd39750a85ae",
"src": "https://ai-inspections.s3.amazonaws.com/unknown-1657642331666.jpeg",
"productInspectionId": "62cd9d05d9d5fd39750a8511"
}
]
}
],
"identity": {
"address": "testing 100",
"city": "testing",
"country": "Argentina",
"state": "Tucumán",
"phone": "03813635420",
"sex": 1,
"birthdate": "2002-12-06T00:00:00.000Z",
"email": "lucianoalvarez1212@gmail.com",
"identification": "44188219",
"lastName": "Alvarez",
"firstName": "Luciano",
"images": [
{
"validations": [
{
"validation": "date",
"_id": "62cd9215ecac9905ccf303d5",
"confidence": 100,
"valid": true
},
{
"validation": "distance",
"_id": "62cd9215ecac9905ccf303d6",
"confidence": 100,
"valid": true
},
{
"validation": "recaptured",
"_id": "62cd9215ecac9905ccf303d7",
"confidence": 95.01,
"valid": true
},
{
"validation": "face_comparison",
"_id": "62cd9215ecac9905ccf303d8",
"confidence": 100,
"valid": true
}
],
"entities": [
{
"entity": "passport",
"valid": true,
"result": {
"sex": "M",
"surname": "CASTILLO",
"givenNames": "JUAN PABLO",
"nationality": "ARGENTINA",
"dateOfBirth": "21 FEB/FEB 87",
"placeOfBirth": "ARG",
"dateOfIssue": "13 JUN/JUN 16",
"dateOfExpiry": "13 JUN/JUN 26",
"personalNumber": "32815355",
"authority": "RENAPER",
"documentNumber": "AAE054537",
"issuingCountry": "ARG"
}
}
],
"damages": [],
"side": "pasaporte",
"processed": true,
"uploadedAt": "2022-07-12T15:22:56.000Z",
"_id": "62cd920cecac9905ccf3032d",
"approved": true,
"src": "https://ai-inspections.s3.amazonaws.com/pasaporte-1657639433699.jpeg",
"target": "identity"
},
{
"validations": [
{
"validation": "date",
"_id": "62cd9215ecac9905ccf303d5",
"confidence": 100,
"valid": true
},
{
"validation": "distance",
"_id": "62cd9215ecac9905ccf303d6",
"confidence": 100,
"valid": true
},
{
"validation": "recaptured",
"_id": "62cd9215ecac9905ccf303d7",
"confidence": 95.01,
"valid": true
},
{
"validation": "face_comparison",
"_id": "62cd9215ecac9905ccf303d8",
"confidence": 100,
"valid": true
},
{
"validation": "birthdate",
"_id": "62cd9215ecac9905ccf303d9",
"confidence": 100,
"valid": false
},
{
"validation": "dni",
"_id": "62cd9215ecac9905ccf303db",
"confidence": 100,
"valid": true
},
{
"validation": "full_name",
"_id": "62cd9215ecac9905ccf303de",
"confidence": 100,
"valid": true
},
{
"validation": "sex",
"_id": "62cd9215ecac9905ccf303e0",
"confidence": 100,
"valid": true
},
{
"validation": "age",
"_id": "62cd9215ecac9905ccf303e2",
"confidence": 100,
"valid": false
},
{
"validation": "object",
"_id": "62cd9215ecac9905ccf303e3",
"confidence": 98.41889953613281,
"valid": true
}
],
"damages": [],
"side": "dni",
"processed": true,
"uploadedAt": "2022-07-12T15:23:56.000Z",
"_id": "62cd920cecac9905ccf3039d",
"approved": true,
"src": "https://ai-inspections.s3.amazonaws.com/dni-1657639433699.jpeg",
"target": "identity"
},
{
"validations": [
{
"validation": "date",
"_id": "62cd9210ecac9905ccf303bd",
"confidence": 100,
"valid": true
},
{
"validation": "distance",
"_id": "62cd9210ecac9905ccf303be",
"confidence": 100,
"valid": true
},
{
"validation": "recaptured",
"_id": "62cd9210ecac9905ccf303bf",
"confidence": 99.95,
"valid": true
},
{
"validation": "age",
"_id": "62cd9210ecac9905ccf303c0",
"confidence": 99.99873352050781,
"valid": true
},
{
"validation": "face_comparison",
"_id": "62cd9210ecac9905ccf303c1",
"confidence": 0,
"valid": false
},
{
"validation": "object",
"_id": "62cd9210ecac9905ccf303c2",
"confidence": 99.8077163696289,
"valid": true
}
],
"damages": [],
"side": "selfie",
"processed": true,
"uploadedAt": "2022-07-12T15:23:56.000Z",
"_id": "62cd920cecac9905ccf303a7",
"approved": true,
"src": "https://ai-inspections.s3.amazonaws.com/selfie-1657639435560.jpeg",
"target": "identity"
}
],
"extraImages": [
{
"target": "identity",
"uploadedAt": "2022-07-12T16:11:35.000Z",
"side": "unknown",
"_id": "62cd9d37d9d5fd39750a8585",
"src": "https://ai-inspections.s3.amazonaws.com/unknown-1657642293074.jpeg"
}
]
},
"custom": {
"images": [
{
"validations": [
{
"validation": "date",
"_id": "62cd927decac9905ccf30402",
"confidence": 100,
"valid": true
},
{
"validation": "distance",
"_id": "62cd927decac9905ccf30403",
"confidence": 100,
"valid": true
},
{
"validation": "object",
"_id": "62cd927decac9905ccf30404",
"confidence": 100,
"valid": true
}
],
"damages": [],
"side": "Denuncia",
"processed": true,
"uploadedAt": "2022-07-12T15:25:46.000Z",
"approved": true,
"src": "https://ai-inspections.s3.amazonaws.com/denuncia-1657639543794.jpeg",
"target": "custom",
"templateImageIdentifier": "image_151a3347-8cde-4c72-9e75-1d36a762b02f"
}
],
"inputs": [
{
"label": "Nro. de reclamo",
"type": "text",
"value": "AB705SU2020",
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7"
},
{
"label": "Póliza",
"type": "text",
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c1"
},
{
"label": "PASAPORTE",
"type": "text",
"value": "ARG123",
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c2"
},
{
"label": "¿Se robaron todas las cubiertas?",
"type": "check",
"value": true,
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c3"
},
{
"label": "¿La cubierta de auxilio estuvo comprometida en el robo?",
"type": "check",
"value": true,
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c4"
},
{
"label": "¿Hizo la denuncia policial?",
"type": "check",
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c5"
},
{
"label": "Marca, modelo y medida de las cubiertas a reponer",
"type": "textarea",
"value": "CUBIERTAS PREMIUM ",
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c6"
},
{
"label": "Video 360 del vehículo",
"type": "video",
"value": "https://ai-inspections.s3.amazonaws.com/videoplayback(1).mp4",
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7"
}
],
"extraImages": [
{
"target": "custom",
"uploadedAt": "2022-07-12T16:11:35.000Z",
"side": "unknown",
"_id": "62cd9d37d9d5fd39750a8585",
"src": "https://ai-inspections.s3.amazonaws.com/unknown-1657642293074.jpeg"
}
]
},

"completedBy": "client",
"type": "car",
"veredict": "approved"
}

Código de errores

Junto con los Errors Comunes, los errores de código pueden llegar a ocurrir al realizar una solicitud a este endpoint son los siguientes:

codedescriptionstatus
inspection_not_foundEl id de inspección proporcionado no fue encontrado404

Actualizar inspección

Actualiza una inspección en específico pasando ciertos parámetros. Los parámetros que no se hayan pasado, no tendrán cambio alguno.

PARÁMETROS INMUTABLES

De los parámetros que pases, únicamente serán tenidos en cuenta los que no se encuentren definidos en el objeto original. El resto, serán ignorados.

Parámetros

consumer

object


Información sobre la persona que va a realizar la inspección


metadata

object


Objeto dinámico para almacenar key values. Usualmente usado para guardar ids externos a Autoinspector en una inspección.

Retorna

Si los valores tenidos en cuenta son válidos, devuelve un objeto con un mensaje indicando que todo salió OK.

PUT/v1/inspection/:inspectionId

curl -X PUT 'https://api.autoinspector.ai/v1/inspection/<INSPECTION_ID>' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>' \
-H 'Content-Type: application/json' \
--data '{
"consumer": {
"country": "AR",
"state": "T"
},
"inputs": [
{
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7",
"value": "Afirmativo"
}
]
}'

RESPONSE
{ "message": "inspection updated successfully" }
ACTUALIZACIÓN DE INSPECCIÓN

Únicamente puedes actualizar una inspección que tenga el estado created o started. De lo contrario, recibirás un error.

Actualizar producto

Actualiza un producto de una inspección pasando ciertos parámetros. Los parámetros que no se hayan pasado, no tendrán cambio alguno.

ACTUALIZAR PEOPLE INSPECTION

La inspección de tipo 'people' no se encuentra en esta sección debido a que toda la información de ese 'product inspection' se encuentra dentro del objeto/entidad consumer. El equivalente de actualizar un product inspection de tipo 'people' es actualizar el objeto inspection.

car

object


Informacion del auto a inspeccionar

Retorna

Si los parámetros enviados son validos, retorna un objeto con un mensaje avisando que todo salio OK.

PUT/v1/inspection/car/:productId

curl -X PUT 'https://api.autoinspector.ai/v1/inspection/car/<PRODUCT_INSPECTION_ID>' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>' \
-H 'Content-Type: application/json' \
--data '{
"car": {
"milage": 100,
"year": 2018,
"color": "red"
}
}'

RESPONSE
{"message":"Car updated successfully!"}

Listar inspecciones

Retorna una lista de inspecciones previamente creadas. Las inspecciones son retornadas de manera cronológica.

Parámetros

page

string


DEFAULT

1

El número de pagina.


limite

string


DEFAULT

10

El límite de inspecciones a retornar por página. Por defecto es 10


status

enum


El estado actual de la inspección.


veredict

enum


El veredicto final de la inspección.


type

enum


El tipo de de inspección.


consumerIdentification

string


El numero de identificación (DNI) del usuario que realiza la inspección


plate

string


La matricula/patente del vehículo


templateId

string


El ID del template/plantilla

Retorna

Retorna una array de objetos inspección junto con la metadata de la paginación.

GET/v1/inspection

curl -G \
'https://api.autoinspector.ai/v1/inspection' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>' \
-d page=1 \
-d limit=10 \
-d status=completed \
-d veredict=approved

RESPONSE
{
"inspections": [
{
"type": "created",
"_id": "62867bd460eab13d9bb95c63",
"variables": [
{
"name": "Puntaje",
"value": 10
},
{
"name": "Plan",
"value": "base"
}
],
"inspectionType": "car",
"name": "Template #1",
"parameters": {
"maxAttempts": 2
},
"createdAt": "2022-05-19T17:18:12.329Z",
"updatedAt": "2022-05-19T17:18:57.339Z",
"template": {
"_id": "62be865212ca0918bcabf2a5",
"name": "easy",
"type": "built-in"
},
"images": [
{
"validations": [
{
"run": true,
"required": false,
"validation": "date",
"_id": "62867bdf60eab13d9bb95c82"
},
{
"run": true,
"required": false,
"validation": "distance",
"_id": "62867bdf60eab13d9bb95c83"
},
{...}
],
"side": "front",
"identifier":"image_bf5dd369-3a82-4b0d-b8be-5186da9c07c5",
"__v": 0
}
],
"inputs": [
{
"identifier":"input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7",
"options": [
{
"label": "POLIZA A - SEGURO TOTAL",
},
{
"label": "POLIZA B - SEGURO TOTAL"
}
],
"stages": ["create"],
"validationSchema": {
"required": true
},
"type": "select",
"label": "TIPO DE POLIZA",
"helperMessage": "Selecciona una opción",
}
],
"features": [
{
"_id": "62867bd460eab13d9bb95c65",
"feature": "damage_declaration"
}
],
"schema": {
"type": "object",
"properties": {
"locale": {
"type": "string",
"required": true,
"label": "Idioma + País"
},
"delivery": {
"channel": {
"type": "string",