Skip to content

Tiendup Public API (1.0.0)

API pública para integrar Tiendup 🔑 Para obtener una API Key, sigue los pasos de la documentación:
¿Cómo obtener tu API Key de Tiendup?

Download OpenAPI description
Overview
Languages
Servers
https://{business_slug}.public-api.tiendup.com
Operations
Operations
Operations
Operations

Request

Devuelve el listado de cursos online del negocio. Paginado por query string: limit (default 25) y page.

Security
ApiKeyAuth
Query
limitinteger
Default 25
Example: limit=25
pageinteger
Default 1
Example: page=1
curl -i -X GET \
  'https://demo.public-api.tiendup.com/learning/courses?limit=25&page=1' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
statusstringrequired
Example: "OK"
dataArray of objects(Course)required
data[].​idintegerrequired
Example: 11939
data[].​business_idintegerrequired
Example: 265
data[].​typestringrequired

Tipo de curso.

Example: "online"
data[].​product_idintegerrequired
Example: 11939
data[].​codestring or null
Example: null
One of:
string
data[].​statusstringrequired

Estado del curso (por ejemplo published, draft).

Example: "published"
data[].​languagestringrequired
Example: "es"
data[].​namestringrequired
Example: "Curso desde Mobile"
data[].​creation_datestringrequired
Example: "2020-09-23 18:35:16"
data[].​descriptionstring or null
Example: null
One of:
string
data[].​slugstringrequired
Example: "curso-desde-mobile"
data[].​release_datestring or null
Example: null
One of:
string
data[].​categoriesArray of CourseCategory (objects) or null
Example: null
One of:
data[].​imageProductImage (object) or null
Example: null
One of:
data[].​imagesArray of objects(ProductImage)required
Example: []
data[].​images[].​idintegerrequired
Example: 10254
data[].​images[].​file_namestringrequired
Example: "WGwJyW_615605ac1da50.jpg"
data[].​images[].​sourcestringrequired
Example: "http://cdn.example.com/develop/business/265/products/WGwJyW_615605ac1da50.jpg"
data[].​images[].​orderintegerrequired
Example: 1
data[].​images[].​property name*anyadditional property
data[].​total_ratingintegerrequired
Example: 0
data[].​total_reviewsintegerrequired
Example: 0
data[].​access_typestringrequired

Tipo de acceso (free / paid).

Example: "free"
data[].​completion_certificatebooleanrequired
Example: false
data[].​forum_enabledbooleanrequired
Example: false
data[].​total_enrollmentsintegerrequired
Example: 5
data[].​property name*anyadditional property
countFilteredintegerrequired

Cantidad filtrada

countinteger or stringrequired

Puede venir como string o integer.

One of:

Puede venir como string o integer.

integer
previousinteger or nullrequired
One of:
integer
currentintegerrequired
pagesintegerrequired
nextinteger or nullrequired
One of:
integer
property name*anyadditional property
Response
application/json
{ "status": "OK", "data": [ { … } ], "countFiltered": 0, "count": 0, "previous": 0, "current": 0, "pages": 0, "next": 0 }

Request

Security
ApiKeyAuth
Path
course_idintegerrequired
Example: 11779
curl -i -X GET \
  https://demo.public-api.tiendup.com/learning/courses/11779 \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
statusstringrequired
Example: "OK"
dataobject(CourseDetail)required
data.​idintegerrequired
Example: 11939
data.​business_idintegerrequired
Example: 265
data.​typestringrequired

Tipo de curso.

Example: "online"
data.​product_idintegerrequired
Example: 11939
data.​codestring or null
Example: null
One of:
string
data.​statusstringrequired

Estado del curso (por ejemplo published, draft).

