curl --request GET \
--url https://api.revem.ai/products/public/v1/{id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.revem.ai/products/public/v1/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.revem.ai/products/public/v1/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"id": "3f2b6c1e-8d4a-4f0b-9c2e-7a1d5e6f8b90",
"sku": "CONT-20ST",
"name": "Contenedor 20 pies",
"description": "Contenedor dry standard de 20 pies",
"price": 1250000,
"currency": "CLP",
"billing_frequency": "UNIQUE",
"billing_model": "UNIQUE",
"unit_of_measurement": "UNIT",
"tax": 19,
"active": true,
"externally_managed": false,
"Estado": "Disponible",
"created_at": "2026-09-01T12:00:00.000Z",
"updated_at": "2026-09-02T12:00:00.000Z"
}{
"error": "<string>",
"ok": false,
"message": "<string>",
"unknownAttributes": [
"<string>"
],
"missingAttributes": [
"<string>"
]
}{
"error": "Unauthorized",
"message": "Invalid API key"
}{
"ok": false,
"error": "Forbidden",
"message": "This endpoint is not available to API keys"
}{
"ok": false,
"error": "Not Found",
"message": "No existe un producto con ese id"
}{
"ok": false,
"error": "Too many requests. Retry in 1 minute."
}Obtener un producto
Devuelve un producto por su id, en la misma forma plana que acepta el upsert. Responde 404 igual para un id que no existe, uno de otro tenant y uno del simulador: nombrar la diferencia permitiría sondear ids ajenos.
curl --request GET \
--url https://api.revem.ai/products/public/v1/{id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.revem.ai/products/public/v1/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.revem.ai/products/public/v1/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"id": "3f2b6c1e-8d4a-4f0b-9c2e-7a1d5e6f8b90",
"sku": "CONT-20ST",
"name": "Contenedor 20 pies",
"description": "Contenedor dry standard de 20 pies",
"price": 1250000,
"currency": "CLP",
"billing_frequency": "UNIQUE",
"billing_model": "UNIQUE",
"unit_of_measurement": "UNIT",
"tax": 19,
"active": true,
"externally_managed": false,
"Estado": "Disponible",
"created_at": "2026-09-01T12:00:00.000Z",
"updated_at": "2026-09-02T12:00:00.000Z"
}{
"error": "<string>",
"ok": false,
"message": "<string>",
"unknownAttributes": [
"<string>"
],
"missingAttributes": [
"<string>"
]
}{
"error": "Unauthorized",
"message": "Invalid API key"
}{
"ok": false,
"error": "Forbidden",
"message": "This endpoint is not available to API keys"
}{
"ok": false,
"error": "Not Found",
"message": "No existe un producto con ese id"
}{
"ok": false,
"error": "Too many requests. Retry in 1 minute."
}Authorizations
La API key de tu organización, con la forma rvm_<prefijo>.<secreto>, enviada como Authorization: Bearer rvm_…. Revem la emite y sólo se muestra una vez; si la pierdes se reemplaza, no se recupera.
Path Parameters
Id del producto en Revem.
Response
El producto.
Campos snake_case y atributos de producto por nombre al mismo nivel. Los valores ausentes se omiten, salvo sku que siempre está presente. Un atributo cuya definición se borró, o que se llama igual que un campo publicado, no se devuelve.
ID estable del producto en Revem, incluso si cambia el SKU.
Siempre presente. Es null en un producto creado desde la app sin SKU: existe, pero no se puede direccionar por SKU.
Nombre del producto.
Precio con hasta dos decimales.
Frecuencia de cobro.
UNIQUE, WEEKLY, MONTHLY, QUARTERLY, SEMI_ANNUAL, ANNUAL Si el producto está disponible.
Sólo lectura. true cuando una integración importó el producto y administra media_url y external_url: escribirlos responde 409.
Fecha de creación, ISO 8601 en UTC.
Última modificación, ISO 8601 en UTC.
Descripción; omitida si no se conoce.
Código de moneda de 3 letras; omitido si no se conoce.
Modelo de cobro; omitido si no se conoce.
UNIQUE, RECURRENT Unidad de medida; omitida si no se conoce.
UNIT, HOUR, DAY, MONTH, KG, G, LITER, METER, M2 Descuento máximo permitido; omitido si no se conoce.
Impuesto aplicable; omitido si no se conoce.
Enlace a la imagen; omitido si no hay.
Enlace donde se ve o se compra; omitido si no hay.
