{"id":26035273,"url":"https://github.com/lucasjorgehubert/brasilapi-swift","last_synced_at":"2026-05-02T08:31:52.720Z","repository":{"id":280838571,"uuid":"942699027","full_name":"LucasJorgeHubert/BrasilAPI-Swift","owner":"LucasJorgeHubert","description":"The BrasilAPI Swift Package Manager, for Swift Apps","archived":false,"fork":false,"pushed_at":"2025-03-05T22:08:12.000Z","size":44,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-05T23:19:42.280Z","etag":null,"topics":["api","apple","ios","ipados","macos","sdk","sdk-ios","spm","swift","swift-package-manager","swift5","swiftui"],"latest_commit_sha":null,"homepage":"https://brasilapi.com.br","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LucasJorgeHubert.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-04T14:29:04.000Z","updated_at":"2025-03-05T22:08:17.000Z","dependencies_parsed_at":"2025-03-05T16:22:32.582Z","dependency_job_id":"fca5c7c2-51fb-4247-9cc1-10088dd29465","html_url":"https://github.com/LucasJorgeHubert/BrasilAPI-Swift","commit_stats":null,"previous_names":["lucasjorgehubert/brasilapi","lucasjorgehubert/brasilapi-swift"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LucasJorgeHubert%2FBrasilAPI-Swift","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LucasJorgeHubert%2FBrasilAPI-Swift/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LucasJorgeHubert%2FBrasilAPI-Swift/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LucasJorgeHubert%2FBrasilAPI-Swift/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LucasJorgeHubert","download_url":"https://codeload.github.com/LucasJorgeHubert/BrasilAPI-Swift/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242321017,"owners_count":20108474,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","apple","ios","ipados","macos","sdk","sdk-ios","spm","swift","swift-package-manager","swift5","swiftui"],"created_at":"2025-03-07T03:15:16.806Z","updated_at":"2025-12-06T08:02:19.432Z","avatar_url":"https://github.com/LucasJorgeHubert.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BrasilAPI Swift\n\n[![Swift Package Manager](https://img.shields.io/badge/SPM-Compatible-brightgreen.svg)](https://swift.org/package-manager/)\n[![Tests](https://img.shields.io/badge/Tests-Passing-brightgreen.svg)]()\n\nUma SDK Swift para acessar os serviços da [BrasilAPI](https://brasilapi.com.br) de forma simples e integrada.\n\n🚨 Respeite as regras de uso da API, conforme a [documentação](https://brasilapi.com.br/docs).\n\n## 📖 Sumário\n\n- [📦 Instalação](#-instalação)\n- [🚨 Importante](#-importante)\n- [🔧 Funcionalidades Implementadas](#-funcionalidades-implementadas)\n  - [🏦 Bancos](#-bancos)\n    - [Listar Bancos](#listar-bancos-banksv1)\n    - [Buscar banco pelo código](#buscar-banco-pelo-código-banksv1code)\n  - [💱 Câmbio](#-câmbio)\n    - [Buscar Moedas](#buscar-moedas-cambiov1moedas)\n    - [Buscar Cotação](#buscar-cotação-cambiov1cotaçãomoedadata)\n  - [📍 CEP](#-cep)\n    - [Buscar CEP](#buscar-cep-cepv1code)\n  - [📍 CEP v2](#-cep-v2)\n    - [Buscar CEP](#buscar-cep-cepv2code)\n  - [🏢 CNPJ](#-cnpj)\n    - [Buscar CNPJ](#buscar-cnpj-cnpjv1cnpj)\n  - [🏦 Corretoras](#-corretoras)\n    - [Buscar corretoras](#buscar-corretoras-cvmcorretorasv1)\n    - [Buscar corretora por CNPJ](#buscar-corretora-por-cnpj-cvmcorretorasv1cnpj)\n  - [🌡️ CPTEC](#-cptec)\n    - [Listar localidades](#listar-localidades-cptecv1cidade)\n    - [Buscar localidade](#buscar-localidade-cptecv1cidadecityname)\n    - [Condições nas capitais](#condição-nas-capitais-cptecv1climacapital)\n    - [Condição nos aeroportos](#condição-nos-aeroportos-cptecv1climaaeroportoicaocode)\n    - [Previsão metereológica](#previsão-cptecv1climaprevisaocitycodedays)\n    - [Previsão oceânica](#previsão-oceanica-cptecv1ondascitycodedays)\n  - [📱 DDD](#-ddd)\n    - [Listar cidades](#listar-cidades-por-ddd-dddv1ddd)\n  - [🎉 Feriados Nacionais](#-feriados-nacionais)\n    - [Listar feriados nacionais](#listar-feriados-nacionais-feriadosv1ano)\n  - [🚗 FIPE](#-fipe)\n    - [Listar marcas de veículos](#listar-marcas-de-veículos-fipemarcasv1tipoveiculo)\n    - [Consultar preço do veículo](#consultar-preço-do-veículo-fipeprecov1codigofipe)\n    - [Listar tabelas de referência](#listar-tabelas-de-referência-fipetabelasv1)\n    - [Listar veículos por marca e tipo](#listar-veículos-por-marca-e-tipo-fipeveiculosv1tipoveiculocodigomarca)\n  - [🔎 IBGE](#-ibge)\n    - [Listar cidades](#listar-cidades-ibgemunicipiosv1siglauf)\n    - [Listar estados](#listar-estados-ibgeufv1)\n    - [Buscar estado](#listar-estado-ibgeufv1code)\n  - [📖 ISBN](#-isbn)\n    - [Buscar livro](#buscar-livro-isbnv1isbn)\n  - [🏢 NCM](#-ncm)\n    - [Buscar todos os NCMs](#buscar-ncm-ncmv1)\n    - [Buscar NCM](#buscar-um-ncm-ncmv1code)\n    - [Pesquisar NCM](#pesquisar-ncm-ncmv1searchterm)\n  - [💰 PIX](#-pix)\n    - [Buscar participantes](#buscar-participantes-pixv1participants)\n  - [🌐 Registro BR](#-registro-br)\n    - [Buscar status do dominio](#buscar-staus-do-dominio-registrobrv1dominio)\n  - [💸 Taxas](#-taxas)\n    - [Listar taxas](#listar-taxas-taxasv1)\n    - [Buscar taxa](#buscar-taxa-taxasv1sigla)\n- [📄 Licença](#-licença)\n- [🤝 Contribuindo](#-contribuindo)\n- [🌎 English Version](#-english-version)\n\n\n## 📦 Instalação\n\nA SDK está disponível via [Swift Package Manager (SPM)](https://swift.org/package-manager/). Para adicioná-la ao seu projeto:\n\n1. No Xcode, vá para `File \u003e Add Packages`\n2. Insira a URL do repositório: `https://github.com/LucasJorgeHubert/BrasilAPI-Swift`\n3. Escolha a versão desejada e adicione o pacote ao seu projeto\n\nOu, se preferir, adicione manualmente ao `Package.swift`:\n\n```swift\ndependencies: [\n    .package(url: \"https://github.com/LucasJorgeHubert/BrasilAPI-Swift\", from: \"1.0.0\")\n]\n```\n\nLembre de adicionar a importação no código:\n```swift\nimport BrasilAPI\n```\n## 🚨 Importante\nO SPM foi feito para facilitar a integração com a [BrasilAPI](https://brasilapi.com.br), então todos os modelos retornados são exatamente os mesmos retornados no response da API, então quando for implementar, pode se basear no retorna da API para saber o que vai retornar na modelagem.\n\n## 🔧 Funcionalidades Implementadas\n\n### 🏦 Bancos\n#### Listar Bancos [`banks/v1`](https://brasilapi.com.br/docs#tag/BANKS/paths/~1banks~1v1/get)\n\nRetorna informações de todos os bancos do Brasil:\n\n```swift\nvar banks: [BrasilAPI.Bank.BankModel] = try await BrasilAPI().banking.listBanks()\n```\n\n#### Buscar banco pelo código [`banks/v1/{code}`](https://brasilapi.com.br/docs#tag/BANKS/paths/~1banks~1v1~1%7Bcode%7D/get)\nBusca as informações de um banco a partir do código do banco:\n```swift\nvar bank: BrasilAPI.Bank.BankModel = try await BrasilAPI().banking.getBankByCode(code: String)\n```\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.Bank.BankModel\n\u003c/summary\u003e\n\n```swift\n  ispb: String\n  name: String?\n  code: Int?\n  fullName: String?\n}\n```\n\u003c/details\u003e\n\n---\n### 💱 Câmbio\n#### Buscar Moedas [`cambio/v1/moedas`](https://brasilapi.com.br/docs#tag/CAMBIO/paths/~1cambio~1v1~1moedas/get)\n\nRetorna informações de todas as moedas disponíveis para conversão:\n\n```swift\nvar coins: [BrasilAPI.Exchange.CoinModel] = try await BrasilAPI().exchange.listCoins()\n```\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.Exchange.CoinModel\n\u003c/summary\u003e\n\n```swift\n  symbol: String\n  name: String\n  type: String\n```\n\u003c/details\u003e\n\n#### Buscar Cotação [`cambio/v1/cotacao/{moeda}/{data}`](https://brasilapi.com.br/docs#tag/CAMBIO/paths/~1cambio~1v1~1cotacao~1%7Bmoeda%7D~1%7Bdata%7D/get)\n\nBusca pelo câmbio do Real com outra moeda, em uma data específica:\n\n```swift\nvar quote: BrasilAPI.Exchange.QuotationModel = try await BrasilAPI().exchange.getQuotation(coin: String, date: String)\n/// coin: \"USD\"\n/// date: YYYY-MM-DD\n```\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.Exchange.QuotationModel\n\u003c/summary\u003e\n\n```swift\n\n/// BrasilAPI.Exchange.QuotationModel\n\tcotacoes: [BrasilAPIExchangeQuotationCoinModel]\n\tmoeda: String\n\tdata: String\n\n\n/// BrasilAPI.Exchange.QuotationCoinModel\n\tparidadeCompra: Double\n\tparidadeVenda: Double\n\tcotacaoCompra: Double\n\tcotacaoVenda: Double\n\tdataHoraCotacao: String\n\ttipoBoletim: String\n```\n\u003c/details\u003e\n\n---\n### 📍 CEP\n#### Buscar CEP [`cep/v1/{code}`](https://brasilapi.com.br/docs#tag/CEP/paths/~1cep~1v1~1%7Bcep%7D/get)\nBusca por CEP com múltiplos providers de fallback\nA busca utiliza como fonte principal o OpenCep, caso não encontre o CEP é buscado em diversos outros providers de CEP.\n\n```swift\nvar zipCode: BrasilAPI.ZipCode.ZipCodeV1Model = try await BrasilAPI().zipCode.searchZipCodeV1(zipCode: String) // Apenas números\n```\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.ZipCode.ZipCodeV1Model\n\u003c/summary\u003e\n\n```swift\n  cep: String\n  state: String\n  city: String\n  neighborhood: String\n  street: String\n  service: String\n```\n\u003c/details\u003e\n\n---\n### 📍 CEP v2\n#### Buscar CEP [`cep/v2/{code}`](https://brasilapi.com.br/docs#tag/CEP-V2/paths/~1cep~1v2~1%7Bcep%7D/get)\nVersão 2 do serviço de busca por CEP com múltiplos providers de fallback.\n```swift\nvar zipCode: BrasilAPI.ZipCode.ZipCodeV2Model = try await BrasilAPI().zipCode.searchZipCodeV2(zipCode: String) // Apenas números\n```\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.ZipCode.ZipCodeV2Model\n\u003c/summary\u003e\n\n```swift\n/// BrasilAPI.ZipCode.ZipCodeV2Model\n\tcep: String\n\tstate: String\n\tcity: String\n\tneighborhood: String?\n\tstreet: String?\n\tservice: String\n\tlocation: BrasilAPIZipCodeV2LocationModel\n\n/// ZipCodeService.BrasilAPIZipCodeV2LocationModel\n\ttype: String\n\tcoordinates: BrasilAPIZipCodeV2CoordinatesModel?\n\n/// ZipCodeService.BrasilAPIZipCodeV2CoordinatesModel\n\tlongitude: String?\n\tlatitude: String?\n\n```\n\n\u003c/details\u003e\n\n---\n### 🏢 CNPJ\n\n#### Buscar CNPJ [`cnpj/v1/{cnpj}`](https://brasilapi.com.br/docs#tag/CNPJ/paths/~1cnpj~1v1~1%7Bcnpj%7D/get)\nBusca por CNPJ na API Minha Receita.\n```swift\nvar cnpj: BrasilAPI.CNPJ.CNPJModel = try await BrasilAPI().cnpj.getCNPJ(cnpj: String) // Apenas números\n```\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.CNPJ.CNPJModel\n\u003c/summary\u003e\n\n```swift\n  uf: String\n  cep: String\n  qsa: [Qsa]\n  cnpj: String\n  pais: String?\n  email: String?\n  porte: String\n  bairro: String\n  numero: String\n  dddFax: String\n  municipio: String\n  logradouro: String\n  cnaeFiscal: Int\n  codigoPais: Int?\n  complemento: String\n  codigoPorte: Int\n  razaoSocial: String\n  nomeFantasia: String\n  capitalSocial: Int\n  dddTelefone1: String\n  dddTelefone2: String\n  opcaoPeloMei: Bool?\n  descricaoPorte: String\n  codigoMunicipio: Int\n  cnaesSecundarios: [CnaesSecundario]\n  naturezaJuridica: String\n  regimeTributario: [RegimeTributario]\n  situacaoEspecial: String\n  opcaoPeloSimples: Bool?\n  situacaoCadastral: Int\n  dataOpcaoPeloMei: String?\n  dataExclusaoDoMei: String?\n  cnaeFiscalDescricao: String\n  codigoMunicipioIbge: Int\n  dataInicioAtividade: String\n  dataSituacaoEspecial: String?\n  dataOpcaoPeloSimples: String?\n  dataSituacaoCadastral: String\n  nomeCidadeNoExterior: String\n  codigoNaturezaJuridica: Int\n  dataExclusaoDoSimples: String?\n  motivoSituacaoCadastral: Int\n  enteFederativoResponsavel: String\n  identificadorMatrizFilial: Int\n  qualificacaoDoResponsavel: Int\n  descricaoSituacaoCadastral: String\n  descricaoTipoDeLogradouro: String\n  descricaoMotivoSituacaoCadastral: String\n  descricaoIdentificadorMatrizFilial: String\n\n  /// QSA\n  pais: String?\n  nomeSocio: String\n  codigoPais: Int?\n  faixaEtaria: String\n  cnpjCpfDoSocio: String\n  qualificacaoSocio: String\n  codigoFaixaEtaria: Int\n  dataEntradaSociedade: String\n  identificadorDeSocio: Int\n  cpfRepresentanteLegal: String\n  nomeRepresentanteLegal: String\n  codigoQualificacaoSocio: Int\n  qualificacaoRepresentanteLegal: String\n  codigoQualificacaoRepresentanteLegal: Int\n\n  /// RegimeTributario\n  ano: Int\n  cnpjDaSCP: String?\n  formaDeTributacao: String\n  quantidadeDeEscrituracoes: Int\n\n  /// CnaesSecundario\n  codigo: Int\n  descricao: String\n\n```\n\n\u003c/details\u003e\n\n---\n### 🏦 Corretoras\n\n#### Buscar corretoras [`/cvm/corretoras/v1`](https://brasilapi.com.br/docs#tag/Corretoras/paths/~1cvm~1corretoras~1v1/get)\n\n```swift\nvar brokers: [Broker.BrokerModel] = try await BrasilAPI().broker.getBrokers()\n```\n\n#### Buscar corretora por CNPJ [`/cvm/corretoras/v1/{cnpj}`](https://brasilapi.com.br/docs#tag/Corretoras/paths/~1cvm~1corretoras~1v1~1%7Bcnpj%7D/get)\n\n```swift\nvar broker: Broker.BrokerModel = try await BrasilAPI().broker.getBrokerByCnpj(cnpj: String)\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel Broker.BrokerModel\n\u003c/summary\u003e\n\n```swift\n  cnpj: String\n  type: String\n  nomeSocial: String\n  nomeComercial: String\n  status: String\n  email: String\n  telefone: String\n  cep: String\n  pais: String\n  uf: String\n  municipio: String\n  bairro: String\n  complemento: String\n  logradouro: String\n  dataPatrimonioLiquido: String\n  valorPatrimonioLiquido: String\n  codigoCvm: String\n  dataInicioSituacao: String\n  dataRegistro: String\n\n``` \n\u003c/details\u003e\n\n---\n### 🌡️ CPTEC\n\n#### Listar localidades [`cptec/v1/cidade`](https://brasilapi.com.br/docs#tag/CPTEC/operation/listcities(/cptec/v1/cidade))\n\nRetorna listagem com todas as cidades junto a seus respectivos códigos presentes nos serviços da CPTEC. O Código destas cidades será utilizado para os serviços de meteorologia e a ondas (previsão oceânica) fornecido pelo centro. Leve em consideração que o WebService do CPTEC as vezes é instável, então se não encontrar uma determinada cidade na listagem completa, tente buscando por parte de seu nome no endpoint de busca.\n\n```swift\nvar cities: [BrasilAPI.CPTEC.LocalModel] = try await BrasilAPI().cptec.getListCPTECLocals()\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.CPTEC.LocalModel\n\u003c/summary\u003e\n\n```swift\n  name: String\n  state: String\n  id: Int\n```\n\u003c/details\u003e\n\n#### Buscar localidade [`cptec/v1/cidade/{cityName}`](https://brasilapi.com.br/docs#tag/CPTEC/operation/searchcities(/cptec/v1/cidade/:cityName))\n\nRetorna listagem com todas as cidades correspondentes ao termo pesquisado junto a seus respectivos códigos presentes nos serviços da CPTEC. O Código destas cidades será utilizado para os serviços de meteorologia e a ondas (previsão oceânica) fornecido pelo centro.\n\n```swift\nvar cities: [BrasilAPI.CPTEC.LocalModel] = try await BrasilAPI().cptec.getCPTECLocal(localName: String)\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.CPTEC.LocalModel\n\u003c/summary\u003e\n\n```swift\n  name: String\n  state: String\n  id: Int\n```\n\u003c/details\u003e\n\n#### Condição nas capitais [`cptec/v1/clima/capital`](https://brasilapi.com.br/docs#tag/CPTEC/operation/Condi%C3%A7%C3%B5esatuaisnascapitais(/cptec/v1/clima/capital))\n\nRetorna condições meteorológicas atuais nas capitais do país, com base nas estações de solo de seu aeroporto.\n\n```swift\nvar condition: [BrasilAPI.CPTEC.ConditionModel] = try await BrasilAPI().cptec.getListCPTECCapitals()\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.CPTEC.ConditionModel\n\u003c/summary\u003e\n\n```swift\n  codeICAO: String\n  updated: String\n  pressure: String\n  visibility: String\n  windSpeed: Int\n  windDirection: Int\n  humidity: Int\n  condition: String\n  conditionDescription: String\n  temperature: Int\n```\n\u003c/details\u003e\n\n#### Condição nos aeroportos [`cptec/v1/clima/aeroporto/{icaoCode}`](https://brasilapi.com.br/docs#tag/CPTEC/operation/airportcurrentcondicao(/cptec/v1/clima/aeroporto/:icaoCode))\n\nRetorna condições meteorológicas atuais no aeroporto solicitado. Este endpoint utiliza o código ICAO (4 dígitos) do aeroporto.\n\n```swift\nvar condition: BrasilAPI.CPTEC.ConditionModel = try await BrasilAPI().cptec.getCPTECCapital(codeICAO: String)\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.CPTEC.ConditionModel\n\u003c/summary\u003e\n\n```swift\n  codeICAO: String\n  updated: String\n  pressure: String\n  visibility: String\n  windSpeed: Int\n  windDirection: Int\n  humidity: Int\n  condition: String\n  conditionDescription: String\n  temperature: Int\n```\n\u003c/details\u003e\n\n#### Previsão [`cptec/v1/clima/previsao/{cityCode}/{days}`](https://brasilapi.com.br/docs#tag/CPTEC/operation/climapredictionwithoutdays(/cptec/v1/clima/previsao/:cityCode/:days))\n\nRetorna a previsão meteorológica para a cidade informada para um período de 1 até 6 dias. Devido a inconsistências encontradas nos retornos da CPTEC nossa API só consegue retornar com precisão o período máximo de 6 dias.\n\n```swift\nvar forecast: BrasilAPI.CPTEC.ForecastModel = try await BrasilAPI().cptec.getCPTECLocalForecast(cityCode: Int, days: ForecastAvailableDays)\n\n// ForecastAvailableDays = Enum de 1 a 6 diuas\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.CPTEC.ForecastModel\n\u003c/summary\u003e\n\n```swift\n  city: String\n  state: String\n  updated: String\n  weather: [CPTECService.BrasilAPICPTECWeatherModel]\n\n  // CPTECService.BrasilAPICPTECWeatherModel\n  date: String\n  condition: String\n  conditionDescription: String\n  min: Int\n  max: Int\n  indexUV: Int\n```\n\u003c/details\u003e\n\n#### Previsão oceanica [`cptec/v1/ondas/{cityCode}/{days}`](https://brasilapi.com.br/docs#tag/CPTEC/operation/ondaspredictionupto6days(/cptec/v1/ondas/:cityCode/:days))\n\nRetorna a previsão oceânica para a cidade informada para um período de, até, 6 dias.\n\n```swift\nvar forecast: BrasilAPI.CPTEC.OceanicForecastModel = try await BrasilAPI().cptec.getCPTECOceanicForecast(cityCode: Int, days: ForecastAvailableDays)\n\n// ForecastAvailableDays = Enum de 1 a 6 dias\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.CPTEC.OceanicForecastModel\n\u003c/summary\u003e\n\n```swift\n  city: String\n  state: String\n  updated: String\n  waves: [BrasilAPICPTECWavesModel]\n\n  // BrasilAPICPTECWavesModel\n  date: String\n  data: [CPTECService.BrasilAPICPTECWavesDataModel]\n\n  // CPTECService.BrasilAPICPTECWavesDataModel\n  windSpeed: Double\n  windDirection: String\n  windDirectionDescription: String?\n  waveHeight: Double\n  waveDirection: String\n  waveDirectionDescription: String?\n  agitation: String\n  hour: String\n```\n\u003c/details\u003e\n\n---\n### 📱 DDD\n\n#### Listar cidades por DDD [`ddd/v1/{ddd}`](https://brasilapi.com.br/docs#tag/DDD/paths/~1ddd~1v1~1%7Bddd%7D/get)\nRetorna estado e lista de cidades por DDD\n\n```swift\nvar cities: BrasilAPI.DDD.CitiesModel = try await BrasilAPI().ddd.getCitiesByDDD(ddd: String)\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.DDD.CitiesModel\n\u003c/summary\u003e\n\n```swift\n  cities: [String]\n  state: String\n```\n\u003c/details\u003e\n\n---\n### 🎉 Feriados Nacionais\n\n#### Listar feriados nacionais [`feriados/v1/{ano}`](https://brasilapi.com.br/docs#tag/Feriados-Nacionais/paths/~1feriados~1v1~1%7Bano%7D/get)\n\nCalcula os feriados móveis baseados na Páscoa e adiciona os feriados fixos\n\n```swift\nvar holidays: [BrasilAPI.Holidays.BrasilAPIHolidaysModel] = try await BrasilAPI().holidays.getNationalHolidays(year: 2025)\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.Holidays.BrasilAPIHolidaysModel\n\u003c/summary\u003e\n\n```swift\n  date: String\n  name: String\n  type: String\n```\n\u003c/details\u003e\n\n---\n### 🚗 FIPE\n\n#### Listar marcas de veículos [`fipe/marcas/v1/{tipoVeiculo}`](https://brasilapi.com.br/docs#tag/FIPE/paths/~1fipe~1marcas~1v1~1%7BtipoVeiculo%7D/get)\n\nLista as marcas de veículos referente ao tipo de veículo\n\n```swift\nvar brands: [BrasilAPI.FIPE.VehiclesTypeModel] = try await BrasilAPI().fipe.getBrandByVehicleType(carType: FIPEService.VehicleTypeEnum)\n```\n\nFIPEService.VehicleTypeEnum: `car`, `truck` e `motorcycle`\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.FIPE.VehiclesTypeModel\n\u003c/summary\u003e\n\n```swift\n  name: String\n  value: String\n```\n\u003c/details\u003e\n\n\n#### Consultar preço do veículo [`fipe/preco/v1/{codigoFipe}`](https://brasilapi.com.br/docs#tag/FIPE/paths/~1fipe~1preco~1v1~1%7BcodigoFipe%7D/get)\nConsulta o preço do veículo segundo a tabela fipe.\n\n```swift\nvar prices: [BrasilAPI.FIPE.VehiclePriceModel] = try await BrasilAPI().fipe.getVehiclePrice(codeFIPE: String)\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.FIPE.VehiclePriceModel\n\u003c/summary\u003e\n\n```swift\n  name: String\n  value: String\n```\n\u003c/details\u003e\n\n#### Listar tabelas de referência [`fipe/tabelas/v1`](https://brasilapi.com.br/docs#tag/FIPE/paths/~1fipe~1tabelas~1v1/get)\n\n```swift\nvar tables: [BrasilAPI.FIPE.FIPETableModel] = try await BrasilAPI().fipe.getReferenceTables()\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.FIPE.FIPETableModel\n\u003c/summary\u003e\n\n```swift\n  code: Int\n  month: String\n```\n\u003c/details\u003e\n\n#### Listar veículos por marca e tipo [`fipe/veiculos/v1/{tipoVeiculo}/{codigoMarca}`](https://brasilapi.com.br/docs#tag/FIPE/paths/~1fipe~1veiculos~1v1~1%7BtipoVeiculo%7D~1%7BcodigoMarca%7D/get)\n\n\n```swift\nvar tables: [BrasilAPI.FIPE.VehicleModel] = try await BrasilAPI().fipe.listVehicles(type: FIPEService.VehicleTypeEnum, brandCode: String)\n```\n\nFIPEService.VehicleTypeEnum: `car`, `truck` e `motorcycle`\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.FIPE.VehicleModel\n\u003c/summary\u003e\n\n```swift\n  model: String\n```\n\u003c/details\u003e\n\n---\n### 🔎 IBGE\n\n#### Listar cidades [`ibge/municipios/v1/{siglaUF}`](https://brasilapi.com.br/docs#tag/IBGE/paths/~1ibge~1municipios~1v1~1{siglaUF}?providers=dados-abertos-br,gov,wikipedia/get)\nRetorna os municípios da unidade federativa\n\n```swift\nvar cities: [BrasilAPI.IBGE.CityModel] = try await BrasilAPI().ibge.getIBGECitiesByUF(uf: BrasilState)\n// BrasilState é um enum com todos os estados brasileiros\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.IBGE.CityModel\n\u003c/summary\u003e\n\n```swift\n  name: String\n  code: String\n```\n\u003c/details\u003e\n\n#### Listar estados [`ibge/uf/v1`](https://brasilapi.com.br/docs#tag/IBGE/paths/~1ibge~1uf~1v1/get)\nRetorna informações de todos estados do Brasil\n\n```swift\nvar states: [BrasilAPI.IBGE.StateModel] = try await BrasilAPI().ibge.getIBGEStates()\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.IBGE.StateModel\n\u003c/summary\u003e\n\n```swift\n  id: Int\n  acronym: String\n  name: String\n  region: BrasilAPIIBGEStateRegionModel\n\n  // BrasilAPIIBGEStateRegionModel\n  id: Int\n  acronym: String\n  name: String\n```\n\u003c/details\u003e\n\n#### Listar estado [`ibge/uf/v1/{code}`](https://brasilapi.com.br/docs#tag/IBGE/paths/~1ibge~1uf~1v1~1%7Bcode%7D/get)\nBusca as informações de um estado a partir da sigla ou código\n\n```swift\nvar state: BrasilAPI.IBGE.StateModel = try await BrasilAPI().ibge.getIBGEStateByCode(code: BrasilState)\n// BrasilState é um enum com todos os estados brasileiros\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.IBGE.StateModel\n\u003c/summary\u003e\n\n```swift\n  id: Int\n  acronym: String\n  name: String\n  region: BrasilAPIIBGEStateRegionModel\n\n  // BrasilAPIIBGEStateRegionModel\n  id: Int\n  acronym: String\n  name: String\n```\n\u003c/details\u003e\n\n---\n### 📖 ISBN\n#### Buscar livro [`isbn/v1/{isbn}`](https://brasilapi.com.br/docs#tag/ISBN/paths/~1isbn~1v1~1%7Bisbn%7D/get)\nInformações sobre o livro a partir do ISBN\n\n```swift\nlet book: BrasilAPI.ISBN.BookModel = try await BrasilAPI().isbn.getBook(isbn: String)\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.ISBN.BookModel\n\u003c/summary\u003e\n\n```swift\n    isbn: String\n    title: String\n    subtitle: String?\n    authors: [String]\n    publisher: String\n    synopsis: String\n    dimensions: DimensionsModel\n    year: Int\n    format: String\n    page_count: Int\n    subjects: [String]\n    location: String\n    retail_price: String?\n    cover_url: String?\n    provider: String\n    \n    // DimensionsModel\n    width: Double\n    height: Double\n    unit: String\n```\n\u003c/details\u003e\n\n---\n### 🏢 NCM\n\n#### Buscar todos os NCMs [`ncm/v1`](https://brasilapi.com.br/docs#tag/NCM/paths/~1ncm~1v1/get)\n\n```swift\nvar ncms: [BrasilAPI.NCM.NCMModel] = try await BrasilAPI().ncm.getAllNCM()\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.NCM.NCMModel\n\u003c/summary\u003e\n\n```swift\ncodigo: String\ndescricao: String\ndataInicio: String\ndataFim: String\ntipoAto: String\nnumeroAto: String\nanoAto: String\n```\n\u003c/details\u003e\n\n#### Buscar NCM [`ncm/v1/{code}`](https://brasilapi.com.br/docs#tag/NCM/paths/~1ncm~1v1~1%7Bcode%7D/get)\n\n```swift\nlet ncm: BrasilAPI.NCM.NCMModel = try await BrasilAPI().ncm.getNCMByCode(code: String)\n```\n\n#### Pesquisar NCM [`ncm/v1?search={term}`](https://brasilapi.com.br/docs#tag/NCM/paths/~1ncm~1v1?search=%7Bcode%7D/get)\n\n```swift\nlet ncm: [BrasilAPI.NCM.NCMModel] = try await BrasilAPI().ncm.searchNCM(term: String)\n/// Termo pode ser o número ou descrição, conforme documentação da BrasilAPI\n```\n\n---\n### 💰 PIX\n\n#### Buscar participantes [`pix/v1/participants`](https://brasilapi.com.br/docs#tag/PIX/paths/~1pix~1v1~1participants/get)\n\nRetorna informações de todos os participantes do PIX no dia atual ou anterior\n\n```swift\nvar participants: [BrasilAPI.PIX.PIXParticipoantsModel] = try await BrasilAPI().pix.getPIXPartcipants()\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.PIX.PIXParticipoantsModel\n\u003c/summary\u003e\n\n```swift\nispb: String\nname: String\nnameReduzido: String\nmodalidadeParticipacao: String\ntipoParticipacao: String\ninicioOperacao: String\n```\n\u003c/details\u003e\n\n---\n### 🌎 Registro BR\n\n#### Buscar status do dominio [`registrobr/v1/{domain}`](https://brasilapi.com.br/docs#tag/REGISTRO-BR/paths/~1registrobr~1v1~1%7Bdomain%7D/get)\n\nAvalia um dominio no registro.br\n\n```swift\nlet status: BrasilAPI.DomainBR.DomainBRStatusModel = try await BrasilAPI().domainBR.getDomainBRStatus(domain: String)\n```\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.DomainBR.DomainBRStatusModel\n\u003c/summary\u003e\n\n```swift\nstatusCode: Domain.DomainBR.Enums.DomainBRStatusCodeEnum\nstatus: Domain.DomainBR.Enums.DomainBRStatusEnum\nfqdn: String\nfqdnace: String?\nexempt: Bool?\nhosts: [String]?\npublicationStatus: String?\nexpiresAt: String?\nsuggestions: [String]?\nreasons: String?\n\n// BrasilAPI.DomainBR.DomainBRStatusEnum\navailable = \"AVAILABLE\"\navailableWithTicket = \"AVAILABLE_WITH_TICKET\"\nregistered = \"REGISTERED\"\nunavailable = \"UNAVAILABLE\"\ninvalidQuery = \"INVALID_QUERY\"\nreleaseWaiting = \"RELEASE_WAITING\"\nreleaseInProgress = \"RELEASE_IN_PROGRESS\"\nreleaseInProgressWithTickets = \"RELEASE_IN_PROGRESS_WITH_TICKETS\"\nerror = \"ERROR\"\ndomainProcessRelease = \"DOMAIN_PROCESS_RELEASE\"\nunknow = \"UNKNOW\"\n\n// BrasilAPI.DomainBR.DomainBRStatusCodeEnum\navailable = 0\navailableWithTicket = 1\nregistered = 2\nunavailable = 3\ninvalidQuery = 4\nreleaseWaiting = 5\nreleaseInProgress = 6\nreleaseInProgressWithTickets = 7\nerror = 8\ndomainProcessRelease = 9\nunknow = 10\n```\n\u003c/details\u003e\n\n---\n### 💸 Taxas\n\n#### Listar todas as taxas [`taxas/v1`](https://brasilapi.com.br/docs#tag/TAXAS/paths/~1taxas~1v1/get)\n\nRetorna as taxas de juros e alguns índices oficiais do Brasil\n\n```swift\nvar taxas: [BrasilAPI.Taxas.TaxModel] = try await BrasilAPI()tax.getTaxes()\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.Taxas.TaxModel\n\u003c/summary\u003e\n\n```swift\nname: String\nvalue: Double\n```\n\u003c/details\u003e\n\n\n#### Buscar taxa [`taxas/v1/{sigla}`](https://brasilapi.com.br/docs#tag/TAXAS/paths/~1taxas~1v1~1%7Bsigla%7D/get)\n\nBusca as informações de uma taxa a partir do seu nome/sigla\n\n```swift\nvar tax: BrasilAPI.Taxas.TaxModel = try await BrasilAPI().tax.getTax(taxId: \"CDI\")\n```\n\n---\n\n## 📄 Licença\n\n---\n\nEste projeto é licenciado sob a [MIT License](LICENSE).\n\n## 🤝 Contribuindo\n\nContribuições são bem-vindas! Sinta-se à vontade para abrir issues e pull requests.\n\n---\nCreated with ❤️ by [Lucas Hubert](https://github.com/LucasJorgeHubert).\n\n# BrasilAPI-Swift English\n\n[![Swift Package Manager](https://img.shields.io/badge/SPM-Compatible-brightgreen.svg)](https://swift.org/package-manager/)\n\nA Swift SDK to access [BrasilAPI](https://brasilapi.com.br) services in a simple and integrated way.\n\n## 📖 Table of Contents\n\n- [📦 Installation](#-installation)\n- [🚨 Important](#-important)\n- [🔧 Implemented Features](#-implemented-features)\n  - [🏦 Banks](#-banks)\n    - [List Banks](#list-banks-banksv1)\n    - [Get Bank by Code](#get-bank-by-code-banksv1code)\n  - [💱 Exchange](#-exchange)\n    - [Get Currencies](#get-currencies-cambiov1moedas)\n    - [Get Exchange Rate](#get-exchange-rate-cambiov1cotaçãomoedadata)\n  - [📍 ZIP Code](#-zip-code)\n    - [Get ZIP Code](#get-zip-code-cepv1code)\n  - [📍 ZIP Code v2](#-zip-code-v2)\n    - [Get ZIP Code](#get-zip-code-cepv2code)\n  - [🏢 CNPJ](#-cnpj)\n    - [Get CNPJ](#get-cnpj-cnpjv1cnpj)\n  - [🏦 Brokers](#-brokers)\n    - [Get Brokers](#get-brokers-cvmcorretorasv1)\n    - [Get Broker by CNPJ](#get-broker-by-cnpj-cvmcorretorasv1cnpj)\n  - [🌡️ CPTEC](#-cptec)\n    - [List Locations](#list-locations)\n    - [Search Location](#search-location)\n    - [Conditions in Capitals](#conditions-in-capitals)\n    - [Conditions at Airports](#conditions-at-airports)\n    - [Weather Forecast](#forecast)\n    - [Ocean Forecast](#ocean-forecast)\n  - [📱 DDD](#-ddd)\n    - [List Cities by DDD](#list-cities-by-ddd)\n  - [🎉 National Holidays](#-national-holidays)\n    - [List National Holidays](#list-national-holidays)\n  - [🚗 FIPE](#-fipe)\n    - [List Vehicle Brands](#list-vehicle-brands)\n    - [Get Vehicle Price](#get-vehicle-price)\n    - [List Reference Tables](#list-reference-tables)\n    - [List Vehicles by Brand and Type](#list-vehicles-by-brand-and-type)\n  - [🔎 IBGE](#-ibge)\n    - [List cities](#list-cities-ibge-municipios-v1-siglauf)\n    - [List states](#list-states-ibgeufv1)\n    - [Get state by code](#get-state-by-code-ibgeufv1code)\n  - [📖 ISBN](#-isbn)\n    - [Search book](#search-book-isbnv1isbn)\n  - [🏢 NCM](#-ncm)\n    - [Get all NCMs](#get-all-ncms-ncmv1)\n    - [Get NCM](#get-ncm-ncmv1code)\n    - [Search NCM](#search-ncm-ncmv1searchterm)\n  - [💰 PIX](#-pix)\n    - [Search participants](#search-participants-pixv1participants)\n  - [🌐 Domain BR](#-domain-br)\n    - [Get domain status](#get-domain-status-registrobrv1domain)\n  - [💸 Taxes](#-taxes)\n    - [Get taxes](#get-all-taxas-taxasv1)\n    - [Get tax](#get-tax-taxasv1sigla)\n- [📄 License](#-license)\n- [🤝 Contributing](#-contributing)\n- [🌎 Versão em Português](#-versao-em-portugues)\n\n## 📦 Installation\n\nThe SDK is available via [Swift Package Manager (SPM)](https://swift.org/package-manager/). To add it to your project:\n\n1. In Xcode, go to `File \u003e Add Packages`\n2. Enter the repository URL: `https://github.com/LucasJorgeHubert/BrasilAPI-Swift`\n3. Choose the desired version and add the package to your project\n\nOr, if you prefer, manually add it to `Package.swift`:\n\n```swift\ndependencies: [\n    .package(url: \"https://github.com/LucasJorgeHubert/BrasilAPI-Swift\", from: \"1.0.0\")\n]\n```\n\nRemember to import it in your code:\n```swift\nimport BrasilAPI\n```\n\n## 🚨 Important\nThe SPM was created to facilitate integration with [BrasilAPI](https://brasilapi.com.br), so all returned models are exactly the same as those in the API response. When implementing, you can rely on the API response to know what will be returned in the model.\n\n## 🔧 Implemented Features\n\n### 🏦 Banks\n#### List Banks [`banks/v1`](https://brasilapi.com.br/docs#tag/BANKS/paths/~1banks~1v1/get)\nReturns information about all banks in Brazil:\n```swift\nvar banks: [BrasilAPI.Bank.BankModel] = try await BrasilAPI().banking.listBanks()\n```\n---\n#### Get Bank by Code [`banks/v1/{code}`](https://brasilapi.com.br/docs#tag/BANKS/paths/~1banks~1v1~1%7Bcode%7D/get)\nFetches information about a bank using its code:\n```swift\nvar bank: BrasilAPI.Bank.BankModel = try await BrasilAPI().banking.getBankByCode(code: String)\n```\n---\n### 💱 Exchange\n#### Get Currencies [`cambio/v1/moedas`](https://brasilapi.com.br/docs#tag/CAMBIO/paths/~1cambio~1v1~1moedas/get)\nReturns information about all available currencies for conversion:\n```swift\nvar coins: [BrasilAPI.Exchange.CoinModel] = try await BrasilAPI().exchange.listCoins()\n```\n---\n#### Get Exchange Rate [`cambio/v1/cotacao/{moeda}/{data}`](https://brasilapi.com.br/docs#tag/CAMBIO/paths/~1cambio~1v1~1cotacao~1%7Bmoeda%7D~1%7Bdata%7D/get)\nFetches exchange rates for BRL with another currency on a specific date:\n```swift\nvar quote: BrasilAPI.Exchange.QuotationModel = try await BrasilAPI().exchange.getQuotation(coin: String, date: String)\n```\n---\n### 📍 ZIP Code\n#### Get ZIP Code [`cep/v1/{code}`](https://brasilapi.com.br/docs#tag/CEP/paths/~1cep~1v1~1%7Bcep%7D/get)\nFetches ZIP code information using multiple fallback providers.\n```swift\nvar zipCode: BrasilAPI.ZipCode.ZipCodeV1Model = try await BrasilAPI().zipCode.searchZipCodeV1(zipCode: String)\n```\n---\n### 📍 ZIP Code v2\n#### Get ZIP Code [`cep/v2/{code}`](https://brasilapi.com.br/docs#tag/CEP-V2/paths/~1cep~1v2~1%7Bcep%7D/get)\nVersion 2 of the ZIP code lookup service with multiple fallback providers.\n```swift\nvar zipCode: ZipCodeV2Model = try await BrasilAPI().zipCode.searchZipCodeV2(zipCode: String)\n```\n---\n### 🏢 CNPJ\n#### Get CNPJ [`cnpj/v1/{cnpj}`](https://brasilapi.com.br/docs#tag/CNPJ/paths/~1cnpj~1v1~1%7Bcnpj%7D/get)\nFetches company information using CNPJ from the Minha Receita API.\n```swift\nvar cnpj: BrasilAPI.CNPJ.CNPJModel = try await BrasilAPI().cnpj.getCNPJ(cnpj: String)\n```\n---\n### 🏦 Brokers\n#### Get Brokers [`/cvm/corretoras/v1`](https://brasilapi.com.br/docs#tag/Corretoras/paths/~1cvm~1corretoras~1v1/get)\n```swift\nvar brokers: [Broker.BrokerModel] = try await BrasilAPI().broker.getBrokers()\n```\n\n#### Get Broker by CNPJ [`/cvm/corretoras/v1/{cnpj}`](https://brasilapi.com.br/docs#tag/Corretoras/paths/~1cvm~1corretoras~1v1~1%7Bcnpj%7D/get)\n```swift\nvar broker: Broker.BrokerModel = try await BrasilAPI().broker.getBrokerByCnpj(cnpj: String)\n```\n---\n### 🌡️ CPTEC\n\n#### List Locations [`cptec/v1/cidade`](https://brasilapi.com.br/docs#tag/CPTEC/operation/listcities(/cptec/v1/cidade))\n\nReturns a list of all cities along with their respective codes available in CPTEC services. These city codes will be used for meteorology and ocean wave (ocean forecast) services provided by the center. Keep in mind that CPTEC's WebService is sometimes unstable, so if you don't find a specific city in the complete list, try searching by part of its name in the search endpoint.\n\n```swift\nvar cities: [BrasilAPI.CPTEC.LocalModel] = try await BrasilAPI().cptec.getListCPTECLocals()\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.CPTEC.LocalModel\n\u003c/summary\u003e\n\n```swift\n  name: String\n  state: String\n  id: Int\n```\n\u003c/details\u003e\n\n#### Search Location [`cptec/v1/cidade/{cityName}`](https://brasilapi.com.br/docs#tag/CPTEC/operation/searchcities(/cptec/v1/cidade/:cityName))\n\nReturns a list of all cities matching the searched term along with their respective codes available in CPTEC services. These city codes will be used for meteorology and ocean wave (ocean forecast) services provided by the center.\n\n```swift\nvar cities: [BrasilAPI.CPTEC.LocalModel] = try await BrasilAPI().cptec.getCPTECLocal(localName: String)\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.CPTEC.LocalModel\n\u003c/summary\u003e\n\n```swift\n  name: String\n  state: String\n  id: Int\n```\n\u003c/details\u003e\n\n#### Conditions in Capitals [`cptec/v1/clima/capital`](https://brasilapi.com.br/docs#tag/CPTEC/operation/Condi%C3%A7%C3%B5esatuaisnascapitais(/cptec/v1/clima/capital))\n\nReturns current weather conditions in the country's capitals, based on airport ground stations.\n\n```swift\nvar condition: [BrasilAPI.CPTEC.ConditionModel] = try await BrasilAPI().cptec.getListCPTECCapitals()\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.CPTEC.ConditionModel\n\u003c/summary\u003e\n\n```swift\n  codeICAO: String\n  updated: String\n  pressure: String\n  visibility: String\n  windSpeed: Int\n  windDirection: Int\n  humidity: Int\n  condition: String\n  conditionDescription: String\n  temperature: Int\n```\n\u003c/details\u003e\n\n#### Conditions at Airports [`cptec/v1/clima/aeroporto/{icaoCode}`](https://brasilapi.com.br/docs#tag/CPTEC/operation/airportcurrentcondicao(/cptec/v1/clima/aeroporto/:icaoCode))\n\nReturns current weather conditions at the requested airport. This endpoint uses the ICAO code (4-digit) of the airport.\n\n```swift\nvar condition: BrasilAPI.CPTEC.ConditionModel = try await BrasilAPI().cptec.getCPTECCapital(codeICAO: String)\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.CPTEC.ConditionModel\n\u003c/summary\u003e\n\n```swift\n  codeICAO: String\n  updated: String\n  pressure: String\n  visibility: String\n  windSpeed: Int\n  windDirection: Int\n  humidity: Int\n  condition: String\n  conditionDescription: String\n  temperature: Int\n```\n\u003c/details\u003e\n\n#### Forecast [`cptec/v1/clima/previsao/{cityCode}/{days}`](https://brasilapi.com.br/docs#tag/CPTEC/operation/climapredictionwithoutdays(/cptec/v1/clima/previsao/:cityCode/:days))\n\nReturns the weather forecast for the specified city for a period of 1 to 6 days. Due to inconsistencies found in CPTEC's responses, our API can only reliably return a maximum period of 6 days.\n\n```swift\nvar forecast: BrasilAPI.CPTEC.ForecastModel = try await BrasilAPI().cptec.getCPTECLocalForecast(cityCode: Int, days: ForecastAvailableDays)\n\n// ForecastAvailableDays = Enum from 1 to 6 days\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.CPTEC.ForecastModel\n\u003c/summary\u003e\n\n```swift\n  city: String\n  state: String\n  updated: String\n  weather: [CPTECService.BrasilAPICPTECWeatherModel]\n\n  // CPTECService.BrasilAPICPTECWeatherModel\n  date: String\n  condition: String\n  conditionDescription: String\n  min: Int\n  max: Int\n  indexUV: Int\n```\n\u003c/details\u003e\n\n#### Ocean Forecast [`cptec/v1/ondas/{cityCode}/{days}`](https://brasilapi.com.br/docs#tag/CPTEC/operation/ondaspredictionupto6days(/cptec/v1/ondas/:cityCode/:days))\n\nReturns the ocean forecast for the specified city for a period of up to 6 days.\n\n```swift\nvar forecast: BrasilAPI.CPTEC.OceanicForecastModel = try await BrasilAPI().cptec.getCPTECOceanicForecast(cityCode: Int, days: ForecastAvailableDays)\n\n// ForecastAvailableDays = Enum from 1 to 6 days\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.CPTEC.OceanicForecastModel\n\u003c/summary\u003e\n\n```swift\n  city: String\n  state: String\n  updated: String\n  waves: [BrasilAPICPTECWavesModel]\n\n  // BrasilAPICPTECWavesModel\n  date: String\n  data: [CPTECService.BrasilAPICPTECWavesDataModel]\n\n  // CPTECService.BrasilAPICPTECWavesDataModel\n  windSpeed: Double\n  windDirection: String\n  windDirectionDescription: String?\n  waveHeight: Double\n  waveDirection: String\n  waveDirectionDescription: String?\n  agitation: String\n  hour: String\n```\n\u003c/details\u003e\n\n---\n### 📱 DDD\n\n#### List Cities by DDD [`ddd/v1/{ddd}`](https://brasilapi.com.br/docs#tag/DDD/paths/~1ddd~1v1~1%7Bddd%7D/get)\nReturns state and list of cities by DDD (area code).\n\n```swift\nvar cities: BrasilAPI.DDD.CitiesModel = try await BrasilAPI().ddd.getCitiesByDDD(ddd: String)\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.DDD.CitiesModel\n\u003c/summary\u003e\n\n```swift\n  cities: [String]\n  state: String\n```\n\u003c/details\u003e\n\n---\n### 🎉 National Holidays\n\n#### List National Holidays [`feriados/v1/{year}`](https://brasilapi.com.br/docs#tag/Feriados-Nacionais/paths/~1feriados~1v1~1%7Bano%7D/get)\n\nCalculates the movable holidays based on Easter and adds the fixed holidays.\n\n```swift\nvar holidays: [BrasilAPI.Holidays.BrasilAPIHolidaysModel] = try await BrasilAPI().holidays.getNationalHolidays(year: 2025)\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.Holidays.BrasilAPIHolidaysModel\n\u003c/summary\u003e\n\n```swift\n  date: String\n  name: String\n  type: String\n```\n\u003c/details\u003e\n\n---\n### 🚗 FIPE\n\n#### List Vehicle Brands [`fipe/marcas/v1/{vehicleType}`](https://brasilapi.com.br/docs#tag/FIPE/paths/~1fipe~1marcas~1v1~1%7BtipoVeiculo%7D/get)\n\nLists the vehicle brands for the specified vehicle type.\n\n```swift\nvar brands: [BrasilAPI.FIPE.VehiclesTypeModel] = try await BrasilAPI().fipe.getBrandByVehicleType(carType: FIPEService.VehicleTypeEnum)\n```\n\nFIPEService.VehicleTypeEnum: `car`, `truck`, and `motorcycle`\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.FIPE.VehiclesTypeModel\n\u003c/summary\u003e\n\n```swift\n  name: String\n  value: String\n```\n\u003c/details\u003e\n\n#### Get Vehicle Price [`fipe/preco/v1/{fipeCode}`](https://brasilapi.com.br/docs#tag/FIPE/paths/~1fipe~1preco~1v1~1%7BcodigoFipe%7D/get)\n\nRetrieves the vehicle price according to the FIPE table.\n\n```swift\nvar prices: [BrasilAPI.FIPE.VehiclePriceModel] = try await BrasilAPI().fipe.getVehiclePrice(codeFIPE: String)\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.FIPE.VehiclePriceModel\n\u003c/summary\u003e\n\n```swift\n  name: String\n  value: String\n```\n\u003c/details\u003e\n\n#### List Reference Tables [`fipe/tabelas/v1`](https://brasilapi.com.br/docs#tag/FIPE/paths/~1fipe~1tabelas~1v1/get)\n\n```swift\nvar tables: [BrasilAPI.FIPE.FIPETableModel] = try await BrasilAPI().fipe.getReferenceTables()\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.FIPE.FIPETableModel\n\u003c/summary\u003e\n\n```swift\n  code: Int\n  month: String\n```\n\u003c/details\u003e\n\n#### List Vehicles by Brand and Type [`fipe/veiculos/v1/{vehicleType}/{brandCode}`](https://brasilapi.com.br/docs#tag/FIPE/paths/~1fipe~1veiculos~1v1~1%7BtipoVeiculo%7D~1%7BcodigoMarca%7D/get)\n\n```swift\nvar tables: [BrasilAPI.FIPE.VehicleModel] = try await BrasilAPI().fipe.listVehicles(type: FIPEService.VehicleTypeEnum, brandCode: String)\n```\n\nFIPEService.VehicleTypeEnum: `car`, `truck`, and `motorcycle`\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.FIPE.VehicleModel\n\u003c/summary\u003e\n\n```swift\n  model: String\n```\n\u003c/details\u003e\n\n---\n### 🔎 IBGE\n\n#### List cities [`ibge/municipios/v1/{siglaUF}`](https://brasilapi.com.br/docs#tag/IBGE/paths/~1ibge~1municipios~1v1~1{siglaUF}?providers=dados-abertos-br,gov,wikipedia/get)\nReturns the cities of the federative unit\n\n```swift\nvar cities: [BrasilAPI.IBGE.CityModel] = try await BrasilAPI().ibge.getIBGECitiesByUF(uf: BrasilState)\n// BrasilState is an enum with all Brazilian states\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.IBGE.CityModel\n\u003c/summary\u003e\n\n```swift\n  name: String\n  code: String\n```\n\u003c/details\u003e\n\n#### List states [`ibge/uf/v1`](https://brasilapi.com.br/docs#tag/IBGE/paths/~1ibge~1uf~1v1/get)\nReturns information about all Brazilian states\n\n```swift\nvar states: [BrasilAPI.IBGE.StateModel] = try await BrasilAPI().ibge.getIBGEStates()\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.IBGE.StateModel\n\u003c/summary\u003e\n\n```swift\n  id: Int\n  acronym: String\n  name: String\n  region: BrasilAPIIBGEStateRegionModel\n\n  // BrasilAPIIBGEStateRegionModel\n  id: Int\n  acronym: String\n  name: String\n```\n\u003c/details\u003e\n\n#### Get state by code [`ibge/uf/v1/{code}`](https://brasilapi.com.br/docs#tag/IBGE/paths/~1ibge~1uf~1v1~1%7Bcode%7D/get)\nFetches information about a state by acronym or code\n\n```swift\nvar state: BrasilAPI.IBGE.StateModel = try await BrasilAPI().ibge.getIBGEStateByCode(code: BrasilState)\n// BrasilState is an enum with all Brazilian states\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.IBGE.StateModel\n\u003c/summary\u003e\n\n```swift\n  id: Int\n  acronym: String\n  name: String\n  region: BrasilAPIIBGEStateRegionModel\n\n  // BrasilAPIIBGEStateRegionModel\n  id: Int\n  acronym: String\n  name: String\n```\n\u003c/details\u003e\n\n---\n\n### 📖 ISBN\n#### Search book [`isbn/v1/{isbn}`](https://brasilapi.com.br/docs#tag/ISBN/paths/~1isbn~1v1~1%7Bisbn%7D/get)\nGet book information from ISBN number code\n\n```swift\nlet book: BrasilAPI.ISBN.BookModel = try await brasilAPI.isbn.getBook(isbn: String)\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.ISBN.BookModel\n\u003c/summary\u003e\n\n```swift\n    isbn: String\n    title: String\n    subtitle: String?\n    authors: [String]\n    publisher: String\n    synopsis: String\n    dimensions: DimensionsModel\n    year: Int\n    format: String\n    page_count: Int\n    subjects: [String]\n    location: String\n    retail_price: String?\n    cover_url: String?\n    provider: String\n    \n    // DimensionsModel\n    width: Double\n    height: Double\n    unit: String\n```\n\u003c/details\u003e\n\n---\n\n### 🏢 NCM\n\n#### Get all NCMs [`ncm/v1`](https://brasilapi.com.br/docs#tag/NCM/paths/~1ncm~1v1/get)\n\n```swift\nvar ncms: [BrasilAPI.NCM.NCMModel] = try await BrasilAPI().ncm.getAllNCM()\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.NCM.NCMModel\n\u003c/summary\u003e\n\n```swift\ncodigo: String\ndescricao: String\ndataInicio: String\ndataFim: String\ntipoAto: String\nnumeroAto: String\nanoAto: String\n```\n\u003c/details\u003e\n\n#### Get NCM [`ncm/v1/{code}`](https://brasilapi.com.br/docs#tag/NCM/paths/~1ncm~1v1~1%7Bcode%7D/get)\n\n```swift\nlet ncm: BrasilAPI.NCM.NCMModel = try await brasilAPI.ncm.getNCMByCode(code: String)\n```\n\n#### Search NCM [`ncm/v1?search={term}`](https://brasilapi.com.br/docs#tag/NCM/paths/~1ncm~1v1?search=%7Bcode%7D/get)\n\n```swift\nlet ncm: [BrasilAPI.NCM.NCMModel] = try await brasilAPI.ncm.searchNCM(term: String)\n/// Term can be a code or a description\n```\n\n---\n### 💰 PIX\n\n#### Search participants [`pix/v1/participants`](https://brasilapi.com.br/docs#tag/PIX/paths/~1pix~1v1~1participants/get)\n\nReturn information about all participants of the PIX on the current or previous day\n\n```swift\nvar participants: [BrasilAPI.PIX.PIXParticipoantsModel] = try await BrasilAPI().pix.getPIXPartcipants()\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.PIX.PIXParticipoantsModel\n\u003c/summary\u003e\n\n```swift\nispb: String\nname: String\nnameReduzido: String\nmodalidadeParticipacao: String\ntipoParticipacao: String\ninicioOperacao: String\n```\n\u003c/details\u003e\n\n--- \n### 🌎 Domain BR\n\n#### Get domain status [`registrobr/v1/{domain}`](https://brasilapi.com.br/docs#tag/REGISTRO-BR/paths/~1registrobr~1v1~1%7Bdomain%7D/get)\n\nAvalia um dominio no registro.br\n\n```swift\nlet status: BrasilAPI.DomainBR.DomainBRStatusModel = try await BrasilAPI().domainBR.getDomainBRStatus(domain: String)\n```\n---\n### 💸 Taxes\n\n#### Get taxes [`taxas/v1`](https://brasilapi.com.br/docs#tag/TAXAS/paths/~1taxas~1v1/get)\n\nRetorna as taxas de juros e alguns índices oficiais do Brasil\n\n```swift\nvar taxas: [BrasilAPI.Taxas.TaxModel] = try await BrasilAPI()tax.getTaxes()\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nModel BrasilAPI.Taxas.TaxModel\n\u003c/summary\u003e\n\n```swift\nname: String\nvalue: Double\n```\n\u003c/details\u003e\n\n\n#### Get tax [`taxas/v1/{sigla}`](https://brasilapi.com.br/docs#tag/TAXAS/paths/~1taxas~1v1~1%7Bsigla%7D/get)\n\nBusca as informações de uma taxa a partir do seu nome/sigla\n\n```swift\nvar tax: BrasilAPI.Taxas.TaxModel = try await BrasilAPI().tax.getTax(taxId: \"CDI\")\n```\n\n---\n\n## 📄 License\n\nThis project is licensed under the [MIT License](LICENSE).\n\n## 🤝 Contributing\n\nContributions are welcome! Feel free to open issues and pull requests.\n\n---\nCreated with ❤️ by [Lucas Hubert](https://github.com/LucasJorgeHubert).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasjorgehubert%2Fbrasilapi-swift","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flucasjorgehubert%2Fbrasilapi-swift","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasjorgehubert%2Fbrasilapi-swift/lists"}