DPMA Connect Plus Go Client Library Released
I've released a Go client library for the German Patent and Trademark Office's Connect Plus API. The library provides access to all three DPMA services - patents and utility models, designs, and trademarks - through a clean, production-ready interface.
Technical Approach
No official OpenAPI specification exists for DPMA Connect Plus. The documentation covers the endpoints but leaves out details on response structures and error behavior. I created an OpenAPI 3 specification from scratch by working through the official documentation and testing against the live API. This spec drives code generation via oapi-codegen, wrapped in an idiomatic Go client with proper error handling and convenience methods.
The API uses XML responses throughout, which required careful handling of DPMA's specific response formats. Custom error types distinguish between not-found errors, data-not-available (common for old or future publication weeks), generic API errors, and XML parse failures.
Three Services, Full Coverage
The patent service covers expert search, individual document retrieval (register data, full-text XML, publication PDFs), weekly bulk downloads for disclosure documents, patent specifications, utility models, and European patent specifications in both XML and PDF, plus daily register extracts.
The design service provides search, register data, image and thumbnail downloads, and weekly bibliographic bulk data. The trademark service follows the same pattern with search, register data, images, and weekly bulk data split into applied, registered, and rejected categories.
All bulk download methods have streaming variants that write to an io.Writer, essential when dealing with DPMA's multi-gigabyte weekly publication packages.
Query Parser
One thing that sets this library apart is a built-in query parser and validator for DPMAregister expert search syntax. It tokenizes queries, validates field codes per service type, checks bracket and brace matching, and recognizes both English and German Boolean operators - AND/UND, OR/ODER, NOT/NICHT. You can also inspect queries programmatically: list the fields used, look up field definitions, or check whether a specific field is present before sending the request.
Testing and Verification
Unit tests run against a mock HTTP server with realistic responses. Integration tests hit the live DPMA API. Most endpoints across all three services have been verified against real data. Some bulk download endpoints could not be tested yet due to permission restrictions on the test account. I'm in contact with DPMA to get broader coverage.
Part of a Set
This is the fourth client library in the patent.dev open source ecosystem, alongside epo-ops (EPO Open Patent Services), epo-bdds (EPO Bulk Data Distribution), and uspto-odp (USPTO Open Data Portal). All four follow the same engineering approach: OpenAPI-driven code generation, idiomatic Go wrapper, comprehensive error handling, and both unit and integration tests.
Repository: github.com/patent-dev/dpma-connect-plus
License: MIT