Example: "published"
data.​languagestringrequired
Example: "es"
data.​namestringrequired
Example: "Curso desde Mobile"
data.​creation_datestringrequired
Example: "2020-09-23 18:35:16"
data.​descriptionstring or null
Example: null
One of:
string
data.​slugstringrequired
Example: "curso-desde-mobile"
data.​release_datestring or null
Example: null
One of:
string
data.​categoriesArray of CourseCategory (objects) or null
Example: null
One of:
data.​imageProductImage (object) or null
Example: null
One of:
data.​imagesArray of objects(ProductImage)required
Example: []
data.​images[].​idintegerrequired
Example: 10254
data.​images[].​file_namestringrequired
Example: "WGwJyW_615605ac1da50.jpg"
data.​images[].​sourcestringrequired
Example: "http://cdn.example.com/develop/business/265/products/WGwJyW_615605ac1da50.jpg"
data.​images[].​orderintegerrequired
Example: 1
data.​images[].​property name*anyadditional property
data.​total_ratingintegerrequired
Example: 0
data.​total_reviewsintegerrequired
Example: 0
data.​access_typestringrequired

Tipo de acceso (free / paid).

Example: "free"
data.​completion_certificatebooleanrequired
Example: false
data.​forum_enabledbooleanrequired
Example: false
data.​total_enrollmentsintegerrequired
Example: 5
data.​requerimentsArray of arrays

Requisitos del curso.

Example: null
data.​target_studentsArray of arrays
Example: null
data.​learning_goalsArray of arrays
Example: null
data.​forum_category_idintegerrequired
Example: 0
data.​promotional_videoArray of arrays
data.​sequential_progressbooleanrequired
Example: false
data.​instructorsArray of objectsrequired

En el ejemplo viene vacío; se deja genérico.

Example: []
data.​modulesArray of objects(CourseModule)required
data.​modules[].​idintegerrequired
Example: 106
data.​modules[].​namestringrequired
Example: "Modulo 1"
data.​modules[].​orderintegerrequired
Example: 1
data.​modules[].​completion_certificatebooleanrequired
Example: false
data.​modules[].​lessonsArray of objects(CourseLesson)required
data.​modules[].​lessons[].​idintegerrequired
Example: 258
data.​modules[].​lessons[].​namestringrequired
Example: "Clase"
data.​modules[].​lessons[].​urlstringrequired
Example: "/curso/introduccion-a-huerta-organica/lesson/258"
data.​modules[].​lessons[].​content_typestringrequired

Tipo de contenido (video, pdf, audio, multimedia, etc.)

Example: "video"
data.​modules[].​lessons[].​content_durationstringrequired

Duración (en segundos) como string según API.

Example: "124"
data.​modules[].​lessons[].​free_accessbooleanrequired
Example: false
data.​modules[].​lessons[].​downloadablebooleanrequired
Example: false
data.​modules[].​lessons[].​orderintegerrequired
Example: 1
data.​modules[].​lessons[].​promotional_descriptionstring or null
Example: null
One of:
string
data.​modules[].​lessons[].​promotional_videostring or null
Example: null
One of:
string
data.​modules[].​lessons[].​property name*anyadditional property
data.​modules[].​property name*anyadditional property
data.​discussionsArray of objects(CourseDiscussion)required
data.​discussions[].​idintegerrequired
Example: 143
data.​discussions[].​titlestringrequired
Example: "Muy buen tema"
data.​discussions[].​slugstringrequired
Example: "muy-buen-tema"
data.​discussions[].​contentstringrequired
Example: ""
data.​discussions[].​creation_datestringrequired
Example: "2022-10-07 18:37:56"
data.​discussions[].​modification_datestringrequired
Example: "2022-10-07 18:37:56"
data.​discussions[].​total_repliesintegerrequired
Example: 0
data.​discussions[].​publicbooleanrequired
Example: true
data.​discussions[].​answers_publicbooleanrequired
Example: true
data.​discussions[].​memberobject(CourseDiscussionMember)required
data.​discussions[].​member.​idintegerrequired
Example: 5783
data.​discussions[].​member.​namestringrequired
Example: "Michael"
data.​discussions[].​member.​last_namestringrequired
Example: "Smith"
data.​discussions[].​member.​avatar_filenamestring or nullrequired
Example: "https://cdn.example.com/develop/business/265/customers/265_avatar_615478fbbd029.png"
One of:
string
data.​discussions[].​member.​property name*anyadditional property
data.​discussions[].​property name*anyadditional property
data.​subscriptions_billing_plansArray of objectsrequired

