Skip to content

LucasJorgeHubert/BrasilAPI-Swift

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

BrasilAPI Swift

Swift Package Manager Tests

Uma SDK Swift para acessar os serviรงos da BrasilAPI de forma simples e integrada.

๐Ÿšจ Respeite as regras de uso da API, conforme a documentaรงรฃo.

๐Ÿ“– Sumรกrio

๐Ÿ“ฆ Instalaรงรฃo

A SDK estรก disponรญvel via Swift Package Manager (SPM). Para adicionรก-la ao seu projeto:

  1. No Xcode, vรก para File > Add Packages
  2. Insira a URL do repositรณrio: https://github.com/LucasJorgeHubert/BrasilAPI-Swift
  3. Escolha a versรฃo desejada e adicione o pacote ao seu projeto

Ou, se preferir, adicione manualmente ao Package.swift:

dependencies: [
    .package(url: "https://github.com/LucasJorgeHubert/BrasilAPI-Swift", from: "1.0.0")
]

Lembre de adicionar a importaรงรฃo no cรณdigo:

import BrasilAPI

๐Ÿšจ Importante

O SPM foi feito para facilitar a integraรงรฃo com a BrasilAPI, 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.

๐Ÿ”ง Funcionalidades Implementadas

๐Ÿฆ Bancos

Listar Bancos banks/v1

Retorna informaรงรตes de todos os bancos do Brasil:

var banks: [BrasilAPI.Bank.BankModel] = try await BrasilAPI().banking.listBanks()

Buscar banco pelo cรณdigo banks/v1/{code}

Busca as informaรงรตes de um banco a partir do cรณdigo do banco:

var bank: BrasilAPI.Bank.BankModel = try await BrasilAPI().banking.getBankByCode(code: String)
Model BrasilAPI.Bank.BankModel
  ispb: String
  name: String?
  code: Int?
  fullName: String?
}

๐Ÿ’ฑ Cรขmbio

Buscar Moedas cambio/v1/moedas

Retorna informaรงรตes de todas as moedas disponรญveis para conversรฃo:

var coins: [BrasilAPI.Exchange.CoinModel] = try await BrasilAPI().exchange.listCoins()
Model BrasilAPI.Exchange.CoinModel
  symbol: String
  name: String
  type: String

Buscar Cotaรงรฃo cambio/v1/cotacao/{moeda}/{data}

Busca pelo cรขmbio do Real com outra moeda, em uma data especรญfica:

var quote: BrasilAPI.Exchange.QuotationModel = try await BrasilAPI().exchange.getQuotation(coin: String, date: String)
/// coin: "USD"
/// date: YYYY-MM-DD
Model BrasilAPI.Exchange.QuotationModel
/// BrasilAPI.Exchange.QuotationModel
	cotacoes: [BrasilAPIExchangeQuotationCoinModel]
	moeda: String
	data: String


/// BrasilAPI.Exchange.QuotationCoinModel
	paridadeCompra: Double
	paridadeVenda: Double
	cotacaoCompra: Double
	cotacaoVenda: Double
	dataHoraCotacao: String
	tipoBoletim: String

๐Ÿ“ CEP

Buscar CEP cep/v1/{code}

Busca por CEP com mรบltiplos providers de fallback A busca utiliza como fonte principal o OpenCep, caso nรฃo encontre o CEP รฉ buscado em diversos outros providers de CEP.

var zipCode: BrasilAPI.ZipCode.ZipCodeV1Model = try await BrasilAPI().zipCode.searchZipCodeV1(zipCode: String) // Apenas nรบmeros
Model BrasilAPI.ZipCode.ZipCodeV1Model
  cep: String
  state: String
  city: String
  neighborhood: String
  street: String
  service: String

๐Ÿ“ CEP v2

Buscar CEP cep/v2/{code}

Versรฃo 2 do serviรงo de busca por CEP com mรบltiplos providers de fallback.

