Syndroodocs

DEV.to

Overview

Provider id devto. DEV.to uses a personal API key sent in an api-key header, not an OAuth flow. An article is created with one call to POST https://dev.to/api/articles, and the article body is the explicit body_markdown option rather than the shared text.

Requirements

  • A DEV.to account and a personal API key for it.
  • The title and the Markdown body you want to publish.

UNRESOLVED. The user-facing procedure for issuing or regenerating an API key was not confirmed on a primary documentation page, so this guide does not print a settings path.

Credentials

FieldMeaningSecret
apiKeyThe personal API key, sent in the api-key header.Yes

The key is validated by reading GET /api/users/me, which answers 200 with the user or 401 when the key is refused.

Connect

export SYNDROO_CREDENTIALS='{"apiKey":"DEV_TO_API_KEY_PLACEHOLDER"}'
syndroo connect devto --from-env --label writing

There are no connect options for this provider: the credential field is the whole connection input.

First publish

An article target does not need the shared content, because the article carries its own title and body:

{
  "type": "prepare",
  "content": {},
  "targets": [
    {
      "provider": "devto",
      "options": {
        "title": "Publishing from the terminal",
        "body_markdown": "# Hello\n\nSyndroo sends this article.",
        "tags": ["devtools"],
        "canonical_url": "https://example.com/posts/terminal"
      }
    }
  ]
}
syndroo publish --input post.json --json

The provider sends published: true; an unpublished draft is not the default of this target. A timeout after the article was created leaves the article id unknown to the client, so the outcome stays unknown and non-retryable.

Capabilities

The manifest declares article. UNRESOLVED. The exact title maximum and the v1 rate limits are not stated on the retrieved API reference, so no number is printed here and the provider enforces none.

Options

WhereAccepted keys
Connect optionsNone.
Publish optionstitle and body_markdown (both required), published, tags, canonical_url, description.
Contenttext, optional; it is not the article body.

Troubleshooting

A refused key is a 401, a validation failure is a 422 with an error string, and a rate limit is a 429. The provider never retries any of them, and no scope strings are invented: DEV.to documents no OAuth scopes for this key.

Revoke and security

UNRESOLVED. The key regeneration and revocation procedure was not confirmed on the API reference, so this guide does not assert one. Regenerating or deleting the key in your DEV.to account settings, then disconnecting the local connection, is the safe local step:

syndroo connect --disconnect <connectionId>