En el ejemplo viene vacío; se deja genérico.

Example: []
data.​certificateCourseCertificate (object) or null
One of:
data.​property name*anyadditional property
property name*anyadditional property
Response
application/json
{ "status": "OK", "data": { "id": 11939, "business_id": 265, "type": "online", "product_id": 11939, "code": null, "status": "published", "language": "es", "name": "Curso desde Mobile", "creation_date": "2020-09-23 18:35:16", "description": null, "slug": "curso-desde-mobile", "release_date": null, "categories": null, "image": null, "images": [], "total_rating": 0, "total_reviews": 0, "access_type": "free", "completion_certificate": false, "forum_enabled": false, "total_enrollments": 5, "requeriments": null, "target_students": null, "learning_goals": null, "forum_category_id": 0, "promotional_video": [], "sequential_progress": false, "instructors": [], "modules": [ … ], "discussions": [ … ], "subscriptions_billing_plans": [], "certificate": { … } } }

Request

Security
ApiKeyAuth
Path
course_idintegerrequired
Example: 11779
Query
limitinteger
Default 25
Example: limit=25
pageinteger
Default 1
Example: page=1
curl -i -X GET \
  'https://demo.public-api.tiendup.com/learning/courses/11779/enrolled?limit=25&page=1' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
countFilteredintegerrequired

Cantidad filtrada

countinteger or stringrequired

Puede venir como string o integer.

One of:

Puede venir como string o integer.

integer
previousinteger or nullrequired
One of:
integer
currentintegerrequired
pagesintegerrequired
nextinteger or nullrequired
One of:
integer
statusstringrequired
Example: "OK"
dataArray of objects(CourseEnrollment)required
data[].​idintegerrequired
Example: 648
data[].​customer_idintegerrequired
Example: 40737
data[].​namestringrequired
Example: "Michael"
data[].​last_namestring or nullrequired
Example: "Smith"
One of:
string
data[].​emailstringrequired
Example: "customer3@example.com"
data[].​creation_datestringrequired
Example: "2020-04-03 11:38:31"
data[].​completed_datestring or nullrequired
Example: "2020-08-28 11:44:10"
One of:
string
data[].​is_completedbooleanrequired
Example: false
data[].​progressintegerrequired

Porcentaje de progreso (0-100).

Example: 60
data[].​ratingstringrequired

Rating viene como string en la API.

Example: "5"
data[].​statusstringrequired

Estado de la inscripción ej paid, free

Example: "paid"
data[].​activation_datestringrequired
Example: "2020-04-03 11:38:31"
data[].​expiration_datestring or nullrequired
Example: null
One of:
string
data[].​data_source_typestringrequired

Origen de la inscripción ej api, public_api, manual

Example: "api"
data[].​certificate_course_completionstring or null
Example: "http://cdn.example.com/develop/business/265/elearning_certificates/11779T31C40737H1598625850.pdf"
One of:
string
data[].​property name*anyadditional property
property name*anyadditional property
Response
application/json
{ "countFiltered": 0, "count": 0, "previous": 0, "current": 0, "pages": 0, "next": 0, "status": "OK", "data": [ { … } ] }

Cursos en los que está inscripto un cliente

Request

Security
ApiKeyAuth
Path
customer_idintegerrequired
Example: 40737
Query
limitinteger
Default 25
Example: limit=25
pageinteger
Default 1
Example: page=1
curl -i -X GET \
  'https://demo.public-api.tiendup.com/learning/customers/40737/courses?limit=25&page=1' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