var zipCode: BrasilAPI.ZipCode.ZipCodeV2Model = try await BrasilAPI().zipCode.searchZipCodeV2(zipCode: String) // Apenas nรบmeros
Model BrasilAPI.ZipCode.ZipCodeV2Model
/// BrasilAPI.ZipCode.ZipCodeV2Model
	cep: String
	state: String
	city: String
	neighborhood: String?
	street: String?
	service: String
	location: BrasilAPIZipCodeV2LocationModel

/// ZipCodeService.BrasilAPIZipCodeV2LocationModel
	type: String
	coordinates: BrasilAPIZipCodeV2CoordinatesModel?

/// ZipCodeService.BrasilAPIZipCodeV2CoordinatesModel
	longitude: String?
	latitude: String?

๐Ÿข CNPJ

Buscar CNPJ cnpj/v1/{cnpj}

Busca por CNPJ na API Minha Receita.

var cnpj: BrasilAPI.CNPJ.CNPJModel = try await BrasilAPI().cnpj.getCNPJ(cnpj: String) // Apenas nรบmeros
Model BrasilAPI.CNPJ.CNPJModel
  uf: String
  cep: String
  qsa: [Qsa]
  cnpj: String
  pais: String?
  email: String?
  porte: String
  bairro: String
  numero: String
  dddFax: String
  municipio: String
  logradouro: String
  cnaeFiscal: Int
  codigoPais: Int?
  complemento: String
  codigoPorte: Int
  razaoSocial: String
  nomeFantasia: String
  capitalSocial: Int
  dddTelefone1: String
  dddTelefone2: String
  opcaoPeloMei: Bool?
  descricaoPorte: String
  codigoMunicipio: Int
  cnaesSecundarios: [CnaesSecundario]
  naturezaJuridica: String
  regimeTributario: [RegimeTributario]
  situacaoEspecial: String
  opcaoPeloSimples: Bool?
  situacaoCadastral: Int
  dataOpcaoPeloMei: String?
  dataExclusaoDoMei: String?
  cnaeFiscalDescricao: String
  codigoMunicipioIbge: Int
  dataInicioAtividade: String
  dataSituacaoEspecial: String?
  dataOpcaoPeloSimples: String?
  dataSituacaoCadastral: String
  nomeCidadeNoExterior: String
  codigoNaturezaJuridica: Int
  dataExclusaoDoSimples: String?
  motivoSituacaoCadastral: Int
  enteFederativoResponsavel: String
  identificadorMatrizFilial: Int
  qualificacaoDoResponsavel: Int
  descricaoSituacaoCadastral: String
  descricaoTipoDeLogradouro: String
  descricaoMotivoSituacaoCadastral: String
  descricaoIdentificadorMatrizFilial: String

  /// QSA
  pais: String?
  nomeSocio: String
  codigoPais: Int?
  faixaEtaria: String
  cnpjCpfDoSocio: String
  qualificacaoSocio: String
  codigoFaixaEtaria: Int
  dataEntradaSociedade: String
  identificadorDeSocio: Int
  cpfRepresentanteLegal: String
  nomeRepresentanteLegal: String
  codigoQualificacaoSocio: Int
  qualificacaoRepresentanteLegal: String
  codigoQualificacaoRepresentanteLegal: Int

  /// RegimeTributario
  ano: Int
  cnpjDaSCP: String?
  formaDeTributacao: String
  quantidadeDeEscrituracoes: Int

  /// CnaesSecundario
  codigo: Int
  descricao: String

๐Ÿฆ Corretoras

Buscar corretoras /cvm/corretoras/v1

var brokers: [Broker.BrokerModel] = try await BrasilAPI().broker.getBrokers()

Buscar corretora por CNPJ /cvm/corretoras/v1/{cnpj}

var broker: Broker.BrokerModel = try await BrasilAPI().broker.getBrokerByCnpj(cnpj: String)
Model Broker.BrokerModel
  cnpj: String
  type: String
  nomeSocial: String
  nomeComercial: String
  status: String
  email: String
  telefone: String
  cep: String
  pais: String
  uf: String
  municipio: String
  bairro: String
  complemento: String
  logradouro: String
  dataPatrimonioLiquido: String
  valorPatrimonioLiquido: String
  codigoCvm: String
  dataInicioSituacao: String
  dataRegistro: String

