# documentação https://pncp.gov.br/api/pncp/swagger-ui/index.html # geral https://pncp.gov.br/api/pncp/v1/orgaos/63025530000104/pca/2026/csv # pega o sequencial da unidade https://pncp.gov.br/api/pncp/v1/orgaos/63025530000104/pca/{uasg}/2026/sequenciaisplano # pegar os itens da sua unidade https://pncp.gov.br/api/pncp/v1/orgaos/63025530000104/pca/2026/{sequencial}/itens gerador de "etiqueta" para TR from datetime import datetime import json import requests import sys pca_id = 63025530000104 ano = 2026 uasg = 102136 numero = int(sys.argv[1]) if len(sys.argv) > 1 else 1 geral = "https://pncp.gov.br/api/pncp/v1/orgaos/{pca_id}/pca/{uasg}/{ano}/sequenciaisplano".format(pca_id=pca_id, uasg=uasg, ano=ano) r = requests.get(geral) tmp = json.loads(r.text) sequencial = tmp['sequencialPlano'] itens = "https://pncp.gov.br/api/pncp/v1/orgaos/{pca_id}/pca/{ano}/{sequencial}/itens".format(pca_id=pca_id, ano=ano, sequencial=sequencial) r = requests.get(itens) pca = json.loads(r.text) dfd = [d for d in pca if d['numeroItem'] == numero].pop() data = datetime.strptime(dfd['dataPublicacaoPncp'], "%Y-%m-%dT%H:%M:%S") print("ID PCA no PNCP: {pca_id}-0-{sequencial}/{ano};".format(pca_id=pca_id, sequencial=f"{sequencial:06d}", ano=ano)) print("Data de publicação no PNCP: {data};".format(data=data.strftime("%d/%m/%Y"))) print("Id do item no PCA: {uasg}-{sequencial}/{ano}-{numero};".format(uasg=uasg, sequencial=sequencial, ano=ano, numero=numero)) print("Classe/Grupo: {classe_codigo} - {classe_nome};".format(classe_codigo=dfd['classificacaoSuperiorCodigo'], classe_nome=dfd['classificacaoSuperiorNome'])) print("Identificador da Futura Contratação: {futura_id}.".format(futura_id=dfd['grupoContratacaoCodigo']))