---
title: BaseCite developer resources
description: Server-side integration guidance for BaseCite uploads, status, quota, and MCP resources.
---

# BaseCite developer resources

## Start here

- [Capabilities](https://api.basecite.com/api/v1/ai/capabilities)
- [OpenAPI](https://api.basecite.com/api/v1/ai/openapi.json)
- [MCP metadata](https://mcp.basecite.com/.well-known/mcp.json)
- [MCP server card](https://mcp.basecite.com/.well-known/mcp/server-card.json)
- [Smithery MCP registry listing](https://smithery.ai/servers/alwaysrememberme1024/basecite)
- [Official MCP Registry listing](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.paxton888%2Fbasecite/versions/0.1.0)
- [Authentication](https://basecite.com/auth.md)
- [Pricing](https://basecite.com/pricing.md)
- [Public repository and agent guidance](https://github.com/paxton777/basecite-evidence-receipts-v0.1-proof)

Partner uploads use sequential multipart requests with a configured part size, SHA-256 completion, status polling, quota enforcement, and workspace-scoped withdrawal. Production integrations must use server-side credentials and must not expose tokens in frontend code.

## Endpoint map

- POST /api/v1/organizations/{org_id}/partner-uploads/initiate starts one organization-scoped upload.
- PUT /api/v1/organizations/{org_id}/partner-uploads/{upload_id}/parts/{part_number} uploads one sequential part.
- POST /api/v1/organizations/{org_id}/partner-uploads/{upload_id}/complete commits the declared SHA-256 digest.
- GET /api/v1/organizations/{org_id}/partner-uploads/{upload_id} is the canonical status and six-gate polling endpoint.
- GET /api/v1/organizations/{org_id}/quota reads the configured persistent-storage allowance.
- POST /api/v1/organizations/{org_id}/partner-uploads/{upload_id}/withdraw removes the original and configured derived context while retaining the deletion receipt and minimum audit metadata.
- POST https://api.basecite.com/oauth/token exchanges provisioned tenant client credentials for a short-lived organization-bound bearer token.
- GET https://api.basecite.com/oauth/identity returns the organization and scopes bound to the current bearer token.

Every mutation requires a stable Idempotency-Key. A 202 Accepted response means the caller must follow the returned status reference; it does not mean that extraction, controlled summary, or AI context is complete. Clients must treat WITHDRAWN as terminal and must not retry a successful withdrawal as a new upload.

## Versioning and deprecation

The REST contract is versioned under `/api/v1/`. Existing v1 operations remain backward-compatible during the published support window. If an operation is retired, the response advertises `Deprecation` and `Sunset` headers at least 90 days before removal; the OpenAPI document and this guide are updated with the replacement before the sunset date.

## Async processing and bulk semantics

Upload completion is an asynchronous job pattern: the completion response returns an upload identifier and canonical status reference, and clients poll the status endpoint until a terminal state. BaseCite does not expose an unbounded bulk-export endpoint. Any future bulk operation must be explicitly organization-scoped, idempotent, quota-checked, and represented in the OpenAPI contract before release.

## Rate limits

Rate-limited API responses expose both the legacy `X-RateLimit-*` headers and the IETF `RateLimit-Limit`, `RateLimit-Remaining`, and `RateLimit-Reset` headers. A `429` response is retryable only after the advertised reset window and must not be used to probe another organization or credential.