๐ŸŒก๏ธ CPTEC

Listar localidades cptec/v1/cidade

Retorna 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.

var cities: [BrasilAPI.CPTEC.LocalModel] = try await BrasilAPI().cptec.getListCPTECLocals()
Model BrasilAPI.CPTEC.LocalModel
  name: String
  state: String
  id: Int

Buscar localidade cptec/v1/cidade/{cityName}

Retorna 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.

var cities: [BrasilAPI.CPTEC.LocalModel] = try await BrasilAPI().cptec.getCPTECLocal(localName: String)
Model BrasilAPI.CPTEC.LocalModel
  name: String
  state: String
  id: Int

Condiรงรฃo nas capitais cptec/v1/clima/capital

Retorna condiรงรตes meteorolรณgicas atuais nas capitais do paรญs, com base nas estaรงรตes de solo de seu aeroporto.

var condition: [BrasilAPI.CPTEC.ConditionModel] = try await BrasilAPI().cptec.getListCPTECCapitals()
Model BrasilAPI.CPTEC.ConditionModel
  codeICAO: String
  updated: String
  pressure: String
  visibility: String
  windSpeed: Int
  windDirection: Int
  humidity: Int
  condition: String
  conditionDescription: String
  temperature: Int

Condiรงรฃo nos aeroportos cptec/v1/clima/aeroporto/{icaoCode}

Retorna condiรงรตes meteorolรณgicas atuais no aeroporto solicitado. Este endpoint utiliza o cรณdigo ICAO (4 dรญgitos) do aeroporto.

var condition: BrasilAPI.CPTEC.ConditionModel = try await BrasilAPI().cptec.getCPTECCapital(codeICAO: String)
Model BrasilAPI.CPTEC.ConditionModel
  codeICAO: String
  updated: String
  pressure: String
  visibility: String
  windSpeed: Int
  windDirection: Int
  humidity: Int
  condition: String
  conditionDescription: String
  temperature: Int

Retorna 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.

var forecast: BrasilAPI.CPTEC.ForecastModel = try await BrasilAPI().cptec.getCPTECLocalForecast(cityCode: Int, days: ForecastAvailableDays)

// ForecastAvailableDays = Enum de 1 a 6 diuas
Model BrasilAPI.CPTEC.ForecastModel
  city: String
  state: String
  updated: String
  weather: [CPTECService.BrasilAPICPTECWeatherModel]

  // CPTECService.BrasilAPICPTECWeatherModel
  date: String
  condition: String
  conditionDescription: String
  min: Int
  max: Int
  indexUV: Int

Previsรฃo oceanica cptec/v1/ondas/{cityCode}/{days}

Retorna a previsรฃo oceรขnica para a cidade informada para um perรญodo de, atรฉ, 6 dias.

var forecast: BrasilAPI.CPTEC.OceanicForecastModel = try await BrasilAPI().cptec.getCPTECOceanicForecast(cityCode: Int, days: ForecastAvailableDays)

// ForecastAvailableDays = Enum de 1 a 6 dias
Model BrasilAPI.CPTEC.OceanicForecastModel
  city: String
  state: String
  updated: String
  waves: [BrasilAPICPTECWavesModel]

  // BrasilAPICPTECWavesModel
  date: String
  data: [CPTECService.BrasilAPICPTECWavesDataModel]

  // CPTECService.BrasilAPICPTECWavesDataModel
  windSpeed: Double
  windDirection: String
  windDirectionDescription: String?
  waveHeight: Double
  waveDirection: String
  waveDirectionDescription: String?
  agitation: String
  hour: String

๐Ÿ“ฑ DDD

Listar cidades por DDD ddd/v1/{ddd}

Retorna estado e lista de cidades por DDD

var cities: BrasilAPI.DDD.CitiesModel = try await BrasilAPI().ddd.getCitiesByDDD(ddd: String)
Model BrasilAPI.DDD.CitiesModel
  cities: [String]
  state: String

๐ŸŽ‰ Feriados Nacionais

