{"formatVersion":"1","kind":"dock_integration","slug":"cohere-api","title":"Cohere API","summary":"Import a Harbor-safe Cohere action set covering model discovery, inference, batches, datasets, connectors, fine-tuning, and legacy text helpers.","description":"A Dock-hosted Cohere API integration for Harbor. Importing it creates a local http_api port shell plus a broad Cohere action set for model discovery, reviewed inference, async embed-job control, batch operations, dataset reads, connector management, fine-tuning administration, tokenization helpers, and selected legacy text endpoints. Tokens remain local to Harbor Node.","version":"0.3.0","publisher":{"slug":"cohere","name":"Cohere","websiteUrl":"https://docs.cohere.com/"},"category":"AI","tags":["cohere","ai","llm","chat","embeddings","rerank","tokenize","embed-jobs"],"compatibility":{"harborNode":">=0.1.0","notes":"Requires local operator-configured auth after import. Cohere actions stay on fixed routes, use typed input.path values where required, and use JSON request bodies for Harbor-safe inference, batches, dataset reads, connector administration, and fine-tuning flows. Multipart and SSE-only routes remain documented separately as Harbor platform limitations."},"requiredPlan":"community","portTemplates":[{"kind":"http_api","label":"Cohere API","description":"Cohere API connection managed locally through Harbor.","baseUrl":"https://api.cohere.com/","authMode":"header_token","authHeaderName":"Authorization","authTokenPrefix":"Bearer"}],"actionTemplates":[{"slug":"list-models","label":"List Models","description":"List Cohere models with optional endpoint and pagination filters.","method":"GET","path":"/v1/models","inputs":{"parameters":[{"name":"endpoint","in":"query","schema":{"type":"string","enum":["chat","embed","rerank"]},"description":"Optional Cohere endpoint filter."},{"name":"default_only","in":"query","schema":{"type":"boolean"},"description":"Whether to return only the default model for the chosen endpoint."},{"name":"page_size","in":"query","schema":{"type":"integer","minimum":1,"maximum":1000},"description":"Maximum number of models to include in a page."},{"name":"page_token","in":"query","schema":{"type":"string"},"description":"Pagination token from a previous Cohere response."}]},"approvalMode":"automatic","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"get-model","label":"Get Model","description":"Retrieve a Cohere model by model identifier.","method":"GET","path":"/v1/models/{model}","inputs":{"parameters":[{"name":"model","in":"path","schema":{"type":"string"},"description":"Cohere model identifier."}]},"approvalMode":"automatic","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"chat","label":"Chat","description":"Generate a Cohere chat response using a bounded JSON request body under input.body.","method":"POST","path":"/v2/chat","approvalMode":"require_approval","requestBodyMode":"json","resultMode":"json_summary"},{"slug":"rerank","label":"Rerank","description":"Rerank documents with Cohere using a bounded JSON request body under input.body.","method":"POST","path":"/v2/rerank","approvalMode":"require_approval","requestBodyMode":"json","resultMode":"json_summary"},{"slug":"embed-text","label":"Embed Text","description":"Create Cohere embeddings using a bounded JSON request body under input.body.","method":"POST","path":"/v2/embed","approvalMode":"require_approval","requestBodyMode":"json","resultMode":"json_summary"},{"slug":"create-embed-job","label":"Create Embed Job","description":"Launch an asynchronous Cohere embed job using a bounded JSON request body under input.body.","method":"POST","path":"/v1/embed-jobs","approvalMode":"require_approval","requestBodyMode":"json","resultMode":"json_summary"},{"slug":"list-embed-jobs","label":"List Embed Jobs","description":"List historical Cohere embed jobs for the configured account.","method":"GET","path":"/v1/embed-jobs","approvalMode":"automatic","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"get-embed-job","label":"Get Embed Job","description":"Retrieve a Cohere embed job by job identifier.","method":"GET","path":"/v1/embed-jobs/{id}","inputs":{"parameters":[{"name":"id","in":"path","schema":{"type":"string"},"description":"Cohere embed job identifier."}]},"approvalMode":"automatic","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"cancel-embed-job","label":"Cancel Embed Job","description":"Cancel an active Cohere embed job.","method":"POST","path":"/v1/embed-jobs/{id}/cancel","inputs":{"parameters":[{"name":"id","in":"path","schema":{"type":"string"},"description":"Cohere embed job identifier."}]},"approvalMode":"require_approval","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"create-batch","label":"Create Batch","description":"Create a Cohere batch job using a bounded JSON request body under input.body.","method":"POST","path":"/v2/batches","approvalMode":"require_approval","requestBodyMode":"json","resultMode":"json_summary"},{"slug":"list-batches","label":"List Batches","description":"List Cohere batch jobs for the configured account.","method":"GET","path":"/v2/batches","approvalMode":"automatic","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"get-batch","label":"Get Batch","description":"Retrieve a Cohere batch job by batch identifier.","method":"GET","path":"/v2/batches/{id}","inputs":{"parameters":[{"name":"id","in":"path","schema":{"type":"string"},"description":"Cohere batch identifier."}]},"approvalMode":"automatic","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"cancel-batch","label":"Cancel Batch","description":"Cancel an active Cohere batch job.","method":"POST","path":"/v2/batches/{id}:cancel","inputs":{"parameters":[{"name":"id","in":"path","schema":{"type":"string"},"description":"Cohere batch identifier."}]},"approvalMode":"require_approval","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"list-datasets","label":"List Datasets","description":"List Cohere datasets for the configured account.","method":"GET","path":"/v1/datasets","approvalMode":"automatic","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"get-dataset-usage","label":"Get Dataset Usage","description":"Retrieve Cohere dataset usage information for the configured account.","method":"GET","path":"/v1/datasets/usage","approvalMode":"automatic","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"get-dataset","label":"Get Dataset","description":"Retrieve a Cohere dataset by dataset identifier.","method":"GET","path":"/v1/datasets/{id}","inputs":{"parameters":[{"name":"id","in":"path","schema":{"type":"string"},"description":"Cohere dataset identifier."}]},"approvalMode":"automatic","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"delete-dataset","label":"Delete Dataset","description":"Delete a Cohere dataset by dataset identifier.","method":"DELETE","path":"/v1/datasets/{id}","inputs":{"parameters":[{"name":"id","in":"path","schema":{"type":"string"},"description":"Cohere dataset identifier."}]},"approvalMode":"require_approval","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"tokenize","label":"Tokenize","description":"Tokenize text with Cohere using a bounded JSON request body under input.body.","method":"POST","path":"/v1/tokenize","approvalMode":"require_approval","requestBodyMode":"json","resultMode":"json_summary"},{"slug":"detokenize","label":"Detokenize","description":"Detokenize token arrays with Cohere using a bounded JSON request body under input.body.","method":"POST","path":"/v1/detokenize","approvalMode":"require_approval","requestBodyMode":"json","resultMode":"json_summary"},{"slug":"rerank-v1","label":"Rerank V1","description":"Run the legacy Cohere rerank endpoint using a bounded JSON request body under input.body.","method":"POST","path":"/v1/rerank","approvalMode":"require_approval","requestBodyMode":"json","resultMode":"json_summary"},{"slug":"embed-v1","label":"Embed V1","description":"Run the legacy Cohere embed endpoint using a bounded JSON request body under input.body.","method":"POST","path":"/v1/embed","approvalMode":"require_approval","requestBodyMode":"json","resultMode":"json_summary"},{"slug":"check-api-key","label":"Check API Key","description":"Validate the configured Cohere API key with Cohere's dedicated auth check endpoint.","method":"POST","path":"/v1/check-api-key","approvalMode":"automatic","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"classify-text","label":"Classify Text","description":"Run Cohere legacy classification using a bounded JSON request body under input.body.","method":"POST","path":"/v1/classify","approvalMode":"require_approval","requestBodyMode":"json","resultMode":"json_summary"},{"slug":"summarize-text","label":"Summarize Text","description":"Run Cohere legacy summarization using a bounded JSON request body under input.body.","method":"POST","path":"/v1/summarize","approvalMode":"require_approval","requestBodyMode":"json","resultMode":"json_summary"},{"slug":"list-connectors","label":"List Connectors","description":"List Cohere connectors for the configured account.","method":"GET","path":"/v1/connectors","approvalMode":"automatic","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"create-connector","label":"Create Connector","description":"Create a Cohere connector using a bounded JSON request body under input.body.","method":"POST","path":"/v1/connectors","approvalMode":"require_approval","requestBodyMode":"json","resultMode":"json_summary"},{"slug":"get-connector","label":"Get Connector","description":"Retrieve a Cohere connector by connector identifier.","method":"GET","path":"/v1/connectors/{id}","inputs":{"parameters":[{"name":"id","in":"path","schema":{"type":"string"},"description":"Cohere connector identifier."}]},"approvalMode":"automatic","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"update-connector","label":"Update Connector","description":"Update a Cohere connector by connector identifier using a bounded JSON request body under input.body.","method":"PATCH","path":"/v1/connectors/{id}","inputs":{"parameters":[{"name":"id","in":"path","schema":{"type":"string"},"description":"Cohere connector identifier."}]},"approvalMode":"require_approval","requestBodyMode":"json","resultMode":"json_summary"},{"slug":"delete-connector","label":"Delete Connector","description":"Delete a Cohere connector by connector identifier.","method":"DELETE","path":"/v1/connectors/{id}","inputs":{"parameters":[{"name":"id","in":"path","schema":{"type":"string"},"description":"Cohere connector identifier."}]},"approvalMode":"require_approval","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"authorize-connector-oauth","label":"Authorize Connector OAuth","description":"Authorize OAuth for a Cohere connector by connector identifier.","method":"POST","path":"/v1/connectors/{id}/oauth/authorize","inputs":{"parameters":[{"name":"id","in":"path","schema":{"type":"string"},"description":"Cohere connector identifier."}]},"approvalMode":"require_approval","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"list-finetuned-models","label":"List Finetuned Models","description":"List Cohere fine-tuned models for the configured account.","method":"GET","path":"/v1/finetuning/finetuned-models","approvalMode":"automatic","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"create-finetuned-model","label":"Create Finetuned Model","description":"Create and train a Cohere fine-tuned model using a bounded JSON request body under input.body.","method":"POST","path":"/v1/finetuning/finetuned-models","approvalMode":"require_approval","requestBodyMode":"json","resultMode":"json_summary"},{"slug":"update-finetuned-model","label":"Update Finetuned Model","description":"Update a Cohere fine-tuned model by model identifier using a bounded JSON request body under input.body.","method":"PATCH","path":"/v1/finetuning/finetuned-models/{id}","inputs":{"parameters":[{"name":"id","in":"path","schema":{"type":"string"},"description":"Cohere fine-tuned model identifier."}]},"approvalMode":"require_approval","requestBodyMode":"json","resultMode":"json_summary"},{"slug":"get-finetuned-model","label":"Get Finetuned Model","description":"Retrieve a Cohere fine-tuned model by model identifier.","method":"GET","path":"/v1/finetuning/finetuned-models/{id}","inputs":{"parameters":[{"name":"id","in":"path","schema":{"type":"string"},"description":"Cohere fine-tuned model identifier."}]},"approvalMode":"automatic","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"delete-finetuned-model","label":"Delete Finetuned Model","description":"Delete a Cohere fine-tuned model by model identifier.","method":"DELETE","path":"/v1/finetuning/finetuned-models/{id}","inputs":{"parameters":[{"name":"id","in":"path","schema":{"type":"string"},"description":"Cohere fine-tuned model identifier."}]},"approvalMode":"require_approval","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"list-finetuned-model-events","label":"List Finetuned Model Events","description":"List status history events for a Cohere fine-tuned model.","method":"GET","path":"/v1/finetuning/finetuned-models/{finetuned_model_id}/events","inputs":{"parameters":[{"name":"finetuned_model_id","in":"path","schema":{"type":"string"},"description":"Cohere fine-tuned model identifier."}]},"approvalMode":"automatic","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"list-finetuned-model-training-step-metrics","label":"List Finetuned Model Training Step Metrics","description":"List training-step metrics for a Cohere fine-tuned model.","method":"GET","path":"/v1/finetuning/finetuned-models/{finetuned_model_id}/training-step-metrics","inputs":{"parameters":[{"name":"finetuned_model_id","in":"path","schema":{"type":"string"},"description":"Cohere fine-tuned model identifier."}]},"approvalMode":"automatic","requestBodyMode":"none","resultMode":"json_summary"}],"helpText":"Import to Harbor, configure local auth, then validate read actions first before enabling inference, batch, connector, or fine-tuning writes. Keep prompt-bearing, state-changing, and cost-bearing actions on approval unless your local policy explicitly allows a narrower safe subset.","installNotes":"Dock shares only safe metadata. Hidden auth must be configured locally inside Harbor after import. Cohere actions use Authorization: Bearer, typed input.path values where required, and bounded JSON bodies for Harbor-safe execution. Multipart transcription and dataset creation plus SSE-only legacy streaming routes remain documented in TechnicalLimitations.md."}