{"x402Version":2,"name":"agent-2-agent-tunisia","description":"Tunisian public-data services with signed envelopes and source-level provenance.","url":"https://tunis-data.hanibal-ai.com","manifest_version":1,"updated_at":"2026-11-12T17:33:07.353Z","ownership":{"claim_file":"https://tunis-data.hanibal-ai.com/.well-known/agent-tools-verify.txt","descriptor_field":"agentToolsVerify"},"resources":[{"resource":"https://tunis-data.hanibal-ai.com/api/v1/qanat/series/query","type":"http","x402Version":2,"name":"qanat_series_query","service":"QANAT","description":"Observations for a series, with source page and confidence per point.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"qanat_series_query response envelope","description":"Signed envelope for QANAT. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"20000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/qanat/series/query","description":"Observations for a series, with source page and confidence per point.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"id":"onagri-olive-campaign-2025-26","from":"2025-11","to":"2026-08"},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"series_id":"onagri-olive-campaign-2025-26","title":"Suivi des exportations de l'huile d'olive tunisienne","unit":{"volume":"1000 tonnes","value":"million TND","price":"TND/kg","share":"percent"},"frequency":"campaign","observations":[{"period":"2025-11..2026-08","values":{"volume_kt":381.2,"value_mdt":4780.4,"price_dt_kg":12.54,"categories":{}},"source_page":2,"confidence":"high"}]},"source":{"publisher":"ONAGRI","title":"Suivi des exportations de l'huile d'olive tunisienne","edition":"2025-11..2026-08","url":"https://www.onagri.nat.tn/uploads/images/1790069488_77ee7d4830fb55ffe19f.pdf","sha256":"debc307dcb8b79d38b46e0d8f8099e8980aff7275d8c8c276ef3495546381404","page":2,"retrieved":"2026-11-10T00:18:13Z"},"confidence":"high","gaps":[],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","required":["id"],"properties":{"id":{"type":"string","example":"onagri-olive-campaign-2025-26"},"from":{"type":"string","example":"2025-11","description":"Inclusive period start, e.g. 2025-11"},"to":{"type":"string","example":"2026-08","description":"Inclusive period end, e.g. 2026-08"}}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/qanat/observation","type":"http","x402Version":2,"name":"qanat_observation","service":"QANAT","description":"One observation with its source page and provenance.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"qanat_observation response envelope","description":"Signed envelope for QANAT. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"10000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/qanat/observation","description":"One observation with its source page and provenance.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"id":"onagri-olive-campaign-2025-26","period":"2025-11..2026-08"},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"series_id":"onagri-olive-campaign-2025-26","period":"2025-11..2026-08","observation":{"period":"2025-11..2026-08","values":{"volume_kt":381.2,"value_mdt":4780.4,"price_dt_kg":12.54,"categories":{"vrac":{},"conditionnee":{}}},"source_page":2,"confidence":"high"}},"source":{"publisher":"ONAGRI","title":"Suivi des exportations de l'huile d'olive tunisienne","edition":"2025-11..2026-08","url":"https://www.onagri.nat.tn/uploads/images/1790069488_77ee7d4830fb55ffe19f.pdf","sha256":"debc307dcb8b79d38b46e0d8f8099e8980aff7275d8c8c276ef3495546381404","page":2,"retrieved":"2026-11-10T00:18:13Z"},"confidence":"high","gaps":[],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","required":["id","period"],"properties":{"id":{"type":"string","example":"onagri-olive-campaign-2025-26"},"period":{"type":"string","example":"2025-11..2026-08","description":"Exact period string from qanat_series_query"}}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/zitoun/campaign-summary","type":"http","x402Version":2,"name":"zitoun_campaign_summary","service":"ZITOUN","description":"Olive-oil campaign volume, value, average price and bulk/packaged split.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"zitoun_campaign_summary response envelope","description":"Signed envelope for ZITOUN. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"10000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/zitoun/campaign-summary","description":"Olive-oil campaign volume, value, average price and bulk/packaged split.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"campaign":"2026 YTD","period":"2026-01..2026-09","period_basis":"calendar-year-to-date, not campaign","total":{"volume_kt":319.6,"value_mdt":4005.7,"price_dt_kg":12.54,"share_pct":61},"production_2025_26_forecast_kt":500,"production_change_pct":47,"legacy_campaign":{"campaign":"2025/26","period":"2025-11..2026-08","total":{"volume_kt":381.2,"value_mdt":4780.4,"price_dt_kg":12.54,"share_pct":100},"categories":[{"id":"vrac","label":"HO Vrac","volume_kt":325.8,"value_mdt":3857.4,"price_dt_kg":11.84,"share_pct":85.5},{"id":"conditionnee","label":"HO Conditionnée","volume_kt":55.4,"value_mdt":923,"price_dt_kg":16.66,"share_pct":14.5}],"note":"22.09.2026 bulletin; kept for continuity, do not mix with YTD"},"metric_note":"This is calendar-year-to-date 2026, not the 2025/26 campaign bulletin. The legacy campaign is returned separately."},"source":{"publisher":"ONAGRI","title":"La balance commerciale alimentaire","edition":"Octobre 2026","url":"https://www.onagri.nat.tn/uploads/1794238130_2560b0fa28160e59ef69.pdf","sha256":"033d7d774daeb11d734bd46a92c7a0575aa27934cde68e23ba7f3b845ebb0e48","page":2,"retrieved":"2026-11-10T17:54:50.423232Z"},"extraction":{"engine":"pdfplumber","version":"0.11.8","anchors_ok":true,"arithmetic_ok":true,"checks":[{"name":"solde_2026","left":919.8,"right":919.8,"tolerance":0.15,"ok":true},{"name":"solde_2025","left":621.3,"right":621.3,"tolerance":0.15,"ok":true}]},"confidence":"high","gaps":[{"field":"monthly_series","reason":"The PDF publishes cumulative Jan-09 totals and a chart. The chart labels are not machine-verified, so no monthly values are invented."},{"field":"sugar_validation","reason":"Sugar's +343.4% value jump is reproduced as published but not cross-checked against INS customs series. Confidence for this row is medium."}],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/zitoun/price-series","type":"http","x402Version":2,"name":"zitoun_price_series","service":"ZITOUN","description":"Average export price by category for the campaign; monthly gaps are explicit.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"zitoun_price_series response envelope","description":"Signed envelope for ZITOUN. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"20000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/zitoun/price-series","description":"Average export price by category for the campaign; monthly gaps are explicit.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"campaign":"2025/26","granularity":"campaign","points":[{"period":"2025-11..2026-08","category":"vrac","price_dt_kg":11.84,"volume_kt":325.8,"value_mdt":3857.4},{"period":"2025-11..2026-08","category":"conditionnee","price_dt_kg":16.66,"volume_kt":55.4,"value_mdt":923}],"monthly_available":false},"source":{"publisher":"ONAGRI","title":"Suivi des exportations de l'huile d'olive tunisienne","edition":"Septembre 2026","url":"https://www.onagri.nat.tn/uploads/images/1790069488_77ee7d4830fb55ffe19f.pdf","sha256":"debc307dcb8b79d38b46e0d8f8099e8980aff7275d8c8c276ef3495546381404","page":2,"retrieved":"2026-11-10T00:18:13Z"},"confidence":"high","gaps":[{"field":"monthly_price_series","reason":"The local September 2026 table is campaign-level. The dashboard chart is not a machine-readable monthly table, so no monthly points are fabricated."}],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/zitoun/spread-analysis","type":"http","x402Version":2,"name":"zitoun_spread_analysis","service":"ZITOUN","description":"Bulk-to-packaged uplift and the bio premium, including conflicting source values.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"zitoun_spread_analysis response envelope","description":"Signed envelope for ZITOUN. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"50000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/zitoun/spread-analysis","description":"Bulk-to-packaged uplift and the bio premium, including conflicting source values.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"campaign":"2025/26","bulk_price_dt_kg":11.84,"packaged_price_dt_kg":16.66,"packaged_uplift_pct":40.71,"uplift_calculation":"(16.66 / 11.84 - 1) * 100","bio":{"campaign":"2024/25","volume_kt":51.4,"value_mdt":722.2,"price_dt_kg":14.05,"share_quantity_pct":18.3,"share_value_pct":19.3,"exporters":56,"destinations":37,"destination_mix_pct":{"Italy":51,"Spain":21,"USA":17},"source_pages":[2,18],"confidence":"high"},"interpretation":"Packaged oil earns about 41% more per kg than bulk in this campaign. The bio value-added figure is not resolved because the same ONAGRI dashboard prints 10.5..."},"source":{"publisher":"ONAGRI","title":"Suivi des exportations de l'huile d'olive tunisienne","edition":"Septembre 2026","url":"https://www.onagri.nat.tn/uploads/images/1790069488_77ee7d4830fb55ffe19f.pdf","sha256":"debc307dcb8b79d38b46e0d8f8099e8980aff7275d8c8c276ef3495546381404","page":2,"retrieved":"2026-11-10T00:18:13Z"},"extraction":{"engine":"pdfplumber","version":"0.11.8","anchors_ok":true,"arithmetic_ok":true},"confidence":"medium","gaps":[],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/zitoun/destination-mix","type":"http","x402Version":2,"name":"zitoun_destination_mix","service":"ZITOUN","description":"Destination shares by quantity and the bio destination mix, with basis and page.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"zitoun_destination_mix response envelope","description":"Signed envelope for ZITOUN. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"20000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/zitoun/destination-mix","description":"Destination shares by quantity and the bio destination mix, with basis and page.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"basis":"average of the last five campaigns, share of exported quantity","markets":[{"market":"Espagne","share_pct":32.9},{"market":"Italie","share_pct":25.7}],"regions":[{"region":"EU","share_pct":64},{"region":"North America","share_pct":24.8}],"bio_destinations":{"Italy":51,"Spain":21,"USA":17},"caution":"Country shares and region shares come from different charts. Do not add them together as if they were one hierarchy."},"source":{"publisher":"ONAGRI","title":"Tableau de bord : Huile d'olive","edition":"Septembre 2026","url":"https://www.onagri.nat.tn/uploads/images/full/1791986177_d231daedd00a66786bc5.pdf","sha256":"0c4b8d21880a3d8a75c0384df8a744c5dee44d09d0964a9132604abc8f3689c9","page":12,"retrieved":"2026-11-10T17:54:50.423232Z"},"confidence":"high","gaps":[],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/mizan/balance","type":"http","x402Version":2,"name":"mizan_balance","service":"MIZAN","description":"Cumulative food trade balance, exports, imports and coverage ratio.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"mizan_balance response envelope","description":"Signed envelope for MIZAN. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"20000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/mizan/balance","description":"Cumulative food trade balance, exports, imports and coverage ratio.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"period":"2026-01..2026-09","comparison_period":"2025-01..2025-09","exports_mdt_2025":5476,"exports_mdt_2026":6567.6,"exports_change_pct":19.9,"imports_mdt_2025":4854.7,"imports_mdt_2026":5647.8,"imports_change_pct":16.3,"balance_mdt_2025":621.3,"balance_mdt_2026":919.8,"coverage_pct_2025":112.8,"coverage_pct_2026":116.3},"source":{"publisher":"ONAGRI","title":"La balance commerciale alimentaire","edition":"Octobre 2026","url":"https://www.onagri.nat.tn/uploads/1794238130_2560b0fa28160e59ef69.pdf","sha256":"033d7d774daeb11d734bd46a92c7a0575aa27934cde68e23ba7f3b845ebb0e48","page":1,"retrieved":"2026-11-10T17:54:50.423232Z"},"extraction":{"engine":"pdfplumber","version":"0.11.8","anchors_ok":true,"arithmetic_ok":true,"checks":[{"name":"solde_2026","left":919.8,"right":919.8,"tolerance":0.15,"ok":true},{"name":"solde_2025","left":621.3,"right":621.3,"tolerance":0.15,"ok":true}]},"confidence":"high","gaps":[{"field":"monthly_series","reason":"The PDF publishes cumulative Jan-09 totals and a chart. The chart labels are not machine-verified, so no monthly values are invented."},{"field":"sugar_validation","reason":"Sugar's +343.4% value jump is reproduced as published but not cross-checked against INS customs series. Confidence for this row is medium."}],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/mizan/dependency","type":"http","x402Version":2,"name":"mizan_dependency","service":"MIZAN","description":"Import dependence by product, with value share of total food imports.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"mizan_dependency response envelope","description":"Signed envelope for MIZAN. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"30000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/mizan/dependency","description":"Import dependence by product, with value share of total food imports.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"period":"2026-01..2026-09","total_imports_mdt":5647.8,"products":[{"id":"sugar","label":"Sucre","quantity_kt_2025":109.8,"quantity_kt_2026":445.1,"quantity_change_pct":305.4,"value_mdt_2025":178.6,"value_mdt_2026":791.7,"value_change_pct":343.4,"price_dt_kg_2025":1.63,"price_dt_kg_2026":1.78,"price_change_pct":9.4,"value_share_of_imports_pct":14},{"id":"barley","label":"Orge","quantity_kt_2025":249.6,"quantity_kt_2026":506.5,"quantity_change_pct":102.9,"value_mdt_2025":188.9,"value_mdt_2026":397,"value_change_pct":110.1,"price_dt_kg_2025":0.76,"price_dt_kg_2026":0.78,"price_change_pct":3.5,"value_share_of_imports_pct":7}],"note":"Sugar's +297.2% quantity jump is reproduced from the PDF but not cross-checked against INS customs series. Treat it as published, confidence medium."},"source":{"publisher":"ONAGRI","title":"La balance commerciale alimentaire","edition":"Octobre 2026","url":"https://www.onagri.nat.tn/uploads/1794238130_2560b0fa28160e59ef69.pdf","sha256":"033d7d774daeb11d734bd46a92c7a0575aa27934cde68e23ba7f3b845ebb0e48","page":1,"retrieved":"2026-11-10T17:54:50.423232Z"},"confidence":"high","gaps":[{"field":"monthly_series","reason":"The PDF publishes cumulative Jan-09 totals and a chart. The chart labels are not machine-verified, so no monthly values are invented."},{"field":"sugar_validation","reason":"Sugar's +343.4% value jump is reproduced as published but not cross-checked against INS customs series. Confidence for this row is medium."}],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/mizan/price-watch","type":"http","x402Version":2,"name":"mizan_price_watch","service":"MIZAN","description":"Export and import prices by product, with year-on-year changes.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"mizan_price_watch response envelope","description":"Signed envelope for MIZAN. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"20000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/mizan/price-watch","description":"Export and import prices by product, with year-on-year changes.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"period":"2026-01..2026-09","exports":[{"id":"olive_oil","label":"Huile d'olive","quantity_kt_2025":226.6,"quantity_kt_2026":319.6,"quantity_change_pct":41,"value_mdt_2025":2915.2,"value_mdt_2026":4005.7,"value_change_pct":37.4,"price_dt_kg_2025":12.86,"price_dt_kg_2026":12.54,"price_change_pct":-2.6},{"id":"dates","label":"Dattes","quantity_kt_2025":87,"quantity_kt_2026":99.1,"quantity_change_pct":13.9,"value_mdt_2025":540.5,"value_mdt_2026":619.9,"value_change_pct":14.7,"price_dt_kg_2025":6.21,"price_dt_kg_2026":6.25,"price_change_pct":0.7}],"imports":[{"id":"sugar","label":"Sucre","quantity_kt_2025":109.8,"quantity_kt_2026":445.1,"quantity_change_pct":305.4,"value_mdt_2025":178.6,"value_mdt_2026":791.7,"value_change_pct":343.4,"price_dt_kg_2025":1.63,"price_dt_kg_2026":1.78,"price_change_pct":9.4},{"id":"barley","label":"Orge","quantity_kt_2025":249.6,"quantity_kt_2026":506.5,"quantity_change_pct":102.9,"value_mdt_2025":188.9,"value_mdt_2026":397,"value_change_pct":110.1,"price_dt_kg_2025":0.76,"price_dt_kg_2026":0.78,"price_change_pct":3.5}],"note":"Prices are TND/kg as published by ONAGRI; they are not converted to USD or EUR."},"source":{"publisher":"ONAGRI","title":"La balance commerciale alimentaire","edition":"Octobre 2026","url":"https://www.onagri.nat.tn/uploads/1794238130_2560b0fa28160e59ef69.pdf","sha256":"033d7d774daeb11d734bd46a92c7a0575aa27934cde68e23ba7f3b845ebb0e48","page":1,"retrieved":"2026-11-10T17:54:50.423232Z"},"confidence":"high","gaps":[{"field":"monthly_series","reason":"The PDF publishes cumulative Jan-09 totals and a chart. The chart labels are not machine-verified, so no monthly values are invented."},{"field":"sugar_validation","reason":"Sugar's +343.4% value jump is reproduced as published but not cross-checked against INS customs series. Confidence for this row is medium."}],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/mizan/monthly-series","type":"http","x402Version":2,"name":"mizan_monthly_series","service":"MIZAN","description":"Cumulative balance points. Monthly values are returned only when verified.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"mizan_monthly_series response envelope","description":"Signed envelope for MIZAN. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"20000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/mizan/monthly-series","description":"Cumulative balance points. Monthly values are returned only when verified.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"points":[{"period":"2025-01..2025-09","exports_mdt":5476,"imports_mdt":4854.7,"balance_mdt":621.3,"coverage_pct":112.8},{"period":"2026-01..2026-09","exports_mdt":6567.6,"imports_mdt":5647.8,"balance_mdt":919.8,"coverage_pct":116.3}],"monthly_available":false,"granularity":"cumulative"},"source":{"publisher":"ONAGRI","title":"La balance commerciale alimentaire","edition":"Octobre 2026","url":"https://www.onagri.nat.tn/uploads/1794238130_2560b0fa28160e59ef69.pdf","sha256":"033d7d774daeb11d734bd46a92c7a0575aa27934cde68e23ba7f3b845ebb0e48","page":1,"retrieved":"2026-11-10T17:54:50.423232Z"},"confidence":"high","gaps":[{"field":"monthly_series","reason":"The PDF publishes cumulative Jan-09 totals and a chart. The chart labels are not machine-verified, so no monthly values are invented."},{"field":"sugar_validation","reason":"Sugar's +343.4% value jump is reproduced as published but not cross-checked against INS customs series. Confidence for this row is medium."}],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/nour/campaign","type":"http","x402Version":2,"name":"nour_campaign","service":"NOUR","description":"Date production, 2021 annual exports and 2026 Jan-Aug exports.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"nour_campaign response envelope","description":"Signed envelope for NOUR. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"10000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/nour/campaign","description":"Date production, 2021 annual exports and 2026 Jan-Aug exports.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"production_2020_21":{"period":"2020-21","volume_kt":331.5,"source_page":2},"exports_2021":{"volume_kt":119.8,"value_mdt":716.6,"price_dt_kg":5.98,"source_pages":[3,6]},"exports_2026_ytd":{"period":"2026-01..2026-08","volume_kt":89.4,"value_mdt":553.4,"price_dt_kg":6.19,"volume_change_pct":10.8,"value_change_pct":11,"price_change_pct":0.2,"source":{"url":"https://www.onagri.nat.tn/uploads/1789722607_57ff0451bd369a635029.pdf","pdf":"research/raw/bal_2.pdf","sha256":"9d12d18fe49f2c2f2bb2c075fd445d38d6b73c77dd0d24aff7f9f2198ebfe8c8","page":2,"edition":"Septembre 2026"}},"label":"There is no complete 2025/26 campaign table in the local evidence set. The current figure is calendar-year Jan-Aug 2026, not a campaign total.","derived":{"price_check_2026":6.1902,"note":"553.4 / 89.4 = 6.190...; the PDF rounds to 6.19."}},"source":{"publisher":"ONAGRI","title":"La filière dattes","edition":"2026 dashboard; latest export table August 2026","url":"https://www.onagri.nat.tn/uploads/images/full/1792506803_a5d7fa8b4a074dfc9f50.pdf","sha256":"03d28634118ede62e8cb11cfeeb2f968172a9c295abcbb30a20ed29ef69d99c6","page":2,"retrieved":"2026-11-10T00:18:13Z"},"extraction":{"engine":"pdfplumber","version":"0.11.8","anchors_ok":true,"arithmetic_ok":true,"checks":[{"name":"dates_price_2026","left":6.1902,"right":6.19,"tolerance":0.02,"ok":true}]},"confidence":"high","gaps":[{"field":"destination_mix","reason":"The local ONAGRI dashboard does not contain a machine-readable destination table. No country shares are invented."},{"field":"bio_premium","reason":"The local ONAGRI dashboard does not contain organic date volumes or prices. No bio premium is invented."}],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/nour/prices","type":"http","x402Version":2,"name":"nour_prices","service":"NOUR","description":"Verified annual and year-to-date date prices; no fabricated monthly series.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"nour_prices response envelope","description":"Signed envelope for NOUR. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"20000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/nour/prices","description":"Verified annual and year-to-date date prices; no fabricated monthly series.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"points":[{"period":"2021","price_dt_kg":5.98,"basis":"annual exports"},{"period":"2026-01..2026-08","price_dt_kg":6.19,"basis":"calendar-year-to-date exports","change_pct":0.2}],"monthly_available":false},"source":{"publisher":"ONAGRI","title":"La filière dattes","edition":"2026 dashboard; latest export table August 2026","url":"https://www.onagri.nat.tn/uploads/images/full/1792506803_a5d7fa8b4a074dfc9f50.pdf","sha256":"03d28634118ede62e8cb11cfeeb2f968172a9c295abcbb30a20ed29ef69d99c6","page":2,"retrieved":"2026-11-10T00:18:13Z"},"confidence":"high","gaps":[{"field":"monthly_price_series","reason":"Only the 2021 annual price and the 2026 Jan-Aug average are in the extracted tables. Chart labels are not treated as a table."}],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/nour/destinations","type":"http","x402Version":2,"name":"nour_destinations","service":"NOUR","description":"Destination shares, or an explicit gap when the source has no machine-readable table.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"nour_destinations response envelope","description":"Signed envelope for NOUR. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"20000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/nour/destinations","description":"Destination shares, or an explicit gap when the source has no machine-readable table.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"available":false,"markets":[],"reason":"The local ONAGRI date dashboard has no machine-readable destination table. Country shares from memory would be invented, so none are returned."},"source":{"publisher":"ONAGRI","title":"La filière dattes","edition":"2026 dashboard; latest export table August 2026","url":"https://www.onagri.nat.tn/uploads/images/full/1792506803_a5d7fa8b4a074dfc9f50.pdf","sha256":"03d28634118ede62e8cb11cfeeb2f968172a9c295abcbb30a20ed29ef69d99c6","page":2,"retrieved":"2026-11-10T00:18:13Z"},"confidence":"low","gaps":[{"field":"destination_mix","reason":"No destination table in the local source. Use the ONAGRI date dashboard or a future validated extract."}],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/nour/bio-premium","type":"http","x402Version":2,"name":"nour_bio_premium","service":"NOUR","description":"Organic date volumes, prices and premium, or an explicit gap.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"nour_bio_premium response envelope","description":"Signed envelope for NOUR. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"30000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/nour/bio-premium","description":"Organic date volumes, prices and premium, or an explicit gap.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"available":false,"premium_pct":null,"reason":"The local ONAGRI date dashboard does not contain organic date volumes or prices. No bio premium is calculated."},"source":{"publisher":"ONAGRI","title":"La filière dattes","edition":"2026 dashboard; latest export table August 2026","url":"https://www.onagri.nat.tn/uploads/images/full/1792506803_a5d7fa8b4a074dfc9f50.pdf","sha256":"03d28634118ede62e8cb11cfeeb2f968172a9c295abcbb30a20ed29ef69d99c6","page":2,"retrieved":"2026-11-10T00:18:13Z"},"confidence":"low","gaps":[{"field":"bio_premium","reason":"Organic date volumes and prices are not in the extracted source. A premium cannot be derived from conventional prices alone."}],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/exportpass/requirements","type":"http","x402Version":2,"name":"exportpass_requirements","service":"EXPORTPASS","description":"Source-linked EU import requirements for dates or olive oil. Not legal advice.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"exportpass_requirements response envelope","description":"Signed envelope for EXPORTPASS. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"50000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/exportpass/requirements","description":"Source-linked EU import requirements for dates or olive oil. Not legal advice.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"product":"dates","market":"DE","packaging":"bulk"},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"product":"dates","market":"DE","packaging":"bulk","hs_code":"0804.10","description":"Dates, fresh or dried","as_of":"2026-11-09","not_legal_advice":true,"requirements":[{"id":"food_safety","title":"Food-business operator responsibility and hygiene","status":"official_source","applies_to":["dates","olive_oil"],"detail":"The importer must be established in the EU and the food must meet EU food law. The Tunisian operator needs traceability and hygiene controls. This is a compl...","source":"https://eur-lex.europa.eu/eli/reg/2004/852/oj"},{"id":"official_controls","title":"Official controls at the EU border","status":"verify","applies_to":["dates","olive_oil"],"detail":"Check whether the consignment needs a CHED and a border control post under the risk-based import control system. The requirement depends on commodity, origin...","source":"https://eur-lex.europa.eu/eli/reg/2017/625/oj","check_url":"https://webgate.ec.europa.eu/tracesnt/"}],"documents":[{"id":"commercial_invoice","label":"Commercial invoice","required":"always"},{"id":"packing_list","label":"Packing list","required":"always"}],"caution":"Each requirement carries a status. 'verify' means the exact applicability depends on the current listing or product form and must be checked at the linked of..."},"source":{"publisher":"EU / Access2Markets","title":"EU import checklist for Tunisian dates and olive oil","edition":"2026-11-09","url":"https://trade.ec.europa.eu/access-to-markets/en/home","sha256":null,"page":null,"retrieved":"2026-11-09T23:48:00Z"},"confidence":"medium","gaps":[{"field":"tariff_rate","reason":"Not asserted. Use the HS code and the TARIC/Access2Markets link; rates and quotas change."}],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{"product":{"type":"string","enum":["dates","olive_oil"]},"market":{"type":"string","enum":["DE","EU"]},"packaging":{"type":"string","enum":["bulk","packaged","organic"]}}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/exportpass/document-checklist","type":"http","x402Version":2,"name":"exportpass_document_checklist","service":"EXPORTPASS","description":"Document checklist with always / conditional / verify status.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"exportpass_document_checklist response envelope","description":"Signed envelope for EXPORTPASS. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"30000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/exportpass/document-checklist","description":"Document checklist with always / conditional / verify status.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"product":"dates","market":"DE","packaging":"bulk"},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"product":"dates","market":"DE","packaging":"bulk","as_of":"2026-11-09","not_legal_advice":true,"documents":[{"id":"commercial_invoice","label":"Commercial invoice","required":"always"},{"id":"packing_list","label":"Packing list","required":"always"}]},"source":{"publisher":"EU / Access2Markets","title":"EU import checklist for Tunisian dates and olive oil","edition":"2026-11-09","url":"https://trade.ec.europa.eu/access-to-markets/en/home","sha256":null,"page":null,"retrieved":"2026-11-09T23:48:00Z"},"confidence":"medium","gaps":[],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{"product":{"type":"string","enum":["dates","olive_oil"]},"market":{"type":"string","enum":["DE","EU"]},"packaging":{"type":"string","enum":["bulk","packaged","organic"]}}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/exportpass/supplier-lookup","type":"http","x402Version":2,"name":"exportpass_supplier_lookup","service":"EXPORTPASS","description":"Checks a public register; refuses to assert credibility without a source.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"exportpass_supplier_lookup response envelope","description":"Signed envelope for EXPORTPASS. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"50000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/exportpass/supplier-lookup","description":"Checks a public register; refuses to assert credibility without a source.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"name":"Example SARL"},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"query":"Example SARL","found":false,"available":false,"reason":"No official machine-readable packer/supplier register is bundled. The service refuses to infer credibility from a name.","register_url":"https://catalog.agridata.tn","not_legal_advice":true},"source":{"publisher":"EU / Access2Markets","title":"EU import checklist for Tunisian dates and olive oil","edition":"2026-11-09","url":"https://trade.ec.europa.eu/access-to-markets/en/home","sha256":null,"page":null,"retrieved":"2026-11-09T23:48:00Z"},"confidence":"low","gaps":[{"field":"supplier_register","reason":"No official machine-readable supplier register is bundled. No reputation claim is made."}],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","required":["name"],"properties":{"name":{"type":"string","example":"Example SARL","description":"Business name to check"}}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/exportpass/tariff-lookup","type":"http","x402Version":2,"name":"exportpass_tariff_lookup","service":"EXPORTPASS","description":"HS code and official tariff query link; the duty rate is deliberately null.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"exportpass_tariff_lookup response envelope","description":"Signed envelope for EXPORTPASS. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"20000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/exportpass/tariff-lookup","description":"HS code and official tariff query link; the duty rate is deliberately null.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"product":"dates","market":"DE"},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"product":"dates","market":"DE","hs_code":"0804.10","description":"Dates, fresh or dried","duty_rate_pct":null,"preferential_rate_pct":null,"reason":"No tariff rate is invented. Query TARIC/Access2Markets for the current rate and any quota.","tariff_url":"https://ec.europa.eu/taxation_customs/dds2/taric/taric_consultation.jsp","access2markets_url":"https://trade.ec.europa.eu/access-to-markets/en/home","as_of":"2026-11-09","not_legal_advice":true},"source":{"publisher":"EU / Access2Markets","title":"EU import checklist for Tunisian dates and olive oil","edition":"2026-11-09","url":"https://trade.ec.europa.eu/access-to-markets/en/home","sha256":null,"page":null,"retrieved":"2026-11-09T23:48:00Z"},"confidence":"low","gaps":[{"field":"duty_rate_pct","reason":"The official rate was not retrieved into the local evidence set; null is safer than a stale rate."}],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{"product":{"type":"string","enum":["dates","olive_oil"]},"market":{"type":"string","enum":["DE","EU"]}}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/bedbank/zone-capacity","type":"http","x402Version":2,"name":"bedbank_zone_capacity","service":"BED BANK","description":"National hotel capacity and closed beds; zone splits only when verified.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"bedbank_zone_capacity response envelope","description":"Signed envelope for BED BANK. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"50000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/bedbank/zone-capacity","description":"National hotel capacity and closed beds; zone splits only when verified.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"zone":null,"national":{"closed_hotels_2023":182,"closed_share_hotels_pct":22,"closed_beds_2023":59728,"closed_share_beds_pct":25,"closed_reasons_2023":[{"reason":"economic_and_social","count":48},{"reason":"seasonal","count":32}],"new_establishments_2023":17,"new_beds_2023":1148,"source_page":14,"confidence":"high"},"reported_context":{"closed_hotels_april_2026":164,"operational_beds_july_2025":173970,"occupancy_pct_july_2025":35.3,"inactive_beds_total":60000,"inactive_beds_seasonal":20000,"inactive_beds_structural":40000,"confidence":"medium","note":"These figures come from the research notes and press/ONTT statements, not from a machine-readable local table. They are returned as reported context with con..."},"zones":[],"zone_breakdown_available":false,"note":"The national figures are sourced. A zone total is not returned because no official machine-readable zone table is in the evidence set."},"source":{"publisher":"ONTT","title":"Rapport annuel ONTT 2023","edition":"2023","url":"https://www.ontt.tn/sites/default/files/inline-files/RAPPORT%20ANNUEL%20ONTT%202023.pdf","sha256":"cf95d804d9e91a4d24dbe943bd7b345642681b10d0efd594841bf0f1a40f58f0","page":14,"retrieved":"2026-11-09T23:48:00Z"},"confidence":"high","gaps":[{"field":"zone_capacity","reason":"No official machine-readable zone table was found. National totals are available; zone splits are not invented."},{"field":"hotel_status","reason":"No official machine-readable hotel register was found. Named hotel status is intentionally unavailable."}],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{"zone":{"type":"string","description":"Optional zone, e.g. Hammamet"}}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/bedbank/hotel-status","type":"http","x402Version":2,"name":"bedbank_hotel_status","service":"BED BANK","description":"Returns a named hotel only if a dated public register backs it; otherwise refuses.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"bedbank_hotel_status response envelope","description":"Signed envelope for BED BANK. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"30000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/bedbank/hotel-status","description":"Returns a named hotel only if a dated public register backs it; otherwise refuses.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"name":"Example Hotel","zone":"Hammamet"},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"query":"Example Hotel","zone":"Hammamet","found":false,"available":false,"reason":"No official machine-readable hotel register was found. This service returns national aggregates and refuses to name a hotel's operating state without a dated..."},"source":{"publisher":"ONTT","title":"Rapport annuel ONTT 2023","edition":"2023","url":"https://www.ontt.tn/sites/default/files/inline-files/RAPPORT%20ANNUEL%20ONTT%202023.pdf","sha256":"cf95d804d9e91a4d24dbe943bd7b345642681b10d0efd594841bf0f1a40f58f0","page":14,"retrieved":"2026-11-09T23:48:00Z"},"confidence":"low","gaps":[{"field":"zone_capacity","reason":"No official machine-readable zone table was found. National totals are available; zone splits are not invented."},{"field":"hotel_status","reason":"No official machine-readable hotel register was found. Named hotel status is intentionally unavailable."}],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","required":["name"],"properties":{"name":{"type":"string","example":"Example Hotel"},"zone":{"type":"string","example":"Hammamet"}}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/bedbank/offline-watch","type":"http","x402Version":2,"name":"bedbank_offline_watch","service":"BED BANK","description":"Aggregate closed capacity and closure reasons; no named hotels.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"bedbank_offline_watch response envelope","description":"Signed envelope for BED BANK. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"50000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/bedbank/offline-watch","description":"Aggregate closed capacity and closure reasons; no named hotels.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"national":{"closed_hotels_2023":182,"closed_share_hotels_pct":22,"closed_beds_2023":59728,"closed_share_beds_pct":25,"closed_reasons_2023":[{"reason":"economic_and_social","count":48},{"reason":"seasonal","count":32}],"new_establishments_2023":17,"new_beds_2023":1148,"source_page":14,"confidence":"high"},"hotels":[],"named_hotels_available":false,"note":"Closure reasons are published aggregates. They do not sum to the 182 closed hotels in the source, so no total is forced."},"source":{"publisher":"ONTT","title":"Rapport annuel ONTT 2023","edition":"2023","url":"https://www.ontt.tn/sites/default/files/inline-files/RAPPORT%20ANNUEL%20ONTT%202023.pdf","sha256":"cf95d804d9e91a4d24dbe943bd7b345642681b10d0efd594841bf0f1a40f58f0","page":14,"retrieved":"2026-11-09T23:48:00Z"},"confidence":"high","gaps":[{"field":"zone_capacity","reason":"No official machine-readable zone table was found. National totals are available; zone splits are not invented."},{"field":"hotel_status","reason":"No official machine-readable hotel register was found. Named hotel status is intentionally unavailable."}],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/bedbank/reopening-pipeline","type":"http","x402Version":2,"name":"bedbank_reopening_pipeline","service":"BED BANK","description":"Announced reopenings only when a verified list exists; otherwise explicit gap.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"bedbank_reopening_pipeline response envelope","description":"Signed envelope for BED BANK. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"50000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/bedbank/reopening-pipeline","description":"Announced reopenings only when a verified list exists; otherwise explicit gap.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"items":[],"available":false,"reason":"No verified reopening list is in the local evidence set. Nothing is inferred from announcements."},"source":{"publisher":"ONTT","title":"Rapport annuel ONTT 2023","edition":"2023","url":"https://www.ontt.tn/sites/default/files/inline-files/RAPPORT%20ANNUEL%20ONTT%202023.pdf","sha256":"cf95d804d9e91a4d24dbe943bd7b345642681b10d0efd594841bf0f1a40f58f0","page":14,"retrieved":"2026-11-09T23:48:00Z"},"confidence":"low","gaps":[{"field":"zone_capacity","reason":"No official machine-readable zone table was found. National totals are available; zone splits are not invented."},{"field":"hotel_status","reason":"No official machine-readable hotel register was found. Named hotel status is intentionally unavailable."}],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/zaytoun/decide","type":"http","x402Version":2,"name":"zaytoun_decide","service":"ZAYTOUN","description":"Olive-oil buy/hold decision from the latest ONAGRI balance + dashboard: price gap, production, FX and a max-price guardrail.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"zaytoun_decide response envelope","description":"Signed envelope for ZAYTOUN. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"50000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/zaytoun/decide","description":"Olive-oil buy/hold decision from the latest ONAGRI balance + dashboard: price gap, production, FX and a max-price guardrail.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"currency":"EUR"},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"decision":"BUY_NOW","as_of":"2026-09-30","period":"2026-01..2026-09","period_basis":"calendar-year-to-date, not campaign","inputs":{"volume_t":20,"volume_kt":319.6,"value_mdt":4005.7,"price_dt_kg":12.54,"price_change_pct":-2.6,"production_2025_26_forecast_kt":500,"production_change_pct":47,"fx_usd_tnd":3.0139,"fx_eur_tnd":3.37306},"why":["Tunisia 4.27 USD/kg vs Spain 5.09 USD/kg = 16.1% discount (ONAGRI dashboard p.17, 2025 averages)","Sep-2026 unit value 12.54 TND/kg, -2.6% YoY"],"guardrails":{"max_price_eur_kg":3.9,"hedge_ratio_pct":70},"legacy_campaign":{"period":"2025-11..2026-08","volume_kt":381.2,"note":"22.09.2026 bulletin; do not mix with YTD"}},"source":{"publisher":"ONAGRI","title":"La balance commerciale alimentaire","edition":"Octobre 2026","url":"https://www.onagri.nat.tn/uploads/1794238130_2560b0fa28160e59ef69.pdf","sha256":"033d7d774daeb11d734bd46a92c7a0575aa27934cde68e23ba7f3b845ebb0e48","page":2,"retrieved":"2026-11-10T17:54:50.423232Z"},"extraction":{"engine":"pdfplumber","anchors_ok":true,"arithmetic_ok":true},"confidence":"high","gaps":[],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{"volume_t":{"type":"number","minimum":1,"maximum":5000},"destination":{"type":"string"},"currency":{"type":"string","enum":["EUR","USD","TND"]}}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/marche/allocate","type":"http","x402Version":2,"name":"marche_allocate","service":"MARCHÉ","description":"Destination allocation decision for Tunisian exports: keep, expand, diversify or reduce a market, with corrected EU share.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"marche_allocate response envelope","description":"Signed envelope for MARCHÉ. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"40000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/marche/allocate","description":"Destination allocation decision for Tunisian exports: keep, expand, diversify or reduce a market, with corrected EU share.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"decision":"DIVERSIFY","as_of":"2026-09-30","product":"olive_oil","inputs":{"national_exports_md":50399.95859739299,"eu_share_pct":70.2,"spain_share_pct":5.3,"spain_growth_pct":26.8,"us_share_pct":3.2,"us_growth_pct":30.8,"uk_share_pct":1.2,"uk_growth_pct":-28.6,"chapter15_export_md":4355.1},"actions":["keep EU core (70.2%)","expand US (3.2% share, +30.8% growth)"],"checks":{"anchors_ok":true,"arithmetic_ok":true,"reconciliation_ok":true}},"source":{"publisher":"INS","title":"Balance par pays","edition":"2026-09","url":"https://www.ins.tn/sites/default/files-ftp3/files/publication/pdf/Balance%20par%20pays_9_2026.xlsx","sha256":"f6da97d3693a0e10bf312bbe2d7bf71f86356724acee42bcd3a11e142138d66d","page":null,"retrieved":"2026-11-10T17:54:50.423232Z"},"confidence":"high","gaps":[],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{"product":{"type":"string"},"current_markets":{"type":"array","items":{"type":"string"}}}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/panier/reprice","type":"http","x402Version":2,"name":"panier_reprice","service":"PANIER","description":"Food-inflation pass-through decision: absorb, pass through, reprice or reformulate, using the official IPC sub-indices.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"panier_reprice response envelope","description":"Signed envelope for PANIER. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"30000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/panier/reprice","description":"Food-inflation pass-through decision: absorb, pass through, reprice or reformulate, using the official IPC sub-indices.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"decision":"REPRICE","as_of":"2026-10-30","period":"2026-10","inputs":{"food_cpi_y_y_pct":8.512,"menu_cpi_y_y_pct":6.235,"gap_pts":2.28,"food_cost_share":0.35,"basket_y_y_pct":8.035,"fruits_y_y_pct":18.599,"meats_y_y_pct":14.146,"oils_y_y_pct":-3.658},"recommendation":{"price_increase_pct":0.8,"or":"switch 10% of basket to frozen/alternate origin"},"checks":{"anchors_ok":true,"arithmetic_ok":true}},"source":{"publisher":"INS","title":"Indice des prix à la consommation (base 2015)","edition":"2026-10","url":"https://www.ins.tn/sites/default/files-ftp3/files/publication/pdf/R%C3%A9sultats_d%C3%A9finitifs_IPC_Base_2015_Octobre_2026.xlsx","sha256":"f4cb8c29e267eef93a7e65e11514a7c96ad2a4b0f038bcfcd3b29efb7ad2cdab","page":null,"retrieved":"2026-11-10T17:54:50.423232Z"},"confidence":"high","gaps":[],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{"food_cost_share":{"type":"number","minimum":0,"maximum":1},"current_menu_inflation_pct":{"type":"number"}}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/couvert/hedge","type":"http","x402Version":2,"name":"couvert_hedge","service":"COUVERT","description":"FX hedge decision for a Tunisian importer payable: hedge now, partially or wait, with the BCT table date as as_of.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"couvert_hedge response envelope","description":"Signed envelope for COUVERT. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"50000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/couvert/hedge","description":"FX hedge decision for a Tunisian importer payable: hedge now, partially or wait, with the BCT table date as as_of.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"currency":"USD"},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"decision":"HEDGE_NOW","as_of":"2026-11-09","table_date":"09/11","inputs":{"currency":"USD","amount":100000,"due_days":90,"rate_tnd":3.0139,"month_change_pct":2.08,"day_change_pct":-0.13,"exposure_tnd":301390},"recommendation":{"hedge_ratio_pct":75,"estimated_extra_cost_tnd":6268.91,"estimated_saving_tnd":4701.68,"reason":"USD/TND moved 2.08% in one month"},"checks":{"anchors_ok":true,"arithmetic_ok":true,"stale":false}},"source":{"publisher":"BCT","title":"Indicateurs économiques et financiers quotidiens","edition":"2026-11-09","url":"https://www.bct.gov.tn/bct/siteprod/indicateurs.jsp","sha256":"14b467144f139de48b36cca41a535d801058909854c2a9619742c4234ae6990e","page":null,"retrieved":"2026-11-10T17:54:50.423232Z"},"confidence":"high","gaps":[],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{"currency":{"type":"string","enum":["USD","EUR"]},"amount":{"type":"number","minimum":1000},"due_days":{"type":"number","minimum":1,"maximum":365}}}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}},{"resource":"https://tunis-data.hanibal-ai.com/api/v1/sanad/release","type":"http","x402Version":2,"name":"sanad_release","service":"SANAD","description":"Release/query/reject a Tunisian shipment dossier: upload a PDF via POST /api/v1/sanad/uploads and pass upload_id, or use upload_id=sample for the built-in demo dossier.","mimeType":"application/json","outputSchema":{"type":"object","required":["request_id","generated_at","data","source","confidence","gaps","disclaimer","attestation"],"properties":{"request_id":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"data":{"type":"object"},"source":{"type":"object","required":["publisher","title","edition","url","sha256","page","retrieved"],"properties":{"publisher":{"type":"string"},"title":{"type":"string"},"edition":{"type":"string"},"url":{"type":["string","null"],"format":"uri"},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"page":{"type":["integer","null"],"minimum":1},"retrieved":{"type":"string","format":"date-time"}}},"extraction":{"type":"object","properties":{"engine":{"type":"string"},"version":{"type":"string"},"anchors_ok":{"type":"boolean"},"arithmetic_ok":{"type":"boolean"}}},"confidence":{"enum":["high","medium","low"]},"gaps":{"type":"array","items":{"type":"object","required":["field","reason"],"properties":{"field":{"type":"string"},"reason":{"type":"string"}},"additionalProperties":true}},"disclaimer":{"type":"string"},"attestation":{"type":"object","required":["type","version","alg","canonicalization","key_id","issuer","issued_at","expires_at","payload_sha256","public_key","signature"],"properties":{"type":{"const":"x402-data-attestation"},"version":{"const":1},"alg":{"const":"Ed25519"},"canonicalization":{"const":"RFC8785"},"key_id":{"type":"string"},"issuer":{"type":"string","pattern":"^did:web:"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"payload_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"public_key":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"const":"OKP"},"crv":{"const":"Ed25519"},"x":{"type":"string"}}},"signature":{"type":"string"}}}},"title":"sanad_release response envelope","description":"Signed envelope for SANAD. `data` is tool-specific; every answer carries source, gaps and an Ed25519 attestation."},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"100000","payTo":"0x1cE5379a485a0bd726fce57BbfDfc316b0D35Cc4","resource":"https://tunis-data.hanibal-ai.com/api/v1/sanad/release","description":"Release/query/reject a Tunisian shipment dossier: upload a PDF via POST /api/v1/sanad/uploads and pass upload_id, or use upload_id=sample for the built-in demo dossier.","mimeType":"application/json","maxTimeoutSeconds":120,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"upload_id":"sample"},"method":"GET"},"output":{"type":"json","example":{"request_id":"req_example","generated_at":"2026-11-11T00:00:00Z","data":{"decision":"RELEASE","as_of":"2026-11-09","sample":true,"note":"Built-in sample dossier; paid calls with upload_id=sample run the real extractor on it.","document":{"file":"sanad_sample_invoice.pdf","sample":true,"extraction":"pdfplumber","hs_code":"1509.10","origin":"TN"},"computed":{"quantity_kg":20000,"unit_price_tnd_kg":12.5,"line_total_tnd":250000,"unit_value_deviation_pct":4.2},"checks":[{"name":"line_total","ok":true,"detail":"20000 x 12.5 = 250000, invoice 250000"},{"name":"hs_code","ok":true,"detail":"HS 1509.10 is olive oil"}],"benchmark":{"chapter15_unit_value_tnd_kg":12,"bct_usd_tnd":3.0139,"bct_eur_tnd":3.2891}},"source":{"publisher":"example","title":"Release/query/reject a Tunisian shipment dossier: upload a PDF via POST /api/v1/sanad/uploads and pass upload_id, or use upload_id=sample for the built-in de...","edition":"example","url":null,"sha256":null,"page":null,"retrieved":"2026-11-11T00:00:00Z"},"confidence":"high","gaps":[],"disclaimer":"Unofficial compilation of public Tunisian data. Not endorsed by the source agency. Verify against the linked source before making a decision.","attestation":{"type":"x402-data-attestation","version":1,"alg":"Ed25519","canonicalization":"RFC8785","key_id":"78qu0-QLludYs9c4","issuer":"did:web:tunis-data.hanibal-ai.com","issued_at":"2026-11-11T00:00:00Z","expires_at":"2026-11-11T00:05:00Z","payload_sha256":"0000000000000000000000000000000000000000000000000000000000000000","public_key":{"kty":"OKP","crv":"Ed25519","x":"BY8bf4H2gq8fwcVN4LaHpSQ3nQt6OEbe5wz75QWdamg"},"signature":"base64url-signature"}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{"upload_id":{"type":"string","example":"sample","description":"Upload id from POST /api/v1/sanad/uploads, or sample for the built-in demo dossier."}},"required":["upload_id"]}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object"}},"required":["type"]}},"required":["input"]}}}}]}