Listar feriados nacionais feriados/v1/{ano}

Calcula os feriados mรณveis baseados na Pรกscoa e adiciona os feriados fixos

var holidays: [BrasilAPI.Holidays.BrasilAPIHolidaysModel] = try await BrasilAPI().holidays.getNationalHolidays(year: 2025)
Model BrasilAPI.Holidays.BrasilAPIHolidaysModel
  date: String
  name: String
  type: String

๐Ÿš— FIPE

Listar marcas de veรญculos fipe/marcas/v1/{tipoVeiculo}

Lista as marcas de veรญculos referente ao tipo de veรญculo

var brands: [BrasilAPI.FIPE.VehiclesTypeModel] = try await BrasilAPI().fipe.getBrandByVehicleType(carType: FIPEService.VehicleTypeEnum)

FIPEService.VehicleTypeEnum: car, truck e motorcycle

Model BrasilAPI.FIPE.VehiclesTypeModel
  name: String
  value: String

Consultar preรงo do veรญculo fipe/preco/v1/{codigoFipe}

Consulta o preรงo do veรญculo segundo a tabela fipe.

var prices: [BrasilAPI.FIPE.VehiclePriceModel] = try await BrasilAPI().fipe.getVehiclePrice(codeFIPE: String)
Model BrasilAPI.FIPE.VehiclePriceModel
  name: String
  value: String

Listar tabelas de referรชncia fipe/tabelas/v1

var tables: [BrasilAPI.FIPE.FIPETableModel] = try await BrasilAPI().fipe.getReferenceTables()
Model BrasilAPI.FIPE.FIPETableModel
  code: Int
  month: String

Listar veรญculos por marca e tipo fipe/veiculos/v1/{tipoVeiculo}/{codigoMarca}

var tables: [BrasilAPI.FIPE.VehicleModel] = try await BrasilAPI().fipe.listVehicles(type: FIPEService.VehicleTypeEnum, brandCode: String)

FIPEService.VehicleTypeEnum: car, truck e motorcycle

Model BrasilAPI.FIPE.VehicleModel
  model: String

๐Ÿ”Ž IBGE

Retorna os municรญpios da unidade federativa

var cities: [BrasilAPI.IBGE.CityModel] = try await BrasilAPI().ibge.getIBGECitiesByUF(uf: BrasilState)
// BrasilState รฉ um enum com todos os estados brasileiros
Model BrasilAPI.IBGE.CityModel
  name: String
  code: String

Listar estados ibge/uf/v1

Retorna informaรงรตes de todos estados do Brasil

var states: [BrasilAPI.IBGE.StateModel] = try await BrasilAPI().ibge.getIBGEStates()
Model BrasilAPI.IBGE.StateModel
  id: Int
  acronym: String
  name: String
  region: BrasilAPIIBGEStateRegionModel

  // BrasilAPIIBGEStateRegionModel
  id: Int
  acronym: String
  name: String

Listar estado ibge/uf/v1/{code}

Busca as informaรงรตes de um estado a partir da sigla ou cรณdigo

var state: BrasilAPI.IBGE.StateModel = try await BrasilAPI().ibge.getIBGEStateByCode(code: BrasilState)
// BrasilState รฉ um enum com todos os estados brasileiros
Model BrasilAPI.IBGE.StateModel
  id: Int
  acronym: String
  name: String
  region: BrasilAPIIBGEStateRegionModel

  // BrasilAPIIBGEStateRegionModel
  id: Int
  acronym: String
  name: String

๐Ÿ“– ISBN

Buscar livro isbn/v1/{isbn}

Informaรงรตes sobre o livro a partir do ISBN

let book: BrasilAPI.ISBN.BookModel = try await BrasilAPI().isbn.getBook(isbn: String)
Model BrasilAPI.ISBN.BookModel
    isbn: String
    title: String
    subtitle: String?
    authors: [String]
    publisher: String
    synopsis: String
    dimensions: DimensionsModel
    year: Int
    format: String
    page_count: Int
    subjects: [String]
    location: String
    retail_price: String?
    cover_url: String?
    provider: String
    
    // DimensionsModel
    width: Double
    height: Double
    unit: String

