NOPOCO API Documentation

RESTful API for accessing Open Contracting Data

Quick Start

Get started with the NOPOCO API in minutes

Base URL

https://api.nopoco.gov.ng/v1

Authentication

Include your API key in the request header:

Authorization: Bearer YOUR_API_KEY

Example Request

curl -X GET "https://api.nopoco.gov.ng/v1/releases?limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"

Response Format

All responses are in JSON format following OCDS 1.1 specification

{
  "data": [...],
  "meta": {
    "page": 1,
    "limit": 10,
    "total": 12847,
    "pages": 1285
  }
}

API Endpoints

Available endpoints and their parameters

GET
/api/v1/releases

Get all OCDS releases with pagination and filtering

Parameters:
pageintegerPage number (default: 1)
limitintegerItems per page (default: 20, max: 100)
stagestringFilter by procurement stage
ministrystringFilter by ministry
from_datedateFilter from date (YYYY-MM-DD)
to_datedateFilter to date (YYYY-MM-DD)
Example:
https://api.nopoco.gov.ng/v1/releases?page=1&limit=20&stage=tender
GET
/api/v1/releases/{ocid}

Get a specific OCDS release by OCID

Parameters:
ocidstringOpen Contracting ID (e.g., ocds-ng-2024-001247)
Example:
https://api.nopoco.gov.ng/v1/releases/ocds-ng-2024-001247
GET
/api/v1/records

Get compiled OCDS records (all releases for a contracting process)

Parameters:
pageintegerPage number (default: 1)
limitintegerItems per page (default: 20, max: 100)
Example:
https://api.nopoco.gov.ng/v1/records?page=1&limit=20
GET
/api/v1/records/{ocid}

Get a specific compiled OCDS record by OCID

Parameters:
ocidstringOpen Contracting ID
Example:
https://api.nopoco.gov.ng/v1/records/ocds-ng-2024-001247
GET
/api/v1/search

Full-text search across all OCDS data

Parameters:
qstringSearch query
pageintegerPage number (default: 1)
limitintegerItems per page (default: 20, max: 100)
Example:
https://api.nopoco.gov.ng/v1/search?q=construction&page=1
GET
/api/v1/statistics

Get aggregated statistics and analytics

Parameters:
group_bystringGroup by: ministry, stage, month, year
from_datedateFilter from date
to_datedateFilter to date
Example:
https://api.nopoco.gov.ng/v1/statistics?group_by=ministry

Rate Limits

API usage limits and quotas

Requests per minute60
Requests per hour1,000
Requests per day10,000

Rate limit headers are included in all responses. Contact us for higher limits.

Best Practices

Tips for optimal API usage

Use pagination to retrieve large datasets
Cache responses when possible
Use filters to reduce response size
Implement exponential backoff for retries
Monitor rate limit headers
Use webhooks for real-time updates