{"openapi":"3.1.0","info":{"title":"datamockseed API","version":"1.0.0","description":"Generación y validación de datos ficticios (DNI/NIE/CIF, IBAN, tarjetas, teléfonos, identidades…) con dígitos de control válidos. Anónima, con límite de peticiones por IP.","contact":{"name":"datamockseed","url":"https://datamockseed.firstflip.es"}},"servers":[{"url":"https://datamockseed.firstflip.es/api/v1"}],"paths":{"/generators":{"get":{"summary":"Lista de generadores disponibles","operationId":"listGenerators","responses":{"200":{"description":"Generadores y sus opciones por defecto","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/{locale}/{generator}":{"get":{"summary":"Genera registros de un tipo","operationId":"generate","parameters":[{"name":"locale","in":"path","required":true,"schema":{"type":"string","enum":["es"]}},{"name":"generator","in":"path","required":true,"schema":{"type":"string","enum":["document","phone","identity","iban","card","passport","uuid","username","password"]}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000,"default":1}},{"name":"seed","in":"query","required":false,"schema":{"type":"string"},"description":"Equivalente a la cabecera X-Seed."},{"name":"X-Seed","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Registros generados","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Locale o parámetros inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Generador desconocido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"\"count\" supera el límite","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Límite de peticiones superado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/{locale}/bulk":{"post":{"summary":"Genera registros compuestos a partir de un esquema","operationId":"bulkGenerate","parameters":[{"name":"locale","in":"path","required":true,"schema":{"type":"string","enum":["es"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["fields"],"properties":{"seed":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":10000,"default":10},"format":{"type":"string","enum":["json","csv","sql","typescript","xml"],"default":"json"},"table":{"type":"string"},"createTable":{"type":"boolean"},"fields":{"type":"array","minItems":1,"items":{"type":"object","required":["name","type"],"properties":{"name":{"type":"string"},"type":{"type":"string","enum":["nombre_completo","nombre","apellidos","sexo","fecha_nacimiento","edad","documento","nss","email","usuario","telefono_movil","telefono_fijo","direccion","cp","municipio","provincia","comunidad","razon_social","cif","iban","bic","entidad_bancaria","ccc","tarjeta","uuid","numero","fecha","booleano","lorem","matricula","pasaporte","password"]},"options":{"type":"object"},"nullable":{"type":"number","minimum":0,"maximum":100}}}}}}}}},"responses":{"200":{"description":"JSON, o el texto exportado (CSV/SQL/XML/TypeScript) según `format`/`Accept`"},"400":{"description":"Body o esquema inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"\"count\" supera el límite","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Límite de peticiones superado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/validate":{"post":{"summary":"Valida un DNI/NIE/CIF/IBAN/CCC/NSS/tarjeta","operationId":"validate","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["value"],"properties":{"value":{"type":"string"},"kind":{"type":"string","enum":["auto","DNI","NIE","CIF","IBAN","Tarjeta","NSS","CCC"],"default":"auto"}}}}}},"responses":{"200":{"description":"Resultado de la validación","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"\"value\" ausente o vacío","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Límite de peticiones superado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}}},"components":{"schemas":{"ApiError":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"code":{"type":"string","enum":["INVALID_PARAMS","INVALID_BODY","UNKNOWN_GENERATOR","UNSUPPORTED_LOCALE","COUNT_LIMIT_EXCEEDED","RATE_LIMIT_EXCEEDED"]},"message":{"type":"string"},"details":{"type":"object"}},"required":["status","code","message"]}}},"x-rate-limit":{"requestsPerMinute":60,"scope":"IP"}}