๐Ÿข NCM

Buscar todos os NCMs ncm/v1

var ncms: [BrasilAPI.NCM.NCMModel] = try await BrasilAPI().ncm.getAllNCM()
Model BrasilAPI.NCM.NCMModel
codigo: String
descricao: String
dataInicio: String
dataFim: String
tipoAto: String
numeroAto: String
anoAto: String

Buscar NCM ncm/v1/{code}

let ncm: BrasilAPI.NCM.NCMModel = try await BrasilAPI().ncm.getNCMByCode(code: String)

Pesquisar NCM ncm/v1?search={term}

let ncm: [BrasilAPI.NCM.NCMModel] = try await BrasilAPI().ncm.searchNCM(term: String)
/// Termo pode ser o nรบmero ou descriรงรฃo, conforme documentaรงรฃo da BrasilAPI

๐Ÿ’ฐ PIX

Buscar participantes pix/v1/participants

Retorna informaรงรตes de todos os participantes do PIX no dia atual ou anterior

var participants: [BrasilAPI.PIX.PIXParticipoantsModel] = try await BrasilAPI().pix.getPIXPartcipants()
Model BrasilAPI.PIX.PIXParticipoantsModel
ispb: String
name: String
nameReduzido: String
modalidadeParticipacao: String
tipoParticipacao: String
inicioOperacao: String

๐ŸŒŽ Registro BR

Buscar status do dominio registrobr/v1/{domain}

Avalia um dominio no registro.br

let status: BrasilAPI.DomainBR.DomainBRStatusModel = try await BrasilAPI().domainBR.getDomainBRStatus(domain: String)
Model BrasilAPI.DomainBR.DomainBRStatusModel
statusCode: Domain.DomainBR.Enums.DomainBRStatusCodeEnum
status: Domain.DomainBR.Enums.DomainBRStatusEnum
fqdn: String
fqdnace: String?
exempt: Bool?
hosts: [String]?
publicationStatus: String?
expiresAt: String?
suggestions: [String]?
reasons: String?

// BrasilAPI.DomainBR.DomainBRStatusEnum
available = "AVAILABLE"
availableWithTicket = "AVAILABLE_WITH_TICKET"
registered = "REGISTERED"
unavailable = "UNAVAILABLE"
invalidQuery = "INVALID_QUERY"
releaseWaiting = "RELEASE_WAITING"
releaseInProgress = "RELEASE_IN_PROGRESS"
releaseInProgressWithTickets = "RELEASE_IN_PROGRESS_WITH_TICKETS"
error = "ERROR"
domainProcessRelease = "DOMAIN_PROCESS_RELEASE"
unknow = "UNKNOW"

// BrasilAPI.DomainBR.DomainBRStatusCodeEnum
available = 0
availableWithTicket = 1
registered = 2
unavailable = 3
invalidQuery = 4
releaseWaiting = 5
releaseInProgress = 6
releaseInProgressWithTickets = 7
error = 8
domainProcessRelease = 9
unknow = 10

๐Ÿ’ธ Taxas

Listar todas as taxas taxas/v1

Retorna as taxas de juros e alguns รญndices oficiais do Brasil

var taxas: [BrasilAPI.Taxas.TaxModel] = try await BrasilAPI()tax.getTaxes()
Model BrasilAPI.Taxas.TaxModel
name: String
value: Double

Buscar taxa taxas/v1/{sigla}

Busca as informaรงรตes de uma taxa a partir do seu nome/sigla

var tax: BrasilAPI.Taxas.TaxModel = try await BrasilAPI().tax.getTax(taxId: "CDI")

๐Ÿ“„ Licenรงa


Este projeto รฉ licenciado sob a MIT License.

๐Ÿค Contribuindo

Contribuiรงรตes sรฃo bem-vindas! Sinta-se ร  vontade para abrir issues e pull requests.


Created with โค๏ธ by Lucas Hubert.

BrasilAPI-Swift English

Swift Package Manager

A Swift SDK to access BrasilAPI services in a simple and integrated way.