countFilteredintegerrequired

Cantidad filtrada

countinteger or stringrequired

Puede venir como string o integer.

One of:

Puede venir como string o integer.

integer
previousinteger or nullrequired
One of:
integer
currentintegerrequired
pagesintegerrequired
nextinteger or nullrequired
One of:
integer
statusstringrequired
Example: "OK"
dataArray of objects(CourseWithEnrollment)required
data[].​idintegerrequired
Example: 21139
data[].​business_idintegerrequired
Example: 535
data[].​typestringrequired
Example: "online"
data[].​product_idintegerrequired
Example: 21139
data[].​codestring or nullrequired
Example: null
One of:
string
data[].​statusstringrequired
Example: "published"
data[].​languagestringrequired
Example: "es"
data[].​namestringrequired
Example: "Curso huerta urbana y nuevas tecnologías en nutrición"
data[].​creation_datestringrequired
Example: "2020-02-11 20:36:19"
data[].​descriptionstring or nullrequired
Example: null
One of:
string
data[].​slugstringrequired
Example: "huerta-urbana-y-nuevas-tecnologias-en-nutricion"
data[].​release_datestring or nullrequired
Example: null
One of:
string
data[].​categoriesArray of CourseCategory (objects) or nullrequired
Example: [{"id":1000,"name":"Huertas","slug":"huertas"}]
One of:
data[].​categories[].​idintegerrequired
Example: 1206
data[].​categories[].​namestringrequired
Example: "Cursos online"
data[].​categories[].​slugstringrequired
Example: "cursos-online"
data[].​categories[].​property name*anyadditional property
data[].​imageCourseImage (object) or nullrequired
One of:
data[].​image.​idintegerrequired
Example: 26239
data[].​image.​file_namestringrequired
Example: "gNkY0D_5e85f2cd3948f.jpg"
data[].​image.​sourcestringrequired
Example: "https://cdn.example.com/business/535/products/gNkY0D_5e85f2cd3948f.jpg"
data[].​image.​orderintegerrequired
Example: 1
data[].​image.​property name*anyadditional property
data[].​imagesArray of objects(CourseImage)required
data[].​images[].​idintegerrequired
Example: 26239
data[].​images[].​file_namestringrequired
Example: "gNkY0D_5e85f2cd3948f.jpg"
data[].​images[].​sourcestringrequired
Example: "https://cdn.example.com/business/535/products/gNkY0D_5e85f2cd3948f.jpg"
data[].​images[].​orderintegerrequired
Example: 1
data[].​images[].​property name*anyadditional property
data[].​total_ratingnumberrequired
Example: 4.66667
data[].​total_reviewsintegerrequired
Example: 3
data[].​access_typestringrequired
Example: "paid"
data[].​completion_certificatebooleanrequired
Example: false
data[].​forum_enabledbooleanrequired
Example: true
data[].​total_enrollmentsintegerrequired
Example: 38
data[].​days_until_expiryboolean or nullrequired
Example: false
One of:
boolean
data[].​enrollmentobject(CourseEnrollmentMini)required
data[].​enrollment.​idintegerrequired
Example: 234471
data[].​enrollment.​progressintegerrequired
Example: 0
data[].​enrollment.​creation_datestringrequired
Example: "2020-12-30 16:13:23"
data[].​enrollment.​is_completedbooleanrequired
Example: false
data[].​enrollment.​completed_datestring or nullrequired
Example: null
One of:
string
data[].​enrollment.​statusstringrequired
Example: "free"
data[].​enrollment.​property name*anyadditional property
data[].​property name*anyadditional property
property name*anyadditional property
Response
application/json
{ "countFiltered": 0, "count": 0, "previous": 0, "current": 0, "pages": 0, "next": 0, "status": "OK", "data": [ { … } ] }

Request

Inscribe a un cliente en un curso online. El curso y el cliente deben existir.

Security
ApiKeyAuth
Path
course_idintegerrequired

ID del curso

