Skip to content

Resources

API and open data

The procedures, institutions, corridors, legal texts, tariff lines, opportunities and indicators published on MyEASOKO, as JSON, for your applications and analyses.

Base address
https://myeasoko.com/api/v1
Format
JSON (GeoJSON for maps), translated fields as {fr, en} objects
Limit
60 requests per minute without a key, 600 with a Membre Pro key
Caching
ETag on every response: send it back in If-None-Match to receive 304
CORS
Allowed from any domain
Description
https://myeasoko.com/api/v1/openapi.json

Endpoints

/procedures

GET /api/v1/procedures

Published procedures

Parameters
Parameters Type Description
flow string : import, export, transit, company, certificate, other Flow: import, export, transit, company...
chapter string Harmonized System chapter (2 digits)
institution string Slug of the institution in charge
q string Text searched in the title
page integer Page number (from 1)
per_page integer Items per page, 25 by default, 100 at most

Example

curl -s 'https://myeasoko.com/api/v1/procedures?flow=import&per_page=5'

GET /api/v1/procedures/{slug}

Procedure detail: steps, documents, institutions, legal basis, sources, version and freshness

Parameters
Parameters Type Description
slug (required) string

Example

curl -s 'https://myeasoko.com/api/v1/procedures/{slug}'

/institutions

GET /api/v1/institutions

Institutions directory

Parameters
Parameters Type Description
type string Type (or comma separated list): port, border_post, ministry...
city string
q string
page integer Page number (from 1)
per_page integer Items per page, 25 by default, 100 at most

Example

curl -s 'https://myeasoko.com/api/v1/institutions?type=port,border_post'

GET /api/v1/institutions/{slug}

Institution detail with contacts, services and procedures

Parameters
Parameters Type Description
slug (required) string

Example

curl -s 'https://myeasoko.com/api/v1/institutions/{slug}'

/institutions.geojson

GET /api/v1/institutions.geojson

Located institutions as GeoJSON points

Parameters
Parameters Type Description
type string

Example

curl -s 'https://myeasoko.com/api/v1/institutions.geojson'

/corridors

GET /api/v1/corridors

Transit corridors: GeoJSON LineStrings with their nodes

Example

curl -s 'https://myeasoko.com/api/v1/corridors'

GET /api/v1/corridors/{slug}

One corridor (GeoJSON Feature)

Parameters
Parameters Type Description
slug (required) string

Example

curl -s 'https://myeasoko.com/api/v1/corridors/{slug}'

/regulatory-texts

GET /api/v1/regulatory-texts

Legal texts: laws, decrees, orders, circulars

Parameters
Parameters Type Description
type string
scope string national, regional (ECOWAS, WAEMU...), international
theme string
in_force boolean 1 for texts in force, 0 for the others
q string
page integer Page number (from 1)
per_page integer Items per page, 25 by default, 100 at most

Example

curl -s 'https://myeasoko.com/api/v1/regulatory-texts?in_force=1'

GET /api/v1/regulatory-texts/{slug}

One legal text

Parameters
Parameters Type Description
slug (required) string

Example

curl -s 'https://myeasoko.com/api/v1/regulatory-texts/{slug}'

/tariff-lines

GET /api/v1/tariff-lines

Tariff lines: search by HS code prefix or by text

Parameters
Parameters Type Description
code string HS code prefix, with or without dots (1006 or 1006.30)
q string Text searched in the label and keywords
chapter string
category integer Tariff category (customs duty band)
page integer Page number (from 1)
per_page integer Items per page, 25 by default, 100 at most

Example

curl -s 'https://myeasoko.com/api/v1/tariff-lines?code=1006'

GET /api/v1/tariff-lines/{code}

Tariff line with band rate and applicable levies

Parameters
Parameters Type Description
code (required) string Full HS code, with or without dots

Example

curl -s 'https://myeasoko.com/api/v1/tariff-lines/1006300000'

/levies

GET /api/v1/levies

Duties, taxes and levies of the regime in force

Parameters
Parameters Type Description
flow string : import, export, transit
all boolean 1 to include inactive or out of period lines

Example

curl -s 'https://myeasoko.com/api/v1/levies?flow=import'

/simulations

POST /api/v1/simulations

Duty and tax simulation (indicative estimate)

Example

curl -s -X POST 'https://myeasoko.com/api/v1/simulations' \
  -H 'Content-Type: application/json' \
  -d '{"hs":"1006.30.00.00","value":12000,"currency":"EUR","incoterm":"FOB","freight":900,"insurance":60,"origin":"third","weight_tonnes":25,"containers":1}'

/opportunities

GET /api/v1/opportunities

Opportunities: investment, tenders, events

Parameters
Parameters Type Description
kind string : investment, tender, event, partner
sector string
open boolean 1 for opportunities still open only
page integer Page number (from 1)
per_page integer Items per page, 25 by default, 100 at most

Example

curl -s 'https://myeasoko.com/api/v1/opportunities?kind=tender&open=1'

GET /api/v1/opportunities/{slug}

One opportunity

Parameters
Parameters Type Description
slug (required) string

Example

curl -s 'https://myeasoko.com/api/v1/opportunities/{slug}'

/indicators

GET /api/v1/indicators

Trade indicators with their latest value

Parameters
Parameters Type Description
theme string
key boolean 1 for key indicators
page integer Page number (from 1)
per_page integer Items per page, 25 by default, 100 at most

Example

curl -s 'https://myeasoko.com/api/v1/indicators?key=1'

GET /api/v1/indicators/{code}

One indicator and its observations

Parameters
Parameters Type Description
code (required) string
geography string Geography code (TG by default)

Example

curl -s 'https://myeasoko.com/api/v1/indicators/{code}'

API key

Access without a key is enough for most uses. Pro members create a key in their member area and send it in the X-Api-Key header: the limit then rises to 600 requests per minute. An unknown or revoked key receives a 401 error.

curl -s -H 'X-Api-Key: ick_xxxxxxxx.xxxxxxxx' 'https://myeasoko.com/api/v1/'

Errors and pagination

Lists are paginated (page and per_page parameters, 100 items at most) and return data, links and meta. Errors return a JSON object with message: 404 for a missing resource, 422 for invalid input (details in errors), 429 when the limit is reached (Retry-After header).

Duty and tax simulation

POST /simulations takes a JSON object (hs and value required) and returns the line by line detail, the totals and the warnings. The result is indicative and is not stored.

Reuse terms

The data may be reused freely provided you credit MyEASOKO and the date of consultation. Every record carries its sources, verification status and validation date: keep them with the data.