{"openapi":"3.1.0","info":{"title":"MyEASOKO API","version":"1.0.0","summary":"Open trade data, read only","description":"Public read-only API. Translated fields are {fr, en} objects. Limit: 60 requests per minute without a key, 600 with a Membre Pro key sent in the X-Api-Key header. Responses carry an ETag: send it back in If-None-Match to receive 304. Simulated amounts are indicative and do not bind the administration.","contact":{"name":"MyEASOKO","url":"https://myeasoko.com/contact"},"license":{"name":"Free reuse with attribution","url":"https://myeasoko.com/mentions-legales"}},"servers":[{"url":"https://myeasoko.com/api/v1"}],"security":[[],{"ApiKey":[]}],"paths":{"/procedures":{"get":{"summary":"Published procedures","operationId":"getProcedures","tags":["procedures"],"parameters":[{"name":"flow","in":"query","required":false,"description":"Flow: import, export, transit, company...","schema":{"type":"string","enum":["import","export","transit","company","certificate","other"]}},{"name":"chapter","in":"query","required":false,"description":"Harmonized System chapter (2 digits)","schema":{"type":"string"}},{"name":"institution","in":"query","required":false,"description":"Slug of the institution in charge","schema":{"type":"string"}},{"name":"q","in":"query","required":false,"description":"Text searched in the title","schema":{"type":"string"}},{"name":"page","in":"query","required":false,"description":"Page number (from 1)","schema":{"type":"integer"}},{"name":"per_page","in":"query","required":false,"description":"Items per page, 25 by default, 100 at most","schema":{"type":"integer"}}],"responses":{"200":{"description":"OK","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcedureList"}}}},"304":{"description":"Not modified (If-None-Match)"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/TooManyRequests"}}}},"/procedures/{slug}":{"get":{"summary":"Procedure detail: steps, documents, institutions, legal basis, sources, version and freshness","operationId":"getProceduresSlug","tags":["procedures"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Procedure"}}}},"304":{"description":"Not modified (If-None-Match)"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/TooManyRequests"}}}},"/institutions":{"get":{"summary":"Institutions directory","operationId":"getInstitutions","tags":["institutions"],"parameters":[{"name":"type","in":"query","required":false,"description":"Type (or comma separated list): port, border_post, ministry...","schema":{"type":"string"}},{"name":"city","in":"query","required":false,"schema":{"type":"string"}},{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"description":"Page number (from 1)","schema":{"type":"integer"}},{"name":"per_page","in":"query","required":false,"description":"Items per page, 25 by default, 100 at most","schema":{"type":"integer"}}],"responses":{"200":{"description":"OK","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstitutionList"}}}},"304":{"description":"Not modified (If-None-Match)"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/TooManyRequests"}}}},"/institutions.geojson":{"get":{"summary":"Located institutions as GeoJSON points","operationId":"getInstitutionsGeojson","tags":["institutions.geojson"],"parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"}},"content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/FeatureCollection"}}}},"304":{"description":"Not modified (If-None-Match)"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/TooManyRequests"}}}},"/institutions/{slug}":{"get":{"summary":"Institution detail with contacts, services and procedures","operationId":"getInstitutionsSlug","tags":["institutions"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Institution"}}}},"304":{"description":"Not modified (If-None-Match)"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/TooManyRequests"}}}},"/corridors":{"get":{"summary":"Transit corridors: GeoJSON LineStrings with their nodes","operationId":"getCorridors","tags":["corridors"],"parameters":[],"responses":{"200":{"description":"OK","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"}},"content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/FeatureCollection"}}}},"304":{"description":"Not modified (If-None-Match)"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/TooManyRequests"}}}},"/corridors/{slug}":{"get":{"summary":"One corridor (GeoJSON Feature)","operationId":"getCorridorsSlug","tags":["corridors"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"}},"content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/Feature"}}}},"304":{"description":"Not modified (If-None-Match)"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/TooManyRequests"}}}},"/regulatory-texts":{"get":{"summary":"Legal texts: laws, decrees, orders, circulars","operationId":"getRegulatoryTexts","tags":["regulatory-texts"],"parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string"}},{"name":"scope","in":"query","required":false,"description":"national, regional (ECOWAS, WAEMU...), international","schema":{"type":"string"}},{"name":"theme","in":"query","required":false,"schema":{"type":"string"}},{"name":"in_force","in":"query","required":false,"description":"1 for texts in force, 0 for the others","schema":{"type":"boolean"}},{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"description":"Page number (from 1)","schema":{"type":"integer"}},{"name":"per_page","in":"query","required":false,"description":"Items per page, 25 by default, 100 at most","schema":{"type":"integer"}}],"responses":{"200":{"description":"OK","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegulatoryTextList"}}}},"304":{"description":"Not modified (If-None-Match)"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/TooManyRequests"}}}},"/regulatory-texts/{slug}":{"get":{"summary":"One legal text","operationId":"getRegulatoryTextsSlug","tags":["regulatory-texts"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegulatoryText"}}}},"304":{"description":"Not modified (If-None-Match)"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/TooManyRequests"}}}},"/tariff-lines":{"get":{"summary":"Tariff lines: search by HS code prefix or by text","operationId":"getTariffLines","tags":["tariff-lines"],"parameters":[{"name":"code","in":"query","required":false,"description":"HS code prefix, with or without dots (1006 or 1006.30)","schema":{"type":"string"}},{"name":"q","in":"query","required":false,"description":"Text searched in the label and keywords","schema":{"type":"string"}},{"name":"chapter","in":"query","required":false,"schema":{"type":"string"}},{"name":"category","in":"query","required":false,"description":"Tariff category (customs duty band)","schema":{"type":"integer"}},{"name":"page","in":"query","required":false,"description":"Page number (from 1)","schema":{"type":"integer"}},{"name":"per_page","in":"query","required":false,"description":"Items per page, 25 by default, 100 at most","schema":{"type":"integer"}}],"responses":{"200":{"description":"OK","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TariffLineList"}}}},"304":{"description":"Not modified (If-None-Match)"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/TooManyRequests"}}}},"/tariff-lines/{code}":{"get":{"summary":"Tariff line with band rate and applicable levies","operationId":"getTariffLinesCode","tags":["tariff-lines"],"parameters":[{"name":"code","in":"path","required":true,"description":"Full HS code, with or without dots","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TariffLine"}}}},"304":{"description":"Not modified (If-None-Match)"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/TooManyRequests"}}}},"/levies":{"get":{"summary":"Duties, taxes and levies of the regime in force","operationId":"getLevies","tags":["levies"],"parameters":[{"name":"flow","in":"query","required":false,"schema":{"type":"string","enum":["import","export","transit"]}},{"name":"all","in":"query","required":false,"description":"1 to include inactive or out of period lines","schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LevyList"}}}},"304":{"description":"Not modified (If-None-Match)"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/TooManyRequests"}}}},"/simulations":{"post":{"summary":"Duty and tax simulation (indicative estimate)","operationId":"postSimulations","tags":["simulations"],"parameters":[],"responses":{"200":{"description":"OK","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Simulation"}}}},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/TooManyRequests"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimulationInput"}}}}}},"/opportunities":{"get":{"summary":"Opportunities: investment, tenders, events","operationId":"getOpportunities","tags":["opportunities"],"parameters":[{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["investment","tender","event","partner"]}},{"name":"sector","in":"query","required":false,"schema":{"type":"string"}},{"name":"open","in":"query","required":false,"description":"1 for opportunities still open only","schema":{"type":"boolean"}},{"name":"page","in":"query","required":false,"description":"Page number (from 1)","schema":{"type":"integer"}},{"name":"per_page","in":"query","required":false,"description":"Items per page, 25 by default, 100 at most","schema":{"type":"integer"}}],"responses":{"200":{"description":"OK","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpportunityList"}}}},"304":{"description":"Not modified (If-None-Match)"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/TooManyRequests"}}}},"/opportunities/{slug}":{"get":{"summary":"One opportunity","operationId":"getOpportunitiesSlug","tags":["opportunities"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Opportunity"}}}},"304":{"description":"Not modified (If-None-Match)"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/TooManyRequests"}}}},"/indicators":{"get":{"summary":"Trade indicators with their latest value","operationId":"getIndicators","tags":["indicators"],"parameters":[{"name":"theme","in":"query","required":false,"schema":{"type":"string"}},{"name":"key","in":"query","required":false,"description":"1 for key indicators","schema":{"type":"boolean"}},{"name":"page","in":"query","required":false,"description":"Page number (from 1)","schema":{"type":"integer"}},{"name":"per_page","in":"query","required":false,"description":"Items per page, 25 by default, 100 at most","schema":{"type":"integer"}}],"responses":{"200":{"description":"OK","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndicatorList"}}}},"304":{"description":"Not modified (If-None-Match)"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/TooManyRequests"}}}},"/indicators/{code}":{"get":{"summary":"One indicator and its observations","operationId":"getIndicatorsCode","tags":["indicators"],"parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string"}},{"name":"geography","in":"query","required":false,"description":"Geography code (TG by default)","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Indicator"}}}},"304":{"description":"Not modified (If-None-Match)"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/TooManyRequests"}}}}},"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"Optional Membre Pro key: raises the rate limit"}},"headers":{"ETag":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}},"responses":{"NotFound":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"errors":{"type":"object"}}}}}},"ValidationError":{"description":"Validation error","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"errors":{"type":"object"}}}}}},"TooManyRequests":{"description":"Rate limit reached","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"errors":{"type":"object"}}}}}}},"schemas":{"Translated":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}},"PageMeta":{"type":"object","properties":{"current_page":{"type":"integer"},"last_page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"}}},"Source":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":["string","null"]},"consulted_at":{"type":["string","null"]}}},"ProcedureSummary":{"type":"object","properties":{"slug":{"type":"string"},"title":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}},"summary":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}},"flow":{"type":"string"},"mode":{"type":"string"},"hs_chapters":{"type":"array","items":{"type":"string"}},"institution":{"type":["object","null"],"properties":{"slug":{"type":"string"},"acronym":{"type":["string","null"]},"name":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}},"links":{"type":"object","additionalProperties":{"type":["string","null"],"format":"uri"}}}},"data_status":{"type":"string","enum":["official","indicative","illustrative"]},"verification":{"type":"string","enum":["verified","to_verify"]},"version":{"type":"integer"},"freshness":{"type":"object","properties":{"status":{"type":"string","enum":["up_to_date","due_soon","to_verify","obsolete"]},"validated_on":{"type":["string","null"],"format":"date"},"next_review_on":{"type":["string","null"],"format":"date"},"published_at":{"type":["string","null"],"format":"date-time"}}},"links":{"type":"object","additionalProperties":{"type":["string","null"],"format":"uri"}}}},"ProcedureList":{"type":"object","required":["data","links","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ProcedureSummary"}},"links":{"type":"object"},"meta":{"$ref":"#/components/schemas/PageMeta"}}},"Procedure":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"slug":{"type":"string"},"title":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}},"summary":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}},"flow":{"type":"string"},"mode":{"type":"string"},"hs_chapters":{"type":"array","items":{"type":"string"}},"institution":{"type":["object","null"],"properties":{"slug":{"type":"string"},"acronym":{"type":["string","null"]},"name":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}},"links":{"type":"object","additionalProperties":{"type":["string","null"],"format":"uri"}}}},"data_status":{"type":"string","enum":["official","indicative","illustrative"]},"verification":{"type":"string","enum":["verified","to_verify"]},"version":{"type":"integer"},"freshness":{"type":"object","properties":{"status":{"type":"string","enum":["up_to_date","due_soon","to_verify","obsolete"]},"validated_on":{"type":["string","null"],"format":"date"},"next_review_on":{"type":["string","null"],"format":"date"},"published_at":{"type":["string","null"],"format":"date-time"}}},"links":{"type":"object","additionalProperties":{"type":["string","null"],"format":"uri"}},"steps":{"type":"array","items":{"type":"object","properties":{"position":{"type":"integer"},"title":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}},"description":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}},"institution":{"type":["object","null"],"properties":{"slug":{"type":"string"},"acronym":{"type":["string","null"]},"name":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}},"links":{"type":"object","additionalProperties":{"type":["string","null"],"format":"uri"}}}},"channel":{"type":"string"},"cost":{"type":"object"},"delay":{"type":"object"},"documents":{"type":"array","items":{"type":"object"}}}}},"documents":{"type":"array","items":{"type":"object"}},"institutions":{"type":"array","items":{"type":["object","null"],"properties":{"slug":{"type":"string"},"acronym":{"type":["string","null"]},"name":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}},"links":{"type":"object","additionalProperties":{"type":["string","null"],"format":"uri"}}}}},"legal_basis":{"type":"array","items":{"type":"object"}},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Source"}},"versions":{"type":"array","items":{"type":"object","properties":{"version":{"type":"integer"},"published_at":{"type":"string"},"change_note":{"type":["string","null"]}}}},"totals":{"type":"object"}}}}},"InstitutionSummary":{"type":"object","properties":{"slug":{"type":"string"},"acronym":{"type":["string","null"]},"name":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}},"type":{"type":"string"},"city":{"type":["string","null"]},"coordinates":{"type":["object","null"],"properties":{"lat":{"type":"number"},"lng":{"type":"number"}}},"freshness":{"type":"string"},"links":{"type":"object","additionalProperties":{"type":["string","null"],"format":"uri"}}}},"InstitutionList":{"type":"object","required":["data","links","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/InstitutionSummary"}},"links":{"type":"object"},"meta":{"$ref":"#/components/schemas/PageMeta"}}},"Institution":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"slug":{"type":"string"},"acronym":{"type":["string","null"]},"name":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}},"type":{"type":"string"},"city":{"type":["string","null"]},"coordinates":{"type":["object","null"],"properties":{"lat":{"type":"number"},"lng":{"type":"number"}}},"freshness":{"type":"string"},"links":{"type":"object","additionalProperties":{"type":["string","null"],"format":"uri"}}}}}},"RegulatoryTextSummary":{"type":"object","properties":{"slug":{"type":"string"},"type":{"type":"string"},"number":{"type":["string","null"]},"title":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}},"date_signed":{"type":["string","null"],"format":"date"},"in_force":{"type":"boolean"},"legal_status":{"type":"string"},"links":{"type":"object","additionalProperties":{"type":["string","null"],"format":"uri"}}}},"RegulatoryTextList":{"type":"object","required":["data","links","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RegulatoryTextSummary"}},"links":{"type":"object"},"meta":{"$ref":"#/components/schemas/PageMeta"}}},"RegulatoryText":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"slug":{"type":"string"},"type":{"type":"string"},"number":{"type":["string","null"]},"title":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}},"date_signed":{"type":["string","null"],"format":"date"},"in_force":{"type":"boolean"},"legal_status":{"type":"string"},"links":{"type":"object","additionalProperties":{"type":["string","null"],"format":"uri"}}}}}},"Levy":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}},"kind":{"type":"string"},"flow":{"type":"string"},"calculation":{"type":"string"},"rate":{"type":["number","null"]},"base":{"type":"string"},"exempt_origins":{"type":"array","items":{"type":"string"}},"effective_from":{"type":["string","null"],"format":"date"},"data_status":{"type":["string","null"]}}},"LevyList":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Levy"}},"meta":{"type":"object"}}},"TariffLineSummary":{"type":"object","properties":{"hs_code":{"type":"string"},"hs_digits":{"type":"string"},"label":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}},"category":{"type":"integer"},"duty_rate":{"type":["number","null"]},"links":{"type":"object","additionalProperties":{"type":["string","null"],"format":"uri"}}}},"TariffLineList":{"type":"object","required":["data","links","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TariffLineSummary"}},"links":{"type":"object"},"meta":{"$ref":"#/components/schemas/PageMeta"}}},"TariffLine":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"hs_code":{"type":"string"},"hs_digits":{"type":"string"},"label":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}},"category":{"type":"integer"},"duty_rate":{"type":["number","null"]},"links":{"type":"object","additionalProperties":{"type":["string","null"],"format":"uri"}},"band":{"type":["object","null"],"properties":{"category":{"type":"integer"},"rate":{"type":"number"},"label":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}}}},"applicable_levies":{"type":"array","items":{"$ref":"#/components/schemas/Levy"}},"excise":{"type":"object"},"vat":{"type":"object"}}}}},"OpportunitySummary":{"type":"object","properties":{"slug":{"type":"string"},"kind":{"type":"string"},"title":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}},"summary":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}},"deadline":{"type":["string","null"],"format":"date"},"closed":{"type":"boolean"},"links":{"type":"object","additionalProperties":{"type":["string","null"],"format":"uri"}}}},"OpportunityList":{"type":"object","required":["data","links","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OpportunitySummary"}},"links":{"type":"object"},"meta":{"$ref":"#/components/schemas/PageMeta"}}},"Opportunity":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"slug":{"type":"string"},"kind":{"type":"string"},"title":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}},"summary":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}},"deadline":{"type":["string","null"],"format":"date"},"closed":{"type":"boolean"},"links":{"type":"object","additionalProperties":{"type":["string","null"],"format":"uri"}}}}}},"IndicatorSummary":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}},"unit":{"type":"string"},"frequency":{"type":"string"},"source":{"type":"object"},"latest":{"type":["object","null"],"properties":{"period":{"type":"string"},"value":{"type":["number","null"]}}},"links":{"type":"object","additionalProperties":{"type":["string","null"],"format":"uri"}}}},"IndicatorList":{"type":"object","required":["data","links","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/IndicatorSummary"}},"links":{"type":"object"},"meta":{"$ref":"#/components/schemas/PageMeta"}}},"Indicator":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"object","properties":{"fr":{"type":["string","null"]},"en":{"type":["string","null"]}}},"unit":{"type":"string"},"frequency":{"type":"string"},"source":{"type":"object"},"latest":{"type":["object","null"],"properties":{"period":{"type":"string"},"value":{"type":["number","null"]}}},"links":{"type":"object","additionalProperties":{"type":["string","null"],"format":"uri"}},"observations":{"type":"array","items":{"type":"object","properties":{"period":{"type":"string"},"geography":{"type":"string"},"value":{"type":["number","null"]},"status":{"type":"string"}}}}}}}},"Feature":{"type":"object","required":["type","geometry","properties"],"properties":{"type":{"const":"Feature"},"geometry":{"type":["object","null"],"properties":{"type":{"type":"string","enum":["Point","LineString"]},"coordinates":{"type":"array"}}},"properties":{"type":"object"}}},"FeatureCollection":{"type":"object","required":["type","features"],"properties":{"type":{"const":"FeatureCollection"},"features":{"type":"array","items":{"$ref":"#/components/schemas/Feature"}}}},"SimulationInput":{"type":"object","required":["hs","value"],"properties":{"hs":{"type":"string","description":"Full HS code","examples":["1006.30.00.00"]},"value":{"type":"number","exclusiveMinimum":0,"description":"Value of the goods in the given currency"},"currency":{"type":"string","examples":["XOF","EUR","USD"]},"rate":{"type":"number","description":"Exchange rate to use instead of the indicative one"},"incoterm":{"type":"string","enum":["CIF","FOB","CFR","EXW","FCA","CIP","CPT","DAP"]},"freight":{"type":"number"},"insurance":{"type":"number"},"origin":{"type":"string","enum":["third","ecowas","uemoa"]},"sle":{"type":"boolean","description":"Goods approved under the trade liberalisation scheme with a certificate of origin"},"quantity":{"type":"number"},"weight_tonnes":{"type":"number"},"containers":{"type":"integer"},"cars":{"type":"integer"},"trucks":{"type":"integer"},"has_tax_card":{"type":"boolean"},"has_tax_certificate":{"type":"boolean"},"flow":{"type":"string","enum":["import","export"]},"date":{"type":"string","format":"date"}}},"Simulation":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"regime":{"type":"string"},"currency":{"type":"string"},"hs_code":{"type":"string"},"customs_value":{"type":"number"},"lines":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"},"rate":{"type":["number","null"]},"base":{"type":["number","null"]},"amount":{"type":"number"},"data_status":{"type":["string","null"]}}}},"total":{"type":"number"},"total_excluding_advances":{"type":"number"},"share_of_value":{"type":"number"},"landed_value":{"type":"number"},"skipped":{"type":"array"},"not_included":{"type":"array"},"warnings":{"type":"array","items":{"type":"string"}}}}}}}}}