๐Ÿ“– Table of Contents

๐Ÿ“ฆ Installation

The SDK is available via Swift Package Manager (SPM). To add it to your project:

  1. In Xcode, go to File > Add Packages
  2. Enter the repository URL: https://github.com/LucasJorgeHubert/BrasilAPI-Swift
  3. Choose the desired version and add the package to your project

Or, if you prefer, manually add it to Package.swift:

dependencies: [
    .package(url: "https://github.com/LucasJorgeHubert/BrasilAPI-Swift", from: "1.0.0")
]

Remember to import it in your code:

import BrasilAPI

๐Ÿšจ Important

The SPM was created to facilitate integration with BrasilAPI, 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.

๐Ÿ”ง Implemented Features

๐Ÿฆ Banks

List Banks banks/v1

Returns information about all banks in Brazil:

var banks: [BrasilAPI.Bank.BankModel] = try await BrasilAPI().banking.listBanks()

Get Bank by Code banks/v1/{code}

Fetches information about a bank using its code:

var bank: BrasilAPI.Bank.BankModel = try await BrasilAPI().banking.getBankByCode(code: String)

๐Ÿ’ฑ Exchange

Get Currencies cambio/v1/moedas

Returns information about all available currencies for conversion:

var coins: [BrasilAPI.Exchange.CoinModel] = try await BrasilAPI().exchange.listCoins()

Fetches exchange rates for BRL with another currency on a specific date:

var quote: BrasilAPI.Exchange.QuotationModel = try await BrasilAPI().exchange.getQuotation(coin: String, date: String)

๐Ÿ“ ZIP Code

Get ZIP Code cep/v1/{code}

Fetches ZIP code information using multiple fallback providers.

var zipCode: BrasilAPI.ZipCode.ZipCodeV1Model = try await BrasilAPI().zipCode.searchZipCodeV1(zipCode: String)

๐Ÿ“ ZIP Code v2

Get ZIP Code cep/v2/{code}

Version 2 of the ZIP code lookup service with multiple fallback providers.

var zipCode: ZipCodeV2Model = try await BrasilAPI().zipCode.searchZipCodeV2(zipCode: String)

๐Ÿข CNPJ

Fetches company information using CNPJ from the Minha Receita API.

var cnpj: BrasilAPI.CNPJ.CNPJModel = try await BrasilAPI().cnpj.getCNPJ(cnpj: String)

๐Ÿฆ Brokers

Get Brokers /cvm/corretoras/v1

var brokers: [Broker.BrokerModel] = try await BrasilAPI().broker.getBrokers()

Get Broker by CNPJ /cvm/corretoras/v1/{cnpj}

var broker: Broker.BrokerModel = try await BrasilAPI().broker.getBrokerByCnpj(cnpj: String)

๐ŸŒก๏ธ CPTEC

List Locations cptec/v1/cidade

Returns 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.

var cities: [BrasilAPI.CPTEC.LocalModel] = try await BrasilAPI().cptec.getListCPTECLocals()
Model BrasilAPI.CPTEC.LocalModel
  name: String
  state: String
  id: Int

Returns 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.

var cities: [BrasilAPI.CPTEC.LocalModel] = try await BrasilAPI().cptec.getCPTECLocal(localName: String)
Model BrasilAPI.CPTEC.LocalModel
  name: String
  state: String
  id: Int

Conditions in Capitals cptec/v1/clima/capital

Returns current weather conditions in the country's capitals, based on airport ground stations.

var condition: [BrasilAPI.CPTEC.ConditionModel] = try await BrasilAPI().cptec.getListCPTECCapitals()
Model BrasilAPI.CPTEC.ConditionModel
  codeICAO: String
  updated: String
  pressure: String
  visibility: String
  windSpeed: Int
  windDirection: Int
  humidity: Int
  condition: String
  conditionDescription: String
  temperature: Int

Returns current weather conditions at the requested airport. This endpoint uses the ICAO code (4-digit) of the airport.

