Introduction
The Procurement Code Finder API allows you to classify tender descriptions into
procurement codes across multiple classification systems: CPV, PSC, UNSPSC, and NAICS.
All API requests are made to: https://www.procurementcodefinder.com/api
The API returns JSON responses with classification results, confidence scores, and cost information.
Authentication
Authenticate your API requests using your API key in the request header:
X-API-Key: your_api_key_here
You can find your API key in your dashboard after signing up.
Getting Your API Key
- Sign up for a free account
- Navigate to your dashboard
- Copy your API key from the "API Key" card
- Include it in the
X-API-Key header for all requests
Rate Limits
Rate limits vary based on authentication:
- Demo (no auth): 10 requests per hour
- Authenticated: 100 requests per minute
When you exceed the rate limit, you'll receive a 429 (Too Many Requests) response.
Wait before making additional requests.
CPV Match
Match tender descriptions to Common Procurement Vocabulary (CPV) codes.
POST/api/cpv/match
Request
{
"description": "Supply and installation of solar panels for government building"
}
Response
200 OK
{
"success": true,
"message": "API call successful",
"data": [
{
"code": "09331000",
"title": "Solar panels",
"confidence": 0.95,
"codeType": "cpv"
}
],
"metadata": {
"cost": {
"apiCost": 0.000105
}
}
}
PSC Match
Match tender descriptions to Product Service Codes (PSC).
POST/api/psc/match
Request
{
"description": "IT consulting and software development services"
}
Response
Same structure as CPV Match response.
UNSPSC Match
Match tender descriptions to United Nations Standard Products and Services Code (UNSPSC).
POST/api/unspsc/match
Request
{
"description": "Office furniture and equipment"
}
Response
Same structure as CPV Match response.
NAICS Match
Match tender descriptions to North American Industry Classification System (NAICS) codes.
POST/api/naics/match
Request
{
"description": "Construction and building services"
}
Response
Same structure as CPV Match response.
Error Handling
The API uses standard HTTP status codes and returns errors in this format:
{
"success": false,
"error": "ERROR_TYPE",
"message": "Human-readable error message"
}
Common Error Types
VALIDATION_ERROR - Invalid request parameters
UNAUTHORIZED - Missing or invalid API key
RATE_LIMIT_EXCEEDED - Too many requests
INSUFFICIENT_BALANCE - Not enough USD balance
INTERNAL_ERROR - Server error
Pricing
Pricing is dynamic and based on the complexity of the API response.
Each response includes cost information in the metadata.
Typical costs: $0.00007 - $0.00015 per API call
All new accounts receive $5.00 USD free balance to get started.
Code Examples
cURL
curl -X POST https://your-domain.com/api/cpv/match \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{
"description": "Supply and installation of solar panels"
}'
JavaScript
const response = await fetch('/api/cpv/match', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': 'your_api_key_here'
},
body: JSON.stringify({
description: 'Supply and installation of solar panels'
})
});
const data = await response.json();
console.log(data);
Python
import requests
url = 'https://your-domain.com/api/cpv/match'
headers = {
'Content-Type': 'application/json',
'X-API-Key': 'your_api_key_here'
}
data = {
'description': 'Supply and installation of solar panels'
}
response = requests.post(url, json=data, headers=headers)
print(response.json())