{
	"info": {
		"_postman_id": "5b0f6a2e-3c1d-4a8e-9f7b-0a1b2c3d4e5f",
		"name": "Wayki Project API (v1)",
		"description": "API pública de solo lectura de Wayki (v1).\n\n**Cómo usarla**\n1. En Wayki, un owner o admin del proyecto crea una credencial en *Configuración › API* (el módulo de API debe estar habilitado para el proyecto).\n2. En esta colección abre *Variables* y completa en **Current value**: `clientId`, `clientSecret` y `projectId`. Si usas otro servidor, cambia `baseUrl`.\n3. Ejecuta cualquier petición: el script de la colección pide y renueva el token solo. También puedes ejecutar *Autenticación › Obtener token* a mano.\n\n**Seguridad**: guarda `clientSecret` solo como *Current value* (no se sincroniza ni se exporta) y no compartas la colección con valores reales.\n\nDocumentación: https://wayki.app/developers · OpenAPI: {{baseUrl}}/v1/openapi.yaml",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
	},
	"auth": {
		"type": "bearer",
		"bearer": [
			{
				"key": "token",
				"value": "{{accessToken}}",
				"type": "string"
			}
		]
	},
	"event": [
		{
			"listen": "prerequest",
			"script": {
				"type": "text/javascript",
				"exec": [
					"// Obtiene y renueva el token automáticamente (OAuth 2.0 client credentials).",
					"// Usa las variables de la colección clientId / clientSecret y guarda el token",
					"// en accessToken hasta un minuto antes de que expire.",
					"if (pm.request.url.getPath().endsWith('/v1/oauth/token')) return;",
					"",
					"const token = pm.collectionVariables.get('accessToken');",
					"const expiresAt = Number(pm.collectionVariables.get('accessTokenExpiresAt') || 0);",
					"if (token && Date.now() < expiresAt - 60000) return;",
					"",
					"const clientId = pm.collectionVariables.get('clientId');",
					"const clientSecret = pm.collectionVariables.get('clientSecret');",
					"if (!clientId || !clientSecret) {",
					"  console.warn('Wayki: define clientId y clientSecret en las variables de la colección.');",
					"  return;",
					"}",
					"",
					"const basic = CryptoJS.enc.Base64.stringify(",
					"  CryptoJS.enc.Utf8.parse(clientId + ':' + clientSecret),",
					");",
					"",
					"pm.sendRequest(",
					"  {",
					"    url: pm.collectionVariables.get('baseUrl') + '/v1/oauth/token',",
					"    method: 'POST',",
					"    header: {",
					"      Authorization: 'Basic ' + basic,",
					"      'Content-Type': 'application/x-www-form-urlencoded',",
					"    },",
					"    body: {",
					"      mode: 'urlencoded',",
					"      urlencoded: [{ key: 'grant_type', value: 'client_credentials' }],",
					"    },",
					"  },",
					"  (err, res) => {",
					"    if (err || res.code !== 200) {",
					"      console.error('Wayki: no se pudo obtener el token', err || res.json());",
					"      return;",
					"    }",
					"    const body = res.json();",
					"    pm.collectionVariables.set('accessToken', body.access_token);",
					"    pm.collectionVariables.set(",
					"      'accessTokenExpiresAt',",
					"      String(Date.now() + body.expires_in * 1000),",
					"    );",
					"  },",
					");"
				]
			}
		}
	],
	"item": [
		{
			"name": "Autenticación",
			"item": [
				{
					"name": "Obtener token",
					"event": [
						{
							"listen": "test",
							"script": {
								"type": "text/javascript",
								"exec": [
									"pm.test('Token emitido', () => pm.response.to.have.status(200));",
									"const body = pm.response.json();",
									"if (body.access_token) {",
									"  pm.collectionVariables.set('accessToken', body.access_token);",
									"  pm.collectionVariables.set(",
									"    'accessTokenExpiresAt',",
									"    String(Date.now() + body.expires_in * 1000),",
									"  );",
									"}"
								]
							}
						}
					],
					"request": {
						"auth": {
							"type": "basic",
							"basic": [
								{
									"key": "username",
									"value": "{{clientId}}",
									"type": "string"
								},
								{
									"key": "password",
									"value": "{{clientSecret}}",
									"type": "string"
								}
							]
						},
						"method": "POST",
						"header": [],
						"body": {
							"mode": "urlencoded",
							"urlencoded": [
								{
									"key": "grant_type",
									"value": "client_credentials",
									"type": "text"
								},
								{
									"key": "scope",
									"value": "issues:read",
									"type": "text",
									"disabled": true,
									"description": "Opcional: subconjunto de los permisos de la credencial."
								}
							]
						},
						"url": {
							"raw": "{{baseUrl}}/v1/oauth/token",
							"host": ["{{baseUrl}}"],
							"path": ["v1", "oauth", "token"]
						},
						"description": "OAuth 2.0 client credentials. Devuelve `access_token` (1 hora) y lo guarda en la variable `accessToken`."
					},
					"response": []
				}
			]
		},
		{
			"name": "Proyecto",
			"item": [
				{
					"name": "Proyecto",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}",
							"host": ["{{baseUrl}}"],
							"path": ["v1", "projects", "{{projectId}}"]
						},
						"description": "Nombre, código, estado, ubicación y empresa.\n\nPermiso requerido: `project:read`."
					},
					"response": []
				},
				{
					"name": "Miembros",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/members",
							"host": ["{{baseUrl}}"],
							"path": ["v1", "projects", "{{projectId}}", "members"]
						},
						"description": "Miembros y roles, con correo.\n\nPermiso requerido: `members:read`."
					},
					"response": []
				}
			]
		},
		{
			"name": "Incidencias",
			"item": [
				{
					"name": "Listar incidencias",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/issues?page=1&limit=20",
							"host": ["{{baseUrl}}"],
							"path": ["v1", "projects", "{{projectId}}", "issues"],
							"query": [
								{
									"key": "page",
									"value": "1",
									"description": "Página, desde 1."
								},
								{
									"key": "limit",
									"value": "20",
									"description": "1 a 100. Por defecto 20."
								},
								{
									"key": "sort",
									"value": "createdAt",
									"disabled": true,
									"description": "Uno de: createdAt, updatedAt, number, title, dueDate, priority."
								},
								{
									"key": "order",
									"value": "desc",
									"disabled": true,
									"description": "asc o desc."
								},
								{
									"key": "q",
									"value": "",
									"disabled": true,
									"description": "Búsqueda de texto."
								},
								{
									"key": "from",
									"value": "2026-01-01",
									"disabled": true,
									"description": "Desde (ISO 8601, inclusivo). Filtra por fecha de creación."
								},
								{
									"key": "to",
									"value": "2026-12-31",
									"disabled": true,
									"description": "Hasta (ISO 8601, inclusivo). Filtra por fecha de creación."
								}
							]
						},
						"description": "Lista paginada de incidencias.\n\nPermiso requerido: `issues:read`."
					},
					"response": []
				},
				{
					"name": "Detalle",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/issues/{{issueId}}",
							"host": ["{{baseUrl}}"],
							"path": [
								"v1",
								"projects",
								"{{projectId}}",
								"issues",
								"{{issueId}}"
							]
						},
						"description": "Una sola, por id. Define la variable `issueId`.\n\nPermiso requerido: `issues:read`."
					},
					"response": []
				},
				{
					"name": "Respuestas",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/issues/{{issueId}}/replies?page=1&limit=20",
							"host": ["{{baseUrl}}"],
							"path": [
								"v1",
								"projects",
								"{{projectId}}",
								"issues",
								"{{issueId}}",
								"replies"
							],
							"query": [
								{
									"key": "page",
									"value": "1",
									"description": "Página, desde 1."
								},
								{
									"key": "limit",
									"value": "20",
									"description": "1 a 100."
								},
								{
									"key": "order",
									"value": "asc",
									"disabled": true,
									"description": "asc (más antiguas primero, por defecto) o desc."
								}
							]
						},
						"description": "Respuestas paginadas.\n\nPermiso requerido: `issues:read`."
					},
					"response": []
				},
				{
					"name": "Configuración",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/issues/settings",
							"host": ["{{baseUrl}}"],
							"path": ["v1", "projects", "{{projectId}}", "issues", "settings"]
						},
						"description": "Catálogos del módulo (estados, prioridades, tipos) para interpretar los campos.\n\nPermiso requerido: `issues:read`."
					},
					"response": []
				}
			]
		},
		{
			"name": "RFIs",
			"item": [
				{
					"name": "Listar RFIs",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/rfis?page=1&limit=20",
							"host": ["{{baseUrl}}"],
							"path": ["v1", "projects", "{{projectId}}", "rfis"],
							"query": [
								{
									"key": "page",
									"value": "1",
									"description": "Página, desde 1."
								},
								{
									"key": "limit",
									"value": "20",
									"description": "1 a 100. Por defecto 20."
								},
								{
									"key": "sort",
									"value": "createdAt",
									"disabled": true,
									"description": "Uno de: createdAt, updatedAt, number, title, dueDate, status, priority."
								},
								{
									"key": "order",
									"value": "desc",
									"disabled": true,
									"description": "asc o desc."
								},
								{
									"key": "q",
									"value": "",
									"disabled": true,
									"description": "Búsqueda de texto."
								},
								{
									"key": "from",
									"value": "2026-01-01",
									"disabled": true,
									"description": "Desde (ISO 8601, inclusivo). Filtra por fecha de creación."
								},
								{
									"key": "to",
									"value": "2026-12-31",
									"disabled": true,
									"description": "Hasta (ISO 8601, inclusivo). Filtra por fecha de creación."
								}
							]
						},
						"description": "Lista paginada de RFIs.\n\nPermiso requerido: `rfis:read`."
					},
					"response": []
				},
				{
					"name": "Detalle",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/rfis/{{rfiId}}",
							"host": ["{{baseUrl}}"],
							"path": ["v1", "projects", "{{projectId}}", "rfis", "{{rfiId}}"]
						},
						"description": "Una sola, por id. Define la variable `rfiId`.\n\nPermiso requerido: `rfis:read`."
					},
					"response": []
				},
				{
					"name": "Respuestas",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/rfis/{{rfiId}}/replies?page=1&limit=20",
							"host": ["{{baseUrl}}"],
							"path": [
								"v1",
								"projects",
								"{{projectId}}",
								"rfis",
								"{{rfiId}}",
								"replies"
							],
							"query": [
								{
									"key": "page",
									"value": "1",
									"description": "Página, desde 1."
								},
								{
									"key": "limit",
									"value": "20",
									"description": "1 a 100."
								},
								{
									"key": "order",
									"value": "asc",
									"disabled": true,
									"description": "asc (más antiguas primero, por defecto) o desc."
								}
							]
						},
						"description": "Respuestas paginadas.\n\nPermiso requerido: `rfis:read`."
					},
					"response": []
				},
				{
					"name": "Configuración",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/rfis/settings",
							"host": ["{{baseUrl}}"],
							"path": ["v1", "projects", "{{projectId}}", "rfis", "settings"]
						},
						"description": "Catálogos del módulo (estados, prioridades, tipos) para interpretar los campos.\n\nPermiso requerido: `rfis:read`."
					},
					"response": []
				}
			]
		},
		{
			"name": "Órdenes de cambio",
			"item": [
				{
					"name": "Listar órdenes de cambio",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/change-orders?page=1&limit=20",
							"host": ["{{baseUrl}}"],
							"path": ["v1", "projects", "{{projectId}}", "change-orders"],
							"query": [
								{
									"key": "page",
									"value": "1",
									"description": "Página, desde 1."
								},
								{
									"key": "limit",
									"value": "20",
									"description": "1 a 100. Por defecto 20."
								},
								{
									"key": "sort",
									"value": "createdAt",
									"disabled": true,
									"description": "Uno de: createdAt, updatedAt, number, title, dueDate, status, priority."
								},
								{
									"key": "order",
									"value": "desc",
									"disabled": true,
									"description": "asc o desc."
								},
								{
									"key": "q",
									"value": "",
									"disabled": true,
									"description": "Búsqueda de texto."
								},
								{
									"key": "from",
									"value": "2026-01-01",
									"disabled": true,
									"description": "Desde (ISO 8601, inclusivo). Filtra por fecha de creación."
								},
								{
									"key": "to",
									"value": "2026-12-31",
									"disabled": true,
									"description": "Hasta (ISO 8601, inclusivo). Filtra por fecha de creación."
								}
							]
						},
						"description": "Lista paginada de órdenes de cambio.\n\nPermiso requerido: `change-orders:read`."
					},
					"response": []
				},
				{
					"name": "Detalle",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/change-orders/{{changeOrderId}}",
							"host": ["{{baseUrl}}"],
							"path": [
								"v1",
								"projects",
								"{{projectId}}",
								"change-orders",
								"{{changeOrderId}}"
							]
						},
						"description": "Una sola, por id. Define la variable `changeOrderId`.\n\nPermiso requerido: `change-orders:read`."
					},
					"response": []
				},
				{
					"name": "Respuestas",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/change-orders/{{changeOrderId}}/replies?page=1&limit=20",
							"host": ["{{baseUrl}}"],
							"path": [
								"v1",
								"projects",
								"{{projectId}}",
								"change-orders",
								"{{changeOrderId}}",
								"replies"
							],
							"query": [
								{
									"key": "page",
									"value": "1",
									"description": "Página, desde 1."
								},
								{
									"key": "limit",
									"value": "20",
									"description": "1 a 100."
								},
								{
									"key": "order",
									"value": "asc",
									"disabled": true,
									"description": "asc (más antiguas primero, por defecto) o desc."
								}
							]
						},
						"description": "Respuestas paginadas.\n\nPermiso requerido: `change-orders:read`."
					},
					"response": []
				},
				{
					"name": "Configuración",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/change-orders/settings",
							"host": ["{{baseUrl}}"],
							"path": [
								"v1",
								"projects",
								"{{projectId}}",
								"change-orders",
								"settings"
							]
						},
						"description": "Catálogos del módulo (estados, prioridades, tipos) para interpretar los campos.\n\nPermiso requerido: `change-orders:read`."
					},
					"response": []
				}
			]
		},
		{
			"name": "No conformidades",
			"item": [
				{
					"name": "Listar no conformidades",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/non-conformances?page=1&limit=20",
							"host": ["{{baseUrl}}"],
							"path": ["v1", "projects", "{{projectId}}", "non-conformances"],
							"query": [
								{
									"key": "page",
									"value": "1",
									"description": "Página, desde 1."
								},
								{
									"key": "limit",
									"value": "20",
									"description": "1 a 100. Por defecto 20."
								},
								{
									"key": "sort",
									"value": "createdAt",
									"disabled": true,
									"description": "Uno de: createdAt, updatedAt, number, title, dueDate, status, priority."
								},
								{
									"key": "order",
									"value": "desc",
									"disabled": true,
									"description": "asc o desc."
								},
								{
									"key": "q",
									"value": "",
									"disabled": true,
									"description": "Búsqueda de texto."
								},
								{
									"key": "from",
									"value": "2026-01-01",
									"disabled": true,
									"description": "Desde (ISO 8601, inclusivo). Filtra por fecha de creación."
								},
								{
									"key": "to",
									"value": "2026-12-31",
									"disabled": true,
									"description": "Hasta (ISO 8601, inclusivo). Filtra por fecha de creación."
								}
							]
						},
						"description": "Lista paginada de no conformidades.\n\nPermiso requerido: `non-conformances:read`."
					},
					"response": []
				},
				{
					"name": "Detalle",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/non-conformances/{{nonConformanceId}}",
							"host": ["{{baseUrl}}"],
							"path": [
								"v1",
								"projects",
								"{{projectId}}",
								"non-conformances",
								"{{nonConformanceId}}"
							]
						},
						"description": "Una sola, por id. Define la variable `nonConformanceId`.\n\nPermiso requerido: `non-conformances:read`."
					},
					"response": []
				},
				{
					"name": "Respuestas",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/non-conformances/{{nonConformanceId}}/replies?page=1&limit=20",
							"host": ["{{baseUrl}}"],
							"path": [
								"v1",
								"projects",
								"{{projectId}}",
								"non-conformances",
								"{{nonConformanceId}}",
								"replies"
							],
							"query": [
								{
									"key": "page",
									"value": "1",
									"description": "Página, desde 1."
								},
								{
									"key": "limit",
									"value": "20",
									"description": "1 a 100."
								},
								{
									"key": "order",
									"value": "asc",
									"disabled": true,
									"description": "asc (más antiguas primero, por defecto) o desc."
								}
							]
						},
						"description": "Respuestas paginadas.\n\nPermiso requerido: `non-conformances:read`."
					},
					"response": []
				},
				{
					"name": "Configuración",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/non-conformances/settings",
							"host": ["{{baseUrl}}"],
							"path": [
								"v1",
								"projects",
								"{{projectId}}",
								"non-conformances",
								"settings"
							]
						},
						"description": "Catálogos del módulo (estados, prioridades, tipos) para interpretar los campos.\n\nPermiso requerido: `non-conformances:read`."
					},
					"response": []
				}
			]
		},
		{
			"name": "Reuniones",
			"item": [
				{
					"name": "Listar reuniones",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/meetings?page=1&limit=20",
							"host": ["{{baseUrl}}"],
							"path": ["v1", "projects", "{{projectId}}", "meetings"],
							"query": [
								{
									"key": "page",
									"value": "1",
									"description": "Página, desde 1."
								},
								{
									"key": "limit",
									"value": "20",
									"description": "1 a 100. Por defecto 20."
								},
								{
									"key": "sort",
									"value": "startPlannedDate",
									"disabled": true,
									"description": "Uno de: startPlannedDate, createdAt, title, number."
								},
								{
									"key": "order",
									"value": "desc",
									"disabled": true,
									"description": "asc o desc."
								},
								{
									"key": "q",
									"value": "",
									"disabled": true,
									"description": "Búsqueda de texto."
								},
								{
									"key": "from",
									"value": "2026-01-01",
									"disabled": true,
									"description": "Desde (ISO 8601, inclusivo). Filtra por fecha planificada de inicio."
								},
								{
									"key": "to",
									"value": "2026-12-31",
									"disabled": true,
									"description": "Hasta (ISO 8601, inclusivo). Filtra por fecha planificada de inicio."
								}
							]
						},
						"description": "Lista paginada.\n\nPermiso requerido: `meetings:read`."
					},
					"response": []
				},
				{
					"name": "Detalle",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/meetings/{{meetingId}}",
							"host": ["{{baseUrl}}"],
							"path": [
								"v1",
								"projects",
								"{{projectId}}",
								"meetings",
								"{{meetingId}}"
							]
						},
						"description": "Reunión con agenda, participantes y acuerdos. Define `meetingId`.\n\nPermiso requerido: `meetings:read`."
					},
					"response": []
				},
				{
					"name": "Actas",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/meetings/{{meetingId}}/minutes?page=1&limit=20",
							"host": ["{{baseUrl}}"],
							"path": [
								"v1",
								"projects",
								"{{projectId}}",
								"meetings",
								"{{meetingId}}",
								"minutes"
							],
							"query": [
								{
									"key": "page",
									"value": "1",
									"description": "Página, desde 1."
								},
								{
									"key": "limit",
									"value": "20",
									"description": "1 a 100."
								},
								{
									"key": "order",
									"value": "asc",
									"disabled": true,
									"description": "asc (más antiguas primero, por defecto) o desc."
								}
							]
						},
						"description": "Actas congeladas, una por sesión cerrada.\n\nPermiso requerido: `meetings:read`."
					},
					"response": []
				},
				{
					"name": "Acta",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/meetings/{{meetingId}}/minutes/{{versionId}}",
							"host": ["{{baseUrl}}"],
							"path": [
								"v1",
								"projects",
								"{{projectId}}",
								"meetings",
								"{{meetingId}}",
								"minutes",
								"{{versionId}}"
							]
						},
						"description": "Un acta. Define `versionId`.\n\nPermiso requerido: `meetings:read`."
					},
					"response": []
				},
				{
					"name": "Configuración",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/meetings/settings",
							"host": ["{{baseUrl}}"],
							"path": [
								"v1",
								"projects",
								"{{projectId}}",
								"meetings",
								"settings"
							]
						},
						"description": "Estados y prioridades de acuerdos.\n\nPermiso requerido: `meetings:read`."
					},
					"response": []
				}
			]
		},
		{
			"name": "Formularios",
			"item": [
				{
					"name": "Listar formularios",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/forms?page=1&limit=20",
							"host": ["{{baseUrl}}"],
							"path": ["v1", "projects", "{{projectId}}", "forms"],
							"query": [
								{
									"key": "page",
									"value": "1",
									"description": "Página, desde 1."
								},
								{
									"key": "limit",
									"value": "20",
									"description": "1 a 100. Por defecto 20."
								},
								{
									"key": "sort",
									"value": "createdAt",
									"disabled": true,
									"description": "Uno de: createdAt, updatedAt, number, name."
								},
								{
									"key": "order",
									"value": "desc",
									"disabled": true,
									"description": "asc o desc."
								},
								{
									"key": "q",
									"value": "",
									"disabled": true,
									"description": "Búsqueda de texto."
								},
								{
									"key": "from",
									"value": "2026-01-01",
									"disabled": true,
									"description": "Desde (ISO 8601, inclusivo). Filtra por fecha de creación."
								},
								{
									"key": "to",
									"value": "2026-12-31",
									"disabled": true,
									"description": "Hasta (ISO 8601, inclusivo). Filtra por fecha de creación."
								}
							]
						},
						"description": "Lista paginada.\n\nPermiso requerido: `forms:read`."
					},
					"response": []
				},
				{
					"name": "Detalle",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/forms/{{formId}}",
							"host": ["{{baseUrl}}"],
							"path": ["v1", "projects", "{{projectId}}", "forms", "{{formId}}"]
						},
						"description": "Un formulario. Define `formId`.\n\nPermiso requerido: `forms:read`."
					},
					"response": []
				},
				{
					"name": "Configuración",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/v1/projects/{{projectId}}/forms/settings",
							"host": ["{{baseUrl}}"],
							"path": ["v1", "projects", "{{projectId}}", "forms", "settings"]
						},
						"description": "Estados, prioridades y tipos.\n\nPermiso requerido: `forms:read`."
					},
					"response": []
				}
			]
		}
	],
	"variable": [
		{
			"key": "baseUrl",
			"value": "https://api.wayki.app",
			"type": "string",
			"description": "URL base de la API."
		},
		{
			"key": "projectId",
			"value": "",
			"type": "string",
			"description": "Id del proyecto de la credencial."
		},
		{
			"key": "clientId",
			"value": "",
			"type": "string",
			"description": "wk_ci_… de la credencial."
		},
		{
			"key": "clientSecret",
			"value": "",
			"type": "string",
			"description": "wk_cs_… Guárdalo solo como Current value."
		},
		{
			"key": "accessToken",
			"value": "",
			"type": "string",
			"description": "Lo completa el script. No editar."
		},
		{
			"key": "accessTokenExpiresAt",
			"value": "",
			"type": "string",
			"description": "Lo completa el script. No editar."
		},
		{
			"key": "issueId",
			"value": "",
			"type": "string"
		},
		{
			"key": "rfiId",
			"value": "",
			"type": "string"
		},
		{
			"key": "changeOrderId",
			"value": "",
			"type": "string"
		},
		{
			"key": "nonConformanceId",
			"value": "",
			"type": "string"
		},
		{
			"key": "meetingId",
			"value": "",
			"type": "string"
		},
		{
			"key": "versionId",
			"value": "",
			"type": "string"
		},
		{
			"key": "formId",
			"value": "",
			"type": "string"
		}
	]
}