var condition: BrasilAPI.CPTEC.ConditionModel = try await BrasilAPI().cptec.getCPTECCapital(codeICAO: String)
Model BrasilAPI.CPTEC.ConditionModel
  codeICAO: String
  updated: String
  pressure: String
  visibility: String
  windSpeed: Int
  windDirection: Int
  humidity: Int
  condition: String
  conditionDescription: String
  temperature: Int

Returns 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.

var forecast: BrasilAPI.CPTEC.ForecastModel = try await BrasilAPI().cptec.getCPTECLocalForecast(cityCode: Int, days: ForecastAvailableDays)

// ForecastAvailableDays = Enum from 1 to 6 days
Model BrasilAPI.CPTEC.ForecastModel
  city: String
  state: String
  updated: String
  weather: [CPTECService.BrasilAPICPTECWeatherModel]

  // CPTECService.BrasilAPICPTECWeatherModel
  date: String
  condition: String
  conditionDescription: String
  min: Int
  max: Int
  indexUV: Int

Returns the ocean forecast for the specified city for a period of up to 6 days.

var forecast: BrasilAPI.CPTEC.OceanicForecastModel = try await BrasilAPI().cptec.getCPTECOceanicForecast(cityCode: Int, days: ForecastAvailableDays)

// ForecastAvailableDays = Enum from 1 to 6 days
Model BrasilAPI.CPTEC.OceanicForecastModel
  city: String
  state: String
  updated: String
  waves: [BrasilAPICPTECWavesModel]

  // BrasilAPICPTECWavesModel
  date: String
  data: [CPTECService.BrasilAPICPTECWavesDataModel]

  // CPTECService.BrasilAPICPTECWavesDataModel
  windSpeed: Double
  windDirection: String
  windDirectionDescription: String?
  waveHeight: Double
  waveDirection: String
  waveDirectionDescription: String?
  agitation: String
  hour: String

๐Ÿ“ฑ DDD

List Cities by DDD ddd/v1/{ddd}

Returns state and list of cities by DDD (area code).

var cities: BrasilAPI.DDD.CitiesModel = try await BrasilAPI().ddd.getCitiesByDDD(ddd: String)
Model BrasilAPI.DDD.CitiesModel
  cities: [String]
  state: String

๐ŸŽ‰ National Holidays

List National Holidays feriados/v1/{year}

Calculates the movable holidays based on Easter and adds the fixed holidays.

var holidays: [BrasilAPI.Holidays.BrasilAPIHolidaysModel] = try await BrasilAPI().holidays.getNationalHolidays(year: 2025)
Model BrasilAPI.Holidays.BrasilAPIHolidaysModel
  date: String
  name: String
  type: String

๐Ÿš— FIPE

List Vehicle Brands fipe/marcas/v1/{vehicleType}

Lists the vehicle brands for the specified vehicle type.

var brands: [BrasilAPI.FIPE.VehiclesTypeModel] = try await BrasilAPI().fipe.getBrandByVehicleType(carType: FIPEService.VehicleTypeEnum)

FIPEService.VehicleTypeEnum: car, truck, and motorcycle

Model BrasilAPI.FIPE.VehiclesTypeModel
  name: String
  value: String

Get Vehicle Price fipe/preco/v1/{fipeCode}

Retrieves the vehicle price according to the FIPE table.

var prices: [BrasilAPI.FIPE.VehiclePriceModel] = try await BrasilAPI().fipe.getVehiclePrice(codeFIPE: String)
Model BrasilAPI.FIPE.VehiclePriceModel
  name: String
  value: String

List Reference Tables fipe/tabelas/v1

var tables: [BrasilAPI.FIPE.FIPETableModel] = try await BrasilAPI().fipe.getReferenceTables()
Model BrasilAPI.FIPE.FIPETableModel
  code: Int
  month: String

List Vehicles by Brand and Type fipe/veiculos/v1/{vehicleType}/{brandCode}

var tables: [BrasilAPI.FIPE.VehicleModel] = try await BrasilAPI().fipe.listVehicles(type: FIPEService.VehicleTypeEnum, brandCode: String)

FIPEService.VehicleTypeEnum: car, truck, and motorcycle

