epo-ops-sdk
v0.1.19
Published
TypeScript SDK for the European Patent Office's Open Patent Services (OPS) API with OAuth support
Downloads
6
Maintainers
Readme
EPO OPS SDK
A TypeScript SDK for the European Patent Office's Open Patent Services (OPS) API with OAuth support.
Installation
npm install epo-ops-sdkAuthentication
The SDK uses OAuth 2.0 client credentials flow for authentication. You need to:
- Register at the EPO OPS website to get your credentials
- Create a
.envfile in your project root with your credentials:EPO_CLIENT_ID=your_client_id EPO_CLIENT_SECRET=your_client_secret
Authentication Requirements
- Valid client ID and client secret from EPO OPS
- Proper headers including:
- Content-Type: application/x-www-form-urlencoded
- Accept: application/json
- Connection: Keep-Alive
- Host: ops.epo.org
- X-Target-URI: http://ops.epo.org
Usage
import { EpoOpsClient } from 'epo-ops-sdk';
import dotenv from 'dotenv';
// Load environment variables
dotenv.config();
// Initialize the client
const client = new EpoOpsClient({
clientId: process.env.EPO_CLIENT_ID,
clientSecret: process.env.EPO_CLIENT_SECRET
});
// Search for patents
const searchResults = await client.searchPatents('TI=(artificial intelligence)');
// Get bibliographic data
const biblio = await client.getBibliographicData({
type: 'publication',
format: 'docdb',
number: 'EP1234567A1'
});
// Get patent claims
const claims = await client.getClaims({
type: 'publication',
format: 'docdb',
number: 'EP1234567A1'
});
// Get patent family members
const family = await client.getFamily({
type: 'publication',
format: 'docdb',
number: 'EP1234567A1'
});
// Get legal status
const legalStatus = await client.getLegalStatus({
type: 'publication',
format: 'docdb',
number: 'EP1234567A1'
});
// Get classification details
const classification = await client.getClassification('G06F', {
ancestors: true,
navigation: true,
depth: 'all'
});
// Convert patent numbers between formats
const converted = await client.convertNumber(
'publication',
'docdb',
'EP1234567A1',
'epodoc'
);Features
- OAuth 2.0 authentication with automatic token refresh
- Patent search
- Bibliographic data retrieval
- Claims retrieval
- Family member lookup
- Legal status information
- Classification data
- Patent number format conversion
- TypeScript support with full type definitions
- Zod schema validation for responses
Error Handling
The SDK includes comprehensive error handling for common issues:
AuthenticationError: When there are issues with OAuth authenticationRateLimitError: When API rate limits are exceededValidationError: When request parameters are invalidEpoOpsError: For general API errors
Troubleshooting
If you encounter authentication issues:
- Verify your credentials are correct in the
.envfile - Check that your client ID and secret are properly formatted (no extra spaces)
- Ensure you have the correct permissions for the OPS API
- Verify your network connection to ops.epo.org
- Check if your credentials have expired
API Documentation
For detailed API documentation, please refer to OPS.md.
Requirements
- Node.js >= 16.15.1
- TypeScript >= 4.5.0 (for development)
License
MIT
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
