




Have any questions? We’re here to help You
Makini's API supports date filtering on most endpoints using query parameters. You can filter by creation date, modification date, or entity-specific date fields like order date or delivery date. Common patterns include `modified_after=2024-01-01` to retrieve records updated since a specific date, or relative timestamps like `modified_after=2024-01-01T00:00:00Z`. For optimal performance, use incremental data retrieval patterns rather than repeatedly fetching all records. The sync status endpoint provides the last sync timestamp, which you can use as the `modified_after` value for your next query. This approach minimizes data transfer and API load while ensuring you capture all changes.
500-level errors indicate issues on Makini's side or with the connected system. These are typically temporary and retrying the request after a brief delay often succeeds. Implement exponential backoff for retries—wait a few seconds, then progressively longer intervals. If errors persist beyond a few retries, check the Makini status page for service disruptions. The error may also stem from the connected system experiencing issues rather than Makini itself. For persistent 500 errors, contact support with the request ID from the error response. Include details about when the error started, which operations are affected, and which connections are impacted. Our support team can quickly identify whether the issue is systemic or connection-specific.
Makini uses cursor-based pagination for retrieving large datasets. API responses include a `next_cursor` field when additional results are available. To retrieve the next page, include the cursor value in your next request: `GET /api/v1/purchase-orders?cursor=CURSOR_VALUE`. Cursor-based pagination is more reliable than offset-based pagination because it handles data changes between requests—if records are added or deleted while you're paginating, you won't miss records or see duplicates. Page size is configurable up to a maximum limit (typically 100-500 records per page depending on entity type). For optimal performance, use the largest page size your application can handle efficiently. The API response also includes total count when available from the source system.
Makini takes a defense-in-depth approach to security. All data in transit uses TLS 1.2 or higher. Data at rest is encrypted using AES-256 encryption. Customer credentials are encrypted using secure key management with separate encryption keys per customer. We implement network segmentation, strict access controls, and follow the principle of least privilege. Our infrastructure undergoes regular security audits, penetration testing, and vulnerability assessments. We're SOC 2 Type 2 certified, demonstrating our commitment to security controls. Employee access to production systems is logged and monitored. For customers with strict compliance requirements, we offer self-hosted deployments where data never leaves your infrastructure, eliminating Makini as a data processor.