customer_idintegerrequired

ID del cliente

Bodyapplication/jsonrequired
enrollment_typestringrequired

Tipo de inscripción

Enum"free""paid"
curl -i -X PUT \
  'https://demo.public-api.tiendup.com/learning/courses/{course_id}/enrolled/{customer_id}' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "enrollment_type": "free"
  }'

Responses

Cliente inscripto correctamente

Bodyapplication/json
statusstringrequired
Example: "OK"
Response
application/json
{ "status": "OK" }

Enroll customer in course by email

Request

Inscribe a un cliente en un curso usando su email. Si el cliente no existe, se crea con los datos provistos.

Security
ApiKeyAuth
Path
course_idintegerrequired

ID del curso

Bodyapplication/jsonrequired
customerobjectrequired
customer.​emailstring(email)required
Example: "customer7@example.com"
customer.​namestring
Example: "DARRIO"
customer.​last_namestring
Example: "Perez"
enrollment_typestringrequired

Tipo de inscripción

Enum"free""paid"
curl -i -X POST \
  'https://demo.public-api.tiendup.com/learning/courses/{course_id}/enroll' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "customer": {
      "email": "customer7@example.com",
      "name": "DARRIO",
      "last_name": "Perez"
    },
    "enrollment_type": "free"
  }'

Responses

Cliente inscripto correctamente

Bodyapplication/json
statusstringrequired
Example: "OK"
Response
application/json
{ "status": "OK" }

Request

Obtiene la inscripción de un cliente en un curso específico.

Security
ApiKeyAuth
Path
customer_idintegerrequired

ID del cliente

course_idintegerrequired

ID del curso

curl -i -X GET \
  'https://demo.public-api.tiendup.com/learning/customers/{customer_id}/courses/{course_id}/enrollment' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

Inscripción encontrada

Bodyapplication/json
statusstringrequired
Example: "OK"
dataobject(Enrollment)required
data.​idintegerrequired
Example: 1155
data.​creation_datestringrequired
Example: "2026-02-22 09:14:28"
data.​completed_datestring or null
Example: null
data.​is_completedbooleanrequired
data.​progressintegerrequired
Example: 0
data.​ratingstring
Example: "0"
data.​statusstringrequired
Enum"free""paid"
Example: "free"
data.​review_statusstring
Example: "pending"
data.​expiredbooleanrequired
data.​activation_datestring or null
Example: "2026-02-22 15:52:54"
data.​expiration_datestring or null
Example: null
data.​current_lesson_idinteger
Example: 0
data.​customerobjectrequired
data.​customer.​idintegerrequired
data.​customer.​namestring
data.​customer.​last_namestring
data.​customer.​emailstring(email)required
data.​courseobjectrequired
data.​course.​idintegerrequired
data.​course.​namestringrequired
data.​course.​slugstringrequired
data.​course.​urlstring
data.​course.​imageCourseImage (object) or null
Any of:
data.​certificatesArray of objects or null
Any of:
Response
application/json
{ "status": "OK", "data": { "id": 1155, "creation_date": "2026-02-22 09:14:28", "completed_date": null, "is_completed": true, "progress": 0, "rating": "0", "status": "free", "review_status": "pending", "expired": true, "activation_date": "2026-02-22 15:52:54", "expiration_date": null, "current_lesson_id": 0, "customer": { … }, "course": { … }, "certificates": [ … ] } }

Revoke customer enrollment in course

Request

Revoca el acceso de un cliente a un curso específico.

Security
ApiKeyAuth
Path
customer_idintegerrequired

ID del cliente

course_idintegerrequired

ID del curso

curl -i -X DELETE \
  'https://demo.public-api.tiendup.com/learning/customers/{customer_id}/courses/{course_id}/enrollment' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

Acceso revocado correctamente

Bodyapplication/json
statusstringrequired
Example: "OK"
Response
application/json
{ "status": "OK" }
Operations
Operations
Operations