{"openapi":"3.1.0","info":{"title":"UpGrowth Algerian business data API","version":"1.0","summary":"Public Algerian business data for websites and AI assistants, with reference data for Tunisia and Morocco.","description":"Public Algerian business data maintained by UpGrowth (https://www.upgrowth.dz): the CNRC activity codes with their status, the ANAE list of auto-entrepreneur activities, the wilayas, the index of the Journal Officiel, the sections and chapters of the customs tariff, the legal forms of company creation with the State fees, 2026 estimates of the CASNOS contribution and of the IFU flat tax, and the 2026 tax rates, the social contributions and the key public bodies. Tunisia (country TN) has five datasets of its own: the governorates, the legal forms of company creation with the registration steps and official fees, the 2026 tax rates, the social contributions and the key public bodies. It also has the index of its official gazette, the Journal Officiel de la République Tunisienne (JORT), from 1956, through the Journal Officiel routes (French and Arabic editions, no summaries, no direct PDF links). Morocco (country MA) has the same five datasets: its 12 regions, the legal forms of company creation with the creation steps and official fees, the 2026 tax rates, the social contributions and the key public bodies. It also has the index of its official gazette, the Bulletin officiel, from 1912, through the Journal Officiel routes (French edition, no summaries). Only public data is served, never personal or client data.\n\n## Free tier\n\nNo key is needed. Each IP address may make 100 calls per UTC day. When you use the data, credit UpGrowth with a link to https://www.upgrowth.dz: the exact text is in meta.attribution of every answer. Past the limit the API answers 429 free_quota_exceeded until 00:00 UTC.\n\n## Higher limits\n\nKeys with a higher daily limit are issued by UpGrowth on request: https://www.upgrowth.dz/api. Send the key as `Authorization: Bearer ugk_...`. A malformed or revoked key is refused with 401 invalid_key, it never falls back to the free tier.\n\n## Plans\n\nA key is issued under a plan. professional: one user key, 500 calls per UTC day. team: up to 5 user keys and 1 integration key, 1,000 calls per day per key, and 5,000 calls per UTC month on the integration key. api: integration keys only, any number of them, 5,000 calls per day per key and 25,000 calls per UTC month for the whole account. licence: any number of keys, 500,000 calls per day per key. The older tier names still exist: starter and pro mean professional, business means team, enterprise means licence. X-UpGrowth-Tier names the plan, or the older tier name of an account that has not been moved to a plan yet. A call made with a key also carries X-UpGrowth-Plan, always the canonical plan.\n\nPast the daily limit of a key the API answers 429 quota_exceeded until 00:00 UTC, and past a monthly limit 429 monthly_quota_exceeded until the first day of the next month. A key can be refused with 403 dataset_unavailable for the data of a country that its account may not read.\n\n## Countries\n\nEvery data route takes an optional `country`, an ISO 3166-1 alpha-2 code in any letter case. It defaults to DZ (Algeria). Three countries are live today: DZ, which has every route (tax-rates, social-contributions and institutions included), TN (Tunisia) with five datasets (the wilayas routes answer with its governorates, then creation, tax-rates, social-contributions and institutions) and the index of its official gazette, and MA (Morocco) with the same five (the wilayas routes answer with its 12 regions) and the index of its official gazette (for both, the three Journal Officiel routes that list years and issues, not the search). A country that is not live, or a dataset the country does not have (/activities for TN), is answered with 404 country_not_available and a message that lists the live countries. `GET /countries` lists every country with its status (live or planned) and its datasets. Every successful answer says which country it is about in meta.country. Examples: `GET https://www.upgrowth.dz/api/v1/tax-rates` (Algeria, by default), `GET https://www.upgrowth.dz/api/v1/social-contributions?country=DZ&lang=en`, `GET https://www.upgrowth.dz/api/v1/wilayas?country=TN`, `GET https://www.upgrowth.dz/api/v1/tax-rates?country=TN&lang=en`, `GET https://www.upgrowth.dz/api/v1/institutions?country=TN`, `GET https://www.upgrowth.dz/api/v1/wilayas?country=MA`, `GET https://www.upgrowth.dz/api/v1/tax-rates?country=MA&lang=en`, `GET https://www.upgrowth.dz/api/v1/journal-officiel/years?country=MA`, `GET https://www.upgrowth.dz/api/v1/journal-officiel/2025/issues?country=TN`.\n\n## Answers\n\nEvery answer is `{ \"data\": ..., \"meta\": ... }`. meta names the dataset and its source, gives its licence when it has one (CC BY 4.0 for the datasets UpGrowth publishes under that licence, null for the others), the attribution text, the date of the data and a one-sentence call to action with a contact link (help) that an application or an assistant may pass on to its user. An error is `{ \"error\": { \"code\": ..., \"message\": ... } }` with the HTTP status and is never cached. Every answered call carries X-RateLimit-Limit, X-RateLimit-Remaining and X-UpGrowth-Tier. Short bursts are limited too, about 30 requests per 10 seconds per address. Data answers may be cached for 5 minutes.\n\nExample: `GET https://www.upgrowth.dz/api/v1/activities?q=pharmacie&limit=5`\n\n## MCP\n\nThe same data is served to AI assistants by the MCP server at https://www.upgrowth.dz/mcp (Streamable HTTP, same keys). The free tier is the same 100 calls per UTC day, counted for each MCP session when the client sends the Mcp-Session-Id header that initialize returns, and for each IP address otherwise. Each tool there has the name of the operationId of the matching route here.","contact":{"name":"UpGrowth","url":"https://www.upgrowth.dz/api"}},"servers":[{"url":"https://www.upgrowth.dz/api/v1","description":"UpGrowth public data API"}],"tags":[{"name":"Activities","description":"The CNRC nomenclature of commercial activities."},{"name":"ANAE","description":"The ANAE nomenclature of auto-entrepreneur activities."},{"name":"Wilayas","description":"The wilayas of Algeria, the governorates of Tunisia and the regions of Morocco."},{"name":"Journal Officiel","description":"The index and the summaries of the official gazette of Algeria, and the index of the Bulletin officiel of Morocco (country=MA) and of the JORT of Tunisia (country=TN)."},{"name":"Customs tariff","description":"The sections and chapters of the Algerian customs tariff."},{"name":"Company creation","description":"The legal forms of company creation and the State fees (Algeria, Tunisia and Morocco)."},{"name":"Calculators","description":"Estimates of the 2026 CASNOS contribution and IFU flat tax."},{"name":"Tax rates","description":"The 2026 business tax rates of a country (Algeria, Tunisia and Morocco)."},{"name":"Social contributions","description":"The social contributions and payroll levies (Algeria, Tunisia and Morocco)."},{"name":"Institutions","description":"The key public bodies a company deals with (Algeria, Tunisia and Morocco)."},{"name":"Countries","description":"The countries the data covers and what each one has."},{"name":"Meta","description":"The index and this document. They count no quota."}],"externalDocs":{"description":"Documentation, API keys and the MCP server","url":"https://www.upgrowth.dz/api"},"security":[{},{"bearerAuth":[]}],"paths":{"/":{"get":{"tags":["Meta"],"operationId":"get_api_index","summary":"API index","description":"The name and version of the API, the links to its documentation, this document and the MCP server, and the list of its endpoints. It counts no quota.","security":[],"responses":{"200":{"description":"The index of the API.","content":{"application/json":{"schema":{"type":"object","required":["name","version","docs","openapi","mcp","endpoints"],"properties":{"name":{"type":"string"},"title":{"type":"string"},"version":{"type":"string"},"docs":{"type":"string","format":"uri"},"openapi":{"type":"string","format":"uri"},"mcp":{"type":"string","format":"uri"},"base_url":{"type":"string","format":"uri"},"endpoints":{"type":"array","items":{"type":"object","description":"One route: its method, path, query parameters and summary."}}}}}}},"429":{"$ref":"#/components/responses/TooManyRequests"}}}},"/openapi.json":{"get":{"tags":["Meta"],"operationId":"get_openapi_document","summary":"OpenAPI document","description":"This OpenAPI 3.1 document. It counts no quota.","security":[],"responses":{"200":{"description":"The OpenAPI 3.1 document.","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"$ref":"#/components/responses/TooManyRequests"}}}},"/activities":{"get":{"tags":["Activities"],"operationId":"search_activity_codes","summary":"Search CNRC activity codes","description":"Search the CNRC nomenclature of commercial activities of Algeria by code prefix or by words of the label in French, Arabic or English. Filter by status or sector. Paginated: see meta.total.","parameters":[{"name":"q","in":"query","required":false,"description":"Search text, at most 100 characters. Digits only, for example 5011: matches the activity codes that start with them. Words: every word must start a word of the activity label in French, Arabic or English, so a few specific words work best. Accents and letter case are ignored. Leave it out to browse with the other filters.","schema":{"type":"string","maxLength":100}},{"name":"lang","in":"query","required":false,"description":"Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).","schema":{"type":"string","enum":["fr","ar","en"],"default":"fr"}},{"name":"status","in":"query","required":false,"description":"Keep only activities with this status: libre (free, no specific authorization needed to register), reglementee (regulated, a prior authorization or permit is required) or bloquee (blocked, cannot be registered in the trade register).","schema":{"type":"string","enum":["libre","reglementee","bloquee"]}},{"name":"sector","in":"query","required":false,"description":"Keep only activities of this CNRC sector, given as its digit: 1 goods production, 2 artisanal production, 3 wholesale distribution, 4 import for resale, 5 retail distribution, 6 services, 7 export.","schema":{"type":"string","enum":["1","2","3","4","5","6","7"]}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results in the page, from 1 to 100. Defaults to 20.","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip, from 0 to 10000, to read the next pages. Defaults to 0. meta.total tells how many results match.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"name":"country","in":"query","required":false,"description":"Country of the data, an ISO 3166-1 alpha-2 code in any letter case: DZ for Algeria, the default, TN for Tunisia or MA for Morocco. Only live countries answer: list_countries shows them and their datasets. Any other country, or a dataset the country does not have, returns country_not_available.","schema":{"type":"string","pattern":"^[A-Za-z]{2}$","default":"DZ"},"examples":{"algeria":{"summary":"Algeria, the default","value":"DZ"},"tunisia":{"summary":"Tunisia","value":"TN"},"morocco":{"summary":"Morocco","value":"MA"}}}],"responses":{"200":{"description":"The data, with its meta.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-UpGrowth-Tier":{"$ref":"#/components/headers/X-UpGrowth-Tier"}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Activity"}},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/activities/{code}":{"get":{"tags":["Activities"],"operationId":"get_activity_code","summary":"Get a CNRC activity code","description":"One activity of the CNRC nomenclature: status, labels in three languages, sector, group, page URL and the official text of the code in French.","parameters":[{"name":"code","in":"path","required":true,"description":"CNRC activity code, six digits, for example 101101. Find codes with search_activity_codes.","schema":{"type":"string","pattern":"^[0-9]{6}$"}},{"name":"lang","in":"query","required":false,"description":"Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).","schema":{"type":"string","enum":["fr","ar","en"],"default":"fr"}},{"name":"country","in":"query","required":false,"description":"Country of the data, an ISO 3166-1 alpha-2 code in any letter case: DZ for Algeria, the default, TN for Tunisia or MA for Morocco. Only live countries answer: list_countries shows them and their datasets. Any other country, or a dataset the country does not have, returns country_not_available.","schema":{"type":"string","pattern":"^[A-Za-z]{2}$","default":"DZ"},"examples":{"algeria":{"summary":"Algeria, the default","value":"DZ"},"tunisia":{"summary":"Tunisia","value":"TN"},"morocco":{"summary":"Morocco","value":"MA"}}}],"responses":{"200":{"description":"The data, with its meta.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-UpGrowth-Tier":{"$ref":"#/components/headers/X-UpGrowth-Tier"}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/ActivityDetail"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/anae-activities":{"get":{"tags":["ANAE"],"operationId":"search_anae_activities","summary":"Search ANAE activities","description":"Search the ANAE list of activities open to the auto-entrepreneur status by code prefix or by label words, optionally within one domain. Paginated: see meta.total.","parameters":[{"name":"q","in":"query","required":false,"description":"Search text, at most 100 characters. Digits only: matches the ANAE codes that start with them. Words: every word must start a word of the activity label in French, Arabic or English. Accents and letter case are ignored. Leave it out to browse by domain.","schema":{"type":"string","maxLength":100}},{"name":"lang","in":"query","required":false,"description":"Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).","schema":{"type":"string","enum":["fr","ar","en"],"default":"fr"}},{"name":"domain","in":"query","required":false,"description":"Keep only activities of this ANAE domain, given by its six-digit domain code (it ends in 0000), for example 010000 for Advice, Expertise and Training. Every result carries its domain.","schema":{"type":"string","pattern":"^[0-9]{6}$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results in the page, from 1 to 100. Defaults to 20.","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip, from 0 to 10000, to read the next pages. Defaults to 0. meta.total tells how many results match.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"name":"country","in":"query","required":false,"description":"Country of the data, an ISO 3166-1 alpha-2 code in any letter case: DZ for Algeria, the default, TN for Tunisia or MA for Morocco. Only live countries answer: list_countries shows them and their datasets. Any other country, or a dataset the country does not have, returns country_not_available.","schema":{"type":"string","pattern":"^[A-Za-z]{2}$","default":"DZ"},"examples":{"algeria":{"summary":"Algeria, the default","value":"DZ"},"tunisia":{"summary":"Tunisia","value":"TN"},"morocco":{"summary":"Morocco","value":"MA"}}}],"responses":{"200":{"description":"The data, with its meta.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-UpGrowth-Tier":{"$ref":"#/components/headers/X-UpGrowth-Tier"}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AnaeActivity"}},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/anae-activities/{code}":{"get":{"tags":["ANAE"],"operationId":"get_anae_activity","summary":"Get an ANAE activity","description":"One activity of the ANAE nomenclature with its labels in three languages and its domain.","parameters":[{"name":"code","in":"path","required":true,"description":"ANAE activity code, six digits, for example 010101. Find codes with search_anae_activities.","schema":{"type":"string","pattern":"^[0-9]{6}$"}},{"name":"lang","in":"query","required":false,"description":"Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).","schema":{"type":"string","enum":["fr","ar","en"],"default":"fr"}},{"name":"country","in":"query","required":false,"description":"Country of the data, an ISO 3166-1 alpha-2 code in any letter case: DZ for Algeria, the default, TN for Tunisia or MA for Morocco. Only live countries answer: list_countries shows them and their datasets. Any other country, or a dataset the country does not have, returns country_not_available.","schema":{"type":"string","pattern":"^[A-Za-z]{2}$","default":"DZ"},"examples":{"algeria":{"summary":"Algeria, the default","value":"DZ"},"tunisia":{"summary":"Tunisia","value":"TN"},"morocco":{"summary":"Morocco","value":"MA"}}}],"responses":{"200":{"description":"The data, with its meta.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-UpGrowth-Tier":{"$ref":"#/components/headers/X-UpGrowth-Tier"}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/AnaeActivity"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/wilayas":{"get":{"tags":["Wilayas"],"operationId":"list_wilayas","summary":"List the wilayas","description":"The wilayas of Algeria with their codes, names, capital, region and population, and the local CNRC and CASNOS offices. For Tunisia (country=TN): its 24 governorates. For Morocco (country=MA): its 12 regions.","parameters":[{"name":"lang","in":"query","required":false,"description":"Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).","schema":{"type":"string","enum":["fr","ar","en"],"default":"fr"}},{"name":"country","in":"query","required":false,"description":"Country of the data, an ISO 3166-1 alpha-2 code in any letter case: DZ for Algeria, the default, TN for Tunisia or MA for Morocco. Only live countries answer: list_countries shows them and their datasets. Any other country, or a dataset the country does not have, returns country_not_available.","schema":{"type":"string","pattern":"^[A-Za-z]{2}$","default":"DZ"},"examples":{"algeria":{"summary":"Algeria, the default","value":"DZ"},"tunisia":{"summary":"Tunisia","value":"TN"},"morocco":{"summary":"Morocco","value":"MA"}}}],"responses":{"200":{"description":"The data, with its meta.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-UpGrowth-Tier":{"$ref":"#/components/headers/X-UpGrowth-Tier"}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Wilaya"}},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/wilayas/{code}":{"get":{"tags":["Wilayas"],"operationId":"get_wilaya","summary":"Get a wilaya","description":"One wilaya by its two-digit code, one Tunisian governorate (country=TN) or one Moroccan region (country=MA).","parameters":[{"name":"code","in":"path","required":true,"description":"Wilaya code, two digits, for example 16 for Alger or 31 for Oran. For Tunisia (country TN) it is the governorate code, two digits, the number of its ISO 3166-2 code, for example 11 for Tunis (TN-11); TN-11 is accepted too. For Morocco (country MA) it is the region code, two digits, the number of its ISO 3166-2 code, for example 06 for Casablanca-Settat (MA-06); MA-06 is accepted too. Find codes with list_wilayas.","schema":{"type":"string","pattern":"^([A-Za-z]{2}-)?[0-9]{2}$"}},{"name":"lang","in":"query","required":false,"description":"Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).","schema":{"type":"string","enum":["fr","ar","en"],"default":"fr"}},{"name":"country","in":"query","required":false,"description":"Country of the data, an ISO 3166-1 alpha-2 code in any letter case: DZ for Algeria, the default, TN for Tunisia or MA for Morocco. Only live countries answer: list_countries shows them and their datasets. Any other country, or a dataset the country does not have, returns country_not_available.","schema":{"type":"string","pattern":"^[A-Za-z]{2}$","default":"DZ"},"examples":{"algeria":{"summary":"Algeria, the default","value":"DZ"},"tunisia":{"summary":"Tunisia","value":"TN"},"morocco":{"summary":"Morocco","value":"MA"}}}],"responses":{"200":{"description":"The data, with its meta.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-UpGrowth-Tier":{"$ref":"#/components/headers/X-UpGrowth-Tier"}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Wilaya"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/journal-officiel/years":{"get":{"tags":["Journal Officiel"],"operationId":"list_jo_years","summary":"List the years of the Journal Officiel","description":"The years covered by the index of the Journal Officiel (JORA), the official gazette of Algeria, from 1962, newest first, with their issue counts. Morocco (country=MA): the years of the Bulletin officiel, from 1912. Tunisia (country=TN): the years of the JORT, from 1956.","parameters":[{"name":"lang","in":"query","required":false,"description":"Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).","schema":{"type":"string","enum":["fr","ar","en"],"default":"fr"}},{"name":"country","in":"query","required":false,"description":"Country of the data, an ISO 3166-1 alpha-2 code in any letter case: DZ for Algeria, the default, TN for Tunisia or MA for Morocco. Only live countries answer: list_countries shows them and their datasets. Any other country, or a dataset the country does not have, returns country_not_available.","schema":{"type":"string","pattern":"^[A-Za-z]{2}$","default":"DZ"},"examples":{"algeria":{"summary":"Algeria, the default","value":"DZ"},"tunisia":{"summary":"Tunisia","value":"TN"},"morocco":{"summary":"Morocco","value":"MA"}}}],"responses":{"200":{"description":"The data, with its meta.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-UpGrowth-Tier":{"$ref":"#/components/headers/X-UpGrowth-Tier"}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/JoYear"}},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/journal-officiel/search":{"get":{"tags":["Journal Officiel"],"operationId":"search_jo_titles","summary":"Search Journal Officiel titles","description":"Search the official titles listed in the issue summaries UpGrowth holds, optionally within one year. Paginated: see meta.total. Algeria only: country=MA answers country_not_available, and so does country=TN.","parameters":[{"name":"q","in":"query","required":true,"description":"Words to look for in the official titles of the texts, for example loi de finances 2026. Every word must start a word of the title; accents and letter case are ignored. From 2 to 100 characters.","schema":{"type":"string","minLength":2,"maxLength":100}},{"name":"lang","in":"query","required":false,"description":"Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).","schema":{"type":"string","enum":["fr","ar","en"],"default":"fr"}},{"name":"year","in":"query","required":false,"description":"Search only the issues of this year (1962 or later). Leave it out to search every year.","schema":{"type":"integer","minimum":1962,"maximum":2100}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results in the page, from 1 to 100. Defaults to 20.","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip, from 0 to 10000, to read the next pages. Defaults to 0. meta.total tells how many results match.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"name":"country","in":"query","required":false,"description":"Country of the data, an ISO 3166-1 alpha-2 code in any letter case: DZ for Algeria, the default, TN for Tunisia or MA for Morocco. Only live countries answer: list_countries shows them and their datasets. Any other country, or a dataset the country does not have, returns country_not_available.","schema":{"type":"string","pattern":"^[A-Za-z]{2}$","default":"DZ"},"examples":{"algeria":{"summary":"Algeria, the default","value":"DZ"},"tunisia":{"summary":"Tunisia","value":"TN"},"morocco":{"summary":"Morocco","value":"MA"}}}],"responses":{"200":{"description":"The data, with its meta.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-UpGrowth-Tier":{"$ref":"#/components/headers/X-UpGrowth-Tier"}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/JoTitleHit"}},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/journal-officiel/{year}/issues":{"get":{"tags":["Journal Officiel"],"operationId":"list_jo_issues","summary":"List the issues of a year","description":"The issues of one year, with the links to their official French and Arabic editions. Morocco (country=MA): the Bulletin officiel issues with dates and the French edition link, supplements (bis, ter) included. Tunisia (country=TN): the JORT issues with dates, no PDF link.","parameters":[{"name":"year","in":"path","required":true,"description":"Year of the gazette: the Journal Officiel from 1962 for Algeria, the Bulletin officiel from 1912 for Morocco (country MA), the Journal Officiel de la République Tunisienne from 1956 for Tunisia (country TN). Find the years covered with list_jo_years.","schema":{"type":"integer","minimum":1912,"maximum":2100}},{"name":"lang","in":"query","required":false,"description":"Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).","schema":{"type":"string","enum":["fr","ar","en"],"default":"fr"}},{"name":"country","in":"query","required":false,"description":"Country of the data, an ISO 3166-1 alpha-2 code in any letter case: DZ for Algeria, the default, TN for Tunisia or MA for Morocco. Only live countries answer: list_countries shows them and their datasets. Any other country, or a dataset the country does not have, returns country_not_available.","schema":{"type":"string","pattern":"^[A-Za-z]{2}$","default":"DZ"},"examples":{"algeria":{"summary":"Algeria, the default","value":"DZ"},"tunisia":{"summary":"Tunisia","value":"TN"},"morocco":{"summary":"Morocco","value":"MA"}}}],"responses":{"200":{"description":"The data, with its meta.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-UpGrowth-Tier":{"$ref":"#/components/headers/X-UpGrowth-Tier"}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/JoYearIssues"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/journal-officiel/{year}/{number}":{"get":{"tags":["Journal Officiel"],"operationId":"get_jo_issue","summary":"Get a Journal Officiel issue","description":"One issue with its official links and, where UpGrowth holds it, its summary (else data.sommaire is null and data.note says why). Morocco (country=MA): the Bulletin officiel issue with its date and supplements. Tunisia (country=TN): the JORT issue with its date, no PDF link.","parameters":[{"name":"year","in":"path","required":true,"description":"Year of the gazette: the Journal Officiel from 1962 for Algeria, the Bulletin officiel from 1912 for Morocco (country MA), the Journal Officiel de la République Tunisienne from 1956 for Tunisia (country TN). Find the years covered with list_jo_years.","schema":{"type":"integer","minimum":1912,"maximum":2100}},{"name":"number","in":"path","required":true,"description":"Number of the issue. Algeria: its number within the year, starting at 1. Morocco: the number of the Bulletin officiel, a continuous series, for example 7522. Tunisia: its number within the year, for example 97. Find the numbers with list_jo_issues.","schema":{"type":"integer","minimum":1,"maximum":9999}},{"name":"lang","in":"query","required":false,"description":"Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).","schema":{"type":"string","enum":["fr","ar","en"],"default":"fr"}},{"name":"country","in":"query","required":false,"description":"Country of the data, an ISO 3166-1 alpha-2 code in any letter case: DZ for Algeria, the default, TN for Tunisia or MA for Morocco. Only live countries answer: list_countries shows them and their datasets. Any other country, or a dataset the country does not have, returns country_not_available.","schema":{"type":"string","pattern":"^[A-Za-z]{2}$","default":"DZ"},"examples":{"algeria":{"summary":"Algeria, the default","value":"DZ"},"tunisia":{"summary":"Tunisia","value":"TN"},"morocco":{"summary":"Morocco","value":"MA"}}}],"responses":{"200":{"description":"The data, with its meta.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-UpGrowth-Tier":{"$ref":"#/components/headers/X-UpGrowth-Tier"}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/JoIssue"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/customs-tariff/sections":{"get":{"tags":["Customs tariff"],"operationId":"customs_tariff_sections","summary":"List customs tariff sections","description":"The sections of the Algerian customs tariff (harmonized system) with their titles. It holds no duty rates.","parameters":[{"name":"lang","in":"query","required":false,"description":"Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).","schema":{"type":"string","enum":["fr","ar","en"],"default":"fr"}},{"name":"country","in":"query","required":false,"description":"Country of the data, an ISO 3166-1 alpha-2 code in any letter case: DZ for Algeria, the default, TN for Tunisia or MA for Morocco. Only live countries answer: list_countries shows them and their datasets. Any other country, or a dataset the country does not have, returns country_not_available.","schema":{"type":"string","pattern":"^[A-Za-z]{2}$","default":"DZ"},"examples":{"algeria":{"summary":"Algeria, the default","value":"DZ"},"tunisia":{"summary":"Tunisia","value":"TN"},"morocco":{"summary":"Morocco","value":"MA"}}}],"responses":{"200":{"description":"The data, with its meta.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-UpGrowth-Tier":{"$ref":"#/components/headers/X-UpGrowth-Tier"}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TariffSection"}},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/customs-tariff/sections/{section}/chapters":{"get":{"tags":["Customs tariff"],"operationId":"customs_tariff_chapters","summary":"List the chapters of a section","description":"The two-digit chapters of one customs tariff section with their titles. It holds no duty rates.","parameters":[{"name":"section","in":"path","required":true,"description":"Section of the customs tariff in capital Roman numerals, for example XVI. Find the sections with customs_tariff_sections.","schema":{"type":"string","pattern":"^[IVX]{1,6}$"}},{"name":"lang","in":"query","required":false,"description":"Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).","schema":{"type":"string","enum":["fr","ar","en"],"default":"fr"}},{"name":"country","in":"query","required":false,"description":"Country of the data, an ISO 3166-1 alpha-2 code in any letter case: DZ for Algeria, the default, TN for Tunisia or MA for Morocco. Only live countries answer: list_countries shows them and their datasets. Any other country, or a dataset the country does not have, returns country_not_available.","schema":{"type":"string","pattern":"^[A-Za-z]{2}$","default":"DZ"},"examples":{"algeria":{"summary":"Algeria, the default","value":"DZ"},"tunisia":{"summary":"Tunisia","value":"TN"},"morocco":{"summary":"Morocco","value":"MA"}}}],"responses":{"200":{"description":"The data, with its meta.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-UpGrowth-Tier":{"$ref":"#/components/headers/X-UpGrowth-Tier"}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/TariffChapters"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/creation/legal-forms":{"get":{"tags":["Company creation"],"operationId":"creation_legal_forms","summary":"List legal forms and State fees","description":"The legal forms for creating a company in Algeria with the partners allowed, the minimum capital and the State fees. It holds no fee of a service provider. Tunisia (country=TN) and Morocco (country=MA): the legal forms, the creation steps and the official fees.","parameters":[{"name":"lang","in":"query","required":false,"description":"Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).","schema":{"type":"string","enum":["fr","ar","en"],"default":"fr"}},{"name":"country","in":"query","required":false,"description":"Country of the data, an ISO 3166-1 alpha-2 code in any letter case: DZ for Algeria, the default, TN for Tunisia or MA for Morocco. Only live countries answer: list_countries shows them and their datasets. Any other country, or a dataset the country does not have, returns country_not_available.","schema":{"type":"string","pattern":"^[A-Za-z]{2}$","default":"DZ"},"examples":{"algeria":{"summary":"Algeria, the default","value":"DZ"},"tunisia":{"summary":"Tunisia","value":"TN"},"morocco":{"summary":"Morocco","value":"MA"}}}],"responses":{"200":{"description":"The data, with its meta.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-UpGrowth-Tier":{"$ref":"#/components/headers/X-UpGrowth-Tier"}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/LegalForm"}},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/calculators/casnos":{"get":{"tags":["Calculators"],"operationId":"calculate_casnos","summary":"Estimate the CASNOS contribution","description":"Estimate of the 2026 CASNOS contribution, from the same formula as the UpGrowth calculator. An estimate from public texts, not tax advice.","parameters":[{"name":"revenue","in":"query","required":false,"description":"Yearly amount in Algerian dinars (DZD). For the flat-rate regimes send the turnover (chiffre d'affaires) of the previous year; for BENEFICE_REEL send the taxable profit. Needed for those three regimes, ignored for AUTO_ENTREPRENEUR and PREMIERE_ANNEE.","schema":{"type":"number","minimum":0,"maximum":1000000000000}},{"name":"regime","in":"query","required":true,"description":"Tax regime of the person: FORFAITAIRE_ACHAT_VENTE (flat-rate regime, purchase and resale), FORFAITAIRE_PRESTATIONS (flat-rate regime, services), BENEFICE_REEL (actual-profit regime), AUTO_ENTREPRENEUR (the flat yearly option of the auto-entrepreneur status) or PREMIERE_ANNEE (first year of contribution, with no previous year to rely on).","schema":{"type":"string","enum":["FORFAITAIRE_ACHAT_VENTE","FORFAITAIRE_PRESTATIONS","BENEFICE_REEL","AUTO_ENTREPRENEUR","PREMIERE_ANNEE"]}},{"name":"year","in":"query","required":false,"description":"Year of the rates. Only the 2026 rates are published today, so this can be left out.","schema":{"type":"integer","minimum":1962,"maximum":2100,"default":2026}},{"name":"lang","in":"query","required":false,"description":"Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).","schema":{"type":"string","enum":["fr","ar","en"],"default":"fr"}},{"name":"country","in":"query","required":false,"description":"Country of the data, an ISO 3166-1 alpha-2 code in any letter case: DZ for Algeria, the default, TN for Tunisia or MA for Morocco. Only live countries answer: list_countries shows them and their datasets. Any other country, or a dataset the country does not have, returns country_not_available.","schema":{"type":"string","pattern":"^[A-Za-z]{2}$","default":"DZ"},"examples":{"algeria":{"summary":"Algeria, the default","value":"DZ"},"tunisia":{"summary":"Tunisia","value":"TN"},"morocco":{"summary":"Morocco","value":"MA"}}}],"responses":{"200":{"description":"The data, with its meta.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-UpGrowth-Tier":{"$ref":"#/components/headers/X-UpGrowth-Tier"}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/CasnosEstimate"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/calculators/ifu":{"get":{"tags":["Calculators"],"operationId":"calculate_ifu","summary":"Estimate the IFU flat tax","description":"Estimate of the 2026 IFU flat tax, from the same formula as the UpGrowth calculator. An estimate from public texts, not tax advice.","parameters":[{"name":"turnover","in":"query","required":true,"description":"Yearly turnover (chiffre d'affaires) in Algerian dinars (DZD).","schema":{"type":"number","minimum":0,"maximum":1000000000000}},{"name":"regime","in":"query","required":true,"description":"ae for the auto-entrepreneur status (ANAE), general for the general IFU regime of the other micro-businesses.","schema":{"type":"string","enum":["ae","general"]}},{"name":"activity","in":"query","required":false,"description":"Kind of activity: production (goods), commerce (resale in the same state) or services (including liberal professions). Required with the general regime, where it sets the rate; ignored with ae.","schema":{"type":"string","enum":["production","commerce","services"]}},{"name":"lang","in":"query","required":false,"description":"Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).","schema":{"type":"string","enum":["fr","ar","en"],"default":"fr"}},{"name":"country","in":"query","required":false,"description":"Country of the data, an ISO 3166-1 alpha-2 code in any letter case: DZ for Algeria, the default, TN for Tunisia or MA for Morocco. Only live countries answer: list_countries shows them and their datasets. Any other country, or a dataset the country does not have, returns country_not_available.","schema":{"type":"string","pattern":"^[A-Za-z]{2}$","default":"DZ"},"examples":{"algeria":{"summary":"Algeria, the default","value":"DZ"},"tunisia":{"summary":"Tunisia","value":"TN"},"morocco":{"summary":"Morocco","value":"MA"}}}],"responses":{"200":{"description":"The data, with its meta.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-UpGrowth-Tier":{"$ref":"#/components/headers/X-UpGrowth-Tier"}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/IfuEstimate"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/tax-rates":{"get":{"tags":["Tax rates"],"operationId":"get_tax_rates","summary":"Get the business tax rates of a country","description":"The 2026 corporate income tax, VAT and main withholding tax rates, plus the income tax scale and flat tax where covered (Algeria, Morocco), each with its legal article and official source. Algeria by default, Tunisia with country=TN, Morocco with country=MA.","parameters":[{"name":"lang","in":"query","required":false,"description":"Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).","schema":{"type":"string","enum":["fr","ar","en"],"default":"fr"}},{"name":"country","in":"query","required":false,"description":"Country of the data, an ISO 3166-1 alpha-2 code in any letter case: DZ for Algeria, the default, TN for Tunisia or MA for Morocco. Only live countries answer: list_countries shows them and their datasets. Any other country, or a dataset the country does not have, returns country_not_available.","schema":{"type":"string","pattern":"^[A-Za-z]{2}$","default":"DZ"},"examples":{"algeria":{"summary":"Algeria, the default","value":"DZ"},"tunisia":{"summary":"Tunisia","value":"TN"},"morocco":{"summary":"Morocco","value":"MA"}}}],"responses":{"200":{"description":"The data, with its meta.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-UpGrowth-Tier":{"$ref":"#/components/headers/X-UpGrowth-Tier"}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/TaxRates"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/social-contributions":{"get":{"tags":["Social contributions"],"operationId":"get_social_contributions","summary":"Get the social contributions of a country","description":"The 2026 social contributions, each with its base and official source: CNAS and CASNOS for Algeria, CNSS and the payroll levies (TFP, FOPROLOS) for Tunisia (country=TN), CNSS, AMO and TFP for Morocco (country=MA).","parameters":[{"name":"lang","in":"query","required":false,"description":"Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).","schema":{"type":"string","enum":["fr","ar","en"],"default":"fr"}},{"name":"country","in":"query","required":false,"description":"Country of the data, an ISO 3166-1 alpha-2 code in any letter case: DZ for Algeria, the default, TN for Tunisia or MA for Morocco. Only live countries answer: list_countries shows them and their datasets. Any other country, or a dataset the country does not have, returns country_not_available.","schema":{"type":"string","pattern":"^[A-Za-z]{2}$","default":"DZ"},"examples":{"algeria":{"summary":"Algeria, the default","value":"DZ"},"tunisia":{"summary":"Tunisia","value":"TN"},"morocco":{"summary":"Morocco","value":"MA"}}}],"responses":{"200":{"description":"The data, with its meta.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-UpGrowth-Tier":{"$ref":"#/components/headers/X-UpGrowth-Tier"}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/SocialContributions"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/institutions":{"get":{"tags":["Institutions"],"operationId":"list_institutions","summary":"List the key public bodies of a country","description":"The business register, investment agency, tax administration, social security, customs, statistics office and central bank, each with its official website and role. Algeria by default, Tunisia with country=TN, Morocco with country=MA.","parameters":[{"name":"lang","in":"query","required":false,"description":"Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).","schema":{"type":"string","enum":["fr","ar","en"],"default":"fr"}},{"name":"country","in":"query","required":false,"description":"Country of the data, an ISO 3166-1 alpha-2 code in any letter case: DZ for Algeria, the default, TN for Tunisia or MA for Morocco. Only live countries answer: list_countries shows them and their datasets. Any other country, or a dataset the country does not have, returns country_not_available.","schema":{"type":"string","pattern":"^[A-Za-z]{2}$","default":"DZ"},"examples":{"algeria":{"summary":"Algeria, the default","value":"DZ"},"tunisia":{"summary":"Tunisia","value":"TN"},"morocco":{"summary":"Morocco","value":"MA"}}}],"responses":{"200":{"description":"The data, with its meta.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-UpGrowth-Tier":{"$ref":"#/components/headers/X-UpGrowth-Tier"}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Institution"}},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/countries":{"get":{"tags":["Countries"],"operationId":"list_countries","summary":"List the countries","description":"The countries the data covers, each with its ISO code, names, languages, currency, status (live or planned) and datasets. It takes no country.","parameters":[{"name":"lang","in":"query","required":false,"description":"Language of the labels, notes and attribution text in the answer: fr (French, the default), ar (Arabic) or en (English).","schema":{"type":"string","enum":["fr","ar","en"],"default":"fr"}}],"responses":{"200":{"description":"The data, with its meta.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-UpGrowth-Tier":{"$ref":"#/components/headers/X-UpGrowth-Tier"}},"content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Country"}},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"ugk_...","description":"An UpGrowth API key, which starts with ugk_. Optional: without it the free tier applies (100 calls per UTC day per IP address). A malformed or revoked key is refused with 401 invalid_key."}},"headers":{"X-RateLimit-Limit":{"description":"Calls allowed per UTC day on the key, or on the free tier.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Calls left today after this one.","schema":{"type":"integer"}},"X-UpGrowth-Tier":{"description":"The plan the call was counted on, or the older tier name of an account that has not been moved to a plan yet.","schema":{"type":"string","enum":["free","professional","team","api","licence","starter","pro","business","enterprise"]}}},"responses":{"BadRequest":{"description":"A parameter is missing or invalid. error.code names the problem and error.message says how to fix it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"invalid_key: the Authorization header is malformed, or the key is unknown or revoked. A call without the header is never refused with this code, it uses the free tier.","headers":{"WWW-Authenticate":{"description":"How to authenticate: a Bearer key.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Forbidden":{"description":"dataset_unavailable: the account of the key may not read the data of this country. access_denied: the account is not served. Neither says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"not_found: the code, the issue or the section does not exist. country_not_available: the country is not live, or does not have this dataset yet; the message lists the live countries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"TooManyRequests":{"description":"rate_limited (more than about 30 requests in 10 seconds from one address), free_quota_exceeded (the free tier of the address is used up for today), quota_exceeded (the daily quota of the key is used up) or monthly_quota_exceeded (the monthly quota of the account is used up, on the plans that have one). Retry-After says when to try again.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unavailable":{"description":"unavailable: a call with a key could not be counted right now. Retry in a moment.","headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"SourceRef":{"type":"object","required":["url","title","retrieved"],"properties":{"url":{"type":"string","description":"The official page the record was read on.","format":"uri"},"title":{"type":"string","description":"What the page is."},"retrieved":{"type":"string","description":"The day the page was read, as YYYY-MM-DD."}}},"TaxRate":{"type":"object","required":["code","rate_percent","label","source"],"properties":{"code":{"type":"string","description":"A short stable name for the rate."},"rate_percent":{"type":["number","null"],"description":"The rate, in percent. Null when the tax is a fixed amount: see minimum_dzd, minimum_tnd or minimum_mad."},"label":{"type":"string","description":"The name of the rate, in the language of the request."},"applies_to":{"type":["string","null"],"description":"What the rate applies to."},"effective":{"type":["string","null"],"description":"The date or period the rate applies from, when the text gives one."},"minimum_tnd":{"type":["number","null"],"description":"Tunisia: a minimum amount in dinars (the minimum tax), null otherwise."},"minimum_dzd":{"type":["number","null"],"description":"Algeria: a minimum amount in dinars (the minimum corporate income tax, the minimum IFU), null otherwise."},"threshold_dzd":{"type":["number","null"],"description":"Algeria, IFU only: the yearly turnover ceiling of the regime, in dinars."},"bracket_from_dzd":{"type":["number","null"],"description":"Algeria, income tax scale only: the amount in dinars above which the bracket starts (the part of the income over it, up to bracket_to_dzd, is taxed at the rate)."},"bracket_to_dzd":{"type":["number","null"],"description":"Algeria, income tax scale only: the amount in dinars at which the bracket ends, null for the last bracket."},"minimum_mad":{"type":["number","null"],"description":"Morocco: a minimum amount in dirhams (the minimum contribution), null otherwise."},"threshold_mad":{"type":["number","null"],"description":"Morocco, auto-entrepreneur flat tax only: the yearly turnover ceiling of the regime, in dirhams."},"bracket_from_mad":{"type":["number","null"],"description":"Morocco, income tax scale only: the amount in dirhams above which the bracket starts (the part of the income over it, up to bracket_to_mad, is taxed at the rate)."},"bracket_to_mad":{"type":["number","null"],"description":"Morocco, income tax scale only: the amount in dirhams at which the bracket ends, null for the last bracket."},"legal_basis":{"type":"string","description":"The article of the code the rate comes from."},"note":{"type":["string","null"],"description":"A note on the rate."},"source":{"$ref":"#/components/schemas/SourceRef"}}},"TaxRates":{"type":"object","required":["currency","year","corporate_income_tax","vat","withholding","personal_income_tax","flat_tax"],"properties":{"currency":{"type":"string","description":"ISO 4217 code of the currency of the amounts: DZD for Algeria, TND for Tunisia, MAD for Morocco."},"year":{"type":"integer","description":"The year of the rules."},"corporate_income_tax":{"type":"array","items":{"$ref":"#/components/schemas/TaxRate"}},"vat":{"type":"array","items":{"$ref":"#/components/schemas/TaxRate"}},"withholding":{"type":"array","items":{"$ref":"#/components/schemas/TaxRate"}},"personal_income_tax":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/TaxRate"}},{"type":"null"}],"description":"The scale of the income tax on salaries and other personal income, one record per bracket (Algeria: the IRG scale, Morocco: the IR scale). Null when the dataset of the country does not cover it."},"flat_tax":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/TaxRate"}},{"type":"null"}],"description":"The flat tax of micro-businesses (Algeria: the IFU, one record per regime; Morocco: the auto-entrepreneur flat tax, one record per kind of activity). Null when the dataset of the country does not cover it."}}},"SocialContribution":{"type":"object","required":["code","name","payer","source"],"properties":{"code":{"type":"string","description":"A short stable name for the contribution."},"name":{"type":"string","description":"The name of the contribution, in the language of the request."},"payer":{"type":"string","enum":["employer","employee","employer_and_employee","insured_person","third_party"],"description":"Who pays it: the employer, the employee, both, the insured person alone (a self-employed person, an artist), or a third party that pays for the insured person's activity."},"rate_percent":{"type":["number","null"],"description":"The total rate in percent, null when the contribution has a range or a flat amount instead."},"employer_percent":{"type":["number","null"],"description":"The employer share, when the rate is split."},"employee_percent":{"type":["number","null"],"description":"The employee share, when the rate is split."},"other_percent":{"type":["number","null"],"description":"Algeria: a share that is neither the employer's nor the employee's (the social works share of the CNAS), when the rate is split."},"rate_breakdown_percent":{"anyOf":[{"type":"object","properties":{"social_insurance":{"type":"number","description":"The social insurance share of the rate."},"retirement":{"type":"number","description":"The retirement share of the rate."}}},{"type":"null"}],"description":"Algeria, CASNOS: how the rate divides between the branches of social security."},"rate_range_percent":{"anyOf":[{"type":"object","properties":{"min":{"type":"number","description":"The lowest rate."},"max":{"type":"number","description":"The highest rate."}}},{"type":"null"}],"description":"The lowest and the highest rate, when it depends on the activity."},"reduced_rate_percent":{"type":["number","null"],"description":"A reduced rate, when there is one."},"base_min_dzd":{"type":["number","null"],"description":"Algeria, CASNOS: the floor of the yearly contribution base, in dinars (the yearly guaranteed minimum wage)."},"base_max_dzd":{"type":["number","null"],"description":"Algeria, CASNOS: the ceiling of the yearly contribution base, in dinars (twenty times the floor)."},"contribution_min_dzd":{"type":["number","null"],"description":"Algeria, CASNOS: the yearly contribution on the floor of the base, in dinars."},"contribution_max_dzd":{"type":["number","null"],"description":"Algeria, CASNOS: the yearly contribution on the ceiling of the base, in dinars."},"flat_option_dzd":{"type":["number","null"],"description":"Algeria, CASNOS: the flat yearly contribution an auto-entrepreneur may choose, in dinars."},"base_max_mad":{"type":["number","null"],"description":"Morocco, CNSS: the monthly salary ceiling of the contribution base, in dirhams, null when the base is not capped."},"base":{"type":["string","null"],"description":"What the rate is applied to."},"applies_to":{"type":["string","null"],"description":"Who or what it applies to."},"exemptions":{"type":["string","null"],"description":"Who is exempt."},"legal_basis":{"type":["string","null"],"description":"The legal text it comes from."},"note":{"type":["string","null"],"description":"A note: deadlines, penalties."},"source":{"$ref":"#/components/schemas/SourceRef"},"sources":{"type":"array","items":{"$ref":"#/components/schemas/SourceRef"},"description":"Other official pages the record was read on, when there are any."}}},"SocialContributions":{"type":"object","required":["currency","year","contributions"],"properties":{"currency":{"type":"string","description":"ISO 4217 code of the currency of the amounts: DZD for Algeria, TND for Tunisia, MAD for Morocco."},"year":{"type":"integer","description":"The year of the rules."},"contributions":{"type":"array","items":{"$ref":"#/components/schemas/SocialContribution"}}}},"Institution":{"type":"object","required":["code","name","url","role","source"],"properties":{"code":{"type":"string","description":"A short stable name for the body."},"name":{"type":"string","description":"The name of the body, in the language of the request."},"acronym":{"type":["string","null"],"description":"Its usual abbreviation."},"url":{"type":"string","description":"Its official website.","format":"uri"},"role":{"type":"string","description":"What it does for a company, in one line."},"source":{"$ref":"#/components/schemas/SourceRef"},"sources":{"type":"array","items":{"$ref":"#/components/schemas/SourceRef"}}}},"Meta":{"type":"object","required":["dataset","source","source_url","licence","licence_url","attribution","updated","help"],"properties":{"country":{"type":["string","null"],"description":"ISO 3166-1 alpha-2 code of the country the answer is about, for example DZ. Present on every successful answer: null only for the list of countries."},"dataset":{"type":"string","description":"Identifier of the dataset the answer comes from."},"source":{"type":"string","description":"Name of the source, in the language of the request."},"source_url":{"type":"string","description":"The page that describes the source."},"licence":{"type":["string","null"],"description":"The licence of the dataset: CC BY 4.0 for the datasets UpGrowth publishes under it, otherwise null."},"licence_url":{"type":["string","null"],"description":"Link to the text of the licence, null when licence is null."},"attribution":{"type":"string","description":"The credit to give when the data is used, in the language of the request: UpGrowth, with a link to https://www.upgrowth.dz."},"updated":{"type":["string","null"],"description":"Day of the snapshot of the data, as YYYY-MM-DD. For the tax rates, social contributions and institutions: the day the official pages were read."},"notice":{"type":"string","description":"Datasets without an open licence only: why. A null licence never means public domain."},"help":{"type":"object","required":["text","url"],"properties":{"text":{"type":"string","description":"One sentence to pass on to the user."},"url":{"type":"string","description":"The contact page of UpGrowth to send the user to.","format":"uri"}},"description":"A call to action to relay to the user, in the language of the request."},"total":{"type":"integer","description":"Number of results. Present on lists."},"limit":{"type":"integer","description":"Page size used. Paginated lists only."},"offset":{"type":"integer","description":"Results skipped. Paginated lists only."},"sommaire_years":{"type":"array","items":{"type":"integer"},"description":"Journal Officiel search only: the years whose summaries are searched."},"sources":{"type":"array","items":{"$ref":"#/components/schemas/SourceRef"},"description":"Tunisian governorates and Moroccan regions only: every official page the list was read on."},"disclaimer":{"$ref":"#/components/schemas/Localized","description":"Calculators only: the answer is an estimate from public texts, not tax or legal advice."}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"A short stable name for the problem, for example invalid_key or not_found."},"message":{"type":"string","description":"What went wrong and how to fix it."}}}}},"Localized":{"type":"object","description":"The same text in the three languages of the site.","properties":{"fr":{"type":"string"},"ar":{"type":"string"},"en":{"type":"string"}}},"Coded":{"type":"object","required":["code","label"],"properties":{"code":{"type":"string"},"label":{"type":["string","null"],"description":"The label in the language of the request."}}},"Country":{"type":"object","required":["code","names","status","datasets"],"properties":{"code":{"type":"string","description":"ISO 3166-1 alpha-2 code, for example DZ."},"names":{"$ref":"#/components/schemas/Localized"},"languages":{"type":"array","items":{"type":"string"},"description":"The languages the labels of the country are served in."},"currency":{"type":"string","description":"ISO 4217 code of the currency of the country."},"status":{"type":"string","enum":["live","planned"],"description":"live: the data is served. planned: announced, not served yet."},"datasets":{"type":"array","items":{"type":"string"},"description":"The datasets the country has, among activities, anae, wilayas, jo-index, jo-sommaires, customs-tariff, creation, casnos, ifu, tax, social, institutions. Empty while the country is planned."}}},"Activity":{"type":"object","required":["code","status","label","sector","url"],"properties":{"code":{"type":"string","description":"The CNRC activity code, six digits."},"status":{"type":"string","enum":["libre","reglementee","bloquee"],"description":"libre (free), reglementee (a prior authorization or permit is required) or bloquee (cannot be registered in the trade register)."},"label":{"$ref":"#/components/schemas/Localized"},"sector":{"$ref":"#/components/schemas/Coded"},"group":{"$ref":"#/components/schemas/Coded"},"url":{"type":"string","description":"The page of this code on upgrowth.dz.","format":"uri"}}},"ActivityDetail":{"allOf":[{"$ref":"#/components/schemas/Activity"},{"type":"object","properties":{"details":{"type":"object","properties":{"language":{"type":"string","description":"The language of the texts of the code: fr, as the nomenclature publishes them."},"supervisory_authority":{"type":["string","null"],"description":"The authority that supervises the activity."},"authorisation_type":{"type":["string","null"],"description":"The type of authorization the activity needs, when it needs one."},"content":{"type":["string","null"],"description":"What the activity covers."},"accessory_activities":{"type":["string","null"],"description":"The accessory activities the code allows."},"legal_references":{"type":["string","null"],"description":"The legal texts of the code."}}}}}]},"AnaeActivity":{"type":"object","required":["code","label","domain","url"],"properties":{"code":{"type":"string","description":"The ANAE activity code, six digits."},"label":{"$ref":"#/components/schemas/Localized"},"domain":{"$ref":"#/components/schemas/Coded"},"url":{"type":"string","description":"The page of this activity on upgrowth.dz.","format":"uri"}}},"Wilaya":{"type":"object","required":["code","name"],"properties":{"code":{"type":"string","description":"The wilaya code, two digits."},"name":{"$ref":"#/components/schemas/Localized"},"slug":{"type":["string","null"]},"capital":{"type":["string","null"],"description":"The chef-lieu."},"region":{"type":["string","null"]},"population_2024":{"type":["integer","null"]},"cnrc_office":{"type":"object","properties":{"address":{"type":["string","null"]},"phone":{"type":["string","null"]}}},"casnos_office":{"type":"object","properties":{"address":{"type":["string","null"]}}},"website":{"type":["string","null"],"description":"The website of the wilaya."},"guide_url":{"type":["string","null"],"description":"The page of the guide to creating a company there, on upgrowth.dz."},"iso_code":{"type":["string","null"],"description":"Tunisian governorates and Moroccan regions only: the ISO 3166-2 code, for example TN-11 or MA-06."},"ins_code":{"type":["string","null"],"description":"Tunisian governorates only: the code of the national statistics institute (INS), which is not the ISO one. Null for Moroccan regions."},"source":{"anyOf":[{"$ref":"#/components/schemas/SourceRef"},{"type":"null"}],"description":"Tunisian governorates and Moroccan regions only: the official page the record was read on."}}},"JoYear":{"type":"object","required":["year","issues"],"properties":{"year":{"type":"integer"},"issues":{"type":"integer","description":"Number of issues of the year."},"last_issue":{"type":["integer","null"],"description":"Number of the last issue."},"editions":{"type":"object","properties":{"fr":{"type":"integer","description":"Issues with a French edition."},"ar":{"type":"integer","description":"Issues with an Arabic edition."}}},"fully_probed":{"type":"boolean","description":"Algeria: whether the whole year was probed on joradp.dz. Always false for Morocco and Tunisia, whose lists are the official ones and whose links are not probed."},"sommaire_issues":{"type":"integer","description":"Issues whose summary UpGrowth holds."},"url":{"type":"string","description":"The page of the year on upgrowth.dz; for Morocco, the official list of the Bulletin officiel on sgg.gov.ma; for Tunisia, the site of the official printer, iort.gov.tn.","format":"uri"}}},"JoEdition":{"type":"object","properties":{"available":{"type":["boolean","null"],"description":"Whether this edition exists, null when that is unknown."},"pdf_url":{"type":["string","null"],"description":"The official PDF file on joradp.dz (Algeria) or sgg.gov.ma (Morocco). Always null for Tunisia, whose official site gives no direct link to a file: available says whether the edition exists."}}},"JoIssueEntry":{"type":"object","required":["number","editions","has_sommaire"],"properties":{"number":{"type":"integer"},"suffix":{"type":"string","description":"Morocco only: the letters of a supplement of the Bulletin officiel (bis, ter), absent for the issue itself."},"date":{"type":"string","description":"Morocco and Tunisia only: the day the issue was published, YYYY-MM-DD."},"editions":{"type":"object","properties":{"fr":{"$ref":"#/components/schemas/JoEdition"},"ar":{"$ref":"#/components/schemas/JoEdition"}}},"has_sommaire":{"type":"boolean","description":"Whether UpGrowth holds the summary of this issue."},"url":{"type":["string","null"],"description":"The page of the issue on upgrowth.dz, when UpGrowth holds its summary."}}},"JoYearIssues":{"type":"object","required":["year","issues"],"properties":{"year":{"type":"integer"},"fully_probed":{"type":"boolean","description":"Algeria: whether the whole year was probed on joradp.dz. Always false for Morocco and Tunisia."},"year_url":{"type":"string","description":"The page of the year on upgrowth.dz; for Morocco, the official list of the Bulletin officiel on sgg.gov.ma; for Tunisia, the site of the official printer, iort.gov.tn.","format":"uri"},"issues":{"type":"array","items":{"$ref":"#/components/schemas/JoIssueEntry"}}}},"JoSommaire":{"type":"object","properties":{"date":{"type":["string","null"],"description":"Date of the issue."},"hijri":{"type":["string","null"],"description":"Date of the issue in the Hijri calendar."},"pages":{"description":"The pages of the issue, as its contents list gives them."},"title_count":{"type":"integer","description":"Number of titles in the summary."},"sections":{"type":"array","items":{"type":"object","properties":{"heading":{"type":["string","null"],"description":"Heading of the section of the summary."},"titles":{"type":"array","items":{"type":"string"}}}}}}},"JoIssue":{"type":"object","required":["year","number","editions","sommaire"],"properties":{"year":{"type":"integer"},"number":{"type":"integer"},"suffix":{"type":"string","description":"Morocco only: the letters of a supplement of the Bulletin officiel (bis, ter), present only when the number has no issue of its own in the index."},"date":{"type":"string","description":"Morocco and Tunisia only: the day the issue was published, YYYY-MM-DD."},"editions":{"type":"object","properties":{"fr":{"$ref":"#/components/schemas/JoEdition"},"ar":{"$ref":"#/components/schemas/JoEdition"}}},"url":{"type":["string","null"],"description":"The page of the issue on upgrowth.dz, when UpGrowth holds its summary."},"sommaire":{"anyOf":[{"$ref":"#/components/schemas/JoSommaire"},{"type":"null"}],"description":"The summary of the issue: the official titles of its texts, section by section. Null when UpGrowth does not hold it."},"note":{"type":"string","description":"Present when there is no summary: why."},"supplements":{"type":"array","items":{"$ref":"#/components/schemas/JoIssueEntry"},"description":"Morocco only: the supplements of this number (bis, ter), each with its own links. Absent when there is none."}}},"JoTitleHit":{"type":"object","required":["year","number","title"],"properties":{"year":{"type":"integer"},"number":{"type":"integer","description":"Number of the issue."},"heading":{"type":["string","null"],"description":"Heading of the section of the summary."},"title":{"type":"string","description":"The official title, as printed."},"url":{"type":"string","description":"The page of the issue on upgrowth.dz.","format":"uri"},"pdf_url":{"type":"string","description":"The official PDF file of the issue, French edition.","format":"uri"}}},"TariffSection":{"type":"object","required":["code","title"],"properties":{"code":{"type":"string","description":"The section, in Roman numerals."},"title":{"type":"string"},"chapters":{"type":"object","properties":{"first":{"type":"string","description":"Code of its first chapter."},"last":{"type":"string","description":"Code of its last chapter."},"count":{"type":"integer"}}}}},"TariffChapters":{"type":"object","required":["section","chapters"],"properties":{"section":{"type":"object","properties":{"code":{"type":"string"},"title":{"type":"string"}}},"chapters":{"type":"array","items":{"type":"object","required":["code","title"],"properties":{"code":{"type":"string","description":"The chapter, two digits."},"title":{"type":"string"}}}}}},"FeeStep":{"type":"object","required":["step","fee","priced"],"properties":{"step":{"type":"string","description":"The creation step."},"fee":{"anyOf":[{"type":"object","properties":{"dzd":{"type":"integer","description":"The fee in dinars."},"dzd_electronic":{"type":"integer","description":"The fee when paid electronically."},"dzd_min":{"type":"integer","description":"The lowest fee, when it depends on the case."},"dzd_max":{"type":"integer","description":"The highest fee, when it depends on the case."},"tnd":{"type":"integer","description":"Tunisia: the fee in dinars."},"tnd_electronic":{"type":"integer","description":"Tunisia: the fee in dinars when the procedure is carried out electronically."},"tnd_min":{"type":"integer","description":"Tunisia: the lowest fee in dinars, when it depends on the case."},"tnd_max":{"type":"integer","description":"Tunisia: the highest fee in dinars, when it depends on the case."},"mad":{"type":"integer","description":"Morocco: the fee in dirhams."}}},{"type":"null"}],"description":"The fee the State fixes, null when no text fixes one."},"priced":{"type":"boolean","description":"False for a third-party price that no text fixes, such as the notary or the bank: it carries no amount on purpose."},"delay":{"type":["string","null"],"description":"Tunisia and Morocco: the official delay of the step, when a page states one."},"documents":{"type":"array","items":{"type":"string"},"description":"Tunisia and Morocco: the documents the step asks for."},"source":{"anyOf":[{"type":"string"},{"$ref":"#/components/schemas/SourceRef"},{"type":"null"}],"description":"The official text the fee comes from: a reference for Algeria, the official page for Tunisia and Morocco."},"note":{"type":["string","null"],"description":"A note on the step, in French for Algeria, in the language of the request for Tunisia and Morocco."}}},"LegalForm":{"type":"object","required":["code","name","steps"],"properties":{"code":{"type":"string","description":"For example SARL, EURL or SPA."},"name":{"type":"string","description":"The name of the form, in the language of the request."},"associates":{"type":"object","properties":{"min":{"type":["integer","null"],"description":"Fewest partners."},"max":{"type":["integer","null"],"description":"Most partners, null when there is no limit."},"note":{"type":["string","null"]}}},"capital":{"type":"object","properties":{"min_capital_dzd":{"type":["integer","null"],"description":"The legal minimum, null when the law fixes none."},"usual_capital_dzd":{"type":["integer","null"],"description":"The capital usually asked in practice: an observation, not a legal rule."},"public_offering_capital_dzd":{"type":["integer","null"],"description":"The minimum for a company that makes a public offering."},"min_capital_tnd":{"type":["integer","null"],"description":"Tunisia: the legal minimum in dinars, null when the law fixes none."},"public_offering_capital_tnd":{"type":["integer","null"],"description":"Tunisia: the minimum in dinars for a company that makes a public offering."},"min_capital_mad":{"type":["integer","null"],"description":"Morocco: the legal minimum in dirhams, null when the law fixes none."},"public_offering_capital_mad":{"type":["integer","null"],"description":"Morocco: the minimum in dirhams for a company that makes a public offering."},"note":{"type":["string","null"]}}},"steps":{"type":"array","items":{"$ref":"#/components/schemas/FeeStep"}},"published_fees_total":{"type":"object","properties":{"min_dzd":{"type":["integer","null"]},"max_dzd":{"type":["integer","null"]},"scope_note":{"type":["string","null"],"description":"What the total covers."},"excludes":{"type":["string","null"],"description":"What it leaves out."}}},"liability":{"type":["string","null"],"description":"Tunisia and Morocco: who bears the losses and how far."},"legal_basis":{"type":["string","null"],"description":"Tunisia and Morocco: the law and articles the form comes from."},"registration_effect":{"type":["string","null"],"description":"Tunisia and Morocco: what the registration gives the company."},"source":{"anyOf":[{"$ref":"#/components/schemas/SourceRef"},{"type":"null"}],"description":"Tunisia and Morocco: the official page or text the form was read in."}}},"CasnosEstimate":{"type":"object","required":["year","regime","inputs","contribution_dzd"],"properties":{"year":{"type":"integer"},"regime":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string","description":"The name of the regime, in the language of the request."}}},"inputs":{"type":"object","properties":{"regime":{"type":"string"},"revenue":{"type":["number","null"],"description":"The amount sent, null when none was."},"revenue_used":{"type":"boolean","description":"Whether this regime uses the revenue."}}},"base":{"type":"object","properties":{"coefficient_percent":{"type":["number","null"],"description":"The share of the revenue that makes the base: 25 or 35 under the flat-rate regimes, 100 for the actual profit, null for the flat fee."},"raw_dzd":{"type":["integer","null"],"description":"The base before the floor and the ceiling."},"floor_dzd":{"type":"integer","description":"The floor of the base: the annual SNMG."},"ceiling_dzd":{"type":"integer","description":"The ceiling of the base: twenty times the floor."},"applied_dzd":{"type":["integer","null"],"description":"The base the rate was applied to."},"floored_to_floor":{"type":"boolean","description":"True when the floor was applied."},"capped_at_ceiling":{"type":"boolean","description":"True when the ceiling was applied."}}},"rate_percent":{"type":["number","null"],"description":"The contribution rate, null for the flat fee."},"contribution_dzd":{"type":"object","properties":{"annual":{"type":"integer"},"monthly":{"type":"integer"},"quarterly":{"type":"integer"},"pension":{"type":"integer","description":"The pension share, half of the annual contribution."},"social_insurance":{"type":"integer","description":"The social insurance share, half of the annual contribution."}}},"flat_fee_option":{"type":"boolean","description":"True for the auto-entrepreneur flat fee."},"limitations":{"type":"array","items":{"type":"string"}}}},"IfuEstimate":{"type":"object","required":["year","inputs","ifu_dzd"],"properties":{"year":{"type":"integer"},"inputs":{"type":"object","properties":{"turnover":{"type":"number"},"regime":{"type":"string"},"activity":{"type":["string","null"],"description":"The kind of activity, null with the auto-entrepreneur regime."}}},"base":{"type":"object","properties":{"turnover_dzd":{"type":"number"}}},"rate_percent":{"type":"number","description":"The rate applied to the turnover."},"computed_before_minimum_dzd":{"type":"number","description":"The tax before the minimum."},"minimum_dzd":{"type":"integer","description":"The minimum tax of the regime."},"minimum_applied":{"type":"boolean","description":"True when the minimum is higher than the computed tax and was charged instead."},"threshold_dzd":{"type":["integer","null"],"description":"The turnover ceiling of the regime."},"over_threshold":{"type":"boolean","description":"True when the turnover is above that ceiling."},"ifu_dzd":{"type":"object","properties":{"annual":{"type":"integer"},"monthly":{"type":"integer"}}},"limitations":{"type":"array","items":{"type":"string"}}}}}}}