Model BrasilAPI.FIPE.VehicleModel
  model: String

๐Ÿ”Ž IBGE

Returns the cities of the federative unit

var cities: [BrasilAPI.IBGE.CityModel] = try await BrasilAPI().ibge.getIBGECitiesByUF(uf: BrasilState)
// BrasilState is an enum with all Brazilian states
Model BrasilAPI.IBGE.CityModel
  name: String
  code: String

List states ibge/uf/v1

Returns information about all Brazilian states

var states: [BrasilAPI.IBGE.StateModel] = try await BrasilAPI().ibge.getIBGEStates()
Model BrasilAPI.IBGE.StateModel
  id: Int
  acronym: String
  name: String
  region: BrasilAPIIBGEStateRegionModel

  // BrasilAPIIBGEStateRegionModel
  id: Int
  acronym: String
  name: String

Get state by code ibge/uf/v1/{code}

Fetches information about a state by acronym or code

var state: BrasilAPI.IBGE.StateModel = try await BrasilAPI().ibge.getIBGEStateByCode(code: BrasilState)
// BrasilState is an enum with all Brazilian states
Model BrasilAPI.IBGE.StateModel
  id: Int
  acronym: String
  name: String
  region: BrasilAPIIBGEStateRegionModel

  // BrasilAPIIBGEStateRegionModel
  id: Int
  acronym: String
  name: String

๐Ÿ“– ISBN

Search book isbn/v1/{isbn}

Get book information from ISBN number code

let book: BrasilAPI.ISBN.BookModel = try await brasilAPI.isbn.getBook(isbn: String)
Model BrasilAPI.ISBN.BookModel
    isbn: String
    title: String
    subtitle: String?
    authors: [String]
    publisher: String
    synopsis: String
    dimensions: DimensionsModel
    year: Int
    format: String
    page_count: Int
    subjects: [String]
    location: String
    retail_price: String?
    cover_url: String?
    provider: String
    
    // DimensionsModel
    width: Double
    height: Double
    unit: String

๐Ÿข NCM

Get all NCMs ncm/v1

var ncms: [BrasilAPI.NCM.NCMModel] = try await BrasilAPI().ncm.getAllNCM()
Model BrasilAPI.NCM.NCMModel
codigo: String
descricao: String
dataInicio: String
dataFim: String
tipoAto: String
numeroAto: String
anoAto: String
let ncm: BrasilAPI.NCM.NCMModel = try await brasilAPI.ncm.getNCMByCode(code: String)
let ncm: [BrasilAPI.NCM.NCMModel] = try await brasilAPI.ncm.searchNCM(term: String)
/// Term can be a code or a description

๐Ÿ’ฐ PIX

Search participants pix/v1/participants

Return information about all participants of the PIX on the current or previous day

var participants: [BrasilAPI.PIX.PIXParticipoantsModel] = try await BrasilAPI().pix.getPIXPartcipants()
Model BrasilAPI.PIX.PIXParticipoantsModel
ispb: String
name: String
nameReduzido: String
modalidadeParticipacao: String
tipoParticipacao: String
inicioOperacao: String

๐ŸŒŽ Domain BR

Get domain status registrobr/v1/{domain}

Avalia um dominio no registro.br

let status: BrasilAPI.DomainBR.DomainBRStatusModel = try await BrasilAPI().domainBR.getDomainBRStatus(domain: String)

๐Ÿ’ธ Taxes

Get taxes taxas/v1

Retorna as taxas de juros e alguns รญndices oficiais do Brasil

var taxas: [BrasilAPI.Taxas.TaxModel] = try await BrasilAPI()tax.getTaxes()
Model BrasilAPI.Taxas.TaxModel
name: String
value: Double

Busca as informaรงรตes de uma taxa a partir do seu nome/sigla

var tax: BrasilAPI.Taxas.TaxModel = try await BrasilAPI().tax.getTax(taxId: "CDI")

๐Ÿ“„ License

This project is licensed under the MIT License.

๐Ÿค Contributing

Contributions are welcome! Feel free to open issues and pull requests.


Created with โค๏ธ by Lucas Hubert.